@tracearr/translations 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +116 -0
  3. package/dist/config.d.ts +4510 -0
  4. package/dist/config.d.ts.map +1 -0
  5. package/dist/config.js +164 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/config.mobile.d.ts +4511 -0
  8. package/dist/config.mobile.d.ts.map +1 -0
  9. package/dist/config.mobile.js +587 -0
  10. package/dist/config.mobile.js.map +1 -0
  11. package/dist/formatting.d.ts +120 -0
  12. package/dist/formatting.d.ts.map +1 -0
  13. package/dist/formatting.js +265 -0
  14. package/dist/formatting.js.map +1 -0
  15. package/dist/index.d.ts +46 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +49 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/language.d.ts +101 -0
  20. package/dist/language.d.ts.map +1 -0
  21. package/dist/language.js +241 -0
  22. package/dist/language.js.map +1 -0
  23. package/dist/locales/af/common.json +276 -0
  24. package/dist/locales/af/mobile.json +60 -0
  25. package/dist/locales/af/nav.json +22 -0
  26. package/dist/locales/af/notifications.json +262 -0
  27. package/dist/locales/af/pages.json +324 -0
  28. package/dist/locales/af/settings.json +243 -0
  29. package/dist/locales/af-ZA/common.json +308 -0
  30. package/dist/locales/af-ZA/mobile.json +178 -0
  31. package/dist/locales/af-ZA/nav.json +28 -0
  32. package/dist/locales/af-ZA/notifications.json +279 -0
  33. package/dist/locales/af-ZA/pages.json +953 -0
  34. package/dist/locales/af-ZA/settings.json +487 -0
  35. package/dist/locales/ar/common.json +276 -0
  36. package/dist/locales/ar/mobile.json +60 -0
  37. package/dist/locales/ar/nav.json +22 -0
  38. package/dist/locales/ar/notifications.json +262 -0
  39. package/dist/locales/ar/pages.json +324 -0
  40. package/dist/locales/ar/settings.json +243 -0
  41. package/dist/locales/ar-SA/common.json +308 -0
  42. package/dist/locales/ar-SA/mobile.json +178 -0
  43. package/dist/locales/ar-SA/nav.json +28 -0
  44. package/dist/locales/ar-SA/notifications.json +279 -0
  45. package/dist/locales/ar-SA/pages.json +953 -0
  46. package/dist/locales/ar-SA/settings.json +487 -0
  47. package/dist/locales/ca/common.json +276 -0
  48. package/dist/locales/ca/mobile.json +60 -0
  49. package/dist/locales/ca/nav.json +22 -0
  50. package/dist/locales/ca/notifications.json +262 -0
  51. package/dist/locales/ca/pages.json +324 -0
  52. package/dist/locales/ca/settings.json +243 -0
  53. package/dist/locales/ca-ES/common.json +308 -0
  54. package/dist/locales/ca-ES/mobile.json +178 -0
  55. package/dist/locales/ca-ES/nav.json +28 -0
  56. package/dist/locales/ca-ES/notifications.json +279 -0
  57. package/dist/locales/ca-ES/pages.json +953 -0
  58. package/dist/locales/ca-ES/settings.json +487 -0
  59. package/dist/locales/cs/common.json +276 -0
  60. package/dist/locales/cs/mobile.json +60 -0
  61. package/dist/locales/cs/nav.json +22 -0
  62. package/dist/locales/cs/notifications.json +262 -0
  63. package/dist/locales/cs/pages.json +324 -0
  64. package/dist/locales/cs/settings.json +243 -0
  65. package/dist/locales/cs-CZ/common.json +308 -0
  66. package/dist/locales/cs-CZ/mobile.json +178 -0
  67. package/dist/locales/cs-CZ/nav.json +28 -0
  68. package/dist/locales/cs-CZ/notifications.json +279 -0
  69. package/dist/locales/cs-CZ/pages.json +953 -0
  70. package/dist/locales/cs-CZ/settings.json +487 -0
  71. package/dist/locales/da/common.json +276 -0
  72. package/dist/locales/da/mobile.json +60 -0
  73. package/dist/locales/da/nav.json +22 -0
  74. package/dist/locales/da/notifications.json +262 -0
  75. package/dist/locales/da/pages.json +324 -0
  76. package/dist/locales/da/settings.json +243 -0
  77. package/dist/locales/da-DK/common.json +308 -0
  78. package/dist/locales/da-DK/mobile.json +178 -0
  79. package/dist/locales/da-DK/nav.json +28 -0
  80. package/dist/locales/da-DK/notifications.json +279 -0
  81. package/dist/locales/da-DK/pages.json +953 -0
  82. package/dist/locales/da-DK/settings.json +487 -0
  83. package/dist/locales/de/common.json +276 -0
  84. package/dist/locales/de/mobile.json +60 -0
  85. package/dist/locales/de/nav.json +22 -0
  86. package/dist/locales/de/notifications.json +262 -0
  87. package/dist/locales/de/pages.json +324 -0
  88. package/dist/locales/de/settings.json +243 -0
  89. package/dist/locales/de-DE/common.json +308 -0
  90. package/dist/locales/de-DE/mobile.json +178 -0
  91. package/dist/locales/de-DE/nav.json +28 -0
  92. package/dist/locales/de-DE/notifications.json +279 -0
  93. package/dist/locales/de-DE/pages.json +953 -0
  94. package/dist/locales/de-DE/settings.json +487 -0
  95. package/dist/locales/el/common.json +276 -0
  96. package/dist/locales/el/mobile.json +60 -0
  97. package/dist/locales/el/nav.json +22 -0
  98. package/dist/locales/el/notifications.json +262 -0
  99. package/dist/locales/el/pages.json +324 -0
  100. package/dist/locales/el/settings.json +243 -0
  101. package/dist/locales/el-GR/common.json +308 -0
  102. package/dist/locales/el-GR/mobile.json +178 -0
  103. package/dist/locales/el-GR/nav.json +28 -0
  104. package/dist/locales/el-GR/notifications.json +279 -0
  105. package/dist/locales/el-GR/pages.json +953 -0
  106. package/dist/locales/el-GR/settings.json +487 -0
  107. package/dist/locales/en/common.json +308 -0
  108. package/dist/locales/en/mobile.json +178 -0
  109. package/dist/locales/en/nav.json +28 -0
  110. package/dist/locales/en/notifications.json +279 -0
  111. package/dist/locales/en/pages.json +953 -0
  112. package/dist/locales/en/settings.json +487 -0
  113. package/dist/locales/en-US/common.json +308 -0
  114. package/dist/locales/en-US/mobile.json +178 -0
  115. package/dist/locales/en-US/nav.json +28 -0
  116. package/dist/locales/en-US/notifications.json +279 -0
  117. package/dist/locales/en-US/pages.json +953 -0
  118. package/dist/locales/en-US/settings.json +487 -0
  119. package/dist/locales/es/common.json +276 -0
  120. package/dist/locales/es/mobile.json +60 -0
  121. package/dist/locales/es/nav.json +22 -0
  122. package/dist/locales/es/notifications.json +262 -0
  123. package/dist/locales/es/pages.json +324 -0
  124. package/dist/locales/es/settings.json +243 -0
  125. package/dist/locales/es-ES/common.json +308 -0
  126. package/dist/locales/es-ES/mobile.json +178 -0
  127. package/dist/locales/es-ES/nav.json +28 -0
  128. package/dist/locales/es-ES/notifications.json +279 -0
  129. package/dist/locales/es-ES/pages.json +953 -0
  130. package/dist/locales/es-ES/settings.json +487 -0
  131. package/dist/locales/fi/common.json +276 -0
  132. package/dist/locales/fi/mobile.json +60 -0
  133. package/dist/locales/fi/nav.json +22 -0
  134. package/dist/locales/fi/notifications.json +262 -0
  135. package/dist/locales/fi/pages.json +324 -0
  136. package/dist/locales/fi/settings.json +243 -0
  137. package/dist/locales/fi-FI/common.json +308 -0
  138. package/dist/locales/fi-FI/mobile.json +178 -0
  139. package/dist/locales/fi-FI/nav.json +28 -0
  140. package/dist/locales/fi-FI/notifications.json +279 -0
  141. package/dist/locales/fi-FI/pages.json +953 -0
  142. package/dist/locales/fi-FI/settings.json +487 -0
  143. package/dist/locales/fr/common.json +276 -0
  144. package/dist/locales/fr/mobile.json +60 -0
  145. package/dist/locales/fr/nav.json +22 -0
  146. package/dist/locales/fr/notifications.json +262 -0
  147. package/dist/locales/fr/pages.json +324 -0
  148. package/dist/locales/fr/settings.json +243 -0
  149. package/dist/locales/fr-FR/common.json +308 -0
  150. package/dist/locales/fr-FR/mobile.json +178 -0
  151. package/dist/locales/fr-FR/nav.json +28 -0
  152. package/dist/locales/fr-FR/notifications.json +279 -0
  153. package/dist/locales/fr-FR/pages.json +953 -0
  154. package/dist/locales/fr-FR/settings.json +487 -0
  155. package/dist/locales/he/common.json +276 -0
  156. package/dist/locales/he/mobile.json +60 -0
  157. package/dist/locales/he/nav.json +22 -0
  158. package/dist/locales/he/notifications.json +262 -0
  159. package/dist/locales/he/pages.json +324 -0
  160. package/dist/locales/he/settings.json +243 -0
  161. package/dist/locales/he-IL/common.json +308 -0
  162. package/dist/locales/he-IL/mobile.json +178 -0
  163. package/dist/locales/he-IL/nav.json +28 -0
  164. package/dist/locales/he-IL/notifications.json +279 -0
  165. package/dist/locales/he-IL/pages.json +953 -0
  166. package/dist/locales/he-IL/settings.json +487 -0
  167. package/dist/locales/hu/common.json +276 -0
  168. package/dist/locales/hu/mobile.json +60 -0
  169. package/dist/locales/hu/nav.json +22 -0
  170. package/dist/locales/hu/notifications.json +262 -0
  171. package/dist/locales/hu/pages.json +324 -0
  172. package/dist/locales/hu/settings.json +243 -0
  173. package/dist/locales/hu-HU/common.json +308 -0
  174. package/dist/locales/hu-HU/mobile.json +178 -0
  175. package/dist/locales/hu-HU/nav.json +28 -0
  176. package/dist/locales/hu-HU/notifications.json +279 -0
  177. package/dist/locales/hu-HU/pages.json +953 -0
  178. package/dist/locales/hu-HU/settings.json +487 -0
  179. package/dist/locales/it/common.json +276 -0
  180. package/dist/locales/it/mobile.json +60 -0
  181. package/dist/locales/it/nav.json +22 -0
  182. package/dist/locales/it/notifications.json +262 -0
  183. package/dist/locales/it/pages.json +324 -0
  184. package/dist/locales/it/settings.json +243 -0
  185. package/dist/locales/it-IT/common.json +308 -0
  186. package/dist/locales/it-IT/mobile.json +178 -0
  187. package/dist/locales/it-IT/nav.json +28 -0
  188. package/dist/locales/it-IT/notifications.json +279 -0
  189. package/dist/locales/it-IT/pages.json +953 -0
  190. package/dist/locales/it-IT/settings.json +487 -0
  191. package/dist/locales/ja/common.json +276 -0
  192. package/dist/locales/ja/mobile.json +60 -0
  193. package/dist/locales/ja/nav.json +22 -0
  194. package/dist/locales/ja/notifications.json +262 -0
  195. package/dist/locales/ja/pages.json +324 -0
  196. package/dist/locales/ja/settings.json +243 -0
  197. package/dist/locales/ja-JP/common.json +308 -0
  198. package/dist/locales/ja-JP/mobile.json +178 -0
  199. package/dist/locales/ja-JP/nav.json +28 -0
  200. package/dist/locales/ja-JP/notifications.json +279 -0
  201. package/dist/locales/ja-JP/pages.json +953 -0
  202. package/dist/locales/ja-JP/settings.json +487 -0
  203. package/dist/locales/ko/common.json +276 -0
  204. package/dist/locales/ko/mobile.json +60 -0
  205. package/dist/locales/ko/nav.json +22 -0
  206. package/dist/locales/ko/notifications.json +262 -0
  207. package/dist/locales/ko/pages.json +324 -0
  208. package/dist/locales/ko/settings.json +243 -0
  209. package/dist/locales/ko-KR/common.json +308 -0
  210. package/dist/locales/ko-KR/mobile.json +178 -0
  211. package/dist/locales/ko-KR/nav.json +28 -0
  212. package/dist/locales/ko-KR/notifications.json +279 -0
  213. package/dist/locales/ko-KR/pages.json +953 -0
  214. package/dist/locales/ko-KR/settings.json +487 -0
  215. package/dist/locales/nl/common.json +276 -0
  216. package/dist/locales/nl/mobile.json +60 -0
  217. package/dist/locales/nl/nav.json +22 -0
  218. package/dist/locales/nl/notifications.json +262 -0
  219. package/dist/locales/nl/pages.json +324 -0
  220. package/dist/locales/nl/settings.json +243 -0
  221. package/dist/locales/nl-NL/common.json +308 -0
  222. package/dist/locales/nl-NL/mobile.json +178 -0
  223. package/dist/locales/nl-NL/nav.json +28 -0
  224. package/dist/locales/nl-NL/notifications.json +279 -0
  225. package/dist/locales/nl-NL/pages.json +953 -0
  226. package/dist/locales/nl-NL/settings.json +487 -0
  227. package/dist/locales/no/common.json +276 -0
  228. package/dist/locales/no/mobile.json +60 -0
  229. package/dist/locales/no/nav.json +22 -0
  230. package/dist/locales/no/notifications.json +262 -0
  231. package/dist/locales/no/pages.json +324 -0
  232. package/dist/locales/no/settings.json +243 -0
  233. package/dist/locales/no-NO/common.json +308 -0
  234. package/dist/locales/no-NO/mobile.json +178 -0
  235. package/dist/locales/no-NO/nav.json +28 -0
  236. package/dist/locales/no-NO/notifications.json +279 -0
  237. package/dist/locales/no-NO/pages.json +953 -0
  238. package/dist/locales/no-NO/settings.json +487 -0
  239. package/dist/locales/pl/common.json +276 -0
  240. package/dist/locales/pl/mobile.json +60 -0
  241. package/dist/locales/pl/nav.json +22 -0
  242. package/dist/locales/pl/notifications.json +262 -0
  243. package/dist/locales/pl/pages.json +324 -0
  244. package/dist/locales/pl/settings.json +243 -0
  245. package/dist/locales/pl-PL/common.json +308 -0
  246. package/dist/locales/pl-PL/mobile.json +178 -0
  247. package/dist/locales/pl-PL/nav.json +28 -0
  248. package/dist/locales/pl-PL/notifications.json +279 -0
  249. package/dist/locales/pl-PL/pages.json +953 -0
  250. package/dist/locales/pl-PL/settings.json +487 -0
  251. package/dist/locales/pt/common.json +276 -0
  252. package/dist/locales/pt/mobile.json +60 -0
  253. package/dist/locales/pt/nav.json +22 -0
  254. package/dist/locales/pt/notifications.json +262 -0
  255. package/dist/locales/pt/pages.json +324 -0
  256. package/dist/locales/pt/settings.json +243 -0
  257. package/dist/locales/pt-BR/common.json +308 -0
  258. package/dist/locales/pt-BR/mobile.json +178 -0
  259. package/dist/locales/pt-BR/nav.json +28 -0
  260. package/dist/locales/pt-BR/notifications.json +279 -0
  261. package/dist/locales/pt-BR/pages.json +953 -0
  262. package/dist/locales/pt-BR/settings.json +487 -0
  263. package/dist/locales/pt-PT/common.json +308 -0
  264. package/dist/locales/pt-PT/mobile.json +178 -0
  265. package/dist/locales/pt-PT/nav.json +28 -0
  266. package/dist/locales/pt-PT/notifications.json +279 -0
  267. package/dist/locales/pt-PT/pages.json +953 -0
  268. package/dist/locales/pt-PT/settings.json +487 -0
  269. package/dist/locales/ro/common.json +276 -0
  270. package/dist/locales/ro/mobile.json +60 -0
  271. package/dist/locales/ro/nav.json +22 -0
  272. package/dist/locales/ro/notifications.json +262 -0
  273. package/dist/locales/ro/pages.json +324 -0
  274. package/dist/locales/ro/settings.json +243 -0
  275. package/dist/locales/ro-RO/common.json +308 -0
  276. package/dist/locales/ro-RO/mobile.json +178 -0
  277. package/dist/locales/ro-RO/nav.json +28 -0
  278. package/dist/locales/ro-RO/notifications.json +279 -0
  279. package/dist/locales/ro-RO/pages.json +953 -0
  280. package/dist/locales/ro-RO/settings.json +487 -0
  281. package/dist/locales/ru/common.json +276 -0
  282. package/dist/locales/ru/mobile.json +60 -0
  283. package/dist/locales/ru/nav.json +22 -0
  284. package/dist/locales/ru/notifications.json +262 -0
  285. package/dist/locales/ru/pages.json +324 -0
  286. package/dist/locales/ru/settings.json +243 -0
  287. package/dist/locales/ru-RU/common.json +308 -0
  288. package/dist/locales/ru-RU/mobile.json +178 -0
  289. package/dist/locales/ru-RU/nav.json +28 -0
  290. package/dist/locales/ru-RU/notifications.json +279 -0
  291. package/dist/locales/ru-RU/pages.json +953 -0
  292. package/dist/locales/ru-RU/settings.json +487 -0
  293. package/dist/locales/sr/common.json +276 -0
  294. package/dist/locales/sr/mobile.json +60 -0
  295. package/dist/locales/sr/nav.json +22 -0
  296. package/dist/locales/sr/notifications.json +262 -0
  297. package/dist/locales/sr/pages.json +324 -0
  298. package/dist/locales/sr/settings.json +243 -0
  299. package/dist/locales/sr-SP/common.json +308 -0
  300. package/dist/locales/sr-SP/mobile.json +178 -0
  301. package/dist/locales/sr-SP/nav.json +28 -0
  302. package/dist/locales/sr-SP/notifications.json +279 -0
  303. package/dist/locales/sr-SP/pages.json +953 -0
  304. package/dist/locales/sr-SP/settings.json +487 -0
  305. package/dist/locales/sv/common.json +276 -0
  306. package/dist/locales/sv/mobile.json +60 -0
  307. package/dist/locales/sv/nav.json +22 -0
  308. package/dist/locales/sv/notifications.json +262 -0
  309. package/dist/locales/sv/pages.json +324 -0
  310. package/dist/locales/sv/settings.json +243 -0
  311. package/dist/locales/sv-SE/common.json +308 -0
  312. package/dist/locales/sv-SE/mobile.json +178 -0
  313. package/dist/locales/sv-SE/nav.json +28 -0
  314. package/dist/locales/sv-SE/notifications.json +279 -0
  315. package/dist/locales/sv-SE/pages.json +953 -0
  316. package/dist/locales/sv-SE/settings.json +487 -0
  317. package/dist/locales/tr/common.json +276 -0
  318. package/dist/locales/tr/mobile.json +60 -0
  319. package/dist/locales/tr/nav.json +22 -0
  320. package/dist/locales/tr/notifications.json +262 -0
  321. package/dist/locales/tr/pages.json +324 -0
  322. package/dist/locales/tr/settings.json +243 -0
  323. package/dist/locales/tr-TR/common.json +308 -0
  324. package/dist/locales/tr-TR/mobile.json +178 -0
  325. package/dist/locales/tr-TR/nav.json +28 -0
  326. package/dist/locales/tr-TR/notifications.json +279 -0
  327. package/dist/locales/tr-TR/pages.json +953 -0
  328. package/dist/locales/tr-TR/settings.json +487 -0
  329. package/dist/locales/uk/common.json +276 -0
  330. package/dist/locales/uk/mobile.json +60 -0
  331. package/dist/locales/uk/nav.json +22 -0
  332. package/dist/locales/uk/notifications.json +262 -0
  333. package/dist/locales/uk/pages.json +324 -0
  334. package/dist/locales/uk/settings.json +243 -0
  335. package/dist/locales/uk-UA/common.json +308 -0
  336. package/dist/locales/uk-UA/mobile.json +178 -0
  337. package/dist/locales/uk-UA/nav.json +28 -0
  338. package/dist/locales/uk-UA/notifications.json +279 -0
  339. package/dist/locales/uk-UA/pages.json +953 -0
  340. package/dist/locales/uk-UA/settings.json +487 -0
  341. package/dist/locales/vi/common.json +276 -0
  342. package/dist/locales/vi/mobile.json +60 -0
  343. package/dist/locales/vi/nav.json +22 -0
  344. package/dist/locales/vi/notifications.json +262 -0
  345. package/dist/locales/vi/pages.json +324 -0
  346. package/dist/locales/vi/settings.json +243 -0
  347. package/dist/locales/vi-VN/common.json +308 -0
  348. package/dist/locales/vi-VN/mobile.json +178 -0
  349. package/dist/locales/vi-VN/nav.json +28 -0
  350. package/dist/locales/vi-VN/notifications.json +279 -0
  351. package/dist/locales/vi-VN/pages.json +953 -0
  352. package/dist/locales/vi-VN/settings.json +487 -0
  353. package/dist/locales/zh/common.json +276 -0
  354. package/dist/locales/zh/mobile.json +60 -0
  355. package/dist/locales/zh/nav.json +22 -0
  356. package/dist/locales/zh/notifications.json +262 -0
  357. package/dist/locales/zh/pages.json +324 -0
  358. package/dist/locales/zh/settings.json +243 -0
  359. package/dist/locales/zh-CN/common.json +308 -0
  360. package/dist/locales/zh-CN/mobile.json +178 -0
  361. package/dist/locales/zh-CN/nav.json +28 -0
  362. package/dist/locales/zh-CN/notifications.json +279 -0
  363. package/dist/locales/zh-CN/pages.json +953 -0
  364. package/dist/locales/zh-CN/settings.json +487 -0
  365. package/dist/locales/zh-TW/common.json +308 -0
  366. package/dist/locales/zh-TW/mobile.json +178 -0
  367. package/dist/locales/zh-TW/nav.json +28 -0
  368. package/dist/locales/zh-TW/notifications.json +279 -0
  369. package/dist/locales/zh-TW/pages.json +953 -0
  370. package/dist/locales/zh-TW/settings.json +487 -0
  371. package/dist/mobile.d.ts +11 -0
  372. package/dist/mobile.d.ts.map +1 -0
  373. package/dist/mobile.js +14 -0
  374. package/dist/mobile.js.map +1 -0
  375. package/dist/types.d.ts +54 -0
  376. package/dist/types.d.ts.map +1 -0
  377. package/dist/types.js +5 -0
  378. package/dist/types.js.map +1 -0
  379. package/package.json +57 -0
  380. package/src/config.mobile.ts +647 -0
  381. package/src/config.ts +209 -0
  382. package/src/formatting.ts +297 -0
  383. package/src/index.ts +105 -0
  384. package/src/language.ts +270 -0
  385. package/src/locales/af-ZA/common.json +308 -0
  386. package/src/locales/af-ZA/mobile.json +178 -0
  387. package/src/locales/af-ZA/nav.json +28 -0
  388. package/src/locales/af-ZA/notifications.json +279 -0
  389. package/src/locales/af-ZA/pages.json +953 -0
  390. package/src/locales/af-ZA/settings.json +487 -0
  391. package/src/locales/ar-SA/common.json +308 -0
  392. package/src/locales/ar-SA/mobile.json +178 -0
  393. package/src/locales/ar-SA/nav.json +28 -0
  394. package/src/locales/ar-SA/notifications.json +279 -0
  395. package/src/locales/ar-SA/pages.json +953 -0
  396. package/src/locales/ar-SA/settings.json +487 -0
  397. package/src/locales/ca-ES/common.json +308 -0
  398. package/src/locales/ca-ES/mobile.json +178 -0
  399. package/src/locales/ca-ES/nav.json +28 -0
  400. package/src/locales/ca-ES/notifications.json +279 -0
  401. package/src/locales/ca-ES/pages.json +953 -0
  402. package/src/locales/ca-ES/settings.json +487 -0
  403. package/src/locales/cs-CZ/common.json +308 -0
  404. package/src/locales/cs-CZ/mobile.json +178 -0
  405. package/src/locales/cs-CZ/nav.json +28 -0
  406. package/src/locales/cs-CZ/notifications.json +279 -0
  407. package/src/locales/cs-CZ/pages.json +953 -0
  408. package/src/locales/cs-CZ/settings.json +487 -0
  409. package/src/locales/da-DK/common.json +308 -0
  410. package/src/locales/da-DK/mobile.json +178 -0
  411. package/src/locales/da-DK/nav.json +28 -0
  412. package/src/locales/da-DK/notifications.json +279 -0
  413. package/src/locales/da-DK/pages.json +953 -0
  414. package/src/locales/da-DK/settings.json +487 -0
  415. package/src/locales/de-DE/common.json +308 -0
  416. package/src/locales/de-DE/mobile.json +178 -0
  417. package/src/locales/de-DE/nav.json +28 -0
  418. package/src/locales/de-DE/notifications.json +279 -0
  419. package/src/locales/de-DE/pages.json +953 -0
  420. package/src/locales/de-DE/settings.json +487 -0
  421. package/src/locales/el-GR/common.json +308 -0
  422. package/src/locales/el-GR/mobile.json +178 -0
  423. package/src/locales/el-GR/nav.json +28 -0
  424. package/src/locales/el-GR/notifications.json +279 -0
  425. package/src/locales/el-GR/pages.json +953 -0
  426. package/src/locales/el-GR/settings.json +487 -0
  427. package/src/locales/en/common.json +308 -0
  428. package/src/locales/en/mobile.json +178 -0
  429. package/src/locales/en/nav.json +28 -0
  430. package/src/locales/en/notifications.json +279 -0
  431. package/src/locales/en/pages.json +953 -0
  432. package/src/locales/en/settings.json +487 -0
  433. package/src/locales/en-US/common.json +308 -0
  434. package/src/locales/en-US/mobile.json +178 -0
  435. package/src/locales/en-US/nav.json +28 -0
  436. package/src/locales/en-US/notifications.json +279 -0
  437. package/src/locales/en-US/pages.json +953 -0
  438. package/src/locales/en-US/settings.json +487 -0
  439. package/src/locales/es-ES/common.json +308 -0
  440. package/src/locales/es-ES/mobile.json +178 -0
  441. package/src/locales/es-ES/nav.json +28 -0
  442. package/src/locales/es-ES/notifications.json +279 -0
  443. package/src/locales/es-ES/pages.json +953 -0
  444. package/src/locales/es-ES/settings.json +487 -0
  445. package/src/locales/fi-FI/common.json +308 -0
  446. package/src/locales/fi-FI/mobile.json +178 -0
  447. package/src/locales/fi-FI/nav.json +28 -0
  448. package/src/locales/fi-FI/notifications.json +279 -0
  449. package/src/locales/fi-FI/pages.json +953 -0
  450. package/src/locales/fi-FI/settings.json +487 -0
  451. package/src/locales/fr-FR/common.json +308 -0
  452. package/src/locales/fr-FR/mobile.json +178 -0
  453. package/src/locales/fr-FR/nav.json +28 -0
  454. package/src/locales/fr-FR/notifications.json +279 -0
  455. package/src/locales/fr-FR/pages.json +953 -0
  456. package/src/locales/fr-FR/settings.json +487 -0
  457. package/src/locales/he-IL/common.json +308 -0
  458. package/src/locales/he-IL/mobile.json +178 -0
  459. package/src/locales/he-IL/nav.json +28 -0
  460. package/src/locales/he-IL/notifications.json +279 -0
  461. package/src/locales/he-IL/pages.json +953 -0
  462. package/src/locales/he-IL/settings.json +487 -0
  463. package/src/locales/hu-HU/common.json +308 -0
  464. package/src/locales/hu-HU/mobile.json +178 -0
  465. package/src/locales/hu-HU/nav.json +28 -0
  466. package/src/locales/hu-HU/notifications.json +279 -0
  467. package/src/locales/hu-HU/pages.json +953 -0
  468. package/src/locales/hu-HU/settings.json +487 -0
  469. package/src/locales/it-IT/common.json +308 -0
  470. package/src/locales/it-IT/mobile.json +178 -0
  471. package/src/locales/it-IT/nav.json +28 -0
  472. package/src/locales/it-IT/notifications.json +279 -0
  473. package/src/locales/it-IT/pages.json +953 -0
  474. package/src/locales/it-IT/settings.json +487 -0
  475. package/src/locales/ja-JP/common.json +308 -0
  476. package/src/locales/ja-JP/mobile.json +178 -0
  477. package/src/locales/ja-JP/nav.json +28 -0
  478. package/src/locales/ja-JP/notifications.json +279 -0
  479. package/src/locales/ja-JP/pages.json +953 -0
  480. package/src/locales/ja-JP/settings.json +487 -0
  481. package/src/locales/ko-KR/common.json +308 -0
  482. package/src/locales/ko-KR/mobile.json +178 -0
  483. package/src/locales/ko-KR/nav.json +28 -0
  484. package/src/locales/ko-KR/notifications.json +279 -0
  485. package/src/locales/ko-KR/pages.json +953 -0
  486. package/src/locales/ko-KR/settings.json +487 -0
  487. package/src/locales/nl-NL/common.json +308 -0
  488. package/src/locales/nl-NL/mobile.json +178 -0
  489. package/src/locales/nl-NL/nav.json +28 -0
  490. package/src/locales/nl-NL/notifications.json +279 -0
  491. package/src/locales/nl-NL/pages.json +953 -0
  492. package/src/locales/nl-NL/settings.json +487 -0
  493. package/src/locales/no-NO/common.json +308 -0
  494. package/src/locales/no-NO/mobile.json +178 -0
  495. package/src/locales/no-NO/nav.json +28 -0
  496. package/src/locales/no-NO/notifications.json +279 -0
  497. package/src/locales/no-NO/pages.json +953 -0
  498. package/src/locales/no-NO/settings.json +487 -0
  499. package/src/locales/pl-PL/common.json +308 -0
  500. package/src/locales/pl-PL/mobile.json +178 -0
  501. package/src/locales/pl-PL/nav.json +28 -0
  502. package/src/locales/pl-PL/notifications.json +279 -0
  503. package/src/locales/pl-PL/pages.json +953 -0
  504. package/src/locales/pl-PL/settings.json +487 -0
  505. package/src/locales/pt-BR/common.json +308 -0
  506. package/src/locales/pt-BR/mobile.json +178 -0
  507. package/src/locales/pt-BR/nav.json +28 -0
  508. package/src/locales/pt-BR/notifications.json +279 -0
  509. package/src/locales/pt-BR/pages.json +953 -0
  510. package/src/locales/pt-BR/settings.json +487 -0
  511. package/src/locales/pt-PT/common.json +308 -0
  512. package/src/locales/pt-PT/mobile.json +178 -0
  513. package/src/locales/pt-PT/nav.json +28 -0
  514. package/src/locales/pt-PT/notifications.json +279 -0
  515. package/src/locales/pt-PT/pages.json +953 -0
  516. package/src/locales/pt-PT/settings.json +487 -0
  517. package/src/locales/ro-RO/common.json +308 -0
  518. package/src/locales/ro-RO/mobile.json +178 -0
  519. package/src/locales/ro-RO/nav.json +28 -0
  520. package/src/locales/ro-RO/notifications.json +279 -0
  521. package/src/locales/ro-RO/pages.json +953 -0
  522. package/src/locales/ro-RO/settings.json +487 -0
  523. package/src/locales/ru-RU/common.json +308 -0
  524. package/src/locales/ru-RU/mobile.json +178 -0
  525. package/src/locales/ru-RU/nav.json +28 -0
  526. package/src/locales/ru-RU/notifications.json +279 -0
  527. package/src/locales/ru-RU/pages.json +953 -0
  528. package/src/locales/ru-RU/settings.json +487 -0
  529. package/src/locales/sr-SP/common.json +308 -0
  530. package/src/locales/sr-SP/mobile.json +178 -0
  531. package/src/locales/sr-SP/nav.json +28 -0
  532. package/src/locales/sr-SP/notifications.json +279 -0
  533. package/src/locales/sr-SP/pages.json +953 -0
  534. package/src/locales/sr-SP/settings.json +487 -0
  535. package/src/locales/sv-SE/common.json +308 -0
  536. package/src/locales/sv-SE/mobile.json +178 -0
  537. package/src/locales/sv-SE/nav.json +28 -0
  538. package/src/locales/sv-SE/notifications.json +279 -0
  539. package/src/locales/sv-SE/pages.json +953 -0
  540. package/src/locales/sv-SE/settings.json +487 -0
  541. package/src/locales/tr-TR/common.json +308 -0
  542. package/src/locales/tr-TR/mobile.json +178 -0
  543. package/src/locales/tr-TR/nav.json +28 -0
  544. package/src/locales/tr-TR/notifications.json +279 -0
  545. package/src/locales/tr-TR/pages.json +953 -0
  546. package/src/locales/tr-TR/settings.json +487 -0
  547. package/src/locales/uk-UA/common.json +308 -0
  548. package/src/locales/uk-UA/mobile.json +178 -0
  549. package/src/locales/uk-UA/nav.json +28 -0
  550. package/src/locales/uk-UA/notifications.json +279 -0
  551. package/src/locales/uk-UA/pages.json +953 -0
  552. package/src/locales/uk-UA/settings.json +487 -0
  553. package/src/locales/vi-VN/common.json +308 -0
  554. package/src/locales/vi-VN/mobile.json +178 -0
  555. package/src/locales/vi-VN/nav.json +28 -0
  556. package/src/locales/vi-VN/notifications.json +279 -0
  557. package/src/locales/vi-VN/pages.json +953 -0
  558. package/src/locales/vi-VN/settings.json +487 -0
  559. package/src/locales/zh-CN/common.json +308 -0
  560. package/src/locales/zh-CN/mobile.json +178 -0
  561. package/src/locales/zh-CN/nav.json +28 -0
  562. package/src/locales/zh-CN/notifications.json +279 -0
  563. package/src/locales/zh-CN/pages.json +953 -0
  564. package/src/locales/zh-CN/settings.json +487 -0
  565. package/src/locales/zh-TW/common.json +308 -0
  566. package/src/locales/zh-TW/mobile.json +178 -0
  567. package/src/locales/zh-TW/nav.json +28 -0
  568. package/src/locales/zh-TW/notifications.json +279 -0
  569. package/src/locales/zh-TW/pages.json +953 -0
  570. package/src/locales/zh-TW/settings.json +487 -0
  571. package/src/mobile.ts +69 -0
  572. package/src/types.ts +86 -0
@@ -0,0 +1,262 @@
1
+ {
2
+ "toast": {
3
+ "success": {
4
+ "serverAdded": {
5
+ "title": "Server Added",
6
+ "message": "{{name}} has been connected successfully"
7
+ },
8
+ "serverRemoved": {
9
+ "title": "Server Removed",
10
+ "message": "The server has been removed successfully"
11
+ },
12
+ "serverSynced": {
13
+ "title": "Server Synced",
14
+ "message": "Server data has been synchronized"
15
+ },
16
+ "settingsUpdated": {
17
+ "title": "Settings Updated",
18
+ "message": "Your settings have been saved"
19
+ },
20
+ "tokenCopied": {
21
+ "title": "Token Copied",
22
+ "message": "Pair token copied to clipboard"
23
+ },
24
+ "violationAcknowledged": {
25
+ "title": "Violation Acknowledged",
26
+ "message": "The violation has been marked as acknowledged"
27
+ },
28
+ "violationDismissed": {
29
+ "title": "Violation Dismissed",
30
+ "message": "The violation has been dismissed"
31
+ },
32
+ "deviceRemoved": {
33
+ "title": "Device Removed",
34
+ "message": "The device has been disconnected"
35
+ },
36
+ "deviceRenamed": {
37
+ "title": "Device Renamed",
38
+ "message": "The device name has been updated"
39
+ },
40
+ "sessionsRevoked": {
41
+ "title": "Sessions Revoked",
42
+ "message": "All mobile sessions have been revoked"
43
+ },
44
+ "loggedIn": {
45
+ "title": "Success",
46
+ "message": "Logged in successfully"
47
+ },
48
+ "webhookTest": {
49
+ "title": "Test Successful",
50
+ "message": "Webhook is working correctly"
51
+ },
52
+ "copiedToClipboard": {
53
+ "title": "Copied to clipboard"
54
+ },
55
+ "plexAccountLinked": {
56
+ "title": "Plex Account Linked",
57
+ "message": "You can now add servers from your Plex account"
58
+ },
59
+ "plexAccountUnlinked": {
60
+ "title": "Plex Account Unlinked",
61
+ "message": "Your Plex account has been disconnected"
62
+ },
63
+ "agentAdded": {
64
+ "title": "Agent Added",
65
+ "message": "The notification agent has been added"
66
+ },
67
+ "agentUpdated": {
68
+ "title": "Agent Updated",
69
+ "message": "The notification agent has been updated"
70
+ },
71
+ "agentRemoved": {
72
+ "title": "Agent Removed",
73
+ "message": "The notification agent has been removed"
74
+ },
75
+ "jobCompleted": {
76
+ "title": "Job Completed",
77
+ "message": "{{name}} finished successfully"
78
+ },
79
+ "ruleCreated": {
80
+ "title": "Rule Created",
81
+ "message": "The rule has been created successfully"
82
+ },
83
+ "ruleUpdated": {
84
+ "title": "Rule Updated",
85
+ "message": "The rule has been updated successfully"
86
+ },
87
+ "ruleDeleted": {
88
+ "title": "Rule Deleted",
89
+ "message": "The rule has been deleted successfully"
90
+ },
91
+ "streamTerminated": {
92
+ "title": "Stream Terminated",
93
+ "message": "The playback session has been stopped"
94
+ },
95
+ "serverUrlUpdated": {
96
+ "title": "Server URL Updated",
97
+ "message": "The server URL has been updated successfully"
98
+ },
99
+ "serverUpdated": {
100
+ "title": "Server Updated",
101
+ "message": "The server has been updated successfully"
102
+ },
103
+ "syncCompletedWithErrors": {
104
+ "title": "Sync Completed with Errors"
105
+ },
106
+ "sessionsDeleted": {
107
+ "title": "Sessions Deleted",
108
+ "message_one": "{{count}} session deleted",
109
+ "message_other": "{{count}} sessions deleted"
110
+ },
111
+ "violationsAcknowledged": {
112
+ "title": "Violations Acknowledged",
113
+ "message_one": "{{count}} violation acknowledged",
114
+ "message_other": "{{count}} violations acknowledged"
115
+ },
116
+ "violationsDismissed": {
117
+ "title": "Violations Dismissed",
118
+ "message_one": "{{count}} violation dismissed",
119
+ "message_other": "{{count}} violations dismissed"
120
+ },
121
+ "apiKeyGenerated": {
122
+ "title": "API Key Generated",
123
+ "message": "Your new API key is ready to use"
124
+ },
125
+ "mobileAccessEnabled": {
126
+ "title": "Mobile Access Enabled",
127
+ "message": "Scan the QR code with the Tracearr mobile app to connect"
128
+ },
129
+ "mobileAccessDisabled": {
130
+ "title": "Mobile Access Disabled",
131
+ "message": "All mobile sessions have been revoked"
132
+ },
133
+ "pairTokenGenerated": {
134
+ "title": "Pair Token Generated",
135
+ "message": "Scan the QR code with your mobile device to pair"
136
+ },
137
+ "displayNameUpdated": {
138
+ "title": "Display Name Updated"
139
+ },
140
+ "trustScoresReset": {
141
+ "title": "Trust Scores Reset",
142
+ "message_one": "{{count}} user reset to 100",
143
+ "message_other": "{{count}} users reset to 100"
144
+ },
145
+ "claimCodeValidated": {
146
+ "title": "Claim code validated",
147
+ "message": "You can now proceed with setup"
148
+ }
149
+ },
150
+ "error": {
151
+ "serverAddFailed": "Failed to add server",
152
+ "serverRemoveFailed": "Failed to remove server",
153
+ "serverSyncFailed": "Failed to sync server",
154
+ "settingsUpdateFailed": "Failed to update settings",
155
+ "copyFailed": "Could not copy to clipboard",
156
+ "acknowledgeFailed": "Failed to acknowledge violation",
157
+ "dismissFailed": "Failed to dismiss violation",
158
+ "authFailed": "Authentication failed",
159
+ "webhookTestFailed": "Webhook test failed",
160
+ "ruleCreateFailed": "Failed to create rule",
161
+ "ruleUpdateFailed": "Failed to update rule",
162
+ "ruleDeleteFailed": "Failed to delete rule",
163
+ "streamTerminateFailed": "Failed to terminate stream",
164
+ "serverUrlUpdateFailed": "Failed to update server URL",
165
+ "serverUpdateFailed": "Failed to update server",
166
+ "serverReorderFailed": "Failed to reorder servers",
167
+ "sessionsDeleteFailed": "Failed to delete sessions",
168
+ "apiKeyGenerateFailed": "Failed to generate API key",
169
+ "mobileAccessEnableFailed": "Failed to enable mobile access",
170
+ "mobileAccessDisableFailed": "Failed to disable mobile access",
171
+ "pairTokenGenerateFailed": "Failed to generate pair token",
172
+ "deviceRemoveFailed": "Failed to remove device",
173
+ "deviceRenameFailed": "Failed to rename device",
174
+ "sessionsRevokeFailed": "Failed to revoke sessions",
175
+ "displayNameUpdateFailed": "Failed to update display name",
176
+ "trustScoresResetFailed": "Failed to reset trust scores",
177
+ "routingUpdateFailed": "Failed to update routing",
178
+ "clipboardFailed": "Failed to copy to clipboard",
179
+ "plexUnlinkFailed": "Failed to unlink Plex account",
180
+ "agentAddFailed": "Failed to add agent",
181
+ "agentUpdateFailed": "Failed to update agent",
182
+ "agentRemoveFailed": "Failed to remove agent",
183
+ "agentTestFailed": "Test failed",
184
+ "jobAlreadyRunning": "Job already running",
185
+ "jobStartFailed": "Failed to start job",
186
+ "jobLoadFailed": "Failed to load maintenance jobs",
187
+ "invalidUrl": "Invalid URL",
188
+ "plexDirectUrl": "plex.direct URLs are relay addresses that cannot be used here. Please use a direct IP address or hostname instead.",
189
+ "invalidClaimCode": {
190
+ "title": "Invalid claim code",
191
+ "message": "Please check the server logs"
192
+ }
193
+ },
194
+ "warning": {
195
+ "jobFailed": {
196
+ "title": "Job Failed",
197
+ "message": "{{name}} encountered an error"
198
+ }
199
+ },
200
+ "info": {
201
+ "streamStarted": {
202
+ "title": "New Stream Started",
203
+ "message": "{{user}} started watching {{media}}"
204
+ },
205
+ "streamStopped": {
206
+ "title": "Stream Stopped",
207
+ "message": "{{user}} stopped watching"
208
+ },
209
+ "updateAvailable": {
210
+ "title": "Update Available",
211
+ "message": "Tracearr {{version}} is available"
212
+ },
213
+ "serverOffline": {
214
+ "title": "Server Offline",
215
+ "message": "{{name}} is unreachable"
216
+ },
217
+ "serverOnline": {
218
+ "title": "Server Online",
219
+ "message": "{{name}} is back online"
220
+ },
221
+ "violationDetected": {
222
+ "title": "New Violation: {{ruleName}}",
223
+ "message": "{{user}} triggered {{ruleType}}"
224
+ }
225
+ }
226
+ },
227
+ "push": {
228
+ "violationDetected": "Sharing Violation Detected",
229
+ "streamStarted": "Stream Started",
230
+ "streamEnded": "Stream Ended",
231
+ "serverDown": "Server Connection Lost",
232
+ "serverUp": "Server Back Online",
233
+ "newDevice": "New Device",
234
+ "trustScoreChanged": "Trust Score Changed"
235
+ },
236
+ "settings": {
237
+ "title": "Notification Settings",
238
+ "allSeverity": "All (Low, Warning, High)",
239
+ "warningAndHigh": "Warning & High only",
240
+ "highOnly": "High severity only",
241
+ "allTypes": "All Types",
242
+ "rateLimit": "Current Rate Limit Status",
243
+ "perMinute": "Per Minute",
244
+ "perHour": "Per Hour",
245
+ "enablePushNotifications": "Enable Push Notifications",
246
+ "notificationEvents": "Notification Events",
247
+ "violationDetected": "Violation Detected",
248
+ "streamStarted": "Stream Started",
249
+ "streamStopped": "Stream Stopped",
250
+ "concurrentStreams": "Concurrent Streams",
251
+ "newDevice": "New Device",
252
+ "trustScoreChanged": "Trust Score Changed",
253
+ "serverDown": "Server Down",
254
+ "serverUp": "Server Up",
255
+ "violationFilters": "Violation Filters",
256
+ "minimumSeverity": "Minimum Severity",
257
+ "quietHours": "Quiet Hours",
258
+ "enableQuietHours": "Enable Quiet Hours",
259
+ "overrideForCritical": "Override for Critical",
260
+ "rateLimiting": "Rate Limiting"
261
+ }
262
+ }
@@ -0,0 +1,324 @@
1
+ {
2
+ "login": {
3
+ "title": "Tracearr",
4
+ "tagline": "Tracearr - Stream access management",
5
+ "createAccountHeading": "Create your account to get started",
6
+ "signInHeading": "Sign in to your account",
7
+ "createAccountDescription": "Create an account to manage your media servers",
8
+ "signInDescription": "Sign in to access your dashboard",
9
+ "selectPlexServer": "Select your Plex server",
10
+ "waitingForPlex": "Waiting for Plex authorization...",
11
+ "completeInPopup": "Complete sign-in in the popup window",
12
+ "reopenPlexLogin": "Reopen Plex Login",
13
+ "emailPlaceholder": "your@email.com",
14
+ "displayNamePlaceholder": "Choose a display name",
15
+ "passwordPlaceholder": "At least 8 characters",
16
+ "yourPasswordPlaceholder": "Your password",
17
+ "jellyfinUsernamePlaceholder": "Your Jellyfin username",
18
+ "jellyfinPasswordPlaceholder": "Your Jellyfin password",
19
+ "jellyfinAdminNote": "Must be an administrator on a configured Jellyfin server",
20
+ "setupNote": "After creating your account, you'll add your Plex or Jellyfin servers from Settings.",
21
+ "accountCreated": "Account created successfully!",
22
+ "connectedTo": "Connected to {{name}}",
23
+ "plexAuthFailed": "Plex authentication failed",
24
+ "plexStartFailed": "Failed to start Plex login",
25
+ "serverConnectFailed": "Failed to connect to server",
26
+ "signupFailed": "Signup failed",
27
+ "createAccountFailed": "Failed to create account",
28
+ "loginFailed": "Login failed",
29
+ "invalidCredentials": "Invalid email or password",
30
+ "jellyfinInvalidCredentials": "Invalid username or password, or user is not an administrator",
31
+ "claimCodeRequired": "First-time setup requires a claim code",
32
+ "enterClaimCode": "Enter Claim Code",
33
+ "claimCodeDescription": "Check your server logs for the claim code to proceed with setup",
34
+ "claimCodeLabel": "Claim Code",
35
+ "claimCodeHint": "The claim code is printed in the server logs when the container starts",
36
+ "validateClaimCode": "Validate Claim Code",
37
+ "claimCodeSecurityNote": "This security measure ensures only authorized users can complete first-time setup"
38
+ },
39
+ "dashboard": {
40
+ "alerts": "Alerts",
41
+ "plays": "Plays",
42
+ "watchTime": "Watch Time",
43
+ "activeUsers": "Active Users",
44
+ "nowPlaying": "Now Playing",
45
+ "streamLocations": "Stream Locations",
46
+ "serverResources": "Server Resources",
47
+ "bandwidth": "Bandwidth",
48
+ "noActiveStreams": "No active streams",
49
+ "streamsAppearHere": "Active streams will appear here when users start watching"
50
+ },
51
+ "users": {
52
+ "title": "Users",
53
+ "allUsers": "All Users",
54
+ "noUsersFound": "No users found.",
55
+ "searchPlaceholder": "Search users...",
56
+ "selectAllUsers": "Select all {{count}} users",
57
+ "resetTrustScore": "Reset Trust Score",
58
+ "resetTrustScoreTitle_one": "Reset Trust Score for {{count}} User",
59
+ "resetTrustScoreTitle_other": "Reset Trust Score for {{count}} Users",
60
+ "resetTrustScoreConfirm": "Are you sure you want to reset the trust score to 100? This action cannot be undone."
61
+ },
62
+ "userDetail": {
63
+ "backToUsers": "Back to Users",
64
+ "userNotFound": "User not found",
65
+ "userInfo": "User Info",
66
+ "statistics": "Statistics",
67
+ "sessions": "Sessions",
68
+ "violations": "Violations",
69
+ "locations": "Locations",
70
+ "terminationHistory": "Termination History",
71
+ "noSessionsFound": "No sessions found for this user.",
72
+ "noViolationsFound": "No violations for this user.",
73
+ "noTerminationsFound": "No stream terminations for this user.",
74
+ "byRule": "By / Rule",
75
+ "manual": "Manual",
76
+ "unknownRule": "Unknown rule"
77
+ },
78
+ "history": {
79
+ "title": "History",
80
+ "description": "Browse all streaming sessions with powerful filtering",
81
+ "loadingMore": "Loading more...",
82
+ "scrollForMore": "Scroll for more",
83
+ "showingAllResults": "Showing all {{total}} results",
84
+ "deleteSession_one": "Delete {{count}} Session",
85
+ "deleteSession_other": "Delete {{count}} Sessions",
86
+ "deleteSessionsConfirm": "Are you sure you want to delete? This action cannot be undone."
87
+ },
88
+ "library": {
89
+ "title": "Library",
90
+ "description": "Top movies and shows on your server",
91
+ "topMovies": "Top Movies",
92
+ "topShows": "Top TV Shows",
93
+ "noMoviePlays": "No movie plays in this period",
94
+ "noShowPlays": "No TV show plays in this period"
95
+ },
96
+ "activity": {
97
+ "title": "Activity",
98
+ "description": "Play trends, patterns, and streaming behavior",
99
+ "playsOverTime": "Plays Over Time",
100
+ "concurrentStreams": "Concurrent Streams",
101
+ "engagementBreakdown": "Engagement Breakdown",
102
+ "howUsersEngage": "How users engage with content",
103
+ "playsVsSessions": "Plays vs Sessions",
104
+ "playsVsSessionsDesc": "Full completions only — counts a play when total watch time covers a content's entire runtime",
105
+ "activityByDayOfWeek": "Activity by Day of Week",
106
+ "activityByHourOfDay": "Activity by Hour of Day",
107
+ "platforms": "Platforms",
108
+ "streamQuality": "Stream Quality"
109
+ },
110
+ "violations": {
111
+ "title": "Violations",
112
+ "violationLog": "Violation Log",
113
+ "noMatches": "No Matches",
114
+ "tryAdjustingFilters": "Try adjusting your filters",
115
+ "allClear": "All Clear",
116
+ "noViolationsDetected": "No rule violations detected",
117
+ "selectAllViolations": "Select all {{count}} violations matching filters",
118
+ "dismissViolation": "Dismiss Violation",
119
+ "dismissViolationConfirm": "Are you sure you want to dismiss this violation? This will remove it from the violation log permanently.",
120
+ "dismissViolation_one": "Dismiss {{count}} Violation",
121
+ "dismissViolation_other": "Dismiss {{count}} Violations",
122
+ "dismissViolationsConfirm": "Are you sure you want to dismiss? This will remove them from the violation log permanently and restore associated trust scores.",
123
+ "noViolationsFound": "No violations found",
124
+ "noViolationsRecorded": "No violations have been recorded yet.",
125
+ "allSeverities": "All Severities",
126
+ "allStatuses": "All Statuses",
127
+ "detail": {
128
+ "notFound": "Violation not found",
129
+ "violationDetails": "Violation Details",
130
+ "userInfo": "User",
131
+ "sessions": "Sessions",
132
+ "noSessions": "No sessions associated with this violation",
133
+ "trigger": "Trigger",
134
+ "map": "Session Locations",
135
+ "actions": "Actions Taken",
136
+ "timestamps": "Timestamps",
137
+ "created": "Created",
138
+ "acknowledged": "Acknowledged",
139
+ "detected": "Detected",
140
+ "inactivity": "Inactivity Details",
141
+ "daysInactive": "Days Inactive",
142
+ "threshold": "Threshold",
143
+ "lastActivity": "Last Activity",
144
+ "neverActive": "Never active"
145
+ }
146
+ },
147
+ "rules": {
148
+ "title": "Rules",
149
+ "description": "Configure detection rules for account sharing and policy violations",
150
+ "addRule": "Add Rule",
151
+ "createRule": "Create Rule",
152
+ "editRule": "Edit Rule",
153
+ "updateDescription": "Update the rule configuration below.",
154
+ "createDescription": "Configure a new detection rule for your media servers.",
155
+ "ruleName": "Rule Name",
156
+ "ruleNamePlaceholder": "e.g., Concurrent Stream Limit",
157
+ "ruleType": "Rule Type",
158
+ "updateRule": "Update Rule",
159
+ "deleteRule": "Delete Rule",
160
+ "deleteRuleConfirm": "Are you sure you want to delete this rule? This action cannot be undone.",
161
+ "deleteRule_one": "Delete {{count}} Rule",
162
+ "deleteRule_other": "Delete {{count}} Rules",
163
+ "deleteRulesConfirm": "Are you sure you want to delete? This action cannot be undone.",
164
+ "enable": "Enable",
165
+ "disable": "Disable",
166
+ "noRulesConfigured": "No rules configured",
167
+ "createFirstRule": "Create your first detection rule to start monitoring for account sharing.",
168
+ "impossibleTravel": "Impossible Travel",
169
+ "impossibleTravelDesc": "Detect when a user streams from locations too far apart in a short time",
170
+ "simultaneousLocations": "Simultaneous Locations",
171
+ "simultaneousLocationsDesc": "Detect when a user streams from multiple distant locations at once",
172
+ "deviceVelocity": "Device Velocity",
173
+ "deviceVelocityDesc": "Detect when a user connects from too many IPs in a time window",
174
+ "concurrentStreams": "Concurrent Streams",
175
+ "concurrentStreamsDesc": "Limit the number of simultaneous streams per user",
176
+ "geoRestriction": "Geo Restriction",
177
+ "geoRestrictionDesc": "Block streaming from specific countries",
178
+ "accountInactivity": "Account Inactivity",
179
+ "accountInactivityDesc": "Get notified when users have not watched anything for a specified period",
180
+ "maxSpeed": "Max Speed ({{unit}})",
181
+ "maxSpeedDefault": "Maximum realistic travel speed. Default: {{value}} {{unit}} (airplane speed)",
182
+ "minDistance": "Min Distance ({{unit}})",
183
+ "minDistanceDefault": "Minimum distance between locations to trigger. Default: {{value}} {{unit}}",
184
+ "maxIps": "Max IPs",
185
+ "timeWindow": "Time Window (hours)",
186
+ "maxIpsDefault": "Maximum unique IPs allowed within the time window. Default: 5 IPs in 24 hours",
187
+ "groupByDevice": "Group by Device",
188
+ "groupByDeviceDesc": "Count by device instead of IP. Prevents false positives from VPN, DHCP, or Virtual Channels.",
189
+ "maxStreams": "Max Streams",
190
+ "maxStreamsDefault": "Maximum simultaneous streams per user. Default: 3",
191
+ "mode": "Mode",
192
+ "blocklist": "Blocklist (block these countries)",
193
+ "allowlist": "Allowlist (only allow these countries)",
194
+ "blockedCountries": "Blocked Countries",
195
+ "allowedCountries": "Allowed Countries",
196
+ "selectCountriesToBlock": "Select countries to block...",
197
+ "selectAllowedCountries": "Select allowed countries...",
198
+ "allowlistNote": "Streams from any other country will trigger a violation.",
199
+ "inactivityPeriod": "Inactivity Period",
200
+ "unit": "Unit",
201
+ "days": "Days",
202
+ "weeks": "Weeks",
203
+ "months": "Months",
204
+ "inactivityNote": "Creates an alert when a user has not watched anything for this period. Checks run hourly.",
205
+ "excludeLocalNetwork": "Exclude Local Network",
206
+ "excludeLocalNetworkDesc": "Ignore sessions from local/private IPs (e.g., 192.168.x.x, 10.x.x.x)",
207
+ "blocked": "Blocked",
208
+ "allowed": "Allowed",
209
+ "none": "None",
210
+ "inactiveFor": "Inactive for {{value}} {{unit}}"
211
+ },
212
+ "terminateStream": {
213
+ "title": "Terminate Stream",
214
+ "stopMedia": "Stop \"{{mediaTitle}}\" for @{{username}}?",
215
+ "messageLabel": "Message to user (optional)",
216
+ "messagePlaceholder": "e.g., Please don't share your account",
217
+ "messageHint": "This message will be shown to them during playback",
218
+ "terminating": "Terminating...",
219
+ "killStream": "Kill Stream"
220
+ },
221
+ "notFound": {
222
+ "title": "404",
223
+ "heading": "Page Not Found",
224
+ "description": "The page you're looking for doesn't exist or has been moved."
225
+ },
226
+ "settings": {
227
+ "plex": {
228
+ "noServersFound": "No Plex servers found",
229
+ "noServersFoundHint": "Make sure you own at least one Plex server",
230
+ "noReachableConnections": "No reachable connections",
231
+ "local": "Local",
232
+ "remote": "Remote",
233
+ "secure": "Secure",
234
+ "mayNotConnect": "May not connect",
235
+ "recommended": "Recommended",
236
+ "customUrl": "Custom URL",
237
+ "connectionsReachable": "{{reachable}} of {{total}} connections reachable",
238
+ "connectionsAvailable": "{{count}} connections available",
239
+ "hideFiltered": "Hide filtered",
240
+ "showAll": "Show all",
241
+ "moreConnections": "+{{count}} more connections",
242
+ "connectingTo": "Connecting to {{name}}...",
243
+ "noAccountsLinked": "No Plex Accounts Linked",
244
+ "noAccountsLinkedHint": "Link a Plex account to add Plex servers to Tracearr.",
245
+ "linkPlexAccount": "Link Plex Account",
246
+ "linkAnotherAccount": "Link Another Plex Account",
247
+ "linking": "Linking...",
248
+ "accountsLinked_one": "{{count}} Plex account linked",
249
+ "accountsLinked_other": "{{count}} Plex accounts linked",
250
+ "noAccountsLinkedShort": "No Plex accounts linked",
251
+ "loginEnabled": "Login Enabled",
252
+ "serversConnected_one": "{{count}} server connected",
253
+ "serversConnected_other": "{{count}} servers connected",
254
+ "unlinkAccount": "Unlink this Plex account",
255
+ "deleteServersFirst": "Delete connected servers first to unlink this account",
256
+ "linkedAccounts": "Linked Plex Accounts",
257
+ "linkedAccountsDesc": "Manage the Plex accounts you can add servers from.",
258
+ "noAccountsYet": "No Plex accounts linked yet.",
259
+ "unlinkPlexAccount": "Unlink Plex Account",
260
+ "unlinkConfirm": "Are you sure you want to unlink this Plex account? You won't be able to add servers from this account until you link it again."
261
+ },
262
+ "notifications": {
263
+ "loadingSettings": "Loading notification settings...",
264
+ "addAgent": "Add Notification Agent",
265
+ "editAgent": "Edit Notification Agent",
266
+ "addAgentDesc": "Choose a notification service and configure it.",
267
+ "editAgentDesc": "Update the notification agent configuration.",
268
+ "noAgents": "No notification agents configured",
269
+ "noAgentsHint": "Add an agent to receive notifications about sharing violations and stream events.",
270
+ "agentType": "Agent Type",
271
+ "selectType": "Select type...",
272
+ "webhookUrl": "Webhook URL",
273
+ "webhookUrlPlaceholder": "https://...",
274
+ "triggerEvents": "Trigger Events",
275
+ "allEvents": "All Events",
276
+ "customEvents": "Custom Events",
277
+ "eventSelection": "Event Selection",
278
+ "testingAgent": "Testing...",
279
+ "testAgent": "Test Agent",
280
+ "removeAgentTitle": "Remove {{name}}?",
281
+ "removeAgentDesc": "This will remove {{name}} and disable all its notifications. You can add it back later.",
282
+ "webhookAgents": "Webhook Agents",
283
+ "oneWebhookLimit": "Only one webhook agent can be active at a time.",
284
+ "currentlyConfigured": "{{name}} is currently configured.",
285
+ "allAgentsConfigured": "All notification agents are already configured.",
286
+ "noConfigNeeded": "No configuration needed for this agent.",
287
+ "saveAgent": "Add Agent",
288
+ "updateAgent": "Update Agent"
289
+ },
290
+ "jobs": {
291
+ "runNow": "Run Now",
292
+ "running": "Running...",
293
+ "lastRun": "Last run",
294
+ "nextRun": "Next run",
295
+ "schedule": "Schedule",
296
+ "jobHistory": "Job History"
297
+ },
298
+ "mobile": {
299
+ "editDisplayName": "Edit Display Name",
300
+ "editDisplayNameDesc": "Change how this device appears in your device list",
301
+ "displayName": "Display Name",
302
+ "displayNamePlaceholder": "e.g., My iPhone",
303
+ "updating": "Updating..."
304
+ }
305
+ },
306
+ "maintenance": {
307
+ "startingTitle": "Tracearr is starting up...",
308
+ "interruptionTitle": "Service interruption",
309
+ "startingDescription": "The server is waiting for backend services to become available. This page will automatically refresh when everything is ready.",
310
+ "interruptionDescription": "One or more backend services have become unavailable. This page will automatically refresh when connectivity is restored.",
311
+ "restoreTitle": "Restoring from backup...",
312
+ "restoreFailed": "Restore failed",
313
+ "restorePhase": {
314
+ "validating": "Validating backup",
315
+ "creating_restore_point": "Creating restore point",
316
+ "shutting_down": "Shutting down services",
317
+ "restoring_database": "Restoring database",
318
+ "running_migrations": "Running migrations",
319
+ "rebuilding_aggregates": "Rebuilding aggregates",
320
+ "restarting": "Restarting services",
321
+ "complete": "Restore complete"
322
+ }
323
+ }
324
+ }