@tracearr/translations 2.3.0-beta.3 → 2.3.0-beta.5

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 (322) hide show
  1. package/README.md +1 -2
  2. package/dist/config.d.ts +496 -50
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.mobile.d.ts +496 -50
  5. package/dist/config.mobile.d.ts.map +1 -1
  6. package/dist/locales/af-ZA/common.json +1 -0
  7. package/dist/locales/af-ZA/nav.json +1 -0
  8. package/dist/locales/af-ZA/notifications.json +4 -0
  9. package/dist/locales/af-ZA/pages.json +188 -39
  10. package/dist/locales/af-ZA/settings.json +81 -11
  11. package/dist/locales/ar-SA/common.json +1 -0
  12. package/dist/locales/ar-SA/nav.json +1 -0
  13. package/dist/locales/ar-SA/notifications.json +4 -0
  14. package/dist/locales/ar-SA/pages.json +188 -39
  15. package/dist/locales/ar-SA/settings.json +81 -11
  16. package/dist/locales/ca-ES/common.json +2 -1
  17. package/dist/locales/ca-ES/nav.json +1 -0
  18. package/dist/locales/ca-ES/notifications.json +4 -0
  19. package/dist/locales/ca-ES/pages.json +190 -41
  20. package/dist/locales/ca-ES/settings.json +81 -11
  21. package/dist/locales/cs-CZ/common.json +1 -0
  22. package/dist/locales/cs-CZ/nav.json +1 -0
  23. package/dist/locales/cs-CZ/notifications.json +4 -0
  24. package/dist/locales/cs-CZ/pages.json +192 -43
  25. package/dist/locales/cs-CZ/settings.json +81 -11
  26. package/dist/locales/da-DK/common.json +1 -0
  27. package/dist/locales/da-DK/nav.json +1 -0
  28. package/dist/locales/da-DK/notifications.json +4 -0
  29. package/dist/locales/da-DK/pages.json +188 -39
  30. package/dist/locales/da-DK/settings.json +81 -11
  31. package/dist/locales/de-DE/common.json +2 -1
  32. package/dist/locales/de-DE/mobile.json +1 -1
  33. package/dist/locales/de-DE/nav.json +1 -0
  34. package/dist/locales/de-DE/notifications.json +4 -0
  35. package/dist/locales/de-DE/pages.json +198 -49
  36. package/dist/locales/de-DE/settings.json +82 -12
  37. package/dist/locales/el-GR/common.json +1 -0
  38. package/dist/locales/el-GR/nav.json +1 -0
  39. package/dist/locales/el-GR/notifications.json +4 -0
  40. package/dist/locales/el-GR/pages.json +188 -39
  41. package/dist/locales/el-GR/settings.json +81 -11
  42. package/dist/locales/en/common.json +2 -1
  43. package/dist/locales/en/nav.json +1 -0
  44. package/dist/locales/en/notifications.json +4 -0
  45. package/dist/locales/en/pages.json +160 -13
  46. package/dist/locales/en/settings.json +93 -23
  47. package/dist/locales/en-US/common.json +1 -0
  48. package/dist/locales/en-US/nav.json +21 -20
  49. package/dist/locales/en-US/notifications.json +4 -0
  50. package/dist/locales/en-US/pages.json +162 -13
  51. package/dist/locales/en-US/settings.json +81 -11
  52. package/dist/locales/es-ES/common.json +1 -0
  53. package/dist/locales/es-ES/nav.json +1 -0
  54. package/dist/locales/es-ES/notifications.json +4 -0
  55. package/dist/locales/es-ES/pages.json +191 -42
  56. package/dist/locales/es-ES/settings.json +81 -11
  57. package/dist/locales/fi-FI/common.json +1 -0
  58. package/dist/locales/fi-FI/nav.json +1 -0
  59. package/dist/locales/fi-FI/notifications.json +4 -0
  60. package/dist/locales/fi-FI/pages.json +188 -39
  61. package/dist/locales/fi-FI/settings.json +81 -11
  62. package/dist/locales/fr-FR/common.json +283 -282
  63. package/dist/locales/fr-FR/mobile.json +8 -8
  64. package/dist/locales/fr-FR/nav.json +23 -22
  65. package/dist/locales/fr-FR/notifications.json +4 -0
  66. package/dist/locales/fr-FR/pages.json +201 -52
  67. package/dist/locales/fr-FR/settings.json +100 -30
  68. package/dist/locales/he-IL/common.json +1 -0
  69. package/dist/locales/he-IL/nav.json +1 -0
  70. package/dist/locales/he-IL/notifications.json +4 -0
  71. package/dist/locales/he-IL/pages.json +188 -39
  72. package/dist/locales/he-IL/settings.json +81 -11
  73. package/dist/locales/hu-HU/common.json +1 -0
  74. package/dist/locales/hu-HU/nav.json +1 -0
  75. package/dist/locales/hu-HU/notifications.json +4 -0
  76. package/dist/locales/hu-HU/pages.json +188 -39
  77. package/dist/locales/hu-HU/settings.json +81 -11
  78. package/dist/locales/it-IT/common.json +2 -1
  79. package/dist/locales/it-IT/nav.json +1 -0
  80. package/dist/locales/it-IT/notifications.json +4 -0
  81. package/dist/locales/it-IT/pages.json +192 -43
  82. package/dist/locales/it-IT/settings.json +83 -13
  83. package/dist/locales/ja-JP/common.json +1 -0
  84. package/dist/locales/ja-JP/nav.json +1 -0
  85. package/dist/locales/ja-JP/notifications.json +4 -0
  86. package/dist/locales/ja-JP/pages.json +188 -39
  87. package/dist/locales/ja-JP/settings.json +82 -12
  88. package/dist/locales/ko-KR/common.json +9 -8
  89. package/dist/locales/ko-KR/mobile.json +6 -6
  90. package/dist/locales/ko-KR/nav.json +21 -20
  91. package/dist/locales/ko-KR/notifications.json +4 -0
  92. package/dist/locales/ko-KR/pages.json +230 -81
  93. package/dist/locales/ko-KR/settings.json +93 -23
  94. package/dist/locales/nl-NL/common.json +2 -1
  95. package/dist/locales/nl-NL/nav.json +1 -0
  96. package/dist/locales/nl-NL/notifications.json +4 -0
  97. package/dist/locales/nl-NL/pages.json +201 -52
  98. package/dist/locales/nl-NL/settings.json +81 -11
  99. package/dist/locales/no-NO/common.json +2 -1
  100. package/dist/locales/no-NO/nav.json +1 -0
  101. package/dist/locales/no-NO/notifications.json +4 -0
  102. package/dist/locales/no-NO/pages.json +193 -44
  103. package/dist/locales/no-NO/settings.json +81 -11
  104. package/dist/locales/pl-PL/common.json +2 -1
  105. package/dist/locales/pl-PL/nav.json +1 -0
  106. package/dist/locales/pl-PL/notifications.json +4 -0
  107. package/dist/locales/pl-PL/pages.json +195 -46
  108. package/dist/locales/pl-PL/settings.json +82 -12
  109. package/dist/locales/pt-BR/common.json +2 -1
  110. package/dist/locales/pt-BR/nav.json +1 -0
  111. package/dist/locales/pt-BR/notifications.json +4 -0
  112. package/dist/locales/pt-BR/pages.json +192 -43
  113. package/dist/locales/pt-BR/settings.json +81 -11
  114. package/dist/locales/pt-PT/common.json +1 -0
  115. package/dist/locales/pt-PT/nav.json +1 -0
  116. package/dist/locales/pt-PT/notifications.json +4 -0
  117. package/dist/locales/pt-PT/pages.json +190 -41
  118. package/dist/locales/pt-PT/settings.json +81 -11
  119. package/dist/locales/ro-RO/common.json +4 -3
  120. package/dist/locales/ro-RO/nav.json +1 -0
  121. package/dist/locales/ro-RO/notifications.json +4 -0
  122. package/dist/locales/ro-RO/pages.json +193 -44
  123. package/dist/locales/ro-RO/settings.json +82 -12
  124. package/dist/locales/ru-RU/common.json +1 -0
  125. package/dist/locales/ru-RU/nav.json +1 -0
  126. package/dist/locales/ru-RU/notifications.json +4 -0
  127. package/dist/locales/ru-RU/pages.json +188 -39
  128. package/dist/locales/ru-RU/settings.json +81 -11
  129. package/dist/locales/sr-SP/common.json +1 -0
  130. package/dist/locales/sr-SP/nav.json +1 -0
  131. package/dist/locales/sr-SP/notifications.json +4 -0
  132. package/dist/locales/sr-SP/pages.json +188 -39
  133. package/dist/locales/sr-SP/settings.json +81 -11
  134. package/dist/locales/sv-SE/common.json +2 -1
  135. package/dist/locales/sv-SE/nav.json +1 -0
  136. package/dist/locales/sv-SE/notifications.json +4 -0
  137. package/dist/locales/sv-SE/pages.json +194 -45
  138. package/dist/locales/sv-SE/settings.json +81 -11
  139. package/dist/locales/tr-TR/common.json +1 -0
  140. package/dist/locales/tr-TR/nav.json +1 -0
  141. package/dist/locales/tr-TR/notifications.json +4 -0
  142. package/dist/locales/tr-TR/pages.json +190 -41
  143. package/dist/locales/tr-TR/settings.json +81 -11
  144. package/dist/locales/uk-UA/common.json +282 -281
  145. package/dist/locales/uk-UA/nav.json +23 -16
  146. package/dist/locales/uk-UA/notifications.json +4 -0
  147. package/dist/locales/uk-UA/pages.json +1857 -1708
  148. package/dist/locales/uk-UA/settings.json +81 -11
  149. package/dist/locales/vi-VN/common.json +1 -0
  150. package/dist/locales/vi-VN/nav.json +1 -0
  151. package/dist/locales/vi-VN/notifications.json +4 -0
  152. package/dist/locales/vi-VN/pages.json +188 -39
  153. package/dist/locales/vi-VN/settings.json +81 -11
  154. package/dist/locales/zh-CN/common.json +1 -0
  155. package/dist/locales/zh-CN/nav.json +1 -0
  156. package/dist/locales/zh-CN/notifications.json +4 -0
  157. package/dist/locales/zh-CN/pages.json +189 -40
  158. package/dist/locales/zh-CN/settings.json +90 -20
  159. package/dist/locales/zh-TW/common.json +1 -0
  160. package/dist/locales/zh-TW/nav.json +1 -0
  161. package/dist/locales/zh-TW/notifications.json +4 -0
  162. package/dist/locales/zh-TW/pages.json +188 -39
  163. package/dist/locales/zh-TW/settings.json +81 -11
  164. package/package.json +3 -5
  165. package/src/locales/af-ZA/common.json +1 -0
  166. package/src/locales/af-ZA/nav.json +1 -0
  167. package/src/locales/af-ZA/notifications.json +4 -0
  168. package/src/locales/af-ZA/pages.json +188 -39
  169. package/src/locales/af-ZA/settings.json +81 -11
  170. package/src/locales/ar-SA/common.json +1 -0
  171. package/src/locales/ar-SA/nav.json +1 -0
  172. package/src/locales/ar-SA/notifications.json +4 -0
  173. package/src/locales/ar-SA/pages.json +188 -39
  174. package/src/locales/ar-SA/settings.json +81 -11
  175. package/src/locales/ca-ES/common.json +2 -1
  176. package/src/locales/ca-ES/nav.json +1 -0
  177. package/src/locales/ca-ES/notifications.json +4 -0
  178. package/src/locales/ca-ES/pages.json +190 -41
  179. package/src/locales/ca-ES/settings.json +81 -11
  180. package/src/locales/cs-CZ/common.json +1 -0
  181. package/src/locales/cs-CZ/nav.json +1 -0
  182. package/src/locales/cs-CZ/notifications.json +4 -0
  183. package/src/locales/cs-CZ/pages.json +192 -43
  184. package/src/locales/cs-CZ/settings.json +81 -11
  185. package/src/locales/da-DK/common.json +1 -0
  186. package/src/locales/da-DK/nav.json +1 -0
  187. package/src/locales/da-DK/notifications.json +4 -0
  188. package/src/locales/da-DK/pages.json +188 -39
  189. package/src/locales/da-DK/settings.json +81 -11
  190. package/src/locales/de-DE/common.json +2 -1
  191. package/src/locales/de-DE/mobile.json +1 -1
  192. package/src/locales/de-DE/nav.json +1 -0
  193. package/src/locales/de-DE/notifications.json +4 -0
  194. package/src/locales/de-DE/pages.json +198 -49
  195. package/src/locales/de-DE/settings.json +82 -12
  196. package/src/locales/el-GR/common.json +1 -0
  197. package/src/locales/el-GR/nav.json +1 -0
  198. package/src/locales/el-GR/notifications.json +4 -0
  199. package/src/locales/el-GR/pages.json +188 -39
  200. package/src/locales/el-GR/settings.json +81 -11
  201. package/src/locales/en/common.json +2 -1
  202. package/src/locales/en/nav.json +1 -0
  203. package/src/locales/en/notifications.json +4 -0
  204. package/src/locales/en/pages.json +160 -13
  205. package/src/locales/en/settings.json +93 -23
  206. package/src/locales/en-US/common.json +1 -0
  207. package/src/locales/en-US/nav.json +21 -20
  208. package/src/locales/en-US/notifications.json +4 -0
  209. package/src/locales/en-US/pages.json +162 -13
  210. package/src/locales/en-US/settings.json +81 -11
  211. package/src/locales/es-ES/common.json +1 -0
  212. package/src/locales/es-ES/nav.json +1 -0
  213. package/src/locales/es-ES/notifications.json +4 -0
  214. package/src/locales/es-ES/pages.json +191 -42
  215. package/src/locales/es-ES/settings.json +81 -11
  216. package/src/locales/fi-FI/common.json +1 -0
  217. package/src/locales/fi-FI/nav.json +1 -0
  218. package/src/locales/fi-FI/notifications.json +4 -0
  219. package/src/locales/fi-FI/pages.json +188 -39
  220. package/src/locales/fi-FI/settings.json +81 -11
  221. package/src/locales/fr-FR/common.json +283 -282
  222. package/src/locales/fr-FR/mobile.json +8 -8
  223. package/src/locales/fr-FR/nav.json +23 -22
  224. package/src/locales/fr-FR/notifications.json +4 -0
  225. package/src/locales/fr-FR/pages.json +201 -52
  226. package/src/locales/fr-FR/settings.json +100 -30
  227. package/src/locales/he-IL/common.json +1 -0
  228. package/src/locales/he-IL/nav.json +1 -0
  229. package/src/locales/he-IL/notifications.json +4 -0
  230. package/src/locales/he-IL/pages.json +188 -39
  231. package/src/locales/he-IL/settings.json +81 -11
  232. package/src/locales/hu-HU/common.json +1 -0
  233. package/src/locales/hu-HU/nav.json +1 -0
  234. package/src/locales/hu-HU/notifications.json +4 -0
  235. package/src/locales/hu-HU/pages.json +188 -39
  236. package/src/locales/hu-HU/settings.json +81 -11
  237. package/src/locales/it-IT/common.json +2 -1
  238. package/src/locales/it-IT/nav.json +1 -0
  239. package/src/locales/it-IT/notifications.json +4 -0
  240. package/src/locales/it-IT/pages.json +192 -43
  241. package/src/locales/it-IT/settings.json +83 -13
  242. package/src/locales/ja-JP/common.json +1 -0
  243. package/src/locales/ja-JP/nav.json +1 -0
  244. package/src/locales/ja-JP/notifications.json +4 -0
  245. package/src/locales/ja-JP/pages.json +188 -39
  246. package/src/locales/ja-JP/settings.json +82 -12
  247. package/src/locales/ko-KR/common.json +9 -8
  248. package/src/locales/ko-KR/mobile.json +6 -6
  249. package/src/locales/ko-KR/nav.json +21 -20
  250. package/src/locales/ko-KR/notifications.json +4 -0
  251. package/src/locales/ko-KR/pages.json +230 -81
  252. package/src/locales/ko-KR/settings.json +93 -23
  253. package/src/locales/nl-NL/common.json +2 -1
  254. package/src/locales/nl-NL/nav.json +1 -0
  255. package/src/locales/nl-NL/notifications.json +4 -0
  256. package/src/locales/nl-NL/pages.json +201 -52
  257. package/src/locales/nl-NL/settings.json +81 -11
  258. package/src/locales/no-NO/common.json +2 -1
  259. package/src/locales/no-NO/nav.json +1 -0
  260. package/src/locales/no-NO/notifications.json +4 -0
  261. package/src/locales/no-NO/pages.json +193 -44
  262. package/src/locales/no-NO/settings.json +81 -11
  263. package/src/locales/pl-PL/common.json +2 -1
  264. package/src/locales/pl-PL/nav.json +1 -0
  265. package/src/locales/pl-PL/notifications.json +4 -0
  266. package/src/locales/pl-PL/pages.json +195 -46
  267. package/src/locales/pl-PL/settings.json +82 -12
  268. package/src/locales/pt-BR/common.json +2 -1
  269. package/src/locales/pt-BR/nav.json +1 -0
  270. package/src/locales/pt-BR/notifications.json +4 -0
  271. package/src/locales/pt-BR/pages.json +192 -43
  272. package/src/locales/pt-BR/settings.json +81 -11
  273. package/src/locales/pt-PT/common.json +1 -0
  274. package/src/locales/pt-PT/nav.json +1 -0
  275. package/src/locales/pt-PT/notifications.json +4 -0
  276. package/src/locales/pt-PT/pages.json +190 -41
  277. package/src/locales/pt-PT/settings.json +81 -11
  278. package/src/locales/ro-RO/common.json +4 -3
  279. package/src/locales/ro-RO/nav.json +1 -0
  280. package/src/locales/ro-RO/notifications.json +4 -0
  281. package/src/locales/ro-RO/pages.json +193 -44
  282. package/src/locales/ro-RO/settings.json +82 -12
  283. package/src/locales/ru-RU/common.json +1 -0
  284. package/src/locales/ru-RU/nav.json +1 -0
  285. package/src/locales/ru-RU/notifications.json +4 -0
  286. package/src/locales/ru-RU/pages.json +188 -39
  287. package/src/locales/ru-RU/settings.json +81 -11
  288. package/src/locales/sr-SP/common.json +1 -0
  289. package/src/locales/sr-SP/nav.json +1 -0
  290. package/src/locales/sr-SP/notifications.json +4 -0
  291. package/src/locales/sr-SP/pages.json +188 -39
  292. package/src/locales/sr-SP/settings.json +81 -11
  293. package/src/locales/sv-SE/common.json +2 -1
  294. package/src/locales/sv-SE/nav.json +1 -0
  295. package/src/locales/sv-SE/notifications.json +4 -0
  296. package/src/locales/sv-SE/pages.json +194 -45
  297. package/src/locales/sv-SE/settings.json +81 -11
  298. package/src/locales/tr-TR/common.json +1 -0
  299. package/src/locales/tr-TR/nav.json +1 -0
  300. package/src/locales/tr-TR/notifications.json +4 -0
  301. package/src/locales/tr-TR/pages.json +190 -41
  302. package/src/locales/tr-TR/settings.json +81 -11
  303. package/src/locales/uk-UA/common.json +282 -281
  304. package/src/locales/uk-UA/nav.json +23 -16
  305. package/src/locales/uk-UA/notifications.json +4 -0
  306. package/src/locales/uk-UA/pages.json +1857 -1708
  307. package/src/locales/uk-UA/settings.json +81 -11
  308. package/src/locales/vi-VN/common.json +1 -0
  309. package/src/locales/vi-VN/nav.json +1 -0
  310. package/src/locales/vi-VN/notifications.json +4 -0
  311. package/src/locales/vi-VN/pages.json +188 -39
  312. package/src/locales/vi-VN/settings.json +81 -11
  313. package/src/locales/zh-CN/common.json +1 -0
  314. package/src/locales/zh-CN/nav.json +1 -0
  315. package/src/locales/zh-CN/notifications.json +4 -0
  316. package/src/locales/zh-CN/pages.json +189 -40
  317. package/src/locales/zh-CN/settings.json +90 -20
  318. package/src/locales/zh-TW/common.json +1 -0
  319. package/src/locales/zh-TW/nav.json +1 -0
  320. package/src/locales/zh-TW/notifications.json +4 -0
  321. package/src/locales/zh-TW/pages.json +188 -39
  322. package/src/locales/zh-TW/settings.json +81 -11
@@ -63,26 +63,60 @@
63
63
  "resetTrustScoreTitle_other": "Reset Trust Score for {{count}} Users",
64
64
  "resetTrustScoreConfirm": "Are you sure you want to reset the trust score to 100? This action cannot be undone.",
65
65
  "mergeUsers": "Merge users",
66
- "mergeDialogTitle": "Merge users",
67
- "mergeDialogDescription": "Every server account, session, and violation from the duplicate moves to the primary. The duplicate identity is deleted.",
68
- "mergePickPrimary": "Choose the primary identity",
69
- "mergePrimaryBadge": "Primary",
70
- "mergePrimaryForced": "This account can log in, so it must stay the primary.",
71
- "mergeSameServerWarningTitle": "This action is irreversible",
72
- "mergeSameServerDialogDescription": "This merge permanently combines both accounts on the same server. It cannot be undone.",
73
- "mergeSameServerWarning": "Both identities already have an account on the same server. Merging will permanently combine their session history, violations, and trust score into a single account on that server. This cannot be undone, and splitting the account afterward will not restore the original two accounts.",
74
- "mergeSameServerAcknowledge": "I understand the same-server history combine cannot be undone",
75
- "mergeSameServerFallbackName": "this server",
66
+ "mergeTitleSuggestion": "Are these the same person?",
67
+ "mergeTitleBulk": "Merge these users?",
68
+ "mergeReasonEmail": "Both have the email {{value}} on their server accounts.",
69
+ "mergeReasonEmailUsername": "Both use {{value}} as a username or account email.",
70
+ "mergeReasonUsername": "Both use the username {{value}}.",
71
+ "mergeKeep": "Keep",
72
+ "mergeFoldIn": "Fold in, then deleted",
73
+ "mergeSwap": "Swap which one is kept",
74
+ "mergeRequired": "{{name}} can sign in to Tracearr, so {{name}} is kept.",
75
+ "mergeLastActive": "Last active {{relative}}",
76
+ "mergeNeverActive": "Never active",
77
+ "mergeSessions_one": "{{count}} session",
78
+ "mergeSessions_other": "{{count}} sessions",
79
+ "mergeMoreServers": "+{{count}}",
80
+ "mergeWhatHappens": "What happens",
81
+ "mergeMoves_one": "{{foldName}}'s server accounts and {{count}} session move to {{keepName}}.",
82
+ "mergeMoves_other": "{{foldName}}'s server accounts and {{count}} sessions move to {{keepName}}.",
83
+ "mergeMovesNoCount": "{{foldName}}'s server accounts and sessions move to {{keepName}}.",
84
+ "mergeCarriesOver": "Their contact email, newsletter exclusions and Seerr requests carry over.",
85
+ "mergeDeleted": "{{foldName}} is deleted. You can split an account back out from {{keepName}}'s page.",
86
+ "mergeRulesKept": "Per-server rules with the same name keep {{keepName}}'s version.",
87
+ "mergeIrreversibleTitle": "This cannot be undone",
88
+ "mergeIrreversibleBody": "Both have an account on the same server. Those two accounts become one, with their sessions, violations and trust score combined. Splitting later does not bring the second account back.",
89
+ "mergeServerLabel": "Server",
90
+ "mergeServerUnknown": "Unknown server",
91
+ "mergeIrreversibleAcknowledge": "I understand the two accounts on this server cannot be separated again",
76
92
  "mergeServerAccountRemoved": "Removed",
77
- "mergeConfirm": "Merge",
93
+ "mergeConfirmInto": "Merge into {{keepName}}",
78
94
  "mergeSelectTwo": "Select exactly two users to merge",
79
95
  "mergeSameIdentity": "These accounts already belong to the same user",
80
96
  "mergeSelectAllActive": "Clear the select-all selection and pick exactly two users to merge",
81
97
  "suggestionsTitle": "Possible duplicate users",
82
- "suggestionsDescription": "These identities look like the same person across servers. Review and merge them if they match.",
98
+ "suggestionsCount_one": "{{count}} possible duplicate user",
99
+ "suggestionsCount_other": "{{count}} possible duplicate users",
100
+ "suggestionsPairEmail": "{{first}} and {{second}} share an email",
101
+ "suggestionsPairEmailMore_one": "{{first}} and {{second}} share an email, plus {{count}} more",
102
+ "suggestionsPairEmailMore_other": "{{first}} and {{second}} share an email, plus {{count}} more",
103
+ "suggestionsPairEmailUsername": "{{first}} and {{second}} use the same address as a username or account email",
104
+ "suggestionsPairEmailUsernameMore_one": "{{first}} and {{second}} use the same address as a username or account email, plus {{count}} more",
105
+ "suggestionsPairEmailUsernameMore_other": "{{first}} and {{second}} use the same address as a username or account email, plus {{count}} more",
106
+ "suggestionsPairUsername": "{{first}} and {{second}} share a username",
107
+ "suggestionsPairUsernameMore_one": "{{first}} and {{second}} share a username, plus {{count}} more",
108
+ "suggestionsPairUsernameMore_other": "{{first}} and {{second}} share a username, plus {{count}} more",
109
+ "suggestionsSheetDescription": "Merging keeps one user and deletes the other. A pair marked as not the same person stops showing up until you restore it.",
83
110
  "suggestionsReview": "Review",
111
+ "suggestionsNotSame": "Not the same person",
84
112
  "suggestionsMatchEmail": "Same email",
113
+ "suggestionsMatchEmailUsername": "Both use {{value}} as a username or account email",
85
114
  "suggestionsMatchUsername": "Same username",
115
+ "suggestionsEmpty": "Nothing left to review.",
116
+ "suggestionsDismissed": "Dismissed ({{count}})",
117
+ "suggestionsDismissedPair": "{{first}} and {{second}}",
118
+ "suggestionsDismissedAt": "Dismissed {{relative}}",
119
+ "suggestionsRestore": "Restore",
86
120
  "suggestionsError": "Could not load merge suggestions",
87
121
  "filterHasAccessTo": "Has access to",
88
122
  "filterHasAccessToPlaceholder": "Any server",
@@ -1624,7 +1658,7 @@
1624
1658
  "smtpPreset": "Fills the host, port and security for common providers. Amazon SES and Mailgun EU need the region edited into the host.",
1625
1659
  "smtpVerifyCertificate": "Checks the mail server's TLS certificate against a trusted authority. Turn it off only for a server with a self-signed certificate, such as a local bridge: anyone on the path between Tracearr and the mail server can then intercept the connection.",
1626
1660
  "smtpUsernameOptional": "Leave blank when the server needs no login",
1627
- "smtpTo": "Alerts sent to this destination go to these addresses. Newsletters ignore this list and pick their own recipients, so you can leave it blank.",
1661
+ "smtpTo": "Alerts go out as one email with every address here in To. Leave it blank if this server only sends newsletters.",
1628
1662
  "smtpRate": "Per Tracearr instance; stay under your provider's limit",
1629
1663
  "smtpMessageStream": "Postmark only: the stream ID to send through, for example broadcast. Leave blank elsewhere.",
1630
1664
  "smtpGmailUsername": "Your full Gmail address. Gmail sends from this address whatever the sender address says, and personal accounts stop near 500 recipients a day.",
@@ -1642,6 +1676,9 @@
1642
1676
  "smtpPostmarkUsername": "Your Server API token.",
1643
1677
  "smtpPostmarkPassword": "The same Server API token, or a stream token's secret."
1644
1678
  },
1679
+ "newsletterAlertsNote": "Newsletter recipients are set on the newsletter itself. To send alerts through this server too, edit it later under Destinations.",
1680
+ "newsletterDescription": "Tracearr sends newsletters through this SMTP server.",
1681
+ "newsletterTitle": "Add email server",
1645
1682
  "newslettersOnly": "Newsletters only",
1646
1683
  "noAlertRecipients": "No alert recipients",
1647
1684
  "options": {
@@ -2146,5 +2183,115 @@
2146
2183
  "emptyAnchored": "Nothing at or after \"{{letter}}\" under these filters",
2147
2184
  "loadError": "Couldn't load the catalog"
2148
2185
  }
2186
+ },
2187
+ "requests": {
2188
+ "status": {
2189
+ "pending": "Pending",
2190
+ "approved": "Approved",
2191
+ "declined": "Declined",
2192
+ "failed": "Failed",
2193
+ "completed": "Available",
2194
+ "deleted": "Removed"
2195
+ },
2196
+ "columns": {
2197
+ "requester": "Requested by",
2198
+ "title": "Title",
2199
+ "status": "Status",
2200
+ "requested": "Requested",
2201
+ "wait": "Wait",
2202
+ "seasons": "Seasons",
2203
+ "watched": "Watched"
2204
+ },
2205
+ "wait": {
2206
+ "pending": "waiting",
2207
+ "declined": "declined"
2208
+ },
2209
+ "seasons": {
2210
+ "all": "All seasons",
2211
+ "item": "S{{number}}"
2212
+ },
2213
+ "flags": {
2214
+ "fourK": "4K request",
2215
+ "auto": "Auto-requested from a watchlist"
2216
+ },
2217
+ "hero": {
2218
+ "line": "Requested by {{name}} · {{date}} · {{tail}}"
2219
+ },
2220
+ "mediaPanel": {
2221
+ "title": "Requests",
2222
+ "loadError": "Couldn't load requests",
2223
+ "empty": "No requests for this title"
2224
+ },
2225
+ "userCard": {
2226
+ "title": "Requests",
2227
+ "loadError": "Couldn't load requests",
2228
+ "viewAll": "View all ({{count}} more)",
2229
+ "showLess": "Show less",
2230
+ "summary": {
2231
+ "requests": "Requests",
2232
+ "medianWait": "median wait {{duration}}",
2233
+ "approvalRate": "Approval rate",
2234
+ "neverWatched": "Never watched"
2235
+ },
2236
+ "empty": "No requests yet"
2237
+ },
2238
+ "unattributed": "Not on this server",
2239
+ "watched": {
2240
+ "byRequester": "Watched by the requester",
2241
+ "byOthers": "Watched by someone else"
2242
+ },
2243
+ "page": {
2244
+ "title": "Requests",
2245
+ "description": "What people asked for, what landed, and whether they ever played it.",
2246
+ "failedToLoad": "Couldn't load request analytics",
2247
+ "notConfigured": "No Seerr linked",
2248
+ "notConfiguredDescription": "Link a Seerr instance to a server and this page fills in after the first sync.",
2249
+ "linkSeerr": "Link Seerr",
2250
+ "kpi": {
2251
+ "requested": "Requested",
2252
+ "landedOf": "{{count}} landed",
2253
+ "watched": "Watched",
2254
+ "neverPlayed": "Never played",
2255
+ "ofLanded": "{{share}} of landed",
2256
+ "onDisk": "{{size}} on disk"
2257
+ }
2258
+ },
2259
+ "funnel": {
2260
+ "title": "Where requests end up",
2261
+ "description": "Watched means someone got through 85% of it, the same bar the library pages use. A request has to land and be matched to a title before Tracearr can measure that.",
2262
+ "requested": "Requested",
2263
+ "landed": "Landed",
2264
+ "watched": "Watched",
2265
+ "share": "{{count}} of {{total}} requests",
2266
+ "empty": "No requests yet"
2267
+ },
2268
+ "unplayed": {
2269
+ "title": "Landed and never played",
2270
+ "description": "Downloaded because someone asked, and no account on these servers has pressed play even once.",
2271
+ "emptyTitle": "Everything that landed got played",
2272
+ "emptyDescription": "Nothing here is holding disk for no reason."
2273
+ },
2274
+ "outcomes": {
2275
+ "title": "Title",
2276
+ "requester": "Requested by",
2277
+ "wait": "Wait",
2278
+ "requested": "Requested",
2279
+ "onDisk": "On disk",
2280
+ "untitled": "Untitled",
2281
+ "failedToLoad": "Couldn't load these requests"
2282
+ },
2283
+ "followThrough": {
2284
+ "title": "Requesters",
2285
+ "description": "Who asks for what, whether they watch it through, and whether anyone else does.",
2286
+ "person": "Person",
2287
+ "asked": "Asked",
2288
+ "landed": "Landed",
2289
+ "watched": "Watched",
2290
+ "watchedByOthers": "Watched by others",
2291
+ "medianWait": "Median wait",
2292
+ "emptyTitle": "No requesters yet",
2293
+ "emptyDescription": "Requests appear here once a linked Seerr has synced.",
2294
+ "failedToLoad": "Couldn’t load requesters"
2295
+ }
2149
2296
  }
2150
2297
  }
@@ -544,7 +544,7 @@
544
544
  "empty": "No newsletters yet",
545
545
  "emptyDescription": "A newsletter emails the members of a server what was added recently.",
546
546
  "noDestinationTitle": "Newsletters need an email destination",
547
- "noDestinationDescription": "An email destination is the SMTP server newsletters send through. Each newsletter picks its own recipients, so this one only needs the server and sender details.",
547
+ "noDestinationDescription": "An email destination is the SMTP server newsletters send through, so it only needs the server and sender details. Each newsletter reaches everyone shared on the servers you choose automatically, plus any extra addresses you add.",
548
548
  "noDestinationHint": "No email destination yet.",
549
549
  "addEmailDestination": "Add email destination",
550
550
  "enabled": "Enabled",
@@ -605,7 +605,7 @@
605
605
  "name": "Name",
606
606
  "nameHelp": "Only you see this. It names the newsletter in this list and in the send history.",
607
607
  "turnOnNow": "Turn it on now",
608
- "enabledHelp": "Off means the schedule does not run; Send now still works.",
608
+ "enabledHelp": "When on, the next scheduled run mails everyone listed under Recipients. Off means the schedule does not run; Send now still works.",
609
609
  "schedule": "Schedule",
610
610
  "scheduleKind": "Repeats",
611
611
  "kinds": {
@@ -713,49 +713,68 @@
713
713
  "recipients": {
714
714
  "title": "Recipients",
715
715
  "members": "Everyone on the chosen servers",
716
- "membersHelp": "Everyone with an active account on {{servers}}. Their address comes from their contact email, then their Tracearr email, then the address their media server account carries.",
717
- "ownerNote": "If you have an account on one of these servers you are on the list below; use Exclude to take yourself off.",
718
- "membersOff": "Members are off; only the extra addresses receive this newsletter.",
719
- "membersOffSuppressed": "Members are off; only the extra addresses receive this newsletter. {{count}} of them are on the suppression list and will not be mailed.",
720
- "extraAddresses": "Extra addresses",
721
- "extraAddressesHelp": "Addresses with no account here. They get the version covering every server, and they can unsubscribe like anyone else.",
722
- "addAddress": "Add address",
716
+ "membersHelp": "Everyone shared on {{servers}} is already included. Each person is mailed at their contact email if you set one, otherwise at the email on their Tracearr or media server account. Each person gets their own copy and sees only their own address.",
717
+ "ownerNote": "If you have an account on one of these servers you are included too. Open Manage recipients to exclude yourself.",
718
+ "extraTrigger": "Add people without an account ({{count}})",
719
+ "extraHelp": "For someone who isn't on your servers. Everyone shared on the chosen servers is already on the list above.",
720
+ "pasteAddresses": "Paste addresses, one per line or separated by commas",
723
721
  "addressLabel": "Address {{n}}",
724
722
  "nameLabel": "Name {{n}}",
725
723
  "namePlaceholder": "Name (optional)",
726
724
  "removeAddress": "Remove address {{n}}",
727
725
  "badAddress": "That is not an email address.",
728
- "saveFirst": "Save to see recipients.",
729
- "saveFirstHelp": "Preview renders the email for the current servers and shows how many people each version reaches.",
730
726
  "loadFailed": "Could not load the recipients.",
731
- "willReceive": "Will receive ({{count}})",
732
- "groupsNote": "People on different servers get different emails. Each list below only sees what was added to the servers named.",
733
- "staleScope": "This list still reflects the saved servers. Save to see who the new selection reaches.",
734
- "noAddress": "No email address ({{count}})",
735
- "noAddressHelp": "Nothing was found for these people: no contact email, no Tracearr email, and nothing from their media server account. Jellyfin and Emby never send one. Add a contact email here and it saves straight away.",
727
+ "willReceive": "Will receive {{count}}",
728
+ "excludedCount": "Excluded {{count}}",
729
+ "notIncludable": "{{count}} can't be included",
730
+ "noAddress": "No email address {{count}}",
731
+ "suppressedCount": "Suppressed {{count}}",
732
+ "joinedSinceLastSend": "{{count}} joined since the last send",
733
+ "newSinceLastSend": "New since last send",
734
+ "manage": "Manage recipients ({{count}})",
735
+ "manageHelp": "Exclude and Include change the form. Nothing is saved until you press Save.",
736
+ "searchPlaceholder": "Search by name, username or address",
737
+ "serverFilter": "Server",
738
+ "allServers": "All servers",
739
+ "tabs": {
740
+ "receiving": "Receiving ({{count}})",
741
+ "excluded": "Excluded ({{count}})",
742
+ "noAddress": "No email address ({{count}})",
743
+ "suppressed": "Suppressed ({{count}})"
744
+ },
745
+ "selectAll": "Select all {{count}}",
746
+ "selectPerson": "Select {{name}}",
747
+ "selectedCount": "{{count}} selected",
748
+ "excludeSelected": "Exclude selected",
749
+ "includeSelected": "Include selected",
750
+ "noMatches": "Nobody here matches the search.",
751
+ "groupsNote": "People on different servers get different emails. Each group below only sees what was added to the servers named.",
752
+ "noAddressHelp": "Nothing was found for these people: no contact email, no Tracearr email, and nothing from their media server account. Jellyfin and Emby never send one, so their accounts only count when the username is an email address. Add a contact email here and it saves straight away.",
736
753
  "contactEmailFor": "Contact email for {{name}}",
737
754
  "saveEmail": "Save the contact email for {{name}}",
738
755
  "openUserPage": "Open {{name}}'s page",
739
756
  "unknownMember": "Unknown member",
740
757
  "account": "{{username}} on {{server}}",
758
+ "fromUsername": "from username",
741
759
  "extraAddress": "Extra address",
742
760
  "suppressed": "Suppressed",
743
- "suppressedHeading": "Suppressed ({{count}})",
744
761
  "suppressedHelp": "These addresses unsubscribed or were suppressed by hand under Email; the send skips them.",
745
762
  "exclude": "Exclude {{name}} from this newsletter",
746
763
  "excludeAction": "Exclude",
747
764
  "include": "Include {{name}} again",
748
765
  "includeAction": "Include",
749
- "excludedCount": "Excluded ({{count}})",
750
766
  "excludedHelp": "These people stay off this newsletter until you include them again. Other newsletters are unaffected.",
767
+ "notIncludableHelp": "{{count}} more can't be included because they are banned, pending, or not on a chosen server.",
751
768
  "excludedAfterSave": "Excluded after save",
752
769
  "includedAfterSave": "Included after save",
753
770
  "reasons": {
771
+ "excluded": "Excluded",
754
772
  "banned": "Banned",
755
- "pending": "Pending"
773
+ "pending": "Pending",
774
+ "noServer": "Not on a chosen server"
756
775
  },
757
776
  "emptyTitle": "Nobody will receive this newsletter",
758
- "emptyDescription": "Turn on Members above, or add an extra address, to reach someone."
777
+ "emptyDescription": "Turn on Everyone on the chosen servers, or add an address below."
759
778
  },
760
779
  "delivery": {
761
780
  "title": "Delivery",
@@ -793,7 +812,6 @@
793
812
  "fixDestination": "Choose a destination",
794
813
  "fixRecipients": "Go to recipients",
795
814
  "fixExternalUrl": "Set the external URL",
796
- "staleScope": "The recipient rows reflect the saved servers. Save to check the new selection.",
797
815
  "externalUrl": "External URL is set; hosted posters, the browser view and Tracearr links work.",
798
816
  "externalUrlFail": "No external URL: hosted posters, the browser view and Tracearr links are off.",
799
817
  "externalUrlNotHttps": "External URL is set over http: members get an unsubscribe link, but one-click unsubscribe needs https.",
@@ -808,7 +826,7 @@
808
826
  "recipients_one": "{{count}} recipient resolves to an address.",
809
827
  "recipients_other": "{{count}} recipients resolve to an address.",
810
828
  "recipientsFail": "Nobody resolves to an address yet.",
811
- "recipientsUnknown": "Recipients are unknown until the newsletter is saved.",
829
+ "recipientsChecking": "Checking who receives this newsletter.",
812
830
  "recipientsLoadFailed": "Recipients could not be loaded.",
813
831
  "dns": "Deliverability depends on SPF, DKIM and DMARC records for the sending domain.",
814
832
  "dnsLink": "Read how to set them"
@@ -856,7 +874,7 @@
856
874
  "send": {
857
875
  "title": "Send {{name}} now?",
858
876
  "previewing": "Working out who gets what...",
859
- "summary": "Send to {{count}} recipients: {{counts}} added between {{start}} and {{end}}",
877
+ "summary": "Send to {{count}} recipients: {{counts}} added between {{start}} and {{end}}. Each person gets their own copy and sees only their own address.",
860
878
  "nobody": "Nobody resolves to an address ({{missing}} members have none), so there is nothing to send.",
861
879
  "trimmed_one": "{{count}} item is held back as a +N more line so the email stays under the 102 KB at which Gmail clips it.",
862
880
  "trimmed_other": "{{count}} items are held back as +N more lines so the email stays under the 102 KB at which Gmail clips it.",
@@ -948,5 +966,57 @@
948
966
  "empty": "No timezone matches",
949
967
  "other": "Other"
950
968
  }
969
+ },
970
+ "requests": {
971
+ "label": "Requests",
972
+ "link": "Link Seerr",
973
+ "unlink": "Unlink",
974
+ "syncNow": "Sync now",
975
+ "enable": "Enable sync",
976
+ "disable": "Disable sync",
977
+ "paused": "Paused",
978
+ "menuLabel": "Seerr actions for {{server}}",
979
+ "syncedAgo": "Synced {{ago}}",
980
+ "neverSynced": "Not synced yet",
981
+ "counts": {
982
+ "requests_one": "{{count}} request",
983
+ "requests_other": "{{count}} requests",
984
+ "unmatchedMedia_one": "{{count}} unmatched title",
985
+ "unmatchedMedia_other": "{{count}} unmatched titles",
986
+ "unmatchedUsers_one": "{{count}} unmatched user",
987
+ "unmatchedUsers_other": "{{count}} unmatched users"
988
+ },
989
+ "needsKey": "Needs API key",
990
+ "lastError": "Last sync failed {{ago}}: {{error}}",
991
+ "lastErrorNoTime": "Last sync failed: {{error}}",
992
+ "dialog": {
993
+ "titleLink": "Link Seerr to {{server}}",
994
+ "titleEdit": "Edit Seerr link",
995
+ "description": "Tracearr reads request history from this Seerr. Nothing is written back.",
996
+ "url": "Seerr URL",
997
+ "apiKey": "API key",
998
+ "apiKeyHint": "Seerr → Settings → General → API key",
999
+ "apiKeyKeep": "Leave empty to keep the current key",
1000
+ "showKey": "Show API key",
1001
+ "hideKey": "Hide API key",
1002
+ "test": "Test",
1003
+ "testing": "Testing…",
1004
+ "save": "Save",
1005
+ "saveHint": "Test the connection before saving",
1006
+ "match": "{{title}} · Seerr {{version}} · {{type}} · this is {{server}}",
1007
+ "mismatch": "This Seerr is connected to a different server.",
1008
+ "mismatchIds": "Seerr reports {{remote}}; {{server}} is {{local}}.",
1009
+ "mismatchOther": "It matches {{other}}."
1010
+ },
1011
+ "confirmUnlink": {
1012
+ "title": "Unlink Seerr?",
1013
+ "body": "Mirrored request history for {{server}} will be deleted."
1014
+ },
1015
+ "toast": {
1016
+ "saved": "Request service saved",
1017
+ "removed": "Request service removed",
1018
+ "syncStarted": "Sync started",
1019
+ "failed": "Request service action failed: {{error}}"
1020
+ }
951
1021
  }
952
1022
  }
@@ -300,6 +300,7 @@
300
300
  "success": "Success"
301
301
  },
302
302
  "table": {
303
+ "goToPage": "",
303
304
  "pageOf": "Page {{page}} of {{total}}",
304
305
  "pagination": "Pagination",
305
306
  "selectAllOnPage": "Select all on page",
@@ -1,32 +1,33 @@
1
1
  {
2
- "dashboard": "Dashboard",
3
- "map": "Map",
4
- "history": "History",
5
- "stats": "Stats",
2
+ "accessControl": "Access Control",
6
3
  "activity": "Activity",
7
- "library": "Library",
8
- "users": "Users",
9
- "automations": "Automations",
10
- "violations": "Violations",
11
4
  "alerts": "Alerts",
12
- "settings": "Settings",
13
- "overview": "Overview",
14
- "quality": "Quality",
15
- "storage": "Storage",
16
- "watch": "Watch",
17
- "performance": "Performance",
18
- "devices": "Devices",
5
+ "automations": "Automations",
19
6
  "bandwidth": "Bandwidth",
7
+ "dashboard": "Dashboard",
8
+ "devices": "Devices",
9
+ "history": "History",
20
10
  "jobs": "Jobs",
21
- "accessControl": "Access Control",
11
+ "library": "Library",
12
+ "manage": "Manage",
13
+ "map": "Map",
22
14
  "media": "Media",
23
15
  "mediaBrowse": "Browse",
24
16
  "mediaGenres": "Genres",
17
+ "monitor": "Monitor",
18
+ "overview": "Overview",
19
+ "performance": "Performance",
20
+ "quality": "Quality",
21
+ "requests": "",
25
22
  "session": "Session",
23
+ "settings": "Settings",
24
+ "stats": "Stats",
25
+ "storage": "Storage",
26
+ "toggleSidebar": "Toggle navigation",
26
27
  "user": "User",
27
- "violation": "Violation",
28
- "monitor": "Monitor",
29
- "manage": "Manage",
30
28
  "userStats": "By User",
31
- "toggleSidebar": "Toggle navigation"
29
+ "users": "Users",
30
+ "violation": "Violation",
31
+ "violations": "Violations",
32
+ "watch": "Watch"
32
33
  }
@@ -74,6 +74,8 @@
74
74
  "jobAlreadyRunning": "Job already running",
75
75
  "jobLoadFailed": "Failed to load maintenance jobs",
76
76
  "jobStartFailed": "Failed to start job",
77
+ "mergeSuggestionDismissFailed": "",
78
+ "mergeSuggestionRestoreFailed": "",
77
79
  "mobileAccessDisableFailed": "Failed to disable mobile access",
78
80
  "mobileAccessEnableFailed": "Failed to enable mobile access",
79
81
  "newsletterDeleteFailed": "",
@@ -174,6 +176,8 @@
174
176
  "message": "Logged in successfully",
175
177
  "title": "Success"
176
178
  },
179
+ "mergeSuggestionDismissed": "",
180
+ "mergeSuggestionRestored": "",
177
181
  "mobileAccessDisabled": {
178
182
  "message": "All mobile sessions have been revoked",
179
183
  "title": "Mobile Access Disabled"