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

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 (376) hide show
  1. package/dist/config.d.ts +3351 -1105
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.mobile.d.ts +3351 -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 +298 -266
  8. package/dist/locales/af-ZA/mobile.json +138 -138
  9. package/dist/locales/af-ZA/nav.json +30 -26
  10. package/dist/locales/af-ZA/notifications.json +225 -241
  11. package/dist/locales/af-ZA/pages.json +1975 -901
  12. package/dist/locales/af-ZA/settings.json +462 -433
  13. package/dist/locales/ar-SA/common.json +82 -50
  14. package/dist/locales/ar-SA/mobile.json +96 -96
  15. package/dist/locales/ar-SA/nav.json +23 -19
  16. package/dist/locales/ar-SA/notifications.json +224 -240
  17. package/dist/locales/ar-SA/pages.json +1956 -882
  18. package/dist/locales/ar-SA/settings.json +102 -73
  19. package/dist/locales/ca-ES/common.json +79 -47
  20. package/dist/locales/ca-ES/mobile.json +125 -125
  21. package/dist/locales/ca-ES/nav.json +23 -19
  22. package/dist/locales/ca-ES/notifications.json +225 -241
  23. package/dist/locales/ca-ES/pages.json +1971 -897
  24. package/dist/locales/ca-ES/settings.json +406 -377
  25. package/dist/locales/cs-CZ/common.json +68 -36
  26. package/dist/locales/cs-CZ/mobile.json +99 -99
  27. package/dist/locales/cs-CZ/nav.json +23 -19
  28. package/dist/locales/cs-CZ/notifications.json +223 -239
  29. package/dist/locales/cs-CZ/pages.json +1949 -875
  30. package/dist/locales/cs-CZ/settings.json +102 -73
  31. package/dist/locales/da-DK/common.json +76 -44
  32. package/dist/locales/da-DK/mobile.json +99 -99
  33. package/dist/locales/da-DK/nav.json +24 -20
  34. package/dist/locales/da-DK/notifications.json +223 -239
  35. package/dist/locales/da-DK/pages.json +1956 -882
  36. package/dist/locales/da-DK/settings.json +113 -84
  37. package/dist/locales/de-DE/common.json +73 -41
  38. package/dist/locales/de-DE/mobile.json +102 -102
  39. package/dist/locales/de-DE/nav.json +24 -20
  40. package/dist/locales/de-DE/notifications.json +223 -239
  41. package/dist/locales/de-DE/pages.json +1958 -884
  42. package/dist/locales/de-DE/settings.json +116 -87
  43. package/dist/locales/el-GR/common.json +87 -55
  44. package/dist/locales/el-GR/mobile.json +97 -97
  45. package/dist/locales/el-GR/nav.json +23 -19
  46. package/dist/locales/el-GR/notifications.json +223 -239
  47. package/dist/locales/el-GR/pages.json +1957 -883
  48. package/dist/locales/el-GR/settings.json +109 -80
  49. package/dist/locales/en/common.json +36 -4
  50. package/dist/locales/en/nav.json +6 -2
  51. package/dist/locales/en/notifications.json +13 -29
  52. package/dist/locales/en/pages.json +1189 -115
  53. package/dist/locales/en/settings.json +31 -2
  54. package/dist/locales/en-US/common.json +36 -4
  55. package/dist/locales/en-US/nav.json +6 -2
  56. package/dist/locales/en-US/notifications.json +217 -233
  57. package/dist/locales/en-US/pages.json +1933 -859
  58. package/dist/locales/en-US/settings.json +31 -2
  59. package/dist/locales/es-ES/common.json +62 -30
  60. package/dist/locales/es-ES/mobile.json +96 -96
  61. package/dist/locales/es-ES/nav.json +23 -19
  62. package/dist/locales/es-ES/notifications.json +223 -239
  63. package/dist/locales/es-ES/pages.json +1956 -882
  64. package/dist/locales/es-ES/settings.json +101 -72
  65. package/dist/locales/fi-FI/common.json +66 -34
  66. package/dist/locales/fi-FI/mobile.json +97 -97
  67. package/dist/locales/fi-FI/nav.json +24 -20
  68. package/dist/locales/fi-FI/notifications.json +223 -239
  69. package/dist/locales/fi-FI/pages.json +1956 -882
  70. package/dist/locales/fi-FI/settings.json +111 -82
  71. package/dist/locales/fr-FR/common.json +69 -37
  72. package/dist/locales/fr-FR/mobile.json +10 -10
  73. package/dist/locales/fr-FR/nav.json +24 -20
  74. package/dist/locales/fr-FR/notifications.json +223 -239
  75. package/dist/locales/fr-FR/pages.json +1950 -876
  76. package/dist/locales/fr-FR/settings.json +106 -77
  77. package/dist/locales/he-IL/common.json +298 -266
  78. package/dist/locales/he-IL/mobile.json +138 -138
  79. package/dist/locales/he-IL/nav.json +30 -26
  80. package/dist/locales/he-IL/notifications.json +225 -241
  81. package/dist/locales/he-IL/pages.json +1978 -904
  82. package/dist/locales/he-IL/settings.json +462 -433
  83. package/dist/locales/hu-HU/common.json +197 -165
  84. package/dist/locales/hu-HU/mobile.json +138 -138
  85. package/dist/locales/hu-HU/nav.json +30 -26
  86. package/dist/locales/hu-HU/notifications.json +225 -241
  87. package/dist/locales/hu-HU/pages.json +1978 -904
  88. package/dist/locales/hu-HU/settings.json +457 -428
  89. package/dist/locales/it-IT/common.json +83 -51
  90. package/dist/locales/it-IT/mobile.json +101 -101
  91. package/dist/locales/it-IT/nav.json +24 -20
  92. package/dist/locales/it-IT/notifications.json +224 -240
  93. package/dist/locales/it-IT/pages.json +1958 -884
  94. package/dist/locales/it-IT/settings.json +109 -80
  95. package/dist/locales/ja-JP/common.json +63 -31
  96. package/dist/locales/ja-JP/mobile.json +98 -98
  97. package/dist/locales/ja-JP/nav.json +23 -19
  98. package/dist/locales/ja-JP/notifications.json +223 -239
  99. package/dist/locales/ja-JP/pages.json +1956 -882
  100. package/dist/locales/ja-JP/settings.json +106 -77
  101. package/dist/locales/ko-KR/common.json +298 -266
  102. package/dist/locales/ko-KR/mobile.json +138 -138
  103. package/dist/locales/ko-KR/nav.json +30 -26
  104. package/dist/locales/ko-KR/notifications.json +225 -241
  105. package/dist/locales/ko-KR/pages.json +1978 -904
  106. package/dist/locales/ko-KR/settings.json +462 -433
  107. package/dist/locales/nl-NL/common.json +70 -38
  108. package/dist/locales/nl-NL/mobile.json +91 -91
  109. package/dist/locales/nl-NL/nav.json +24 -20
  110. package/dist/locales/nl-NL/notifications.json +223 -239
  111. package/dist/locales/nl-NL/pages.json +1949 -875
  112. package/dist/locales/nl-NL/settings.json +87 -58
  113. package/dist/locales/no-NO/common.json +62 -30
  114. package/dist/locales/no-NO/mobile.json +96 -96
  115. package/dist/locales/no-NO/nav.json +23 -19
  116. package/dist/locales/no-NO/notifications.json +223 -239
  117. package/dist/locales/no-NO/pages.json +1956 -882
  118. package/dist/locales/no-NO/settings.json +99 -70
  119. package/dist/locales/pl-PL/common.json +57 -25
  120. package/dist/locales/pl-PL/mobile.json +94 -94
  121. package/dist/locales/pl-PL/nav.json +23 -19
  122. package/dist/locales/pl-PL/notifications.json +223 -239
  123. package/dist/locales/pl-PL/pages.json +1956 -882
  124. package/dist/locales/pl-PL/settings.json +100 -71
  125. package/dist/locales/pt-BR/common.json +94 -62
  126. package/dist/locales/pt-BR/mobile.json +138 -138
  127. package/dist/locales/pt-BR/nav.json +24 -20
  128. package/dist/locales/pt-BR/notifications.json +223 -239
  129. package/dist/locales/pt-BR/pages.json +1945 -871
  130. package/dist/locales/pt-BR/settings.json +123 -94
  131. package/dist/locales/pt-PT/common.json +77 -45
  132. package/dist/locales/pt-PT/mobile.json +97 -97
  133. package/dist/locales/pt-PT/nav.json +24 -20
  134. package/dist/locales/pt-PT/notifications.json +223 -239
  135. package/dist/locales/pt-PT/pages.json +1956 -882
  136. package/dist/locales/pt-PT/settings.json +103 -74
  137. package/dist/locales/ro-RO/common.json +70 -38
  138. package/dist/locales/ro-RO/mobile.json +98 -98
  139. package/dist/locales/ro-RO/nav.json +24 -20
  140. package/dist/locales/ro-RO/notifications.json +223 -239
  141. package/dist/locales/ro-RO/pages.json +1956 -882
  142. package/dist/locales/ro-RO/settings.json +106 -77
  143. package/dist/locales/ru-RU/common.json +74 -42
  144. package/dist/locales/ru-RU/mobile.json +97 -97
  145. package/dist/locales/ru-RU/nav.json +23 -19
  146. package/dist/locales/ru-RU/notifications.json +223 -239
  147. package/dist/locales/ru-RU/pages.json +1957 -883
  148. package/dist/locales/ru-RU/settings.json +99 -70
  149. package/dist/locales/sr-SP/common.json +298 -266
  150. package/dist/locales/sr-SP/mobile.json +138 -138
  151. package/dist/locales/sr-SP/nav.json +30 -26
  152. package/dist/locales/sr-SP/notifications.json +225 -241
  153. package/dist/locales/sr-SP/pages.json +1978 -904
  154. package/dist/locales/sr-SP/settings.json +462 -433
  155. package/dist/locales/sv-SE/common.json +71 -39
  156. package/dist/locales/sv-SE/mobile.json +100 -100
  157. package/dist/locales/sv-SE/nav.json +24 -20
  158. package/dist/locales/sv-SE/notifications.json +223 -239
  159. package/dist/locales/sv-SE/pages.json +1956 -882
  160. package/dist/locales/sv-SE/settings.json +106 -77
  161. package/dist/locales/tr-TR/common.json +298 -266
  162. package/dist/locales/tr-TR/mobile.json +138 -138
  163. package/dist/locales/tr-TR/nav.json +30 -26
  164. package/dist/locales/tr-TR/notifications.json +225 -241
  165. package/dist/locales/tr-TR/pages.json +1978 -904
  166. package/dist/locales/tr-TR/settings.json +462 -433
  167. package/dist/locales/uk-UA/common.json +54 -22
  168. package/dist/locales/uk-UA/mobile.json +98 -98
  169. package/dist/locales/uk-UA/nav.json +23 -19
  170. package/dist/locales/uk-UA/notifications.json +223 -239
  171. package/dist/locales/uk-UA/pages.json +1957 -883
  172. package/dist/locales/uk-UA/settings.json +101 -72
  173. package/dist/locales/vi-VN/common.json +298 -266
  174. package/dist/locales/vi-VN/mobile.json +138 -138
  175. package/dist/locales/vi-VN/nav.json +30 -26
  176. package/dist/locales/vi-VN/notifications.json +225 -241
  177. package/dist/locales/vi-VN/pages.json +1978 -904
  178. package/dist/locales/vi-VN/settings.json +462 -433
  179. package/dist/locales/zh-CN/common.json +55 -23
  180. package/dist/locales/zh-CN/mobile.json +95 -95
  181. package/dist/locales/zh-CN/nav.json +23 -19
  182. package/dist/locales/zh-CN/notifications.json +223 -239
  183. package/dist/locales/zh-CN/pages.json +1956 -882
  184. package/dist/locales/zh-CN/settings.json +105 -76
  185. package/dist/locales/zh-TW/common.json +129 -97
  186. package/dist/locales/zh-TW/mobile.json +137 -137
  187. package/dist/locales/zh-TW/nav.json +30 -26
  188. package/dist/locales/zh-TW/notifications.json +225 -241
  189. package/dist/locales/zh-TW/pages.json +1978 -904
  190. package/dist/locales/zh-TW/settings.json +460 -431
  191. package/package.json +3 -2
  192. package/src/index.ts +2 -2
  193. package/src/locales/af-ZA/common.json +298 -266
  194. package/src/locales/af-ZA/mobile.json +138 -138
  195. package/src/locales/af-ZA/nav.json +30 -26
  196. package/src/locales/af-ZA/notifications.json +225 -241
  197. package/src/locales/af-ZA/pages.json +1975 -901
  198. package/src/locales/af-ZA/settings.json +462 -433
  199. package/src/locales/ar-SA/common.json +82 -50
  200. package/src/locales/ar-SA/mobile.json +96 -96
  201. package/src/locales/ar-SA/nav.json +23 -19
  202. package/src/locales/ar-SA/notifications.json +224 -240
  203. package/src/locales/ar-SA/pages.json +1956 -882
  204. package/src/locales/ar-SA/settings.json +102 -73
  205. package/src/locales/ca-ES/common.json +79 -47
  206. package/src/locales/ca-ES/mobile.json +125 -125
  207. package/src/locales/ca-ES/nav.json +23 -19
  208. package/src/locales/ca-ES/notifications.json +225 -241
  209. package/src/locales/ca-ES/pages.json +1971 -897
  210. package/src/locales/ca-ES/settings.json +406 -377
  211. package/src/locales/cs-CZ/common.json +68 -36
  212. package/src/locales/cs-CZ/mobile.json +99 -99
  213. package/src/locales/cs-CZ/nav.json +23 -19
  214. package/src/locales/cs-CZ/notifications.json +223 -239
  215. package/src/locales/cs-CZ/pages.json +1949 -875
  216. package/src/locales/cs-CZ/settings.json +102 -73
  217. package/src/locales/da-DK/common.json +76 -44
  218. package/src/locales/da-DK/mobile.json +99 -99
  219. package/src/locales/da-DK/nav.json +24 -20
  220. package/src/locales/da-DK/notifications.json +223 -239
  221. package/src/locales/da-DK/pages.json +1956 -882
  222. package/src/locales/da-DK/settings.json +113 -84
  223. package/src/locales/de-DE/common.json +73 -41
  224. package/src/locales/de-DE/mobile.json +102 -102
  225. package/src/locales/de-DE/nav.json +24 -20
  226. package/src/locales/de-DE/notifications.json +223 -239
  227. package/src/locales/de-DE/pages.json +1958 -884
  228. package/src/locales/de-DE/settings.json +116 -87
  229. package/src/locales/el-GR/common.json +87 -55
  230. package/src/locales/el-GR/mobile.json +97 -97
  231. package/src/locales/el-GR/nav.json +23 -19
  232. package/src/locales/el-GR/notifications.json +223 -239
  233. package/src/locales/el-GR/pages.json +1957 -883
  234. package/src/locales/el-GR/settings.json +109 -80
  235. package/src/locales/en/common.json +36 -4
  236. package/src/locales/en/nav.json +6 -2
  237. package/src/locales/en/notifications.json +13 -29
  238. package/src/locales/en/pages.json +1189 -115
  239. package/src/locales/en/settings.json +31 -2
  240. package/src/locales/en-US/common.json +36 -4
  241. package/src/locales/en-US/nav.json +6 -2
  242. package/src/locales/en-US/notifications.json +217 -233
  243. package/src/locales/en-US/pages.json +1933 -859
  244. package/src/locales/en-US/settings.json +31 -2
  245. package/src/locales/es-ES/common.json +62 -30
  246. package/src/locales/es-ES/mobile.json +96 -96
  247. package/src/locales/es-ES/nav.json +23 -19
  248. package/src/locales/es-ES/notifications.json +223 -239
  249. package/src/locales/es-ES/pages.json +1956 -882
  250. package/src/locales/es-ES/settings.json +101 -72
  251. package/src/locales/fi-FI/common.json +66 -34
  252. package/src/locales/fi-FI/mobile.json +97 -97
  253. package/src/locales/fi-FI/nav.json +24 -20
  254. package/src/locales/fi-FI/notifications.json +223 -239
  255. package/src/locales/fi-FI/pages.json +1956 -882
  256. package/src/locales/fi-FI/settings.json +111 -82
  257. package/src/locales/fr-FR/common.json +69 -37
  258. package/src/locales/fr-FR/mobile.json +10 -10
  259. package/src/locales/fr-FR/nav.json +24 -20
  260. package/src/locales/fr-FR/notifications.json +223 -239
  261. package/src/locales/fr-FR/pages.json +1950 -876
  262. package/src/locales/fr-FR/settings.json +106 -77
  263. package/src/locales/he-IL/common.json +298 -266
  264. package/src/locales/he-IL/mobile.json +138 -138
  265. package/src/locales/he-IL/nav.json +30 -26
  266. package/src/locales/he-IL/notifications.json +225 -241
  267. package/src/locales/he-IL/pages.json +1978 -904
  268. package/src/locales/he-IL/settings.json +462 -433
  269. package/src/locales/hu-HU/common.json +197 -165
  270. package/src/locales/hu-HU/mobile.json +138 -138
  271. package/src/locales/hu-HU/nav.json +30 -26
  272. package/src/locales/hu-HU/notifications.json +225 -241
  273. package/src/locales/hu-HU/pages.json +1978 -904
  274. package/src/locales/hu-HU/settings.json +457 -428
  275. package/src/locales/it-IT/common.json +83 -51
  276. package/src/locales/it-IT/mobile.json +101 -101
  277. package/src/locales/it-IT/nav.json +24 -20
  278. package/src/locales/it-IT/notifications.json +224 -240
  279. package/src/locales/it-IT/pages.json +1958 -884
  280. package/src/locales/it-IT/settings.json +109 -80
  281. package/src/locales/ja-JP/common.json +63 -31
  282. package/src/locales/ja-JP/mobile.json +98 -98
  283. package/src/locales/ja-JP/nav.json +23 -19
  284. package/src/locales/ja-JP/notifications.json +223 -239
  285. package/src/locales/ja-JP/pages.json +1956 -882
  286. package/src/locales/ja-JP/settings.json +106 -77
  287. package/src/locales/ko-KR/common.json +298 -266
  288. package/src/locales/ko-KR/mobile.json +138 -138
  289. package/src/locales/ko-KR/nav.json +30 -26
  290. package/src/locales/ko-KR/notifications.json +225 -241
  291. package/src/locales/ko-KR/pages.json +1978 -904
  292. package/src/locales/ko-KR/settings.json +462 -433
  293. package/src/locales/nl-NL/common.json +70 -38
  294. package/src/locales/nl-NL/mobile.json +91 -91
  295. package/src/locales/nl-NL/nav.json +24 -20
  296. package/src/locales/nl-NL/notifications.json +223 -239
  297. package/src/locales/nl-NL/pages.json +1949 -875
  298. package/src/locales/nl-NL/settings.json +87 -58
  299. package/src/locales/no-NO/common.json +62 -30
  300. package/src/locales/no-NO/mobile.json +96 -96
  301. package/src/locales/no-NO/nav.json +23 -19
  302. package/src/locales/no-NO/notifications.json +223 -239
  303. package/src/locales/no-NO/pages.json +1956 -882
  304. package/src/locales/no-NO/settings.json +99 -70
  305. package/src/locales/pl-PL/common.json +57 -25
  306. package/src/locales/pl-PL/mobile.json +94 -94
  307. package/src/locales/pl-PL/nav.json +23 -19
  308. package/src/locales/pl-PL/notifications.json +223 -239
  309. package/src/locales/pl-PL/pages.json +1956 -882
  310. package/src/locales/pl-PL/settings.json +100 -71
  311. package/src/locales/pt-BR/common.json +94 -62
  312. package/src/locales/pt-BR/mobile.json +138 -138
  313. package/src/locales/pt-BR/nav.json +24 -20
  314. package/src/locales/pt-BR/notifications.json +223 -239
  315. package/src/locales/pt-BR/pages.json +1945 -871
  316. package/src/locales/pt-BR/settings.json +123 -94
  317. package/src/locales/pt-PT/common.json +77 -45
  318. package/src/locales/pt-PT/mobile.json +97 -97
  319. package/src/locales/pt-PT/nav.json +24 -20
  320. package/src/locales/pt-PT/notifications.json +223 -239
  321. package/src/locales/pt-PT/pages.json +1956 -882
  322. package/src/locales/pt-PT/settings.json +103 -74
  323. package/src/locales/ro-RO/common.json +70 -38
  324. package/src/locales/ro-RO/mobile.json +98 -98
  325. package/src/locales/ro-RO/nav.json +24 -20
  326. package/src/locales/ro-RO/notifications.json +223 -239
  327. package/src/locales/ro-RO/pages.json +1956 -882
  328. package/src/locales/ro-RO/settings.json +106 -77
  329. package/src/locales/ru-RU/common.json +74 -42
  330. package/src/locales/ru-RU/mobile.json +97 -97
  331. package/src/locales/ru-RU/nav.json +23 -19
  332. package/src/locales/ru-RU/notifications.json +223 -239
  333. package/src/locales/ru-RU/pages.json +1957 -883
  334. package/src/locales/ru-RU/settings.json +99 -70
  335. package/src/locales/sr-SP/common.json +298 -266
  336. package/src/locales/sr-SP/mobile.json +138 -138
  337. package/src/locales/sr-SP/nav.json +30 -26
  338. package/src/locales/sr-SP/notifications.json +225 -241
  339. package/src/locales/sr-SP/pages.json +1978 -904
  340. package/src/locales/sr-SP/settings.json +462 -433
  341. package/src/locales/sv-SE/common.json +71 -39
  342. package/src/locales/sv-SE/mobile.json +100 -100
  343. package/src/locales/sv-SE/nav.json +24 -20
  344. package/src/locales/sv-SE/notifications.json +223 -239
  345. package/src/locales/sv-SE/pages.json +1956 -882
  346. package/src/locales/sv-SE/settings.json +106 -77
  347. package/src/locales/tr-TR/common.json +298 -266
  348. package/src/locales/tr-TR/mobile.json +138 -138
  349. package/src/locales/tr-TR/nav.json +30 -26
  350. package/src/locales/tr-TR/notifications.json +225 -241
  351. package/src/locales/tr-TR/pages.json +1978 -904
  352. package/src/locales/tr-TR/settings.json +462 -433
  353. package/src/locales/uk-UA/common.json +54 -22
  354. package/src/locales/uk-UA/mobile.json +98 -98
  355. package/src/locales/uk-UA/nav.json +23 -19
  356. package/src/locales/uk-UA/notifications.json +223 -239
  357. package/src/locales/uk-UA/pages.json +1957 -883
  358. package/src/locales/uk-UA/settings.json +101 -72
  359. package/src/locales/vi-VN/common.json +298 -266
  360. package/src/locales/vi-VN/mobile.json +138 -138
  361. package/src/locales/vi-VN/nav.json +30 -26
  362. package/src/locales/vi-VN/notifications.json +225 -241
  363. package/src/locales/vi-VN/pages.json +1978 -904
  364. package/src/locales/vi-VN/settings.json +462 -433
  365. package/src/locales/zh-CN/common.json +55 -23
  366. package/src/locales/zh-CN/mobile.json +95 -95
  367. package/src/locales/zh-CN/nav.json +23 -19
  368. package/src/locales/zh-CN/notifications.json +223 -239
  369. package/src/locales/zh-CN/pages.json +1956 -882
  370. package/src/locales/zh-CN/settings.json +105 -76
  371. package/src/locales/zh-TW/common.json +129 -97
  372. package/src/locales/zh-TW/mobile.json +137 -137
  373. package/src/locales/zh-TW/nav.json +30 -26
  374. package/src/locales/zh-TW/notifications.json +225 -241
  375. package/src/locales/zh-TW/pages.json +1978 -904
  376. package/src/locales/zh-TW/settings.json +460 -431
@@ -1,475 +1,504 @@
1
1
  {
2
- "title": "Settings",
2
+ "title": "",
3
3
  "tabs": {
4
- "general": "General",
5
- "servers": "Servers",
6
- "notifications": "Notifications",
7
- "mobile": "Mobile App",
8
- "tailscale": "Tailscale",
9
- "import": "Import",
10
- "advanced": "Advanced",
11
- "jobs": "Jobs",
12
- "accessControl": "Access Control",
13
- "backup": "Backup"
4
+ "general": "",
5
+ "servers": "",
6
+ "notifications": "",
7
+ "mobile": "",
8
+ "tailscale": "",
9
+ "import": "",
10
+ "advanced": "",
11
+ "jobs": "",
12
+ "accessControl": "",
13
+ "backup": ""
14
14
  },
15
15
  "general": {
16
- "title": "General Settings",
17
- "unitSystem": "Unit System",
18
- "metric": "Metric (km, km/h)",
19
- "imperial": "Imperial (mi, mph)",
20
- "timezone": "Timezone",
21
- "primaryAuth": "Primary Authentication Method",
22
- "localAccount": "Local Account",
23
- "plexAccount": "Plex Account",
24
- "language": "Language",
25
- "languageDescription": "Choose your preferred display language.",
26
- "helpTranslate": "Help translate Tracearr",
27
- "timeFormat": "Time Format",
28
- "timeFormatDescription": "Choose how times are displayed.",
29
- "timeFormat12h": "12-hour (1:30 PM)",
30
- "timeFormat24h": "24-hour (13:30)",
31
- "appearance": "Appearance",
32
- "appearanceDesc": "Customize the look and feel of Tracearr",
33
- "theme": "Theme",
34
- "accentColor": "Accent Color",
35
- "default": "(default)",
36
- "cyanDefault": "* Cyan is the default accent color",
37
- "themeLight": "Light",
38
- "themeDark": "Dark",
39
- "themeSystem": "System",
40
- "application": "Application",
41
- "applicationDesc": "Configure basic application settings",
42
- "unitSystemDesc": "Choose how distances and speeds are displayed",
43
- "sessionSync": "Session Sync",
44
- "sessionSyncDesc": "Enable session tracking for your media servers",
45
- "syncInterval": "Sync Interval",
46
- "syncIntervalDesc": "Polling frequency for Jellyfin/Emby (5-300 seconds)",
47
- "syncIntervalSuffix": "sec",
48
- "plexSseNote": "Plex uses Server-Sent Events (SSE) for near-instant updates — no polling needed.",
49
- "jellyfinPollingNote": "Jellyfin/Emby are polled at the interval above.",
50
- "enhancedGeoIP": "Enhanced GeoIP Lookup",
51
- "enhancedGeoIPDesc": "Use Plex's GeoIP service for more accurate location data. When enabled, IP addresses are sent to plex.tv for lookup. Local MaxMind database is used as fallback.",
52
- "externalAccess": "External Access",
53
- "externalAccessDesc": "Configure how external devices (like mobile apps) connect to your server",
54
- "externalUrl": "External URL",
55
- "externalUrlPlaceholder": "https://tracearr.example.com",
56
- "externalUrlDesc": "The URL that external devices should use to reach this server. Used for QR codes and mobile app pairing.",
57
- "detect": "Detect",
58
- "localhostWarning": "Localhost URLs won't work for external devices. Use your LAN IP or a domain name.",
59
- "iosHttpWarning": "iOS requires HTTPS for external connections. Set up a reverse proxy with SSL.",
60
- "apiKeyDesc": "Access the Tracearr API for third-party integrations like Homarr, Home Assistant, etc.",
61
- "apiDocs": "API Docs",
62
- "noApiKeyGenerated": "No API key generated",
63
- "copyToClipboard": "Copy to clipboard",
64
- "apiKeyReadAccess": "Your API key grants full read access to your Tracearr data.",
65
- "generateApiKeyPrompt": "Generate an API key to enable external integrations.",
66
- "regenerate": "Regenerate",
67
- "generateKey": "Generate Key",
68
- "regenerateApiKey": "Regenerate API Key?",
69
- "regenerateApiKeyDesc": "This will invalidate your current API key. Any integrations using the old key will stop working.",
70
- "publicApiSettings": "Public API",
71
- "publicApiSettingsDesc": "Configure watch-completion thresholds and request limits for the public API",
72
- "watchedThresholdMovie": "Movie Watched Threshold",
73
- "watchedThresholdMovieDesc": "Percentage of a movie that must be watched before it's marked complete",
74
- "watchedThresholdTv": "TV Episode Watched Threshold",
75
- "watchedThresholdTvDesc": "Percentage of an episode that must be watched before it's marked complete",
76
- "watchedThresholdMusic": "Track Watched Threshold",
77
- "watchedThresholdMusicDesc": "Percentage of a track that must be played before it's marked complete",
78
- "watchedThresholdSuffix": "%",
79
- "apiRateLimit": "API Rate Limit",
80
- "apiRateLimitDesc": "Maximum public API requests per minute per key. Restart required to apply.",
81
- "apiRateLimitSuffix": "/min"
16
+ "title": "",
17
+ "unitSystem": "",
18
+ "metric": "",
19
+ "imperial": "",
20
+ "timezone": "",
21
+ "primaryAuth": "",
22
+ "localAccount": "",
23
+ "plexAccount": "",
24
+ "language": "",
25
+ "languageDescription": "",
26
+ "helpTranslate": "",
27
+ "timeFormat": "",
28
+ "timeFormatDescription": "",
29
+ "timeFormat12h": "",
30
+ "timeFormat24h": "",
31
+ "appearance": "",
32
+ "appearanceDesc": "",
33
+ "theme": "",
34
+ "accentColor": "",
35
+ "default": "",
36
+ "cyanDefault": "",
37
+ "themeLight": "",
38
+ "themeDark": "",
39
+ "themeSystem": "",
40
+ "application": "",
41
+ "applicationDesc": "",
42
+ "unitSystemDesc": "",
43
+ "sessionSync": "",
44
+ "sessionSyncDesc": "",
45
+ "syncInterval": "",
46
+ "syncIntervalDesc": "",
47
+ "syncIntervalSuffix": "",
48
+ "plexSseNote": "",
49
+ "jellyfinPollingNote": "",
50
+ "enhancedGeoIP": "",
51
+ "enhancedGeoIPDesc": "",
52
+ "externalAccess": "",
53
+ "externalAccessDesc": "",
54
+ "externalUrl": "",
55
+ "externalUrlPlaceholder": "",
56
+ "externalUrlDesc": "",
57
+ "detect": "",
58
+ "localhostWarning": "",
59
+ "iosHttpWarning": "",
60
+ "apiKeyDesc": "",
61
+ "apiDocs": "",
62
+ "noApiKeyGenerated": "",
63
+ "copyToClipboard": "",
64
+ "apiKeyReadAccess": "",
65
+ "generateApiKeyPrompt": "",
66
+ "regenerate": "",
67
+ "generateKey": "",
68
+ "regenerateApiKey": "",
69
+ "regenerateApiKeyDesc": "",
70
+ "publicApiSettings": "",
71
+ "publicApiSettingsDesc": "",
72
+ "watchedThresholdMovie": "",
73
+ "watchedThresholdMovieDesc": "",
74
+ "watchedThresholdTv": "",
75
+ "watchedThresholdTvDesc": "",
76
+ "watchedThresholdMusic": "",
77
+ "watchedThresholdMusicDesc": "",
78
+ "watchedThresholdSuffix": "",
79
+ "apiRateLimit": "",
80
+ "apiRateLimitDesc": "",
81
+ "apiRateLimitSuffix": "",
82
+ "updateChecks": {
83
+ "title": "",
84
+ "description": "",
85
+ "plugin": "",
86
+ "pluginDesc": "",
87
+ "server": "",
88
+ "serverDesc": ""
89
+ },
90
+ "imageCache": {
91
+ "title": "",
92
+ "description": "",
93
+ "size": "",
94
+ "files": "",
95
+ "need": "",
96
+ "needHint": "",
97
+ "free": "",
98
+ "freeOf": "",
99
+ "floor": "",
100
+ "ceiling": "",
101
+ "lastSweep": "",
102
+ "never": "",
103
+ "diskLimited": "",
104
+ "loadError": ""
105
+ }
82
106
  },
83
107
  "servers": {
84
- "title": "Connected Servers",
85
- "addServer": "Add Server",
86
- "serverName": "Server Name",
87
- "serverUrl": "Server URL",
88
- "syncInterval": "Sync Interval",
89
- "testConnection": "Test Connection",
90
- "connectionSuccess": "Connection successful",
91
- "connectionFailed": "Connection failed",
92
- "noServersConnected": "No servers connected",
93
- "noServersConnectedHint": "Click \"Add Server\" to connect a Jellyfin or Emby server",
94
- "serverType": "Server Type",
95
- "loadingAccounts": "Loading linked Plex accounts...",
96
- "noPlexAccountsLinked": "No Plex Accounts Linked",
97
- "noPlexAccountsLinkedHint": "Link a Plex account above, then come back to add a server.",
98
- "selectPlexAccount": "Select Plex Account",
99
- "chooseAccount": "Choose an account...",
100
- "selectAccountHelp": "Select which Plex account to discover servers from.",
101
- "allServersConnected": "All Servers Connected",
102
- "allServersConnectedDesc": "All servers from this account are already connected.",
103
- "serverUrlPlaceholder": "http://192.168.1.100:8096",
104
- "serverUrlHelp": "Direct URL to your Jellyfin or Emby server. Use IP:port for best reliability.",
105
- "serverNamePlaceholder": "My Media Server",
106
- "apiKeyPlaceholder": "Enter your API key",
107
- "apiKeyHelp": "Found in your media server's dashboard under API Keys or Advanced settings.",
108
- "connecting": "Connecting...",
109
- "connectServer": "Connect Server",
110
- "removeServer": "Remove Server",
111
- "removeServerConfirm": "Are you sure you want to remove this server? All associated session data will be retained, but you won't be able to monitor new sessions from this server.",
112
- "editServer": "Edit Server",
113
- "editServerDesc": "Update the server name or connection URL.",
114
- "serverColor": "Server Color",
115
- "serverColorDesc": "Used for visual attribution in multi-server view",
116
- "updating": "Updating...",
117
- "allFieldsRequired": "All fields are required",
118
- "addServerDialogDescPlex": "Select a Plex server from your linked account.",
119
- "addServerDialogDescOther": "Connect a Jellyfin or Emby server.",
120
- "description": "Manage your connected Plex, Jellyfin, and Emby servers",
121
- "discoveringServers": "Discovering available Plex servers...",
122
- "discoveringConnections": "Discovering connections...",
123
- "plexAccount": "Plex Account",
124
- "serverUrlHelpJellyfin": "The URL where your Jellyfin server is accessible",
125
- "serverUrlHelpEmby": "The URL where your Emby server is accessible",
126
- "apiKeyHelpJellyfin": "Find this in Jellyfin Dashboard → API Keys",
127
- "apiKeyHelpEmby": "Find this in Emby Server → API Keys",
128
- "plexServerPlaceholder": "My Plex Server",
129
- "plexServerUrlPlaceholder": "http://192.168.1.100:32400",
130
- "updateHint": "Or click Update below to save only the name change.",
131
- "added": "Added {{date}}",
132
- "realtimeActive": "Real-time updates active",
133
- "pollingMode": "Polling",
134
- "setupRealtime": "Set up real-time updates",
135
- "realtimeError": "Real-time error",
136
- "checkingConnection": "Checking connection…",
137
- "pluginVersion": "plugin v{{version}}",
138
- "pluginUpdateAvailable": "Plugin update available",
108
+ "title": "",
109
+ "addServer": "",
110
+ "serverName": "",
111
+ "serverUrl": "",
112
+ "syncInterval": "",
113
+ "testConnection": "",
114
+ "connectionSuccess": "",
115
+ "connectionFailed": "",
116
+ "noServersConnected": "",
117
+ "noServersConnectedHint": "",
118
+ "serverType": "",
119
+ "loadingAccounts": "",
120
+ "noPlexAccountsLinked": "",
121
+ "noPlexAccountsLinkedHint": "",
122
+ "selectPlexAccount": "",
123
+ "chooseAccount": "",
124
+ "selectAccountHelp": "",
125
+ "allServersConnected": "",
126
+ "allServersConnectedDesc": "",
127
+ "serverUrlPlaceholder": "",
128
+ "serverUrlHelp": "",
129
+ "serverNamePlaceholder": "",
130
+ "apiKeyPlaceholder": "",
131
+ "apiKeyHelp": "",
132
+ "connecting": "",
133
+ "connectServer": "",
134
+ "removeServer": "",
135
+ "removeServerConfirm": "",
136
+ "editServer": "",
137
+ "editServerDesc": "",
138
+ "serverColor": "",
139
+ "serverColorDesc": "",
140
+ "updating": "",
141
+ "allFieldsRequired": "",
142
+ "addServerDialogDescPlex": "",
143
+ "addServerDialogDescOther": "",
144
+ "description": "",
145
+ "discoveringServers": "",
146
+ "discoveringConnections": "",
147
+ "plexAccount": "",
148
+ "serverUrlHelpJellyfin": "",
149
+ "serverUrlHelpEmby": "",
150
+ "apiKeyHelpJellyfin": "",
151
+ "apiKeyHelpEmby": "",
152
+ "plexServerPlaceholder": "",
153
+ "plexServerUrlPlaceholder": "",
154
+ "updateHint": "",
155
+ "added": "",
156
+ "realtimeActive": "",
157
+ "pollingMode": "",
158
+ "setupRealtime": "",
159
+ "realtimeError": "",
160
+ "checkingConnection": "",
161
+ "pluginVersion": "",
162
+ "pluginUpdateAvailable": "",
139
163
  "realtimeDialog": {
140
- "title": "Enable real-time updates",
141
- "updateTitle": "Update the Tracearr SSE plugin",
142
- "jellyfinDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
143
- "embyDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
144
- "jellyfinUpdateDescription": "A newer plugin release is available. Open your Jellyfin dashboard, go to Plugins, Catalog, and update Tracearr SSE, then restart Jellyfin.",
145
- "embyUpdateDescription": "A newer plugin release is available. Download the latest release zip, replace the plugin DLL in your Emby plugins folder, and restart Emby.",
146
- "repositoryUrl": "Repository URL",
147
- "copyUrl": "Copy URL",
148
- "jellyfinRepoUrl": "https://raw.githubusercontent.com/Tracearr/Media-Server-SSE/main/manifest.json",
149
- "embyReleasesUrl": "https://github.com/Tracearr/Media-Server-SSE/releases",
150
- "openReleases": "Open releases page",
151
- "autoDetectNote": "Restart Jellyfin or Emby after installing the plugin; the restart is required. Tracearr itself needs no restart and picks the plugin up automatically.",
152
- "close": "Close",
153
- "issueBlocked": "The server reports the plugin as installed and active, but Tracearr gets a 404 from its endpoint. A reverse proxy blocking the path is the usual cause.",
154
- "issueRestartRequired": "The plugin is installed, but the media server needs a restart before it activates.",
155
- "issueMalfunctioned": "The server reports the plugin failed to load. Updating the plugin or the media server usually clears this."
164
+ "title": "",
165
+ "updateTitle": "",
166
+ "jellyfinDescription": "",
167
+ "embyDescription": "",
168
+ "jellyfinUpdateDescription": "",
169
+ "embyUpdateDescription": "",
170
+ "repositoryUrl": "",
171
+ "copyUrl": "",
172
+ "jellyfinRepoUrl": "",
173
+ "embyReleasesUrl": "",
174
+ "openReleases": "",
175
+ "autoDetectNote": "",
176
+ "close": "",
177
+ "issueBlocked": "",
178
+ "issueRestartRequired": "",
179
+ "issueMalfunctioned": ""
156
180
  },
157
181
  "posterSource": {
158
- "title": "Poster Preferences",
159
- "titleDesc": "Choose which server's poster is shown when a title exists on more than one server",
160
- "label": "Preferred Poster Source",
161
- "description": "When a title is on more than one server, use this server's poster. If it doesn't have one, we'll fall back to the most recently added copy.",
162
- "automatic": "Automatic (most recent)",
163
- "emptyHint": "Add a server to choose a preferred poster source."
182
+ "title": "",
183
+ "titleDesc": "",
184
+ "label": "",
185
+ "description": "",
186
+ "automatic": "",
187
+ "emptyHint": ""
188
+ },
189
+ "version": {
190
+ "installed": "",
191
+ "upToDate": "",
192
+ "updateAvailable": ""
164
193
  }
165
194
  },
166
195
  "mobile": {
167
- "title": "Mobile App",
168
- "pairDevice": "Pair Device",
169
- "connectedDevices": "Connected Devices",
170
- "generateToken": "Generate Pair Token",
171
- "scanQrCode": "Scan QR Code",
172
- "tokenExpires": "Token expires in {{time}}",
173
- "noDevices": "No devices connected",
174
- "revokeAll": "Revoke All Sessions",
175
- "getTheApp": "Get the App",
176
- "getTheAppDesc": "Download the Tracearr mobile app for iOS or Android",
177
- "getOnGooglePlay": "Get it on Google Play",
178
- "downloadOnAppStore": "Download on the App Store",
179
- "pairYourDevice": "Pair Your Device",
180
- "pairYourDeviceDesc": "Scan the QR code with the Tracearr app to connect this server.",
181
- "externalUrlRequired": "An external URL must be configured in General Settings for mobile pairing to work.",
182
- "mobileAccessDisabled": "Mobile Access Disabled",
183
- "mobileAccessDisabledDesc": "Enable mobile access to allow the Tracearr mobile app to connect to your server.",
184
- "enableMobileAccess": "Enable Mobile Access",
185
- "enabling": "Enabling...",
186
- "devicesConnected": "{{current}} of {{max}} devices connected",
187
- "pendingTokens": "{{count}} pending pair tokens",
188
- "addDevice": "Add Device",
189
- "disableMobileAccess": "Disable Mobile Access",
190
- "connectedDevicesDesc": "{{count}} devices paired to your server",
191
- "revokeAllSessions": "Revoke All",
192
- "pairNewDevice": "Pair New Device",
193
- "pairNewDeviceDesc": "Scan the QR code with the Tracearr mobile app, or enter the token manually.",
194
- "expiresIn": "Expires in {{time}}",
195
- "oneTimePairToken": "One-Time Pair Token",
196
- "copyToken": "Copy token",
197
- "tokenExpiryNote": "This token expires in 5 minutes and can only be used once.",
198
- "done": "Done",
199
- "disableMobileAccessConfirm": "This will disconnect all mobile devices and revoke all sessions. You can re-enable mobile access later.",
200
- "disable": "Disable",
201
- "revokeAllConfirm": "This will disconnect all mobile devices. They will need to pair again to reconnect.",
202
- "renameDevice": "Rename Device",
203
- "renameDeviceDesc": "Enter a name to identify this device in the list.",
204
- "deviceName": "Device name",
205
- "deviceNamePlaceholder": "e.g. iPhone 15",
206
- "removeDevice": "Remove Device",
207
- "failedToGenerateToken": "Failed to Generate Token",
208
- "removeDeviceConfirm": "Are you sure you want to remove {{deviceName}}? This device will need to pair again to reconnect.",
209
- "externalUrlBanner": "Using a reverse proxy or accessing remotely? Set your",
210
- "externalUrlBannerLink": "External URL",
211
- "externalUrlBannerSuffix": "so the mobile app can connect to your server."
196
+ "title": "",
197
+ "pairDevice": "",
198
+ "connectedDevices": "",
199
+ "generateToken": "",
200
+ "scanQrCode": "",
201
+ "tokenExpires": "",
202
+ "noDevices": "",
203
+ "revokeAll": "",
204
+ "getTheApp": "",
205
+ "getTheAppDesc": "",
206
+ "getOnGooglePlay": "",
207
+ "downloadOnAppStore": "",
208
+ "pairYourDevice": "",
209
+ "pairYourDeviceDesc": "",
210
+ "externalUrlRequired": "",
211
+ "mobileAccessDisabled": "",
212
+ "mobileAccessDisabledDesc": "",
213
+ "enableMobileAccess": "",
214
+ "enabling": "",
215
+ "devicesConnected": "",
216
+ "pendingTokens": "",
217
+ "addDevice": "",
218
+ "disableMobileAccess": "",
219
+ "connectedDevicesDesc": "",
220
+ "revokeAllSessions": "",
221
+ "pairNewDevice": "",
222
+ "pairNewDeviceDesc": "",
223
+ "expiresIn": "",
224
+ "oneTimePairToken": "",
225
+ "copyToken": "",
226
+ "tokenExpiryNote": "",
227
+ "done": "",
228
+ "disableMobileAccessConfirm": "",
229
+ "disable": "",
230
+ "revokeAllConfirm": "",
231
+ "renameDevice": "",
232
+ "renameDeviceDesc": "",
233
+ "deviceName": "",
234
+ "deviceNamePlaceholder": "",
235
+ "removeDevice": "",
236
+ "failedToGenerateToken": "",
237
+ "removeDeviceConfirm": "",
238
+ "externalUrlBanner": "",
239
+ "externalUrlBannerLink": "",
240
+ "externalUrlBannerSuffix": ""
212
241
  },
213
242
  "tailscale": {
214
- "title": "Tailscale VPN",
215
- "description": "Access Tracearr securely on your Tailscale network without port forwarding.",
216
- "notAvailable": "Tailscale binary not found. This feature is only available when running the official Docker image.",
217
- "disabledDescription": "Enable Tailscale to put Tracearr on your private tailnet. No port forwarding or reverse proxy required.",
218
- "hostnameLabel": "Device Hostname",
219
- "hostnameHint": "Optional custom name for this device on your tailnet. Letters, numbers, and hyphens only.",
220
- "enable": "Enable Tailscale",
221
- "disable": "Disable Tailscale",
222
- "starting": "Starting Tailscale...",
223
- "stopping": "Stopping Tailscale...",
224
- "awaitingAuth": "Waiting for authorization...",
225
- "authorize": "Authorize in Tailscale",
226
- "connected": "Tailscale is connected. Your Tracearr instance is available on the tailnet.",
227
- "hostname": "Hostname",
228
- "dnsName": "DNS Name",
229
- "tailnetUrl": "URL",
230
- "showLogs": "Show Logs",
231
- "hideLogs": "Hide Logs",
232
- "noLogs": "No log output available.",
233
- "exitNodeNone": "None",
234
- "exitNodeOffline": "(offline)",
235
- "unknownError": "An unknown error occurred.",
236
- "disableConfirmTitle": "Disable Tailscale?",
237
- "disableConfirmDescription": "This will disconnect Tracearr from your tailnet. You can re-enable without re-authorizing.",
238
- "resetConfirmTitle": "Reset Tailscale?",
239
- "resetConfirmDescription": "This will disconnect Tracearr from your tailnet and remove the device identity. You will need to re-authorize if you enable it again.",
243
+ "title": "",
244
+ "description": "",
245
+ "notAvailable": "",
246
+ "disabledDescription": "",
247
+ "hostnameLabel": "",
248
+ "hostnameHint": "",
249
+ "enable": "",
250
+ "disable": "",
251
+ "starting": "",
252
+ "stopping": "",
253
+ "awaitingAuth": "",
254
+ "authorize": "",
255
+ "connected": "",
256
+ "hostname": "",
257
+ "dnsName": "",
258
+ "tailnetUrl": "",
259
+ "showLogs": "",
260
+ "hideLogs": "",
261
+ "noLogs": "",
262
+ "exitNodeNone": "",
263
+ "exitNodeOffline": "",
264
+ "unknownError": "",
265
+ "disableConfirmTitle": "",
266
+ "disableConfirmDescription": "",
267
+ "resetConfirmTitle": "",
268
+ "resetConfirmDescription": "",
240
269
  "toast": {
241
- "disabled": "Tailscale has been disabled.",
242
- "enableFailed": "Failed to enable Tailscale",
243
- "disableFailed": "Failed to disable Tailscale",
244
- "reset": "Tailscale has been reset.",
245
- "resetFailed": "Failed to reset Tailscale",
246
- "exitNodeSet": "Exit node updated.",
247
- "exitNodeFailed": "Failed to set exit node"
270
+ "disabled": "",
271
+ "enableFailed": "",
272
+ "disableFailed": "",
273
+ "reset": "",
274
+ "resetFailed": "",
275
+ "exitNodeSet": "",
276
+ "exitNodeFailed": ""
248
277
  }
249
278
  },
250
279
  "jobs": {
251
- "title": "Maintenance Jobs",
252
- "description": "Manage background tasks that keep your data accurate and optimized.",
253
- "normalization": "Normalization",
254
- "backfill": "Backfill",
255
- "cleanup": "Cleanup",
256
- "running": "running",
257
- "queued": "queued",
258
- "delayed": "delayed",
259
- "waiting": "Waiting",
260
- "runningState": "Running",
261
- "runJob": "Run Job",
262
- "processed": "processed",
263
- "updated": "updated",
264
- "unchanged": "unchanged",
265
- "errors": "errors",
266
- "lastJobCompleted": "Last job completed successfully",
267
- "lastJobFailed": "Last job failed",
268
- "jobHistory": "Job History",
269
- "jobHistoryDesc": "Recent maintenance job executions",
270
- "runConfirm": "Run {{name}}?",
271
- "mayTakeAWhile": "This may take a while",
272
- "mayTakeAWhileDesc": "This job may take several minutes to complete depending on the size of your library.",
273
- "startJob": "Start Job"
280
+ "title": "",
281
+ "description": "",
282
+ "normalization": "",
283
+ "backfill": "",
284
+ "cleanup": "",
285
+ "running": "",
286
+ "queued": "",
287
+ "delayed": "",
288
+ "waiting": "",
289
+ "runningState": "",
290
+ "runJob": "",
291
+ "processed": "",
292
+ "updated": "",
293
+ "unchanged": "",
294
+ "errors": "",
295
+ "lastJobCompleted": "",
296
+ "lastJobFailed": "",
297
+ "jobHistory": "",
298
+ "jobHistoryDesc": "",
299
+ "runConfirm": "",
300
+ "mayTakeAWhile": "",
301
+ "mayTakeAWhileDesc": "",
302
+ "startJob": ""
274
303
  },
275
304
  "advanced": {
276
- "title": "Advanced Settings",
277
- "externalUrl": "External URL",
278
- "trustProxy": "Trust Proxy Headers",
279
- "reverseProxy": "Reverse Proxy",
280
- "connectionScenarios": "Connection Scenarios"
305
+ "title": "",
306
+ "externalUrl": "",
307
+ "trustProxy": "",
308
+ "reverseProxy": "",
309
+ "connectionScenarios": ""
281
310
  },
282
311
  "accessControl": {
283
- "title": "Access Control",
284
- "description": "Configure who can access Tracearr",
285
- "allowGuestAccess": "Allow Guest Access",
286
- "allowGuestAccessDesc": "When disabled, only the server owner can log in to Tracearr",
287
- "singleOwnerNote": "Note: When guest access is disabled, only the server owner can sign in. All other users will see an \"Access Denied\" message."
312
+ "title": "",
313
+ "description": "",
314
+ "allowGuestAccess": "",
315
+ "allowGuestAccessDesc": "",
316
+ "singleOwnerNote": ""
288
317
  },
289
318
  "import": {
290
- "title": "Import Data",
291
- "jellystat": "Import from Jellystat",
292
- "tautulli": "Import from Tautulli",
293
- "importProgress": "Import Progress",
294
- "importComplete": "Import Complete",
295
- "importFailed": "Import Failed",
296
- "processed": "Processed",
297
- "page": "Page",
298
- "imported": "Imported",
299
- "skipped": "Skipped",
300
- "enriched": "Enriched",
301
- "errors": "Errors",
302
- "noServers": "No Servers Connected",
303
- "noServersHint": "You need at least one connected server to import data.",
304
- "tautulliUrl": "Tautulli URL",
305
- "tautulliUrlPlaceholder": "http://localhost:8181",
306
- "tautulliUrlHelp": "The URL of your Tautulli instance.",
307
- "apiKeyHelp": "Found in Tautulli Settings → Web Interface → API Key.",
308
- "testing": "Testing...",
309
- "connectToTautulli": "Connect to Tautulli",
310
- "importHistory": "Import History",
311
- "targetServer": "Target Server",
312
- "selectPlexServer": "Select a Plex server",
313
- "overwriteFriendlyNames": "Overwrite existing friendly names with Tautulli names",
314
- "overwriteFriendlyNamesHelp": "Existing identity names in Tracearr will be replaced with the friendly names from Tautulli.",
315
- "includeStreamDetails": "Include detailed stream data (codecs, bitrate, resolution)",
316
- "includeStreamDetailsHelp": "Imports additional stream information. May increase import time significantly.",
317
- "importing": "Importing...",
318
- "startImport": "Start Import",
319
- "howItWorks": "How the import works",
320
- "howItWorksDesc": "Tracearr will import all historical watch data from your source. This may take a while depending on the size of your library.",
321
- "recordsMayBeSkipped": "Records may be skipped if:",
322
- "selectTargetServer": "Select Target Server",
323
- "selectJellyfinServer": "Select a Jellyfin or Emby server",
324
- "uploadJellystatBackup": "Upload Jellystat Backup",
325
- "exportBackupHint": "Export an Activity Backup from Jellystat",
326
- "exportBackupHelp": "In Jellystat, go to Settings → Backup → Activity Backup to export your data.",
327
- "importOptions": "Import Options",
328
- "enrichMetadata": "Enrich with media metadata (recommended)",
329
- "enrichMetadataHelp": "Fetches additional metadata from your media server for imported sessions.",
330
- "updateExistingRecords": "Update existing records with stream details",
331
- "updateExistingRecordsHelp": "Previously imported records will be updated with stream quality data.",
332
- "pleaseEnterDetails": "Please enter Tautulli URL and API key",
333
- "testingConnection": "Testing connection...",
334
- "pleaseSelectJsonFile": "Please select a JSON file",
335
- "uploadingBackup": "Uploading backup file...",
336
- "importHistoryDesc": "Import historical watch data from external sources",
337
- "plex": "Plex (Tautulli)",
338
- "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
339
- "step1": "1",
340
- "step2": "2",
341
- "apiKeyPlaceholder": "Your Tautulli API key",
342
- "skipUserNotFoundPlex": "User not found — The Plex user doesn't exist in Tracearr. Sync your server first to add all users.",
343
- "skipDuplicate": "Duplicate session — The session was already imported previously.",
344
- "skipInProgress": "In-progress session — Active/incomplete sessions without a reference ID are skipped.",
345
- "skipUserNotFoundJellyfin": "User not found — The Jellyfin/Emby user doesn't exist in Tracearr. Sync your server first to add all users.",
346
- "skipSyncHint": "If many records are skipped, ensure you've synced your server recently in Settings → Servers.",
347
- "importInProgressPercent": "Import in progress ({{percent}}% complete)...",
348
- "importInProgressGeneric": "Import in progress...",
349
- "startingImport": "Starting import...",
350
- "connectedFound": "Connected! Found {{users}} users and {{records}} history records.",
351
- "playbackReporting": "Playback Reporting Plugin",
352
- "playbackReportingDesc": "Import history directly from the Playback Reporting plugin installed on your Jellyfin or Emby server. No file export needed.",
353
- "checkPlugin": "Check Plugin",
354
- "checkingPlugin": "Checking...",
355
- "pluginFound": "Plugin found: {{records}} records from {{oldestDate}} to {{newestDate}}",
356
- "pluginNotInstalled": "The Playback Reporting plugin is not installed on this server, or Tracearr cannot reach it. Install it from the server's plugin catalog to start recording history, or use the Jellystat import below.",
357
- "serverTimezone": "Server Timezone",
358
- "serverTimezoneHelp": "Must match the timezone configured on your media server host, not your browser's timezone. Playback Reporting timestamps are stored in local server time.",
359
- "importFullRange": "Import full history",
360
- "importFullRangeHelp": "By default only history older than Tracearr's earliest tracked session for this server is imported, so sessions Tracearr already recorded are never duplicated. Enable this to import the plugin's entire history regardless of overlap, if your Tracearr history has gaps. Exact duplicates are still skipped.",
361
- "overlapSkipped": "{{count}} skipped as overlap",
362
- "duplicates": "{{count}} duplicates skipped",
363
- "skipOverlap": "Overlapping record - the timestamp falls inside the period Tracearr already tracks for this server. Enable full-range import to include it.",
364
- "skipDuplicatePlugin": "Duplicate record - already imported directly or arrived earlier via a Jellystat import of the same plugin data."
319
+ "title": "",
320
+ "jellystat": "",
321
+ "tautulli": "",
322
+ "importProgress": "",
323
+ "importComplete": "",
324
+ "importFailed": "",
325
+ "processed": "",
326
+ "page": "",
327
+ "imported": "",
328
+ "skipped": "",
329
+ "enriched": "",
330
+ "errors": "",
331
+ "noServers": "",
332
+ "noServersHint": "",
333
+ "tautulliUrl": "",
334
+ "tautulliUrlPlaceholder": "",
335
+ "tautulliUrlHelp": "",
336
+ "apiKeyHelp": "",
337
+ "testing": "",
338
+ "connectToTautulli": "",
339
+ "importHistory": "",
340
+ "targetServer": "",
341
+ "selectPlexServer": "",
342
+ "overwriteFriendlyNames": "",
343
+ "overwriteFriendlyNamesHelp": "",
344
+ "includeStreamDetails": "",
345
+ "includeStreamDetailsHelp": "",
346
+ "importing": "",
347
+ "startImport": "",
348
+ "howItWorks": "",
349
+ "howItWorksDesc": "",
350
+ "recordsMayBeSkipped": "",
351
+ "selectTargetServer": "",
352
+ "selectJellyfinServer": "",
353
+ "uploadJellystatBackup": "",
354
+ "exportBackupHint": "",
355
+ "exportBackupHelp": "",
356
+ "importOptions": "",
357
+ "enrichMetadata": "",
358
+ "enrichMetadataHelp": "",
359
+ "updateExistingRecords": "",
360
+ "updateExistingRecordsHelp": "",
361
+ "pleaseEnterDetails": "",
362
+ "testingConnection": "",
363
+ "pleaseSelectJsonFile": "",
364
+ "uploadingBackup": "",
365
+ "importHistoryDesc": "",
366
+ "plex": "",
367
+ "jellyfinEmby": "",
368
+ "step1": "",
369
+ "step2": "",
370
+ "apiKeyPlaceholder": "",
371
+ "skipUserNotFoundPlex": "",
372
+ "skipDuplicate": "",
373
+ "skipInProgress": "",
374
+ "skipUserNotFoundJellyfin": "",
375
+ "skipSyncHint": "",
376
+ "importInProgressPercent": "",
377
+ "importInProgressGeneric": "",
378
+ "startingImport": "",
379
+ "connectedFound": "",
380
+ "playbackReporting": "",
381
+ "playbackReportingDesc": "",
382
+ "checkPlugin": "",
383
+ "checkingPlugin": "",
384
+ "pluginFound": "",
385
+ "pluginNotInstalled": "",
386
+ "serverTimezone": "",
387
+ "serverTimezoneHelp": "",
388
+ "importFullRange": "",
389
+ "importFullRangeHelp": "",
390
+ "overlapSkipped": "",
391
+ "duplicates": "",
392
+ "skipOverlap": "",
393
+ "skipDuplicatePlugin": ""
365
394
  },
366
395
  "plex": {
367
- "signInWithPlex": "Sign in with Plex",
368
- "signUpWithPlex": "Sign up with Plex",
369
- "selectServer": "Select Server",
370
- "chooseServer": "Choose which Plex Media Server to monitor"
396
+ "signInWithPlex": "",
397
+ "signUpWithPlex": "",
398
+ "selectServer": "",
399
+ "chooseServer": ""
371
400
  },
372
401
  "account": {
373
- "createAccount": "Create Account",
374
- "email": "Email",
375
- "password": "Password",
376
- "displayName": "Display Name",
377
- "createYourAccount": "Create your account to get started",
378
- "signInToAccount": "Sign in to your account",
379
- "useLocalAccount": "Use local account instead"
402
+ "createAccount": "",
403
+ "email": "",
404
+ "password": "",
405
+ "displayName": "",
406
+ "createYourAccount": "",
407
+ "signInToAccount": "",
408
+ "useLocalAccount": ""
380
409
  },
381
410
  "update": {
382
- "title": "Update Available",
383
- "releaseNotes": "Release Notes",
384
- "updateCommand": "Update Command",
385
- "pullInstructions": "After pulling, restart your container to apply the update.",
386
- "stableRelease": "Stable Release",
387
- "betaUpdate": "Beta Update",
388
- "newVersion": "New Version",
389
- "versionAvailable": "{{version}} available"
411
+ "title": "",
412
+ "releaseNotes": "",
413
+ "updateCommand": "",
414
+ "pullInstructions": "",
415
+ "stableRelease": "",
416
+ "betaUpdate": "",
417
+ "newVersion": "",
418
+ "versionAvailable": ""
390
419
  },
391
420
  "serverHealth": {
392
- "unreachable": "{{serverName}} is unreachable",
393
- "multipleUnreachable": "{{count}} servers unreachable: {{serverNames}}"
421
+ "unreachable": "",
422
+ "multipleUnreachable": ""
394
423
  },
395
424
  "ipWarning": {
396
- "message": "All users appear to be using the same IP address or local network IPs. This may affect rule-based logic for location or IP addresses.",
397
- "acknowledge": "Got it"
425
+ "message": "",
426
+ "acknowledge": ""
398
427
  },
399
428
  "backup": {
400
- "title": "Backup",
401
- "backToBackups": "Back to Backups",
402
- "description": "Backup and restore your Tracearr data",
403
- "createBackup": "Create Backup",
404
- "creating": "Creating backup...",
405
- "uploadBackup": "Upload Backup",
406
- "uploading": "Uploading...",
407
- "databaseSize": "Current database size: {{size}}",
408
- "freeSpace": "Backup directory free space: {{size}}",
409
- "lowDiskSpace": "Low disk space — backups and restores require at least twice the database size in free space.",
410
- "backupHistory": "Backup History",
411
- "noBackups": "No backups yet. Create your first backup above.",
412
- "filename": "Filename",
413
- "size": "Size",
414
- "date": "Date",
415
- "type": "Type",
416
- "version": "Version",
417
- "actions": "Actions",
418
- "typeManual": "Manual",
419
- "typeScheduled": "Scheduled",
420
- "typeUploaded": "Uploaded",
421
- "restoreAction": "Restore",
422
- "deleteConfirmTitle": "Delete Backup",
423
- "deleteConfirmDescription": "Are you sure you want to delete this backup? This cannot be undone.",
424
- "schedule": "Scheduled Backups",
425
- "scheduleType": "Schedule",
426
- "scheduleDisabled": "Disabled",
427
- "scheduleDaily": "Daily",
428
- "scheduleWeekly": "Weekly",
429
- "scheduleMonthly": "Monthly",
430
- "scheduleTime": "Time ({{timezone}})",
431
- "scheduleDayOfWeek": "Day of Week",
432
- "scheduleDayOfMonth": "Day of Month",
433
- "scheduleDayOfMonthHint": "On months with fewer days, the backup runs on the last day.",
434
- "retentionCount": "Keep Last",
435
- "retentionSuffix": "scheduled backups",
436
- "daySun": "Sunday",
437
- "dayMon": "Monday",
438
- "dayTue": "Tuesday",
439
- "dayWed": "Wednesday",
440
- "dayThu": "Thursday",
441
- "dayFri": "Friday",
442
- "daySat": "Saturday",
429
+ "title": "",
430
+ "backToBackups": "",
431
+ "description": "",
432
+ "createBackup": "",
433
+ "creating": "",
434
+ "uploadBackup": "",
435
+ "uploading": "",
436
+ "databaseSize": "",
437
+ "freeSpace": "",
438
+ "lowDiskSpace": "",
439
+ "backupHistory": "",
440
+ "noBackups": "",
441
+ "filename": "",
442
+ "size": "",
443
+ "date": "",
444
+ "type": "",
445
+ "version": "",
446
+ "actions": "",
447
+ "typeManual": "",
448
+ "typeScheduled": "",
449
+ "typeUploaded": "",
450
+ "restoreAction": "",
451
+ "deleteConfirmTitle": "",
452
+ "deleteConfirmDescription": "",
453
+ "schedule": "",
454
+ "scheduleType": "",
455
+ "scheduleDisabled": "",
456
+ "scheduleDaily": "",
457
+ "scheduleWeekly": "",
458
+ "scheduleMonthly": "",
459
+ "scheduleTime": "",
460
+ "scheduleDayOfWeek": "",
461
+ "scheduleDayOfMonth": "",
462
+ "scheduleDayOfMonthHint": "",
463
+ "retentionCount": "",
464
+ "retentionSuffix": "",
465
+ "daySun": "",
466
+ "dayMon": "",
467
+ "dayTue": "",
468
+ "dayWed": "",
469
+ "dayThu": "",
470
+ "dayFri": "",
471
+ "daySat": "",
443
472
  "restore": {
444
- "title": "Restore Backup",
445
- "selectedBackup": "Selected Backup",
446
- "databaseSize": "Database Size",
447
- "sessions": "Sessions",
448
- "users": "Users",
449
- "servers": "Servers",
450
- "rules": "Rules",
451
- "libraryItems": "Library Items",
452
- "tables": "Tables",
453
- "warning": "Restoring will replace all existing data. You will need to re-login after the restore completes.",
454
- "confirmLabel": "I understand this will replace all data",
455
- "confirm": "Start Restore",
456
- "complete": "Restore completed successfully. The page will refresh shortly.",
457
- "failed": "Restore failed",
458
- "cannotRestore": "Restore requires PostgreSQL superuser privileges. Please ensure your database user has superuser privileges and try again.",
459
- "pgVersionMismatch": "Backup was created on PostgreSQL {{backupVersion}} but this server runs PostgreSQL {{serverVersion}}. Restoring a dump from a newer PostgreSQL version is not supported.",
460
- "tsVersionMismatch": "Backup was created with TimescaleDB {{backupVersion}} but this server only supports up to TimescaleDB {{serverVersion}}."
473
+ "title": "",
474
+ "selectedBackup": "",
475
+ "databaseSize": "",
476
+ "sessions": "",
477
+ "users": "",
478
+ "servers": "",
479
+ "automations": "",
480
+ "libraryItems": "",
481
+ "tables": "",
482
+ "warning": "",
483
+ "confirmLabel": "",
484
+ "confirm": "",
485
+ "complete": "",
486
+ "failed": "",
487
+ "cannotRestore": "",
488
+ "pgVersionMismatch": "",
489
+ "tsVersionMismatch": ""
461
490
  },
462
491
  "toast": {
463
- "backupCreated": "Backup created successfully",
464
- "backupCreateFailed": "Failed to create backup",
465
- "backupUploaded": "Backup uploaded successfully",
466
- "backupUploadFailed": "Failed to upload backup",
467
- "backupDeleted": "Backup deleted",
468
- "backupDeleteFailed": "Failed to delete backup",
469
- "restoreStarted": "Restore started",
470
- "restoreStartFailed": "Failed to start restore",
471
- "scheduleSaved": "Backup schedule saved",
472
- "scheduleError": "Failed to save backup schedule"
492
+ "backupCreated": "",
493
+ "backupCreateFailed": "",
494
+ "backupUploaded": "",
495
+ "backupUploadFailed": "",
496
+ "backupDeleted": "",
497
+ "backupDeleteFailed": "",
498
+ "restoreStarted": "",
499
+ "restoreStartFailed": "",
500
+ "scheduleSaved": "",
501
+ "scheduleError": ""
473
502
  }
474
503
  }
475
504
  }