@tracearr/translations 2.8.3 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/dist/config.d.ts +976 -250
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.mobile.d.ts +976 -250
  4. package/dist/config.mobile.d.ts.map +1 -1
  5. package/dist/locales/af-ZA/common.json +15 -4
  6. package/dist/locales/af-ZA/nav.json +3 -5
  7. package/dist/locales/af-ZA/pages.json +587 -135
  8. package/dist/locales/af-ZA/settings.json +57 -21
  9. package/dist/locales/ar-SA/common.json +15 -4
  10. package/dist/locales/ar-SA/nav.json +3 -5
  11. package/dist/locales/ar-SA/pages.json +591 -143
  12. package/dist/locales/ar-SA/settings.json +57 -29
  13. package/dist/locales/ca-ES/common.json +15 -4
  14. package/dist/locales/ca-ES/nav.json +3 -5
  15. package/dist/locales/ca-ES/pages.json +587 -135
  16. package/dist/locales/ca-ES/settings.json +57 -21
  17. package/dist/locales/cs-CZ/common.json +15 -4
  18. package/dist/locales/cs-CZ/nav.json +3 -5
  19. package/dist/locales/cs-CZ/pages.json +589 -139
  20. package/dist/locales/cs-CZ/settings.json +57 -25
  21. package/dist/locales/da-DK/common.json +15 -4
  22. package/dist/locales/da-DK/nav.json +3 -5
  23. package/dist/locales/da-DK/pages.json +587 -135
  24. package/dist/locales/da-DK/settings.json +57 -21
  25. package/dist/locales/de-DE/common.json +15 -4
  26. package/dist/locales/de-DE/nav.json +3 -5
  27. package/dist/locales/de-DE/pages.json +587 -135
  28. package/dist/locales/de-DE/settings.json +57 -21
  29. package/dist/locales/el-GR/common.json +15 -4
  30. package/dist/locales/el-GR/nav.json +3 -5
  31. package/dist/locales/el-GR/pages.json +587 -135
  32. package/dist/locales/el-GR/settings.json +57 -21
  33. package/dist/locales/en/common.json +14 -3
  34. package/dist/locales/en/nav.json +2 -4
  35. package/dist/locales/en/pages.json +493 -134
  36. package/dist/locales/en/settings.json +23 -18
  37. package/dist/locales/es-ES/common.json +15 -4
  38. package/dist/locales/es-ES/nav.json +3 -5
  39. package/dist/locales/es-ES/pages.json +587 -135
  40. package/dist/locales/es-ES/settings.json +57 -21
  41. package/dist/locales/fi-FI/common.json +15 -4
  42. package/dist/locales/fi-FI/nav.json +3 -5
  43. package/dist/locales/fi-FI/pages.json +587 -135
  44. package/dist/locales/fi-FI/settings.json +57 -21
  45. package/dist/locales/fr-FR/common.json +15 -4
  46. package/dist/locales/fr-FR/nav.json +3 -5
  47. package/dist/locales/fr-FR/pages.json +587 -135
  48. package/dist/locales/fr-FR/settings.json +57 -21
  49. package/dist/locales/he-IL/common.json +15 -4
  50. package/dist/locales/he-IL/nav.json +3 -5
  51. package/dist/locales/he-IL/pages.json +588 -137
  52. package/dist/locales/he-IL/settings.json +57 -23
  53. package/dist/locales/hu-HU/common.json +15 -4
  54. package/dist/locales/hu-HU/nav.json +3 -5
  55. package/dist/locales/hu-HU/pages.json +587 -135
  56. package/dist/locales/hu-HU/settings.json +57 -21
  57. package/dist/locales/it-IT/common.json +15 -4
  58. package/dist/locales/it-IT/nav.json +3 -5
  59. package/dist/locales/it-IT/pages.json +587 -135
  60. package/dist/locales/it-IT/settings.json +57 -21
  61. package/dist/locales/ja-JP/common.json +15 -4
  62. package/dist/locales/ja-JP/nav.json +3 -5
  63. package/dist/locales/ja-JP/pages.json +586 -133
  64. package/dist/locales/ja-JP/settings.json +57 -19
  65. package/dist/locales/ko-KR/common.json +15 -4
  66. package/dist/locales/ko-KR/nav.json +3 -5
  67. package/dist/locales/ko-KR/pages.json +586 -133
  68. package/dist/locales/ko-KR/settings.json +57 -19
  69. package/dist/locales/nl-NL/common.json +15 -4
  70. package/dist/locales/nl-NL/nav.json +3 -5
  71. package/dist/locales/nl-NL/pages.json +587 -135
  72. package/dist/locales/nl-NL/settings.json +57 -21
  73. package/dist/locales/no-NO/common.json +15 -4
  74. package/dist/locales/no-NO/nav.json +3 -5
  75. package/dist/locales/no-NO/pages.json +587 -135
  76. package/dist/locales/no-NO/settings.json +57 -21
  77. package/dist/locales/pl-PL/common.json +15 -4
  78. package/dist/locales/pl-PL/nav.json +3 -5
  79. package/dist/locales/pl-PL/pages.json +589 -139
  80. package/dist/locales/pl-PL/settings.json +57 -25
  81. package/dist/locales/pt-BR/common.json +15 -4
  82. package/dist/locales/pt-BR/nav.json +3 -5
  83. package/dist/locales/pt-BR/pages.json +587 -135
  84. package/dist/locales/pt-BR/settings.json +57 -21
  85. package/dist/locales/pt-PT/common.json +15 -4
  86. package/dist/locales/pt-PT/nav.json +3 -5
  87. package/dist/locales/pt-PT/pages.json +587 -135
  88. package/dist/locales/pt-PT/settings.json +57 -21
  89. package/dist/locales/ro-RO/common.json +15 -4
  90. package/dist/locales/ro-RO/nav.json +3 -5
  91. package/dist/locales/ro-RO/pages.json +588 -137
  92. package/dist/locales/ro-RO/settings.json +57 -23
  93. package/dist/locales/ru-RU/common.json +15 -4
  94. package/dist/locales/ru-RU/nav.json +3 -5
  95. package/dist/locales/ru-RU/pages.json +589 -139
  96. package/dist/locales/ru-RU/settings.json +57 -25
  97. package/dist/locales/sr-SP/common.json +15 -4
  98. package/dist/locales/sr-SP/nav.json +3 -5
  99. package/dist/locales/sr-SP/pages.json +588 -137
  100. package/dist/locales/sr-SP/settings.json +57 -23
  101. package/dist/locales/sv-SE/common.json +15 -4
  102. package/dist/locales/sv-SE/nav.json +3 -5
  103. package/dist/locales/sv-SE/pages.json +587 -135
  104. package/dist/locales/sv-SE/settings.json +57 -21
  105. package/dist/locales/tr-TR/common.json +15 -4
  106. package/dist/locales/tr-TR/nav.json +3 -5
  107. package/dist/locales/tr-TR/pages.json +587 -135
  108. package/dist/locales/tr-TR/settings.json +57 -21
  109. package/dist/locales/uk-UA/common.json +15 -4
  110. package/dist/locales/uk-UA/nav.json +3 -5
  111. package/dist/locales/uk-UA/pages.json +589 -139
  112. package/dist/locales/uk-UA/settings.json +57 -25
  113. package/dist/locales/vi-VN/common.json +15 -4
  114. package/dist/locales/vi-VN/nav.json +3 -5
  115. package/dist/locales/vi-VN/pages.json +586 -133
  116. package/dist/locales/vi-VN/settings.json +57 -19
  117. package/dist/locales/zh-CN/common.json +15 -4
  118. package/dist/locales/zh-CN/nav.json +3 -5
  119. package/dist/locales/zh-CN/pages.json +586 -133
  120. package/dist/locales/zh-CN/settings.json +57 -19
  121. package/dist/locales/zh-TW/common.json +15 -4
  122. package/dist/locales/zh-TW/nav.json +3 -5
  123. package/dist/locales/zh-TW/pages.json +586 -133
  124. package/dist/locales/zh-TW/settings.json +57 -19
  125. package/package.json +1 -1
  126. package/src/locales/af-ZA/common.json +15 -4
  127. package/src/locales/af-ZA/nav.json +3 -5
  128. package/src/locales/af-ZA/pages.json +587 -135
  129. package/src/locales/af-ZA/settings.json +57 -21
  130. package/src/locales/ar-SA/common.json +15 -4
  131. package/src/locales/ar-SA/nav.json +3 -5
  132. package/src/locales/ar-SA/pages.json +591 -143
  133. package/src/locales/ar-SA/settings.json +57 -29
  134. package/src/locales/ca-ES/common.json +15 -4
  135. package/src/locales/ca-ES/nav.json +3 -5
  136. package/src/locales/ca-ES/pages.json +587 -135
  137. package/src/locales/ca-ES/settings.json +57 -21
  138. package/src/locales/cs-CZ/common.json +15 -4
  139. package/src/locales/cs-CZ/nav.json +3 -5
  140. package/src/locales/cs-CZ/pages.json +589 -139
  141. package/src/locales/cs-CZ/settings.json +57 -25
  142. package/src/locales/da-DK/common.json +15 -4
  143. package/src/locales/da-DK/nav.json +3 -5
  144. package/src/locales/da-DK/pages.json +587 -135
  145. package/src/locales/da-DK/settings.json +57 -21
  146. package/src/locales/de-DE/common.json +15 -4
  147. package/src/locales/de-DE/nav.json +3 -5
  148. package/src/locales/de-DE/pages.json +587 -135
  149. package/src/locales/de-DE/settings.json +57 -21
  150. package/src/locales/el-GR/common.json +15 -4
  151. package/src/locales/el-GR/nav.json +3 -5
  152. package/src/locales/el-GR/pages.json +587 -135
  153. package/src/locales/el-GR/settings.json +57 -21
  154. package/src/locales/en/common.json +14 -3
  155. package/src/locales/en/nav.json +2 -4
  156. package/src/locales/en/pages.json +493 -134
  157. package/src/locales/en/settings.json +23 -18
  158. package/src/locales/es-ES/common.json +15 -4
  159. package/src/locales/es-ES/nav.json +3 -5
  160. package/src/locales/es-ES/pages.json +587 -135
  161. package/src/locales/es-ES/settings.json +57 -21
  162. package/src/locales/fi-FI/common.json +15 -4
  163. package/src/locales/fi-FI/nav.json +3 -5
  164. package/src/locales/fi-FI/pages.json +587 -135
  165. package/src/locales/fi-FI/settings.json +57 -21
  166. package/src/locales/fr-FR/common.json +15 -4
  167. package/src/locales/fr-FR/nav.json +3 -5
  168. package/src/locales/fr-FR/pages.json +587 -135
  169. package/src/locales/fr-FR/settings.json +57 -21
  170. package/src/locales/he-IL/common.json +15 -4
  171. package/src/locales/he-IL/nav.json +3 -5
  172. package/src/locales/he-IL/pages.json +588 -137
  173. package/src/locales/he-IL/settings.json +57 -23
  174. package/src/locales/hu-HU/common.json +15 -4
  175. package/src/locales/hu-HU/nav.json +3 -5
  176. package/src/locales/hu-HU/pages.json +587 -135
  177. package/src/locales/hu-HU/settings.json +57 -21
  178. package/src/locales/it-IT/common.json +15 -4
  179. package/src/locales/it-IT/nav.json +3 -5
  180. package/src/locales/it-IT/pages.json +587 -135
  181. package/src/locales/it-IT/settings.json +57 -21
  182. package/src/locales/ja-JP/common.json +15 -4
  183. package/src/locales/ja-JP/nav.json +3 -5
  184. package/src/locales/ja-JP/pages.json +586 -133
  185. package/src/locales/ja-JP/settings.json +57 -19
  186. package/src/locales/ko-KR/common.json +15 -4
  187. package/src/locales/ko-KR/nav.json +3 -5
  188. package/src/locales/ko-KR/pages.json +586 -133
  189. package/src/locales/ko-KR/settings.json +57 -19
  190. package/src/locales/nl-NL/common.json +15 -4
  191. package/src/locales/nl-NL/nav.json +3 -5
  192. package/src/locales/nl-NL/pages.json +587 -135
  193. package/src/locales/nl-NL/settings.json +57 -21
  194. package/src/locales/no-NO/common.json +15 -4
  195. package/src/locales/no-NO/nav.json +3 -5
  196. package/src/locales/no-NO/pages.json +587 -135
  197. package/src/locales/no-NO/settings.json +57 -21
  198. package/src/locales/pl-PL/common.json +15 -4
  199. package/src/locales/pl-PL/nav.json +3 -5
  200. package/src/locales/pl-PL/pages.json +589 -139
  201. package/src/locales/pl-PL/settings.json +57 -25
  202. package/src/locales/pt-BR/common.json +15 -4
  203. package/src/locales/pt-BR/nav.json +3 -5
  204. package/src/locales/pt-BR/pages.json +587 -135
  205. package/src/locales/pt-BR/settings.json +57 -21
  206. package/src/locales/pt-PT/common.json +15 -4
  207. package/src/locales/pt-PT/nav.json +3 -5
  208. package/src/locales/pt-PT/pages.json +587 -135
  209. package/src/locales/pt-PT/settings.json +57 -21
  210. package/src/locales/ro-RO/common.json +15 -4
  211. package/src/locales/ro-RO/nav.json +3 -5
  212. package/src/locales/ro-RO/pages.json +588 -137
  213. package/src/locales/ro-RO/settings.json +57 -23
  214. package/src/locales/ru-RU/common.json +15 -4
  215. package/src/locales/ru-RU/nav.json +3 -5
  216. package/src/locales/ru-RU/pages.json +589 -139
  217. package/src/locales/ru-RU/settings.json +57 -25
  218. package/src/locales/sr-SP/common.json +15 -4
  219. package/src/locales/sr-SP/nav.json +3 -5
  220. package/src/locales/sr-SP/pages.json +588 -137
  221. package/src/locales/sr-SP/settings.json +57 -23
  222. package/src/locales/sv-SE/common.json +15 -4
  223. package/src/locales/sv-SE/nav.json +3 -5
  224. package/src/locales/sv-SE/pages.json +587 -135
  225. package/src/locales/sv-SE/settings.json +57 -21
  226. package/src/locales/tr-TR/common.json +15 -4
  227. package/src/locales/tr-TR/nav.json +3 -5
  228. package/src/locales/tr-TR/pages.json +587 -135
  229. package/src/locales/tr-TR/settings.json +57 -21
  230. package/src/locales/uk-UA/common.json +15 -4
  231. package/src/locales/uk-UA/nav.json +3 -5
  232. package/src/locales/uk-UA/pages.json +589 -139
  233. package/src/locales/uk-UA/settings.json +57 -25
  234. package/src/locales/vi-VN/common.json +15 -4
  235. package/src/locales/vi-VN/nav.json +3 -5
  236. package/src/locales/vi-VN/pages.json +586 -133
  237. package/src/locales/vi-VN/settings.json +57 -19
  238. package/src/locales/zh-CN/common.json +15 -4
  239. package/src/locales/zh-CN/nav.json +3 -5
  240. package/src/locales/zh-CN/pages.json +586 -133
  241. package/src/locales/zh-CN/settings.json +57 -19
  242. package/src/locales/zh-TW/common.json +15 -4
  243. package/src/locales/zh-TW/nav.json +3 -5
  244. package/src/locales/zh-TW/pages.json +586 -133
  245. package/src/locales/zh-TW/settings.json +57 -19
@@ -75,7 +75,6 @@
75
75
  },
76
76
  "me": {
77
77
  "last30": "Last 30 days",
78
- "vsPrior": "{{delta}} vs the 30 days before",
79
78
  "streakDetail": "days in a row with a play",
80
79
  "topTitles": "Your top titles",
81
80
  "episodes_one": "{{count}} episode",
@@ -92,7 +91,14 @@
92
91
  "requestedAgo": "Requested {{age}} ago",
93
92
  "seeAll": "See all"
94
93
  }
95
- }
94
+ },
95
+ "resources": {
96
+ "system": "System",
97
+ "perServer": "per server",
98
+ "average": "Avg:"
99
+ },
100
+ "unknownLocation": "Unknown location",
101
+ "unknownQuality": "Unknown quality"
96
102
  },
97
103
  "yourStats": {
98
104
  "titles": "Titles",
@@ -152,7 +158,6 @@
152
158
  "noUsersFound": "No users found.",
153
159
  "selectAllUsers_one": "Select {{count}} user",
154
160
  "selectAllUsers_other": "Select all {{count}} users",
155
- "serversColumn": "Servers",
156
161
  "resetTrustScore": "Reset Trust Score",
157
162
  "resetTrustScoreTitle_one": "Reset Trust Score for {{count}} User",
158
163
  "resetTrustScoreTitle_other": "Reset Trust Score for {{count}} Users",
@@ -213,13 +218,23 @@
213
218
  "suggestionsError": "Could not load merge suggestions",
214
219
  "filterHasAccessTo": "Has access to",
215
220
  "filterHasAccessToPlaceholder": "Any server",
216
- "filterHasAccessToHint": "Shows people with an active account on every server selected."
221
+ "filterHasAccessToHint": "Shows people with an active account on every server selected.",
222
+ "pendingLink_one": "{{count}} pending",
223
+ "pendingLink_other": "{{count}} pending",
224
+ "merged": "Merged",
225
+ "filterRoleAll": "Any role",
226
+ "filterSignInAll": "Any sign-in",
227
+ "filterPendingOnly": "Has pending violations",
228
+ "rowActions": "Actions for {{name}}",
229
+ "menuOpenViolations": "Open in Violations",
230
+ "signInOn": "On",
231
+ "signInOff": "Off",
232
+ "signedInAgo": "signed in {{relative}}",
233
+ "neverSignedIn": "never signed in"
217
234
  },
218
235
  "userDetail": {
219
236
  "backToUsers": "Back to Users",
220
237
  "userNotFound": "User not found",
221
- "userInfo": "User Info",
222
- "statistics": "Statistics",
223
238
  "sessions": "Sessions",
224
239
  "violations": "Violations",
225
240
  "terminationHistory": "Termination History",
@@ -269,20 +284,125 @@
269
284
  "viewAs": "View as",
270
285
  "viewAsLabel": "View Tracearr as {{name}}",
271
286
  "viewAsHint": "See Tracearr the way they do. It is read-only."
272
- }
287
+ },
288
+ "tabs": {
289
+ "access": "Access"
290
+ },
291
+ "cards": {
292
+ "vsPrior": "vs prior",
293
+ "perActiveDay": "{{value}} per active day",
294
+ "finished": "Finished",
295
+ "abandoned": "{{value}}% abandoned",
296
+ "transcodes_one": "{{count}} transcode",
297
+ "transcodes_other": "{{count}} transcodes",
298
+ "avgBitrate": "{{value}} average",
299
+ "daysActive": "Days Active",
300
+ "ofDays": "of {{count}}",
301
+ "streak": "{{count}}-day streak"
302
+ },
303
+ "overview": {
304
+ "playsOverTime": "Plays Over Time",
305
+ "priorRange": "Prior range",
306
+ "serverAverage": "Server average per person",
307
+ "byHour": "Plays by hour of day",
308
+ "peak": "peak {{hour}}",
309
+ "serverPeak": "server peak {{hour}}",
310
+ "what": "What",
311
+ "otherMedia": "Other",
312
+ "mostFinished": "Most Finished",
313
+ "finishedCount_one": "{{count}} finished",
314
+ "finishedCount_other": "{{count}} finished",
315
+ "where": "Where and On What",
316
+ "directPlayShare": "{{value}}% direct play",
317
+ "localShare": "{{value}}% of sessions on the local network",
318
+ "viewAllDevices": "View all devices and locations",
319
+ "allSessions": "All sessions"
320
+ },
321
+ "uniqueCount": "{{count}} unique",
322
+ "unknownCity": "Unknown City",
323
+ "unknownDevice": "Unknown Device",
324
+ "ipCount_one": "{{count}} IP",
325
+ "ipCount_other": "{{count}} IPs",
326
+ "viewAllMore": "View All ({{count}} more)",
327
+ "adjustTrustScoreDesc": "Set the trust score for @{{username}}. Range: 0–100."
273
328
  },
274
329
  "history": {
275
330
  "title": "History",
276
- "description": "Browse all streaming sessions with powerful filtering.",
277
331
  "totalPlays": "Total Plays",
278
332
  "uniqueTitles": "Unique Titles",
279
- "uniqueUsers": "Unique Users"
333
+ "uniqueUsers": "Unique Users",
334
+ "searchPlaceholder": "Search titles, users, locations, IPs...",
335
+ "columns": {
336
+ "duration": "Duration",
337
+ "progress": "Progress"
338
+ },
339
+ "location": {
340
+ "city": "City",
341
+ "region": "Region",
342
+ "country": "Country",
343
+ "continent": "Continent",
344
+ "postalCode": "Postal Code",
345
+ "coordinates": "Coordinates",
346
+ "asn": "ASN",
347
+ "asnOrg": "ASN Org"
348
+ },
349
+ "trailer": "Trailer",
350
+ "filters": {
351
+ "columns": "Columns",
352
+ "countries": "Countries",
353
+ "mediaType": "Media Type",
354
+ "types": "Types",
355
+ "network": "Network",
356
+ "remote": "Remote",
357
+ "trailers": "Trailers",
358
+ "selected_one": "{{count}} selected",
359
+ "selected_other": "{{count}} selected",
360
+ "clearUsers": "Clear all users",
361
+ "clearPlatforms": "Clear all platforms",
362
+ "clearCountries": "Clear all countries",
363
+ "clearFilters": "Clear all filters"
364
+ },
365
+ "detail": {
366
+ "watch": "Watch",
367
+ "summary": "Summary",
368
+ "segmentsShown_one": "Showing {{shown}} of {{count}} segment",
369
+ "segmentsShown_other": "Showing {{shown}} of {{count}} segments"
370
+ },
371
+ "stream": {
372
+ "notAvailable": "N/A",
373
+ "bitrateUnavailable": "Jellyfin and Emby do not expose individual video and audio bitrates during transcoding. Only the total stream bitrate is available.",
374
+ "stereo": "Stereo",
375
+ "mono": "Mono",
376
+ "channelCount_one": "{{count}}ch",
377
+ "channelCount_other": "{{count}}ch",
378
+ "noDetails": "No detailed stream information available",
379
+ "source": "Source",
380
+ "stream": "Stream",
381
+ "container": "Container",
382
+ "bitrate": "Bitrate",
383
+ "video": "Video",
384
+ "audio": "Audio",
385
+ "subtitles": "Subtitles",
386
+ "codec": "Codec",
387
+ "framerate": "Framerate",
388
+ "hdr": "HDR",
389
+ "profile": "Profile",
390
+ "color": "Color",
391
+ "channels": "Channels",
392
+ "language": "Language",
393
+ "sampleRate": "Sample Rate",
394
+ "format": "Format",
395
+ "forced": "Forced",
396
+ "transcodeDetails": "Transcode Details",
397
+ "hwDecode": "HW Decode",
398
+ "hwEncode": "HW Encode",
399
+ "speed": "Speed",
400
+ "throttled": "(throttled)"
401
+ }
280
402
  },
281
403
  "library": {
282
404
  "title": "Library",
283
- "description": "Top movies and shows on your server.",
284
405
  "overview": {
285
- "description": "Library health and growth metrics.",
286
406
  "lastUpdated": "Last updated:",
287
407
  "totalItems": "Total Items",
288
408
  "shows": "shows",
@@ -295,7 +415,6 @@
295
415
  "thisMonth": "this month",
296
416
  "thisYear": "this year",
297
417
  "serversNeedSync": "These servers need to sync:",
298
- "memberDescription": "What's new on the server.",
299
418
  "movieCount_one": "{{count}} movie",
300
419
  "movieCount_other": "{{count}} movies",
301
420
  "showCount_one": "{{count}} show",
@@ -307,8 +426,6 @@
307
426
  }
308
427
  },
309
428
  "quality": {
310
- "title": "Quality",
311
- "description": "Resolution and codec distribution.",
312
429
  "qualityEvolution": "Quality Evolution",
313
430
  "all": "All",
314
431
  "failedToLoad": "Failed to load quality data",
@@ -320,20 +437,35 @@
320
437
  "movieCount_other": "{{count}} movies",
321
438
  "episodeCount_one": "{{count}} episode",
322
439
  "episodeCount_other": "{{count}} episodes"
440
+ },
441
+ "codec": {
442
+ "title": "Codec Distribution",
443
+ "moviesAndTv": "Movies / TV",
444
+ "videoCodecs": "Video Codecs",
445
+ "audioCodecs": "Audio Codecs",
446
+ "audioChannels": "Audio Channels",
447
+ "noVideo": {
448
+ "title": "No video content",
449
+ "description": "Video codec data will appear once movies or TV shows are in your library."
450
+ },
451
+ "noMusic": {
452
+ "title": "No music content",
453
+ "description": "Music codec data will appear once music tracks are in your library."
454
+ }
455
+ },
456
+ "resolution": {
457
+ "tooltip": "<b>{{name}}</b>: {{value, number}} of {{total, number}} titles ({{percent}}%)",
458
+ "itemCount_one": "{{count, number}} item",
459
+ "itemCount_other": "{{count, number}} items",
460
+ "empty": "No {{type}} quality data available"
323
461
  }
324
462
  },
325
463
  "storage": {
326
- "title": "Storage",
327
- "description": "Storage usage, predictions, and optimization.",
328
464
  "totalStorage": "Total Storage",
329
465
  "growthRate": "Growth Rate",
330
466
  "duplicates": "Duplicates",
331
- "groups": "groups",
332
- "recoverable": "recoverable",
333
467
  "staleContent": "Stale Content",
334
468
  "staleContentDesc": "Content that may be candidates for removal.",
335
- "items": "items",
336
- "unused": "unused",
337
469
  "storageTrend": "Storage Trend",
338
470
  "confidence": "Confidence",
339
471
  "confidenceHigh": "High",
@@ -345,8 +477,6 @@
345
477
  "contentROIDesc": "Watch value per storage cost.",
346
478
  "avgHoursPerGB": "avg hours/GB",
347
479
  "insufficientData": "Insufficient data",
348
- "of": "of",
349
- "days": "days",
350
480
  "failedToLoad": "Failed to load storage data",
351
481
  "failedToLoadDesc": "Could not fetch storage data. Please try again.",
352
482
  "duplicatesTitle": "Duplicates",
@@ -364,15 +494,80 @@
364
494
  "mirror": "Mirror",
365
495
  "missingOnServer": "Missing on server",
366
496
  "missingOnServerHint": "The server still lists this file but cannot find it on disk. On Plex, empty the library trash to clear it.",
367
- "copyPath": "Copy file path"
497
+ "copyPath": "Copy file path",
498
+ "libraries": {
499
+ "title": "Libraries",
500
+ "columns": {
501
+ "library": "Library",
502
+ "share": "Share"
503
+ },
504
+ "serverFailed": "Couldn't load libraries from {{servers}}"
505
+ },
506
+ "stale": {
507
+ "tabs": {
508
+ "neverWatched": "Never Watched ({{count}})",
509
+ "stale": "Stale Content ({{count}})"
510
+ },
511
+ "empty": {
512
+ "title": "No stale content",
513
+ "description": "All content in your library has been watched recently."
514
+ },
515
+ "columns": {
516
+ "staleFor": "Stale For"
517
+ },
518
+ "allTypes": "All Types",
519
+ "threshold": {
520
+ "months3": "Unwatched for 3+ months",
521
+ "months6": "Unwatched for 6+ months",
522
+ "year1": "Unwatched for 1+ year",
523
+ "years2": "Unwatched for 2+ years"
524
+ },
525
+ "age": {
526
+ "days_one": "{{count}} day",
527
+ "days_other": "{{count}} days",
528
+ "months_one": "{{count}} month",
529
+ "months_other": "{{count}} months",
530
+ "years_one": "{{count}} year",
531
+ "years_other": "{{count}} years",
532
+ "yearsMonths": "{{years}}y {{months}}m"
533
+ }
534
+ },
535
+ "growthPerMonth": "+{{size}}/mo",
536
+ "dataDaysProgress": "{{days}} of {{min}} days",
537
+ "groupCount_one": "{{count}} group",
538
+ "groupCount_other": "{{count}} groups",
539
+ "recoverableSize": "{{size}} recoverable",
540
+ "itemCount_one": "{{count}} item",
541
+ "itemCount_other": "{{count}} items",
542
+ "unusedSize": "{{size}} unused",
543
+ "roi": {
544
+ "empty": {
545
+ "title": "No ROI data available",
546
+ "description": "ROI analysis requires watch history data to calculate content value."
547
+ },
548
+ "columns": {
549
+ "hoursPerGb": "Hours/GB",
550
+ "value": "Value"
551
+ },
552
+ "category": {
553
+ "low": "Low Value",
554
+ "moderate": "Moderate",
555
+ "high": "High Value"
556
+ },
557
+ "deletionSuggested": "(deletion suggested)"
558
+ },
559
+ "matchBadge": {
560
+ "exact": "Exact",
561
+ "likely": "Likely",
562
+ "possible": "Possible",
563
+ "fuzzy": "Fuzzy",
564
+ "versions": "Versions",
565
+ "label": "{{confidence}} ({{match}})"
566
+ }
368
567
  },
369
568
  "watch": {
370
- "title": "Watch Analytics",
371
- "description": "Viewing behavior and content engagement.",
372
569
  "watched": "Watched",
373
- "percentWatched": "% watched",
374
570
  "totalWatchTime": "Total Watch Time",
375
- "avgPerItem": "avg per item",
376
571
  "completed": "Completed",
377
572
  "peakHour": "Peak Hour",
378
573
  "viewingHours": "Viewing Hours",
@@ -386,7 +581,43 @@
386
581
  "noData": "No watch data yet",
387
582
  "noDataDesc": "Watch analytics will appear here once content has been played. Check back after some viewing activity.",
388
583
  "failedToLoad": "Failed to load watch analytics",
389
- "failedToLoadDesc": "Could not fetch watch data."
584
+ "failedToLoadDesc": "Could not fetch watch data.",
585
+ "mostWatched": "Most Watched",
586
+ "binge": {
587
+ "columns": {
588
+ "show": "Show",
589
+ "servers": "Servers",
590
+ "consecutive": "Consecutive",
591
+ "bingeScore": "Binge Score",
592
+ "maxPerDay": "Max/Day"
593
+ },
594
+ "empty": {
595
+ "title": "No binge patterns detected",
596
+ "description": "Watch multiple episodes in a row to see binge patterns."
597
+ },
598
+ "tiers": {
599
+ "highlyAddictive": "Highly Addictive",
600
+ "addictive": "Addictive",
601
+ "bingeable": "Bingeable",
602
+ "casual": "Casual Watch"
603
+ }
604
+ },
605
+ "percentWatchedValue": "{{pct}}% watched",
606
+ "avgPerItemValue": "{{value}} avg per item",
607
+ "top": {
608
+ "movies": {
609
+ "empty": {
610
+ "title": "No movie watch data",
611
+ "description": "Movie watch statistics will appear here once content has been played."
612
+ }
613
+ },
614
+ "shows": {
615
+ "empty": {
616
+ "title": "No TV show watch data",
617
+ "description": "TV show watch statistics will appear here once episodes have been played."
618
+ }
619
+ }
620
+ }
390
621
  },
391
622
  "emptyState": {
392
623
  "checkingStatus": "Checking library status...",
@@ -445,11 +676,64 @@
445
676
  "syncFailed_one": "Sync failed to start on {{count}} server. Check your permissions and server status.",
446
677
  "syncFailed_other": "Sync failed to start on {{count}} servers. Check your permissions and server status.",
447
678
  "syncStarted": "Library sync started."
679
+ },
680
+ "charts": {
681
+ "storage": {
682
+ "historical": "Historical",
683
+ "prediction": "Prediction",
684
+ "now": "Now",
685
+ "axis": "Storage ({{unit}})",
686
+ "range": "Range: {{low}} - {{high}} {{unit}}",
687
+ "empty": {
688
+ "title": "No storage data",
689
+ "description": "Storage history will appear here once available"
690
+ }
691
+ },
692
+ "qualityTimeline": {
693
+ "titles_one": "{{count, number}} title",
694
+ "titles_other": "{{count, number}} titles",
695
+ "empty": {
696
+ "title": "No quality data",
697
+ "description": "Quality evolution data will appear here once available"
698
+ }
699
+ },
700
+ "monthly": {
701
+ "watchCount": "Watch Count",
702
+ "uniqueItems_one": "Unique Items: {{count}}",
703
+ "uniqueItems_other": "Unique Items: {{count}}",
704
+ "empty": {
705
+ "title": "No monthly data",
706
+ "description": "Monthly watch trends will appear here once data is available"
707
+ }
708
+ },
709
+ "watchesValue_one": "Watches: {{count}}",
710
+ "watchesValue_other": "Watches: {{count}}",
711
+ "growth": {
712
+ "empty": {
713
+ "title": "No growth data",
714
+ "description": "Library growth data will appear here once available"
715
+ }
716
+ },
717
+ "hourly": {
718
+ "watches": "Watches",
719
+ "empty": {
720
+ "title": "No hourly data",
721
+ "description": "Watch distribution by hour will appear here once data is available"
722
+ }
723
+ },
724
+ "completion": {
725
+ "inProgress": "In Progress",
726
+ "notStarted": "Not Started",
727
+ "tooltip_one": "<b>{{count}}</b> item ({{percent}}%)",
728
+ "tooltip_other": "<b>{{count}}</b> items ({{percent}}%)",
729
+ "empty": {
730
+ "title": "No completion data",
731
+ "description": "Completion breakdown will appear here once watch data is available"
732
+ }
733
+ }
448
734
  }
449
735
  },
450
736
  "activity": {
451
- "title": "Activity",
452
- "description": "Play trends, patterns, and streaming behavior.",
453
737
  "playsOverTime": "Plays Over Time",
454
738
  "concurrentStreams": "Concurrent Streams",
455
739
  "engagementBreakdown": "Engagement Breakdown",
@@ -460,7 +744,16 @@
460
744
  "activityByDayOfWeek": "Activity by Day of Week",
461
745
  "activityByHourOfDay": "Activity by Hour of Day",
462
746
  "platforms": "Platforms",
463
- "streamQuality": "Stream Quality"
747
+ "streamQuality": "Stream Quality",
748
+ "noEngagementData": "No engagement data available",
749
+ "tierItems_one": "{{count}} item",
750
+ "tierItems_other": "{{count}} items",
751
+ "noPlatformData": "No platform data available",
752
+ "noQualityData": "No quality data available",
753
+ "noConcurrentData": "No concurrent stream data available",
754
+ "playsShare_one": "<b>{{count}}</b> play ({{percent}}%)",
755
+ "playsShare_other": "<b>{{count}}</b> plays ({{percent}}%)",
756
+ "peakConcurrent": "Peak Concurrent: {{value}}"
464
757
  },
465
758
  "violations": {
466
759
  "title": "Violations",
@@ -508,7 +801,8 @@
508
801
  "matched": "{{matched}}/{{total}} matched",
509
802
  "actual": "Actual",
510
803
  "relatedSessions_one": "{{count}} related session",
511
- "relatedSessions_other": "{{count}} related sessions"
804
+ "relatedSessions_other": "{{count}} related sessions",
805
+ "actionResults": "Actions"
512
806
  }
513
807
  },
514
808
  "automations": {
@@ -561,7 +855,10 @@
561
855
  "event": "Event"
562
856
  },
563
857
  "variables": {
564
- "user": { "username": "Account username", "identityName": "Person's name" },
858
+ "user": {
859
+ "username": "Account username",
860
+ "identityName": "Person's name"
861
+ },
565
862
  "session": {
566
863
  "mediaTitle": "Title playing",
567
864
  "mediaType": "Media type",
@@ -571,14 +868,21 @@
571
868
  "episodeNumber": "Episode number",
572
869
  "name": "Show and episode, or title"
573
870
  },
574
- "server": { "name": "Server name", "type": "Server type" },
871
+ "server": {
872
+ "name": "Server name",
873
+ "type": "Server type"
874
+ },
575
875
  "device": {
576
876
  "name": "Device name",
577
877
  "platform": "Platform",
578
878
  "product": "App",
579
879
  "location": "Location"
580
880
  },
581
- "trust": { "previous": "Previous score", "new": "New score", "reason": "Reason" },
881
+ "trust": {
882
+ "previous": "Previous score",
883
+ "new": "New score",
884
+ "reason": "Reason"
885
+ },
582
886
  "media": {
583
887
  "title": "Item title",
584
888
  "name": "Show and episode, or title",
@@ -1520,8 +1824,6 @@
1520
1824
  "recordsOnly": "Records runs only",
1521
1825
  "scope": {
1522
1826
  "global": "Global",
1523
- "person": "Person",
1524
- "account": "Account",
1525
1827
  "crossServer": "Cross-server"
1526
1828
  },
1527
1829
  "searchPlaceholder": "Search automations…",
@@ -2006,20 +2308,6 @@
2006
2308
  "violationsOff": "Violations off",
2007
2309
  "violationsOn": "Violations on",
2008
2310
  "webToastNote": "Toasts in this browser."
2009
- },
2010
- "jobs": {
2011
- "runNow": "Run Now",
2012
- "running": "Running...",
2013
- "lastRun": "Last run",
2014
- "nextRun": "Next run",
2015
- "schedule": "Schedule"
2016
- },
2017
- "mobile": {
2018
- "editDisplayName": "Edit Display Name",
2019
- "editDisplayNameDesc": "Change how this device appears in your device list",
2020
- "displayName": "Display Name",
2021
- "displayNamePlaceholder": "e.g., My iPhone",
2022
- "updating": "Updating..."
2023
2311
  }
2024
2312
  },
2025
2313
  "impersonation": {
@@ -2058,17 +2346,21 @@
2058
2346
  "allTypes": "All types",
2059
2347
  "heatmap": "Heatmap",
2060
2348
  "circles": "Circles",
2349
+ "viewMode": "Map view",
2061
2350
  "streams": "streams",
2062
2351
  "locations": "locations",
2063
2352
  "allActivity": "All activity",
2064
2353
  "basemapMissing": "Basemap not installed",
2065
2354
  "webglUnavailable": "WebGL is disabled in this browser",
2066
2355
  "webglHint": "The map needs WebGL. Enable it for this site in your browser settings.",
2067
- "badMounts": "Incorrect volume mounts detected — functionality is not guaranteed."
2356
+ "badMounts": "Incorrect volume mounts detected — functionality is not guaranteed.",
2357
+ "loadingData": "Loading map data...",
2358
+ "noDataForFilters": "No location data for current filters",
2359
+ "totalStreams": "Total streams",
2360
+ "streamCount_one": "{{count, number}} stream",
2361
+ "streamCount_other": "{{count, number}} streams"
2068
2362
  },
2069
2363
  "devices": {
2070
- "title": "Device Compatibility",
2071
- "description": "See which devices direct play vs transcode each codec.",
2072
2364
  "analyzedSessions": "Analyzed Sessions",
2073
2365
  "analyzedSessionsTooltip_one": "Sessions in device + codec combinations with at least {{count}} session and a known codec. Rare combinations and sessions with no codec info aren't counted.",
2074
2366
  "analyzedSessionsTooltip_other": "Sessions in device + codec combinations with at least {{count}} sessions and a known codec. Rare combinations and sessions with no codec info aren't counted.",
@@ -2090,14 +2382,9 @@
2090
2382
  "legend": "Legend:",
2091
2383
  "directPlayHigh": "≥80% Direct",
2092
2384
  "directPlayMid": "50-79%",
2093
- "directPlayLow": "<50%",
2094
- "topTranscodingUsers": "Top Transcoding Users",
2095
- "topTranscodingUsersDesc": "Users causing the most transcodes on your server.",
2096
- "noTranscodingUsers": "No transcoding users found"
2385
+ "directPlayLow": "<50%"
2097
2386
  },
2098
2387
  "statsBandwidth": {
2099
- "title": "Bandwidth",
2100
- "description": "Streaming bandwidth usage and bitrate analysis.",
2101
2388
  "dataTransferred": "Data Transferred",
2102
2389
  "avgBitrate": "Avg Bitrate",
2103
2390
  "avgBitrateMbps": "Avg Bitrate (Mbps)",
@@ -2106,15 +2393,44 @@
2106
2393
  "uniqueUsers": "Unique Users",
2107
2394
  "dailyUsage": "Daily Bandwidth Usage",
2108
2395
  "dailyUsageDesc": "Average bitrate and session count over time.",
2109
- "topUsers": "Top Bandwidth Users",
2110
- "topUsersDesc": "Users consuming the most bandwidth.",
2111
- "noData": "No bandwidth data available"
2396
+ "noData": "No bandwidth data available",
2397
+ "topPeopleTitle": "People by data",
2398
+ "topPeopleCaption": "Top five in this range"
2112
2399
  },
2113
2400
  "statsUsers": {
2114
2401
  "noActivity": "No activity yet",
2115
2402
  "noActivityDesc": "Start streaming to see your top users here.",
2116
- "top3": "Top 3",
2117
- "runnersUp": "Runners Up"
2403
+ "rankBy": "Rank by",
2404
+ "rank": {
2405
+ "hours": "Hours",
2406
+ "transcodes": "Transcode share",
2407
+ "requests": "Requests",
2408
+ "lastSeen": "Last seen"
2409
+ },
2410
+ "summary": {
2411
+ "active": "Active people",
2412
+ "activeOf": "of {{total}}",
2413
+ "topThreeShare": "Top three share",
2414
+ "transcoderShare": "Top transcoder share",
2415
+ "transcodesOf": "{{top}} of {{total}} transcodes",
2416
+ "quiet": "Quiet people",
2417
+ "quietDays": "{{days}} days or more"
2418
+ },
2419
+ "columns": {
2420
+ "person": "Person",
2421
+ "requests": "Requests",
2422
+ "trend": "Trend"
2423
+ },
2424
+ "requestsAllTime": "All time, not limited to the selected range. Requested, then watched.",
2425
+ "linkTitle": {
2426
+ "transcodes": "People ranked by transcode share.",
2427
+ "requests": "People ranked by requests."
2428
+ },
2429
+ "linkBody": {
2430
+ "transcodes": "Every person, highest share first.",
2431
+ "requests": "Every person, with how many of their requests were watched."
2432
+ },
2433
+ "openPeople": "Open people"
2118
2434
  },
2119
2435
  "plexCallback": {
2120
2436
  "authComplete": "Authentication complete",
@@ -2171,21 +2487,61 @@
2171
2487
  "selected": "selected",
2172
2488
  "snapshots": "snapshot(s)",
2173
2489
  "of": "of",
2174
- "logExplorerUnavailable": "Log explorer is only available in Docker environments"
2490
+ "logExplorerUnavailable": "Log explorer is only available in Docker environments",
2491
+ "tasksTab": {
2492
+ "loading": "Loading tasks...",
2493
+ "failedToLoad": "Failed to load task status",
2494
+ "jobQueues": "Job Queues",
2495
+ "jobQueuesDesc": "BullMQ background job processing queues",
2496
+ "description": "Description",
2497
+ "schedule": "Schedule",
2498
+ "completed": "Completed",
2499
+ "scheduled": "Scheduled",
2500
+ "processing": "Processing",
2501
+ "dlq_one": "DLQ: {{count}}",
2502
+ "dlq_other": "DLQ: {{count}}",
2503
+ "onDemand": "On demand",
2504
+ "notInitialized": "Not initialized",
2505
+ "backgroundServices": "Background Services",
2506
+ "backgroundServicesDesc": "Interval-based and event-driven background services",
2507
+ "interval": "Interval",
2508
+ "eventConnections": "Event Connections",
2509
+ "eventConnectionsDesc": "Open public API event connections (GET /api/v2/public/events) held by this process",
2510
+ "every": "Every {{interval}}",
2511
+ "eventDriven": "Event-driven",
2512
+ "queues": {
2513
+ "notifications": "Notifications",
2514
+ "notificationsDesc": "Discord, webhooks, push",
2515
+ "imports": "Imports",
2516
+ "importsDesc": "Tautulli / Jellystat history",
2517
+ "maintenance": "Maintenance",
2518
+ "maintenanceDesc": "Data normalization & cleanup",
2519
+ "librarySync": "Library Sync",
2520
+ "librarySyncDesc": "Library metadata sync",
2521
+ "versionCheck": "Version Check",
2522
+ "versionCheckDesc": "GitHub release checking",
2523
+ "inactivityCheck": "Inactivity Check",
2524
+ "inactivityCheckDesc": "Account inactivity monitoring",
2525
+ "backup": "Backup",
2526
+ "backupDesc": "Scheduled database backups"
2527
+ }
2528
+ },
2529
+ "clientErrors": {
2530
+ "title": "Browser Errors",
2531
+ "description": "Uncaught errors from this tab since it was loaded. Not persisted.",
2532
+ "empty": "No errors captured"
2533
+ }
2175
2534
  },
2176
2535
  "media": {
2177
2536
  "landing": {
2178
- "title": "Media",
2179
- "lens": {
2180
- "label": "Viewing as",
2181
- "allUsers": "All users"
2182
- },
2183
2537
  "shelves": {
2184
2538
  "recentlyAddedMovies": "Recently Added Movies",
2185
2539
  "recentlyAddedShows": "Recently Added Shows",
2186
2540
  "recentlyUpdated": "Recently Updated",
2187
2541
  "mostPopularMovies": "Most Popular Movies",
2188
2542
  "mostPopularShows": "Most Popular Shows",
2543
+ "recentlyAddedAlbums": "Recently Added Albums",
2544
+ "mostPlayedArtists": "Most Played Artists",
2189
2545
  "emptyRecentlyAdded": "Nothing added in this period",
2190
2546
  "emptyRecentlyUpdated": "Nothing replaced in this period",
2191
2547
  "emptyMostPopular": "No plays in this period",
@@ -2205,24 +2561,12 @@
2205
2561
  "newEpisodes_other": "{{count}} new episodes",
2206
2562
  "replacedEpisodes_one": "{{count}} episode replaced",
2207
2563
  "replacedEpisodes_other": "{{count}} episodes replaced",
2208
- "addedAgo": "added {{date}}",
2209
2564
  "addedCompactAgo": "added {{age}} ago",
2210
2565
  "newEpisodesChip_one": "{{count}} new",
2211
2566
  "newEpisodesChip_other": "{{count}} new"
2212
2567
  },
2213
2568
  "deadWeight": {
2214
- "title": "Dead Weight",
2215
- "summary_one": "{{count}} never-watched title · {{size}}",
2216
- "summary_other": "{{count}} never-watched titles · {{size}}",
2217
- "empty": "Nothing to reclaim - everything in your library has been watched",
2218
- "columns": {
2219
- "poster": "Poster",
2220
- "title": "Title",
2221
- "added": "Added",
2222
- "servers": "Servers"
2223
- },
2224
- "viewAll": "View all",
2225
- "viewAllTooltip": "Coming soon"
2569
+ "viewAll": "View all"
2226
2570
  },
2227
2571
  "loadError": "Couldn't load your media library"
2228
2572
  },
@@ -2233,30 +2577,52 @@
2233
2577
  "title": "Shows"
2234
2578
  },
2235
2579
  "genres": {
2236
- "title": "Genres",
2237
- "subtitle": "Plays and watch time by genre, across every server in view.",
2580
+ "cards": {
2581
+ "withPlays": "Genres with plays",
2582
+ "ofGenres": "of {{count}}",
2583
+ "topFiveShare": "Top five share",
2584
+ "largestRise": "Largest rise",
2585
+ "largestFall": "Largest fall"
2586
+ },
2587
+ "share": {
2588
+ "title": "Library share vs play share",
2589
+ "items": "Share of items",
2590
+ "plays": "Share of plays",
2591
+ "sortGap": "Gap",
2592
+ "showAll": "Show all {{count}}"
2593
+ },
2594
+ "trends": {
2595
+ "title": "Trend by genre"
2596
+ },
2238
2597
  "chart": {
2239
- "title": "Plays by genre",
2240
- "valueLabel": "Plays",
2241
2598
  "itemCount_one": "{{count}} title",
2242
- "itemCount_other": "{{count}} titles",
2243
- "ariaLabel": "Bar chart of plays by genre, sorted highest to lowest. The full breakdown is available in the table below."
2599
+ "itemCount_other": "{{count}} titles"
2244
2600
  },
2245
2601
  "table": {
2246
2602
  "title": "Genre breakdown",
2247
2603
  "columns": {
2248
2604
  "genre": "Genre",
2249
2605
  "plays": "Plays",
2250
- "watchTime": "Watch time"
2251
- },
2252
- "browseMovies": "Browse {{genre}} movies",
2253
- "browseShows": "Browse {{genre}} shows"
2606
+ "watchTime": "Watch time",
2607
+ "topViewer": "Top viewer"
2608
+ }
2254
2609
  },
2255
2610
  "empty": {
2256
2611
  "title": "No genres captured yet",
2257
2612
  "description": "Genres come from your media servers' metadata sync. Check back after the next sync completes."
2258
2613
  },
2259
- "loadError": "Couldn't load genres"
2614
+ "loadError": "Couldn't load genres",
2615
+ "sheet": {
2616
+ "description": "Plays, viewers and titles for this genre in the selected range",
2617
+ "whoPlays": "Who plays it",
2618
+ "ofCountedPlays": "of counted plays",
2619
+ "topTitles": "Top titles",
2620
+ "topArtists": "Top artists",
2621
+ "artistCount_one": "{{count}} artist",
2622
+ "artistCount_other": "{{count}} artists",
2623
+ "browse": "Browse this genre",
2624
+ "allGenresPeak": "all genres peak {{hour}}"
2625
+ }
2260
2626
  },
2261
2627
  "detail": {
2262
2628
  "title": "Media Details",
@@ -2265,8 +2631,7 @@
2265
2631
  },
2266
2632
  "notFound": {
2267
2633
  "title": "Media not found",
2268
- "message": "This title doesn't exist or you don't have access to it.",
2269
- "backLink": "Back to Media"
2634
+ "message": "This title doesn't exist or you don't have access to it."
2270
2635
  },
2271
2636
  "hero": {
2272
2637
  "loadError": "Couldn't load this title",
@@ -2293,11 +2658,15 @@
2293
2658
  "ariaLabel": "Watch statistics",
2294
2659
  "yourPlays": "Your plays",
2295
2660
  "yourWatchTime": "Your watch time",
2661
+ "yourListenTime": "Your listen time",
2296
2662
  "yourCompletion": "Your completion",
2297
2663
  "lastWatched": "Last watched",
2664
+ "lastPlayed": "Last played",
2298
2665
  "episodesOf": "{{watched}} of {{total}} episodes",
2299
2666
  "watchedByOthers_one": "Watched by {{count}} other person",
2300
2667
  "watchedByOthers_other": "Watched by {{count}} others",
2668
+ "playedByOthers_one": "Played by {{count}} other person",
2669
+ "playedByOthers_other": "Played by {{count}} others",
2301
2670
  "loadError": "Couldn't load watch statistics",
2302
2671
  "completionLoadError": "Couldn't load completion",
2303
2672
  "plays": {
@@ -2305,30 +2674,34 @@
2305
2674
  "caption": "resume chains, short sessions excluded"
2306
2675
  },
2307
2676
  "watchTime": {
2308
- "label": "Watch time",
2309
2677
  "detail": "+{{hours}}h in the last 30 days"
2310
2678
  },
2311
2679
  "viewers": {
2312
2680
  "label": "Viewers",
2681
+ "labelMusic": "Listeners",
2313
2682
  "detail": "across all servers"
2314
2683
  },
2315
2684
  "completion": {
2316
2685
  "label": "Avg completion",
2317
2686
  "detail": "{{finished}} of {{total}} finished every episode",
2318
- "detailMovie": "{{finished}} of {{total}} watched to completion"
2687
+ "detailMovie": "{{finished}} of {{total}} watched to completion",
2688
+ "detailMusic": "{{finished}} of {{total}} listened to the end"
2319
2689
  }
2320
2690
  },
2321
2691
  "watchers": {
2322
2692
  "title": "Watchers",
2693
+ "titleMusic": "Listeners",
2323
2694
  "loadError": "Couldn't load watchers",
2324
2695
  "empty": "No one has watched this yet.",
2696
+ "emptyMusic": "No one has played this yet.",
2325
2697
  "lastWatchedAgo": "{{age}} ago",
2326
2698
  "completionLabel": "{{percent}}% complete",
2327
2699
  "columns": {
2328
2700
  "plays": "Plays",
2329
2701
  "episodes": "Episodes",
2330
2702
  "completion": "Completion",
2331
- "lastWatched": "Last watched"
2703
+ "lastWatched": "Last watched",
2704
+ "lastPlayed": "Last played"
2332
2705
  }
2333
2706
  },
2334
2707
  "seasons": {
@@ -2345,21 +2718,36 @@
2345
2718
  "unwatched": "{{code}}: unwatched"
2346
2719
  }
2347
2720
  },
2721
+ "albums": {
2722
+ "title": "Albums",
2723
+ "loadError": "Couldn't load albums",
2724
+ "trackCount_one": "{{count}} track",
2725
+ "trackCount_other": "{{count}} tracks"
2726
+ },
2727
+ "album": {
2728
+ "kind": "Album",
2729
+ "loadError": "Couldn't load this album",
2730
+ "finishedCaption": "played to the end",
2731
+ "vsPrior30": "vs prior 30 days",
2732
+ "tracksCaption": "plays, all time",
2733
+ "columns": {
2734
+ "title": "Title",
2735
+ "length": "Length"
2736
+ }
2737
+ },
2348
2738
  "platforms": {
2349
2739
  "title": "Platforms",
2350
2740
  "loadError": "Couldn't load platform breakdown",
2351
2741
  "empty": "No platform data yet",
2352
2742
  "unknown": "Unknown",
2353
2743
  "columns": {
2354
- "plays": "Plays",
2355
- "watchTime": "Watch time"
2744
+ "plays": "Plays"
2356
2745
  }
2357
2746
  },
2358
2747
  "history": {
2359
2748
  "title": "History",
2360
2749
  "loadError": "Couldn't load history",
2361
2750
  "empty": "No plays recorded yet",
2362
- "watched": "Watched",
2363
2751
  "notWatched": "Not finished",
2364
2752
  "columns": {
2365
2753
  "duration": "Duration"
@@ -2389,26 +2777,16 @@
2389
2777
  "watchedByOthers": "Watched by others",
2390
2778
  "watchedByYou": "Watched by you"
2391
2779
  },
2392
- "tileLabel": {
2393
- "added": "added",
2394
- "plays": "plays",
2395
- "viewers": "viewers",
2396
- "resolution": "resolution"
2397
- },
2398
- "rankChip": "#{{rank}}",
2399
- "playsCompact_one": "{{compact}} play",
2400
- "playsCompact_other": "{{compact}} plays",
2401
2780
  "versionsChip": "{{count}}×",
2402
2781
  "versions_one": "{{count}} version",
2403
2782
  "versions_other": "{{count}} versions",
2783
+ "albumCount_one": "{{count}} album",
2784
+ "albumCount_other": "{{count}} albums",
2404
2785
  "moreServers": "+{{count}} more"
2405
2786
  },
2406
2787
  "grid": {
2407
2788
  "toolbar": {
2408
2789
  "ariaLabel": "Filters and sort",
2409
- "typeLabel": "Media type",
2410
- "moviesToggle": "Movies",
2411
- "showsToggle": "Shows",
2412
2790
  "searchPlaceholder": "Search titles…",
2413
2791
  "searchLabel": "Search titles",
2414
2792
  "filtersLabel": "Filters",
@@ -2469,13 +2847,8 @@
2469
2847
  "current": "Letter {{letter}}"
2470
2848
  },
2471
2849
  "loaderError": "Couldn't load more titles",
2472
- "retry": "Retry",
2473
- "clearJumpAction": "Clear",
2474
- "showingFrom": "Showing from {{letter}}",
2475
- "showAll": "Show all",
2476
2850
  "emptyFilter": "No titles match these filters",
2477
2851
  "emptySearch": "No titles match \"{{query}}\"",
2478
- "emptyAnchored": "Nothing at or after \"{{letter}}\" under these filters",
2479
2852
  "loadError": "Couldn't load the catalog"
2480
2853
  }
2481
2854
  },
@@ -2538,7 +2911,6 @@
2538
2911
  },
2539
2912
  "page": {
2540
2913
  "title": "Requests",
2541
- "description": "What people asked for, what landed, and whether they ever played it.",
2542
2914
  "failedToLoad": "Couldn't load request analytics",
2543
2915
  "notConfigured": "No Seerr linked",
2544
2916
  "notConfiguredDescription": "Link a Seerr instance to a server and this page fills in after the first sync.",
@@ -2576,19 +2948,6 @@
2576
2948
  "onDisk": "On disk",
2577
2949
  "untitled": "Untitled",
2578
2950
  "failedToLoad": "Couldn't load these requests"
2579
- },
2580
- "followThrough": {
2581
- "title": "Requesters",
2582
- "description": "Who asks for what, whether they watch it through, and whether anyone else does.",
2583
- "person": "Person",
2584
- "asked": "Asked",
2585
- "landed": "Landed",
2586
- "watched": "Watched",
2587
- "watchedByOthers": "Watched by others",
2588
- "medianWait": "Median wait",
2589
- "emptyTitle": "No requesters yet",
2590
- "emptyDescription": "Requests appear here once a linked Seerr has synced.",
2591
- "failedToLoad": "Couldn’t load requesters"
2592
2951
  }
2593
2952
  }
2594
2953
  }