@tracearr/translations 2.3.0-beta.4 → 2.3.0-beta.6

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 (324) hide show
  1. package/README.md +1 -2
  2. package/dist/config.d.ts +288 -54
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.mobile.d.ts +288 -54
  5. package/dist/config.mobile.d.ts.map +1 -1
  6. package/dist/locales/af-ZA/common.json +282 -281
  7. package/dist/locales/af-ZA/nav.json +21 -20
  8. package/dist/locales/af-ZA/notifications.json +243 -239
  9. package/dist/locales/af-ZA/pages.json +1836 -1687
  10. package/dist/locales/af-ZA/settings.json +894 -823
  11. package/dist/locales/ar-SA/common.json +282 -281
  12. package/dist/locales/ar-SA/nav.json +21 -20
  13. package/dist/locales/ar-SA/notifications.json +246 -242
  14. package/dist/locales/ar-SA/pages.json +1855 -1706
  15. package/dist/locales/ar-SA/settings.json +896 -825
  16. package/dist/locales/ca-ES/common.json +282 -281
  17. package/dist/locales/ca-ES/nav.json +21 -20
  18. package/dist/locales/ca-ES/notifications.json +243 -239
  19. package/dist/locales/ca-ES/pages.json +1822 -1673
  20. package/dist/locales/ca-ES/settings.json +896 -825
  21. package/dist/locales/cs-CZ/common.json +282 -281
  22. package/dist/locales/cs-CZ/nav.json +21 -20
  23. package/dist/locales/cs-CZ/notifications.json +246 -242
  24. package/dist/locales/cs-CZ/pages.json +1856 -1707
  25. package/dist/locales/cs-CZ/settings.json +896 -825
  26. package/dist/locales/da-DK/common.json +282 -281
  27. package/dist/locales/da-DK/nav.json +21 -20
  28. package/dist/locales/da-DK/notifications.json +246 -242
  29. package/dist/locales/da-DK/pages.json +1855 -1706
  30. package/dist/locales/da-DK/settings.json +896 -825
  31. package/dist/locales/de-DE/common.json +282 -281
  32. package/dist/locales/de-DE/mobile.json +1 -1
  33. package/dist/locales/de-DE/nav.json +21 -20
  34. package/dist/locales/de-DE/notifications.json +246 -242
  35. package/dist/locales/de-DE/pages.json +1835 -1686
  36. package/dist/locales/de-DE/settings.json +896 -825
  37. package/dist/locales/el-GR/common.json +282 -281
  38. package/dist/locales/el-GR/nav.json +21 -20
  39. package/dist/locales/el-GR/notifications.json +246 -242
  40. package/dist/locales/el-GR/pages.json +1855 -1706
  41. package/dist/locales/el-GR/settings.json +896 -825
  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 +110 -18
  46. package/dist/locales/en/settings.json +43 -24
  47. package/dist/locales/es-ES/common.json +282 -281
  48. package/dist/locales/es-ES/nav.json +21 -20
  49. package/dist/locales/es-ES/notifications.json +246 -242
  50. package/dist/locales/es-ES/pages.json +1835 -1686
  51. package/dist/locales/es-ES/settings.json +896 -825
  52. package/dist/locales/fi-FI/common.json +282 -281
  53. package/dist/locales/fi-FI/nav.json +21 -20
  54. package/dist/locales/fi-FI/notifications.json +246 -242
  55. package/dist/locales/fi-FI/pages.json +1855 -1706
  56. package/dist/locales/fi-FI/settings.json +896 -825
  57. package/dist/locales/fr-FR/common.json +17 -16
  58. package/dist/locales/fr-FR/mobile.json +8 -8
  59. package/dist/locales/fr-FR/nav.json +6 -5
  60. package/dist/locales/fr-FR/notifications.json +246 -242
  61. package/dist/locales/fr-FR/pages.json +1856 -1707
  62. package/dist/locales/fr-FR/settings.json +902 -831
  63. package/dist/locales/he-IL/common.json +282 -281
  64. package/dist/locales/he-IL/nav.json +21 -20
  65. package/dist/locales/he-IL/notifications.json +243 -239
  66. package/dist/locales/he-IL/pages.json +1836 -1687
  67. package/dist/locales/he-IL/settings.json +894 -823
  68. package/dist/locales/hu-HU/common.json +282 -281
  69. package/dist/locales/hu-HU/nav.json +21 -20
  70. package/dist/locales/hu-HU/notifications.json +243 -239
  71. package/dist/locales/hu-HU/pages.json +1836 -1687
  72. package/dist/locales/hu-HU/settings.json +894 -823
  73. package/dist/locales/it-IT/common.json +282 -281
  74. package/dist/locales/it-IT/nav.json +21 -20
  75. package/dist/locales/it-IT/notifications.json +246 -242
  76. package/dist/locales/it-IT/pages.json +1831 -1682
  77. package/dist/locales/it-IT/settings.json +896 -825
  78. package/dist/locales/ja-JP/common.json +282 -281
  79. package/dist/locales/ja-JP/nav.json +21 -20
  80. package/dist/locales/ja-JP/notifications.json +246 -242
  81. package/dist/locales/ja-JP/pages.json +1855 -1706
  82. package/dist/locales/ja-JP/settings.json +896 -825
  83. package/dist/locales/ko-KR/common.json +283 -282
  84. package/dist/locales/ko-KR/mobile.json +6 -6
  85. package/dist/locales/ko-KR/nav.json +1 -0
  86. package/dist/locales/ko-KR/notifications.json +246 -242
  87. package/dist/locales/ko-KR/pages.json +1856 -1707
  88. package/dist/locales/ko-KR/settings.json +900 -829
  89. package/dist/locales/nl-NL/common.json +282 -281
  90. package/dist/locales/nl-NL/nav.json +21 -20
  91. package/dist/locales/nl-NL/notifications.json +246 -242
  92. package/dist/locales/nl-NL/pages.json +1849 -1700
  93. package/dist/locales/nl-NL/settings.json +898 -827
  94. package/dist/locales/no-NO/common.json +282 -281
  95. package/dist/locales/no-NO/nav.json +21 -20
  96. package/dist/locales/no-NO/notifications.json +246 -242
  97. package/dist/locales/no-NO/pages.json +1830 -1681
  98. package/dist/locales/no-NO/settings.json +896 -825
  99. package/dist/locales/pl-PL/common.json +282 -281
  100. package/dist/locales/pl-PL/nav.json +21 -20
  101. package/dist/locales/pl-PL/notifications.json +246 -242
  102. package/dist/locales/pl-PL/pages.json +1831 -1682
  103. package/dist/locales/pl-PL/settings.json +896 -825
  104. package/dist/locales/pt-BR/common.json +282 -281
  105. package/dist/locales/pt-BR/nav.json +21 -20
  106. package/dist/locales/pt-BR/notifications.json +246 -242
  107. package/dist/locales/pt-BR/pages.json +1845 -1696
  108. package/dist/locales/pt-BR/settings.json +896 -825
  109. package/dist/locales/pt-PT/common.json +282 -281
  110. package/dist/locales/pt-PT/nav.json +21 -20
  111. package/dist/locales/pt-PT/notifications.json +246 -242
  112. package/dist/locales/pt-PT/pages.json +1824 -1675
  113. package/dist/locales/pt-PT/settings.json +896 -825
  114. package/dist/locales/ro-RO/common.json +282 -281
  115. package/dist/locales/ro-RO/nav.json +21 -20
  116. package/dist/locales/ro-RO/notifications.json +246 -242
  117. package/dist/locales/ro-RO/pages.json +1831 -1682
  118. package/dist/locales/ro-RO/settings.json +896 -825
  119. package/dist/locales/ru-RU/common.json +282 -281
  120. package/dist/locales/ru-RU/nav.json +21 -20
  121. package/dist/locales/ru-RU/notifications.json +246 -242
  122. package/dist/locales/ru-RU/pages.json +1855 -1706
  123. package/dist/locales/ru-RU/settings.json +896 -825
  124. package/dist/locales/sr-SP/common.json +282 -281
  125. package/dist/locales/sr-SP/nav.json +21 -20
  126. package/dist/locales/sr-SP/notifications.json +243 -239
  127. package/dist/locales/sr-SP/pages.json +1836 -1687
  128. package/dist/locales/sr-SP/settings.json +894 -823
  129. package/dist/locales/sv-SE/common.json +282 -281
  130. package/dist/locales/sv-SE/nav.json +21 -20
  131. package/dist/locales/sv-SE/notifications.json +246 -242
  132. package/dist/locales/sv-SE/pages.json +1831 -1682
  133. package/dist/locales/sv-SE/settings.json +896 -825
  134. package/dist/locales/tr-TR/common.json +282 -281
  135. package/dist/locales/tr-TR/nav.json +21 -20
  136. package/dist/locales/tr-TR/notifications.json +243 -239
  137. package/dist/locales/tr-TR/pages.json +1837 -1688
  138. package/dist/locales/tr-TR/settings.json +894 -823
  139. package/dist/locales/uk-UA/common.json +5 -4
  140. package/dist/locales/uk-UA/nav.json +8 -1
  141. package/dist/locales/uk-UA/notifications.json +246 -242
  142. package/dist/locales/uk-UA/pages.json +166 -17
  143. package/dist/locales/uk-UA/settings.json +898 -827
  144. package/dist/locales/vi-VN/common.json +282 -281
  145. package/dist/locales/vi-VN/nav.json +21 -20
  146. package/dist/locales/vi-VN/notifications.json +243 -239
  147. package/dist/locales/vi-VN/pages.json +1836 -1687
  148. package/dist/locales/vi-VN/settings.json +894 -823
  149. package/dist/locales/zh-CN/common.json +282 -281
  150. package/dist/locales/zh-CN/nav.json +21 -20
  151. package/dist/locales/zh-CN/notifications.json +246 -242
  152. package/dist/locales/zh-CN/pages.json +1842 -1693
  153. package/dist/locales/zh-CN/settings.json +899 -828
  154. package/dist/locales/zh-TW/common.json +282 -281
  155. package/dist/locales/zh-TW/nav.json +21 -20
  156. package/dist/locales/zh-TW/notifications.json +246 -242
  157. package/dist/locales/zh-TW/pages.json +1848 -1699
  158. package/dist/locales/zh-TW/settings.json +897 -826
  159. package/package.json +2 -4
  160. package/src/locales/af-ZA/common.json +282 -281
  161. package/src/locales/af-ZA/nav.json +21 -20
  162. package/src/locales/af-ZA/notifications.json +243 -239
  163. package/src/locales/af-ZA/pages.json +1836 -1687
  164. package/src/locales/af-ZA/settings.json +894 -823
  165. package/src/locales/ar-SA/common.json +282 -281
  166. package/src/locales/ar-SA/nav.json +21 -20
  167. package/src/locales/ar-SA/notifications.json +246 -242
  168. package/src/locales/ar-SA/pages.json +1855 -1706
  169. package/src/locales/ar-SA/settings.json +896 -825
  170. package/src/locales/ca-ES/common.json +282 -281
  171. package/src/locales/ca-ES/nav.json +21 -20
  172. package/src/locales/ca-ES/notifications.json +243 -239
  173. package/src/locales/ca-ES/pages.json +1822 -1673
  174. package/src/locales/ca-ES/settings.json +896 -825
  175. package/src/locales/cs-CZ/common.json +282 -281
  176. package/src/locales/cs-CZ/nav.json +21 -20
  177. package/src/locales/cs-CZ/notifications.json +246 -242
  178. package/src/locales/cs-CZ/pages.json +1856 -1707
  179. package/src/locales/cs-CZ/settings.json +896 -825
  180. package/src/locales/da-DK/common.json +282 -281
  181. package/src/locales/da-DK/nav.json +21 -20
  182. package/src/locales/da-DK/notifications.json +246 -242
  183. package/src/locales/da-DK/pages.json +1855 -1706
  184. package/src/locales/da-DK/settings.json +896 -825
  185. package/src/locales/de-DE/common.json +282 -281
  186. package/src/locales/de-DE/mobile.json +1 -1
  187. package/src/locales/de-DE/nav.json +21 -20
  188. package/src/locales/de-DE/notifications.json +246 -242
  189. package/src/locales/de-DE/pages.json +1835 -1686
  190. package/src/locales/de-DE/settings.json +896 -825
  191. package/src/locales/el-GR/common.json +282 -281
  192. package/src/locales/el-GR/nav.json +21 -20
  193. package/src/locales/el-GR/notifications.json +246 -242
  194. package/src/locales/el-GR/pages.json +1855 -1706
  195. package/src/locales/el-GR/settings.json +896 -825
  196. package/src/locales/en/common.json +2 -1
  197. package/src/locales/en/nav.json +1 -0
  198. package/src/locales/en/notifications.json +4 -0
  199. package/src/locales/en/pages.json +110 -18
  200. package/src/locales/en/settings.json +43 -24
  201. package/src/locales/es-ES/common.json +282 -281
  202. package/src/locales/es-ES/nav.json +21 -20
  203. package/src/locales/es-ES/notifications.json +246 -242
  204. package/src/locales/es-ES/pages.json +1835 -1686
  205. package/src/locales/es-ES/settings.json +896 -825
  206. package/src/locales/fi-FI/common.json +282 -281
  207. package/src/locales/fi-FI/nav.json +21 -20
  208. package/src/locales/fi-FI/notifications.json +246 -242
  209. package/src/locales/fi-FI/pages.json +1855 -1706
  210. package/src/locales/fi-FI/settings.json +896 -825
  211. package/src/locales/fr-FR/common.json +17 -16
  212. package/src/locales/fr-FR/mobile.json +8 -8
  213. package/src/locales/fr-FR/nav.json +6 -5
  214. package/src/locales/fr-FR/notifications.json +246 -242
  215. package/src/locales/fr-FR/pages.json +1856 -1707
  216. package/src/locales/fr-FR/settings.json +902 -831
  217. package/src/locales/he-IL/common.json +282 -281
  218. package/src/locales/he-IL/nav.json +21 -20
  219. package/src/locales/he-IL/notifications.json +243 -239
  220. package/src/locales/he-IL/pages.json +1836 -1687
  221. package/src/locales/he-IL/settings.json +894 -823
  222. package/src/locales/hu-HU/common.json +282 -281
  223. package/src/locales/hu-HU/nav.json +21 -20
  224. package/src/locales/hu-HU/notifications.json +243 -239
  225. package/src/locales/hu-HU/pages.json +1836 -1687
  226. package/src/locales/hu-HU/settings.json +894 -823
  227. package/src/locales/it-IT/common.json +282 -281
  228. package/src/locales/it-IT/nav.json +21 -20
  229. package/src/locales/it-IT/notifications.json +246 -242
  230. package/src/locales/it-IT/pages.json +1831 -1682
  231. package/src/locales/it-IT/settings.json +896 -825
  232. package/src/locales/ja-JP/common.json +282 -281
  233. package/src/locales/ja-JP/nav.json +21 -20
  234. package/src/locales/ja-JP/notifications.json +246 -242
  235. package/src/locales/ja-JP/pages.json +1855 -1706
  236. package/src/locales/ja-JP/settings.json +896 -825
  237. package/src/locales/ko-KR/common.json +283 -282
  238. package/src/locales/ko-KR/mobile.json +6 -6
  239. package/src/locales/ko-KR/nav.json +1 -0
  240. package/src/locales/ko-KR/notifications.json +246 -242
  241. package/src/locales/ko-KR/pages.json +1856 -1707
  242. package/src/locales/ko-KR/settings.json +900 -829
  243. package/src/locales/nl-NL/common.json +282 -281
  244. package/src/locales/nl-NL/nav.json +21 -20
  245. package/src/locales/nl-NL/notifications.json +246 -242
  246. package/src/locales/nl-NL/pages.json +1849 -1700
  247. package/src/locales/nl-NL/settings.json +898 -827
  248. package/src/locales/no-NO/common.json +282 -281
  249. package/src/locales/no-NO/nav.json +21 -20
  250. package/src/locales/no-NO/notifications.json +246 -242
  251. package/src/locales/no-NO/pages.json +1830 -1681
  252. package/src/locales/no-NO/settings.json +896 -825
  253. package/src/locales/pl-PL/common.json +282 -281
  254. package/src/locales/pl-PL/nav.json +21 -20
  255. package/src/locales/pl-PL/notifications.json +246 -242
  256. package/src/locales/pl-PL/pages.json +1831 -1682
  257. package/src/locales/pl-PL/settings.json +896 -825
  258. package/src/locales/pt-BR/common.json +282 -281
  259. package/src/locales/pt-BR/nav.json +21 -20
  260. package/src/locales/pt-BR/notifications.json +246 -242
  261. package/src/locales/pt-BR/pages.json +1845 -1696
  262. package/src/locales/pt-BR/settings.json +896 -825
  263. package/src/locales/pt-PT/common.json +282 -281
  264. package/src/locales/pt-PT/nav.json +21 -20
  265. package/src/locales/pt-PT/notifications.json +246 -242
  266. package/src/locales/pt-PT/pages.json +1824 -1675
  267. package/src/locales/pt-PT/settings.json +896 -825
  268. package/src/locales/ro-RO/common.json +282 -281
  269. package/src/locales/ro-RO/nav.json +21 -20
  270. package/src/locales/ro-RO/notifications.json +246 -242
  271. package/src/locales/ro-RO/pages.json +1831 -1682
  272. package/src/locales/ro-RO/settings.json +896 -825
  273. package/src/locales/ru-RU/common.json +282 -281
  274. package/src/locales/ru-RU/nav.json +21 -20
  275. package/src/locales/ru-RU/notifications.json +246 -242
  276. package/src/locales/ru-RU/pages.json +1855 -1706
  277. package/src/locales/ru-RU/settings.json +896 -825
  278. package/src/locales/sr-SP/common.json +282 -281
  279. package/src/locales/sr-SP/nav.json +21 -20
  280. package/src/locales/sr-SP/notifications.json +243 -239
  281. package/src/locales/sr-SP/pages.json +1836 -1687
  282. package/src/locales/sr-SP/settings.json +894 -823
  283. package/src/locales/sv-SE/common.json +282 -281
  284. package/src/locales/sv-SE/nav.json +21 -20
  285. package/src/locales/sv-SE/notifications.json +246 -242
  286. package/src/locales/sv-SE/pages.json +1831 -1682
  287. package/src/locales/sv-SE/settings.json +896 -825
  288. package/src/locales/tr-TR/common.json +282 -281
  289. package/src/locales/tr-TR/nav.json +21 -20
  290. package/src/locales/tr-TR/notifications.json +243 -239
  291. package/src/locales/tr-TR/pages.json +1837 -1688
  292. package/src/locales/tr-TR/settings.json +894 -823
  293. package/src/locales/uk-UA/common.json +5 -4
  294. package/src/locales/uk-UA/nav.json +8 -1
  295. package/src/locales/uk-UA/notifications.json +246 -242
  296. package/src/locales/uk-UA/pages.json +166 -17
  297. package/src/locales/uk-UA/settings.json +898 -827
  298. package/src/locales/vi-VN/common.json +282 -281
  299. package/src/locales/vi-VN/nav.json +21 -20
  300. package/src/locales/vi-VN/notifications.json +243 -239
  301. package/src/locales/vi-VN/pages.json +1836 -1687
  302. package/src/locales/vi-VN/settings.json +894 -823
  303. package/src/locales/zh-CN/common.json +282 -281
  304. package/src/locales/zh-CN/nav.json +21 -20
  305. package/src/locales/zh-CN/notifications.json +246 -242
  306. package/src/locales/zh-CN/pages.json +1842 -1693
  307. package/src/locales/zh-CN/settings.json +899 -828
  308. package/src/locales/zh-TW/common.json +282 -281
  309. package/src/locales/zh-TW/nav.json +21 -20
  310. package/src/locales/zh-TW/notifications.json +246 -242
  311. package/src/locales/zh-TW/pages.json +1848 -1699
  312. package/src/locales/zh-TW/settings.json +897 -826
  313. package/dist/locales/en-US/common.json +0 -341
  314. package/dist/locales/en-US/mobile.json +0 -178
  315. package/dist/locales/en-US/nav.json +0 -32
  316. package/dist/locales/en-US/notifications.json +0 -299
  317. package/dist/locales/en-US/pages.json +0 -2148
  318. package/dist/locales/en-US/settings.json +0 -952
  319. package/src/locales/en-US/common.json +0 -341
  320. package/src/locales/en-US/mobile.json +0 -178
  321. package/src/locales/en-US/nav.json +0 -32
  322. package/src/locales/en-US/notifications.json +0 -299
  323. package/src/locales/en-US/pages.json +0 -2148
  324. package/src/locales/en-US/settings.json +0 -952
@@ -191,7 +191,8 @@
191
191
  "selectAllOnPage": "Select all on page",
192
192
  "selectRow": "Select row",
193
193
  "pageOf": "Page {{page}} of {{total}}",
194
- "pagination": "Pagination"
194
+ "pagination": "Pagination",
195
+ "goToPage": "Go to page {{page}}"
195
196
  },
196
197
  "filters": {
197
198
  "clearAll": "Clear all",
@@ -8,6 +8,7 @@
8
8
  "users": "Users",
9
9
  "automations": "Automations",
10
10
  "violations": "Violations",
11
+ "requests": "Requests",
11
12
  "alerts": "Alerts",
12
13
  "settings": "Settings",
13
14
  "overview": "Overview",
@@ -159,6 +159,8 @@
159
159
  "serverUserSplit": {
160
160
  "title": "Account split into a separate user"
161
161
  },
162
+ "mergeSuggestionDismissed": "Marked as not the same person",
163
+ "mergeSuggestionRestored": "Suggestion restored",
162
164
  "destinationSaved": "Destination saved",
163
165
  "destinationDeleted": "Destination deleted",
164
166
  "destinationTestSent": "Test notification sent",
@@ -215,6 +217,8 @@
215
217
  "plexDirectUrl": "plex.direct URLs are relay addresses that cannot be used here. Please use a direct IP address or hostname instead.",
216
218
  "userMergeFailed": "Failed to merge users",
217
219
  "serverUserSplitFailed": "Failed to split account",
220
+ "mergeSuggestionDismissFailed": "Could not dismiss the suggestion",
221
+ "mergeSuggestionRestoreFailed": "Could not restore the suggestion",
218
222
  "invalidClaimCode": {
219
223
  "title": "Invalid claim code",
220
224
  "message": "Please check the server logs"
@@ -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": {
@@ -2166,10 +2203,8 @@
2166
2203
  "watched": "Watched"
2167
2204
  },
2168
2205
  "wait": {
2169
- "pending": "still waiting",
2170
- "declined": "declined",
2171
- "landed": "landed {{duration}} later",
2172
- "sameMinute": "landed within a minute"
2206
+ "pending": "waiting",
2207
+ "declined": "declined"
2173
2208
  },
2174
2209
  "seasons": {
2175
2210
  "all": "All seasons",
@@ -2200,6 +2235,63 @@
2200
2235
  },
2201
2236
  "empty": "No requests yet"
2202
2237
  },
2203
- "unattributed": "Not on this server"
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
+ }
2204
2296
  }
2205
2297
  }
@@ -168,7 +168,7 @@
168
168
  "removeServer": "Remove Server",
169
169
  "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.",
170
170
  "editServer": "Edit Server",
171
- "editServerDesc": "Update the server name or connection URL.",
171
+ "editServerDesc": "Update the server name, connection URL or API key.",
172
172
  "serverColor": "Server Color",
173
173
  "serverColorDesc": "Used for visual attribution in multi-server view",
174
174
  "updating": "Updating...",
@@ -185,6 +185,7 @@
185
185
  "publicUrlHint": "The address members use to open this server. Newsletter links use it.",
186
186
  "apiKeyHelpJellyfin": "Find this in Jellyfin Dashboard → API Keys",
187
187
  "apiKeyHelpEmby": "Find this in Emby Server → API Keys",
188
+ "apiKeyKeepCurrent": "Leave blank to keep the current key",
188
189
  "plexServerPlaceholder": "My Plex Server",
189
190
  "plexServerUrlPlaceholder": "http://192.168.1.100:32400",
190
191
  "updateHint": "Or click Update below to save only the name change.",
@@ -544,7 +545,7 @@
544
545
  "empty": "No newsletters yet",
545
546
  "emptyDescription": "A newsletter emails the members of a server what was added recently.",
546
547
  "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.",
548
+ "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
549
  "noDestinationHint": "No email destination yet.",
549
550
  "addEmailDestination": "Add email destination",
550
551
  "enabled": "Enabled",
@@ -605,7 +606,7 @@
605
606
  "name": "Name",
606
607
  "nameHelp": "Only you see this. It names the newsletter in this list and in the send history.",
607
608
  "turnOnNow": "Turn it on now",
608
- "enabledHelp": "Off means the schedule does not run; Send now still works.",
609
+ "enabledHelp": "When on, the next scheduled run mails everyone listed under Recipients. Off means the schedule does not run; Send now still works.",
609
610
  "schedule": "Schedule",
610
611
  "scheduleKind": "Repeats",
611
612
  "kinds": {
@@ -713,49 +714,68 @@
713
714
  "recipients": {
714
715
  "title": "Recipients",
715
716
  "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",
717
+ "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.",
718
+ "ownerNote": "If you have an account on one of these servers you are included too. Open Manage recipients to exclude yourself.",
719
+ "extraTrigger": "Add people without an account ({{count}})",
720
+ "extraHelp": "For someone who isn't on your servers. Everyone shared on the chosen servers is already on the list above.",
721
+ "pasteAddresses": "Paste addresses, one per line or separated by commas",
723
722
  "addressLabel": "Address {{n}}",
724
723
  "nameLabel": "Name {{n}}",
725
724
  "namePlaceholder": "Name (optional)",
726
725
  "removeAddress": "Remove address {{n}}",
727
726
  "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
727
  "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.",
728
+ "willReceive": "Will receive {{count}}",
729
+ "excludedCount": "Excluded {{count}}",
730
+ "notIncludable": "{{count}} can't be included",
731
+ "noAddress": "No email address {{count}}",
732
+ "suppressedCount": "Suppressed {{count}}",
733
+ "joinedSinceLastSend": "{{count}} joined since the last send",
734
+ "newSinceLastSend": "New since last send",
735
+ "manage": "Manage recipients ({{count}})",
736
+ "manageHelp": "Exclude and Include change the form. Nothing is saved until you press Save.",
737
+ "searchPlaceholder": "Search by name, username or address",
738
+ "serverFilter": "Server",
739
+ "allServers": "All servers",
740
+ "tabs": {
741
+ "receiving": "Receiving ({{count}})",
742
+ "excluded": "Excluded ({{count}})",
743
+ "noAddress": "No email address ({{count}})",
744
+ "suppressed": "Suppressed ({{count}})"
745
+ },
746
+ "selectAll": "Select all {{count}}",
747
+ "selectPerson": "Select {{name}}",
748
+ "selectedCount": "{{count}} selected",
749
+ "excludeSelected": "Exclude selected",
750
+ "includeSelected": "Include selected",
751
+ "noMatches": "Nobody here matches the search.",
752
+ "groupsNote": "People on different servers get different emails. Each group below only sees what was added to the servers named.",
753
+ "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
754
  "contactEmailFor": "Contact email for {{name}}",
737
755
  "saveEmail": "Save the contact email for {{name}}",
738
756
  "openUserPage": "Open {{name}}'s page",
739
757
  "unknownMember": "Unknown member",
740
758
  "account": "{{username}} on {{server}}",
759
+ "fromUsername": "from username",
741
760
  "extraAddress": "Extra address",
742
761
  "suppressed": "Suppressed",
743
- "suppressedHeading": "Suppressed ({{count}})",
744
762
  "suppressedHelp": "These addresses unsubscribed or were suppressed by hand under Email; the send skips them.",
745
763
  "exclude": "Exclude {{name}} from this newsletter",
746
764
  "excludeAction": "Exclude",
747
765
  "include": "Include {{name}} again",
748
766
  "includeAction": "Include",
749
- "excludedCount": "Excluded ({{count}})",
750
767
  "excludedHelp": "These people stay off this newsletter until you include them again. Other newsletters are unaffected.",
768
+ "notIncludableHelp": "{{count}} more can't be included because they are banned, pending, or not on a chosen server.",
751
769
  "excludedAfterSave": "Excluded after save",
752
770
  "includedAfterSave": "Included after save",
753
771
  "reasons": {
772
+ "excluded": "Excluded",
754
773
  "banned": "Banned",
755
- "pending": "Pending"
774
+ "pending": "Pending",
775
+ "noServer": "Not on a chosen server"
756
776
  },
757
777
  "emptyTitle": "Nobody will receive this newsletter",
758
- "emptyDescription": "Turn on Members above, or add an extra address, to reach someone."
778
+ "emptyDescription": "Turn on Everyone on the chosen servers, or add an address below."
759
779
  },
760
780
  "delivery": {
761
781
  "title": "Delivery",
@@ -793,7 +813,6 @@
793
813
  "fixDestination": "Choose a destination",
794
814
  "fixRecipients": "Go to recipients",
795
815
  "fixExternalUrl": "Set the external URL",
796
- "staleScope": "The recipient rows reflect the saved servers. Save to check the new selection.",
797
816
  "externalUrl": "External URL is set; hosted posters, the browser view and Tracearr links work.",
798
817
  "externalUrlFail": "No external URL: hosted posters, the browser view and Tracearr links are off.",
799
818
  "externalUrlNotHttps": "External URL is set over http: members get an unsubscribe link, but one-click unsubscribe needs https.",
@@ -808,7 +827,7 @@
808
827
  "recipients_one": "{{count}} recipient resolves to an address.",
809
828
  "recipients_other": "{{count}} recipients resolve to an address.",
810
829
  "recipientsFail": "Nobody resolves to an address yet.",
811
- "recipientsUnknown": "Recipients are unknown until the newsletter is saved.",
830
+ "recipientsChecking": "Checking who receives this newsletter.",
812
831
  "recipientsLoadFailed": "Recipients could not be loaded.",
813
832
  "dns": "Deliverability depends on SPF, DKIM and DMARC records for the sending domain.",
814
833
  "dnsLink": "Read how to set them"
@@ -856,7 +875,7 @@
856
875
  "send": {
857
876
  "title": "Send {{name}} now?",
858
877
  "previewing": "Working out who gets what...",
859
- "summary": "Send to {{count}} recipients: {{counts}} added between {{start}} and {{end}}",
878
+ "summary": "Send to {{count}} recipients: {{counts}} added between {{start}} and {{end}}. Each person gets their own copy and sees only their own address.",
860
879
  "nobody": "Nobody resolves to an address ({{missing}} members have none), so there is nothing to send.",
861
880
  "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
881
  "trimmed_other": "{{count}} items are held back as +N more lines so the email stays under the 102 KB at which Gmail clips it.",