@tracearr/translations 2.1.0 → 2.2.0-beta.1

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 (191) hide show
  1. package/dist/config.d.ts +128 -106
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.mobile.d.ts +128 -106
  4. package/dist/config.mobile.d.ts.map +1 -1
  5. package/dist/locales/af-ZA/notifications.json +233 -226
  6. package/dist/locales/af-ZA/pages.json +61 -32
  7. package/dist/locales/af-ZA/settings.json +0 -26
  8. package/dist/locales/ar-SA/notifications.json +233 -226
  9. package/dist/locales/ar-SA/pages.json +61 -32
  10. package/dist/locales/ar-SA/settings.json +0 -26
  11. package/dist/locales/ca-ES/notifications.json +233 -226
  12. package/dist/locales/ca-ES/pages.json +61 -32
  13. package/dist/locales/ca-ES/settings.json +0 -26
  14. package/dist/locales/cs-CZ/notifications.json +233 -226
  15. package/dist/locales/cs-CZ/pages.json +61 -32
  16. package/dist/locales/cs-CZ/settings.json +0 -26
  17. package/dist/locales/da-DK/notifications.json +233 -226
  18. package/dist/locales/da-DK/pages.json +61 -32
  19. package/dist/locales/da-DK/settings.json +0 -26
  20. package/dist/locales/de-DE/notifications.json +233 -226
  21. package/dist/locales/de-DE/pages.json +61 -32
  22. package/dist/locales/de-DE/settings.json +0 -26
  23. package/dist/locales/el-GR/notifications.json +233 -226
  24. package/dist/locales/el-GR/pages.json +61 -32
  25. package/dist/locales/el-GR/settings.json +0 -26
  26. package/dist/locales/en/notifications.json +9 -2
  27. package/dist/locales/en/pages.json +60 -30
  28. package/dist/locales/en/settings.json +0 -26
  29. package/dist/locales/en-US/notifications.json +233 -226
  30. package/dist/locales/en-US/pages.json +61 -32
  31. package/dist/locales/en-US/settings.json +0 -26
  32. package/dist/locales/es-ES/notifications.json +233 -226
  33. package/dist/locales/es-ES/pages.json +61 -32
  34. package/dist/locales/es-ES/settings.json +0 -26
  35. package/dist/locales/fi-FI/notifications.json +233 -226
  36. package/dist/locales/fi-FI/pages.json +61 -32
  37. package/dist/locales/fi-FI/settings.json +0 -26
  38. package/dist/locales/fr-FR/notifications.json +233 -226
  39. package/dist/locales/fr-FR/pages.json +61 -32
  40. package/dist/locales/fr-FR/settings.json +0 -26
  41. package/dist/locales/he-IL/notifications.json +233 -226
  42. package/dist/locales/he-IL/pages.json +61 -32
  43. package/dist/locales/he-IL/settings.json +0 -26
  44. package/dist/locales/hu-HU/notifications.json +233 -226
  45. package/dist/locales/hu-HU/pages.json +61 -32
  46. package/dist/locales/hu-HU/settings.json +0 -26
  47. package/dist/locales/it-IT/notifications.json +233 -226
  48. package/dist/locales/it-IT/pages.json +61 -32
  49. package/dist/locales/it-IT/settings.json +0 -26
  50. package/dist/locales/ja-JP/notifications.json +233 -226
  51. package/dist/locales/ja-JP/pages.json +61 -32
  52. package/dist/locales/ja-JP/settings.json +0 -26
  53. package/dist/locales/ko-KR/notifications.json +233 -226
  54. package/dist/locales/ko-KR/pages.json +61 -32
  55. package/dist/locales/ko-KR/settings.json +0 -26
  56. package/dist/locales/nl-NL/notifications.json +233 -226
  57. package/dist/locales/nl-NL/pages.json +61 -32
  58. package/dist/locales/nl-NL/settings.json +0 -26
  59. package/dist/locales/no-NO/notifications.json +233 -226
  60. package/dist/locales/no-NO/pages.json +61 -32
  61. package/dist/locales/no-NO/settings.json +0 -26
  62. package/dist/locales/pl-PL/notifications.json +233 -226
  63. package/dist/locales/pl-PL/pages.json +61 -32
  64. package/dist/locales/pl-PL/settings.json +0 -26
  65. package/dist/locales/pt-BR/notifications.json +233 -226
  66. package/dist/locales/pt-BR/pages.json +61 -32
  67. package/dist/locales/pt-BR/settings.json +0 -26
  68. package/dist/locales/pt-PT/notifications.json +233 -226
  69. package/dist/locales/pt-PT/pages.json +61 -32
  70. package/dist/locales/pt-PT/settings.json +0 -26
  71. package/dist/locales/ro-RO/notifications.json +233 -226
  72. package/dist/locales/ro-RO/pages.json +61 -32
  73. package/dist/locales/ro-RO/settings.json +0 -26
  74. package/dist/locales/ru-RU/notifications.json +233 -226
  75. package/dist/locales/ru-RU/pages.json +61 -32
  76. package/dist/locales/ru-RU/settings.json +0 -26
  77. package/dist/locales/sr-SP/notifications.json +233 -226
  78. package/dist/locales/sr-SP/pages.json +61 -32
  79. package/dist/locales/sr-SP/settings.json +0 -26
  80. package/dist/locales/sv-SE/notifications.json +233 -226
  81. package/dist/locales/sv-SE/pages.json +61 -32
  82. package/dist/locales/sv-SE/settings.json +0 -26
  83. package/dist/locales/tr-TR/notifications.json +233 -226
  84. package/dist/locales/tr-TR/pages.json +61 -32
  85. package/dist/locales/tr-TR/settings.json +0 -26
  86. package/dist/locales/uk-UA/notifications.json +233 -226
  87. package/dist/locales/uk-UA/pages.json +61 -32
  88. package/dist/locales/uk-UA/settings.json +0 -26
  89. package/dist/locales/vi-VN/notifications.json +233 -226
  90. package/dist/locales/vi-VN/pages.json +61 -32
  91. package/dist/locales/vi-VN/settings.json +0 -26
  92. package/dist/locales/zh-CN/notifications.json +233 -226
  93. package/dist/locales/zh-CN/pages.json +61 -32
  94. package/dist/locales/zh-CN/settings.json +0 -26
  95. package/dist/locales/zh-TW/notifications.json +233 -226
  96. package/dist/locales/zh-TW/pages.json +61 -32
  97. package/dist/locales/zh-TW/settings.json +0 -26
  98. package/package.json +1 -1
  99. package/src/locales/af-ZA/notifications.json +233 -226
  100. package/src/locales/af-ZA/pages.json +61 -32
  101. package/src/locales/af-ZA/settings.json +0 -26
  102. package/src/locales/ar-SA/notifications.json +233 -226
  103. package/src/locales/ar-SA/pages.json +61 -32
  104. package/src/locales/ar-SA/settings.json +0 -26
  105. package/src/locales/ca-ES/notifications.json +233 -226
  106. package/src/locales/ca-ES/pages.json +61 -32
  107. package/src/locales/ca-ES/settings.json +0 -26
  108. package/src/locales/cs-CZ/notifications.json +233 -226
  109. package/src/locales/cs-CZ/pages.json +61 -32
  110. package/src/locales/cs-CZ/settings.json +0 -26
  111. package/src/locales/da-DK/notifications.json +233 -226
  112. package/src/locales/da-DK/pages.json +61 -32
  113. package/src/locales/da-DK/settings.json +0 -26
  114. package/src/locales/de-DE/notifications.json +233 -226
  115. package/src/locales/de-DE/pages.json +61 -32
  116. package/src/locales/de-DE/settings.json +0 -26
  117. package/src/locales/el-GR/notifications.json +233 -226
  118. package/src/locales/el-GR/pages.json +61 -32
  119. package/src/locales/el-GR/settings.json +0 -26
  120. package/src/locales/en/notifications.json +9 -2
  121. package/src/locales/en/pages.json +60 -30
  122. package/src/locales/en/settings.json +0 -26
  123. package/src/locales/en-US/notifications.json +233 -226
  124. package/src/locales/en-US/pages.json +61 -32
  125. package/src/locales/en-US/settings.json +0 -26
  126. package/src/locales/es-ES/notifications.json +233 -226
  127. package/src/locales/es-ES/pages.json +61 -32
  128. package/src/locales/es-ES/settings.json +0 -26
  129. package/src/locales/fi-FI/notifications.json +233 -226
  130. package/src/locales/fi-FI/pages.json +61 -32
  131. package/src/locales/fi-FI/settings.json +0 -26
  132. package/src/locales/fr-FR/notifications.json +233 -226
  133. package/src/locales/fr-FR/pages.json +61 -32
  134. package/src/locales/fr-FR/settings.json +0 -26
  135. package/src/locales/he-IL/notifications.json +233 -226
  136. package/src/locales/he-IL/pages.json +61 -32
  137. package/src/locales/he-IL/settings.json +0 -26
  138. package/src/locales/hu-HU/notifications.json +233 -226
  139. package/src/locales/hu-HU/pages.json +61 -32
  140. package/src/locales/hu-HU/settings.json +0 -26
  141. package/src/locales/it-IT/notifications.json +233 -226
  142. package/src/locales/it-IT/pages.json +61 -32
  143. package/src/locales/it-IT/settings.json +0 -26
  144. package/src/locales/ja-JP/notifications.json +233 -226
  145. package/src/locales/ja-JP/pages.json +61 -32
  146. package/src/locales/ja-JP/settings.json +0 -26
  147. package/src/locales/ko-KR/notifications.json +233 -226
  148. package/src/locales/ko-KR/pages.json +61 -32
  149. package/src/locales/ko-KR/settings.json +0 -26
  150. package/src/locales/nl-NL/notifications.json +233 -226
  151. package/src/locales/nl-NL/pages.json +61 -32
  152. package/src/locales/nl-NL/settings.json +0 -26
  153. package/src/locales/no-NO/notifications.json +233 -226
  154. package/src/locales/no-NO/pages.json +61 -32
  155. package/src/locales/no-NO/settings.json +0 -26
  156. package/src/locales/pl-PL/notifications.json +233 -226
  157. package/src/locales/pl-PL/pages.json +61 -32
  158. package/src/locales/pl-PL/settings.json +0 -26
  159. package/src/locales/pt-BR/notifications.json +233 -226
  160. package/src/locales/pt-BR/pages.json +61 -32
  161. package/src/locales/pt-BR/settings.json +0 -26
  162. package/src/locales/pt-PT/notifications.json +233 -226
  163. package/src/locales/pt-PT/pages.json +61 -32
  164. package/src/locales/pt-PT/settings.json +0 -26
  165. package/src/locales/ro-RO/notifications.json +233 -226
  166. package/src/locales/ro-RO/pages.json +61 -32
  167. package/src/locales/ro-RO/settings.json +0 -26
  168. package/src/locales/ru-RU/notifications.json +233 -226
  169. package/src/locales/ru-RU/pages.json +61 -32
  170. package/src/locales/ru-RU/settings.json +0 -26
  171. package/src/locales/sr-SP/notifications.json +233 -226
  172. package/src/locales/sr-SP/pages.json +61 -32
  173. package/src/locales/sr-SP/settings.json +0 -26
  174. package/src/locales/sv-SE/notifications.json +233 -226
  175. package/src/locales/sv-SE/pages.json +61 -32
  176. package/src/locales/sv-SE/settings.json +0 -26
  177. package/src/locales/tr-TR/notifications.json +233 -226
  178. package/src/locales/tr-TR/pages.json +61 -32
  179. package/src/locales/tr-TR/settings.json +0 -26
  180. package/src/locales/uk-UA/notifications.json +233 -226
  181. package/src/locales/uk-UA/pages.json +61 -32
  182. package/src/locales/uk-UA/settings.json +0 -26
  183. package/src/locales/vi-VN/notifications.json +233 -226
  184. package/src/locales/vi-VN/pages.json +61 -32
  185. package/src/locales/vi-VN/settings.json +0 -26
  186. package/src/locales/zh-CN/notifications.json +233 -226
  187. package/src/locales/zh-CN/pages.json +61 -32
  188. package/src/locales/zh-CN/settings.json +0 -26
  189. package/src/locales/zh-TW/notifications.json +233 -226
  190. package/src/locales/zh-TW/pages.json +61 -32
  191. package/src/locales/zh-TW/settings.json +0 -26
@@ -1,279 +1,286 @@
1
1
  {
2
+ "push": {
3
+ "newDevice": "New Device",
4
+ "serverDown": "Server Connection Lost",
5
+ "serverUp": "Server Back Online",
6
+ "streamEnded": "Stream Ended",
7
+ "streamStarted": "Stream Started",
8
+ "trustScoreChanged": "Trust Score Changed",
9
+ "violationDetected": "Sharing Violation Detected"
10
+ },
11
+ "settings": {
12
+ "allSeverity": "All (Low, Warning, High)",
13
+ "allTypes": "All Types",
14
+ "concurrentStreams": "Concurrent Streams",
15
+ "concurrentStreamsDesc": "When max stream limit is exceeded",
16
+ "enablePushNotifications": "Enable Push Notifications",
17
+ "enableQuietHours": "Enable Quiet Hours",
18
+ "highOnly": "High severity only",
19
+ "minimumSeverity": "Minimum Severity",
20
+ "newDevice": "New Device",
21
+ "newDeviceDesc": "When a new device connects",
22
+ "notificationEvents": "Notification Events",
23
+ "overrideForCritical": "Override for Critical",
24
+ "perHour": "Per Hour",
25
+ "perMinute": "Per Minute",
26
+ "quietHours": "Quiet Hours",
27
+ "rateLimit": "Current Rate Limit Status",
28
+ "rateLimiting": "Rate Limiting",
29
+ "serverDown": "Server Down",
30
+ "serverDownDesc": "When a media server goes offline",
31
+ "serverUp": "Server Up",
32
+ "serverUpDesc": "When a media server comes back online",
33
+ "streamStarted": "Stream Started",
34
+ "streamStartedDesc": "When a user starts watching",
35
+ "streamStopped": "Stream Stopped",
36
+ "streamStoppedDesc": "When a user stops watching",
37
+ "title": "Notification Settings",
38
+ "trustScoreChanged": "Trust Score Changed",
39
+ "trustScoreChangedDesc": "When a user's trust score changes",
40
+ "violationDetected": "Violation Detected",
41
+ "violationDetectedDesc": "When a sharing violation is triggered",
42
+ "violationFilters": "Violation Filters",
43
+ "warningAndHigh": "Warning & High only"
44
+ },
2
45
  "toast": {
3
- "success": {
4
- "serverAdded": {
5
- "title": "Server Added",
6
- "message": "{{name}} has been connected successfully"
7
- },
8
- "serverRemoved": {
9
- "title": "Server Removed",
10
- "message": "The server has been removed successfully"
46
+ "error": {
47
+ "acknowledgeFailed": "Failed to acknowledge violation",
48
+ "agentAddFailed": "Failed to add agent",
49
+ "agentRemoveFailed": "Failed to remove agent",
50
+ "agentTestFailed": "Test failed",
51
+ "agentUpdateFailed": "Failed to update agent",
52
+ "apiKeyGenerateFailed": "Failed to generate API key",
53
+ "authFailed": "Authentication failed",
54
+ "clipboardFailed": "Failed to copy to clipboard",
55
+ "copyFailed": "Could not copy to clipboard",
56
+ "destinationDeleteFailed": "Failed to delete destination: {{error}}",
57
+ "destinationInUse": "Still used by: {{rules}}",
58
+ "destinationSaveFailed": "Failed to save destination: {{error}}",
59
+ "destinationTestFailed": "Test failed: {{error}}",
60
+ "deviceRemoveFailed": "Failed to remove device",
61
+ "deviceRenameFailed": "Failed to rename device",
62
+ "dismissFailed": "Failed to dismiss violation",
63
+ "displayNameUpdateFailed": "Failed to update display name",
64
+ "invalidClaimCode": {
65
+ "message": "Please check the server logs",
66
+ "title": "Invalid claim code"
11
67
  },
12
- "serverSynced": {
13
- "title": "Server Synced",
14
- "message": "Server data has been synchronized"
68
+ "invalidUrl": "Invalid URL",
69
+ "jobAlreadyRunning": "Job already running",
70
+ "jobLoadFailed": "Failed to load maintenance jobs",
71
+ "jobStartFailed": "Failed to start job",
72
+ "mobileAccessDisableFailed": "Failed to disable mobile access",
73
+ "mobileAccessEnableFailed": "Failed to enable mobile access",
74
+ "pairTokenGenerateFailed": "Failed to generate pair token",
75
+ "plexDirectUrl": "plex.direct URLs are relay addresses that cannot be used here. Please use a direct IP address or hostname instead.",
76
+ "plexUnlinkFailed": "Failed to unlink Plex account",
77
+ "routingUpdateFailed": "Failed to update routing",
78
+ "ruleCreateFailed": "Failed to create rule",
79
+ "ruleDeleteFailed": "Failed to delete rule",
80
+ "ruleUpdateFailed": "Failed to update rule",
81
+ "serverAddFailed": "Failed to add server",
82
+ "serverRemoveFailed": "Failed to remove server",
83
+ "serverReorderFailed": "Failed to reorder servers",
84
+ "serverSyncFailed": "Failed to sync server",
85
+ "serverUpdateFailed": "Failed to update server",
86
+ "serverUrlUpdateFailed": "Failed to update server URL",
87
+ "serverUserSplitFailed": "Failed to split account",
88
+ "sessionsDeleteFailed": "Failed to delete sessions",
89
+ "sessionsRevokeFailed": "Failed to revoke sessions",
90
+ "settingsUpdateFailed": "Failed to update settings",
91
+ "streamTerminateFailed": "Failed to terminate stream",
92
+ "trustScoresResetFailed": "Failed to reset trust scores",
93
+ "userMergeFailed": "Failed to merge users",
94
+ "webhookTestFailed": "Webhook test failed"
95
+ },
96
+ "info": {
97
+ "serverOffline": {
98
+ "message": "{{name}} is unreachable",
99
+ "title": "Server Offline"
15
100
  },
16
- "settingsUpdated": {
17
- "title": "Settings Updated",
18
- "message": "Your settings have been saved"
101
+ "serverOnline": {
102
+ "message": "{{name}} is back online",
103
+ "title": "Server Online"
19
104
  },
20
- "tokenCopied": {
21
- "title": "Token Copied",
22
- "message": "Pair token copied to clipboard"
105
+ "streamStarted": {
106
+ "message": "{{user}} started watching {{media}}",
107
+ "title": "New Stream Started"
23
108
  },
24
- "violationAcknowledged": {
25
- "title": "Violation Acknowledged",
26
- "message": "The violation has been marked as acknowledged"
109
+ "streamStopped": {
110
+ "message": "{{user}} stopped watching",
111
+ "title": "Stream Stopped"
27
112
  },
28
- "violationDismissed": {
29
- "title": "Violation Dismissed",
30
- "message": "The violation has been dismissed"
113
+ "updateAvailable": {
114
+ "message": "Tracearr {{version}} is available",
115
+ "title": "Update Available"
31
116
  },
32
- "deviceRemoved": {
33
- "title": "Device Removed",
34
- "message": "The device has been disconnected"
117
+ "violationDetected": {
118
+ "message": "{{user}} triggered {{ruleType}}",
119
+ "title": "New Violation: {{ruleName}}"
120
+ }
121
+ },
122
+ "success": {
123
+ "agentAdded": {
124
+ "message": "The notification agent has been added",
125
+ "title": "Agent Added"
35
126
  },
36
- "deviceRenamed": {
37
- "title": "Device Renamed",
38
- "message": "The device name has been updated"
127
+ "agentRemoved": {
128
+ "message": "The notification agent has been removed",
129
+ "title": "Agent Removed"
39
130
  },
40
- "sessionsRevoked": {
41
- "title": "Sessions Revoked",
42
- "message": "All mobile sessions have been revoked"
131
+ "agentUpdated": {
132
+ "message": "The notification agent has been updated",
133
+ "title": "Agent Updated"
43
134
  },
44
- "loggedIn": {
45
- "title": "Success",
46
- "message": "Logged in successfully"
135
+ "apiKeyGenerated": {
136
+ "message": "Your new API key is ready to use",
137
+ "title": "API Key Generated"
47
138
  },
48
- "webhookTest": {
49
- "title": "Test Successful",
50
- "message": "Webhook is working correctly"
139
+ "claimCodeValidated": {
140
+ "message": "You can now proceed with setup",
141
+ "title": "Claim code validated"
51
142
  },
52
143
  "copiedToClipboard": {
53
144
  "title": "Copied to clipboard"
54
145
  },
55
- "plexAccountLinked": {
56
- "title": "Plex Account Linked",
57
- "message": "You can now add servers from your Plex account"
146
+ "destinationDeleted": "Destination deleted",
147
+ "destinationSaved": "Destination saved",
148
+ "destinationTestSent": "Test notification sent",
149
+ "deviceRemoved": {
150
+ "message": "The device has been disconnected",
151
+ "title": "Device Removed"
58
152
  },
59
- "plexAccountUnlinked": {
60
- "title": "Plex Account Unlinked",
61
- "message": "Your Plex account has been disconnected"
153
+ "deviceRenamed": {
154
+ "message": "The device name has been updated",
155
+ "title": "Device Renamed"
62
156
  },
63
- "agentAdded": {
64
- "title": "Agent Added",
65
- "message": "The notification agent has been added"
157
+ "displayNameUpdated": {
158
+ "title": "Display Name Updated"
66
159
  },
67
- "agentUpdated": {
68
- "title": "Agent Updated",
69
- "message": "The notification agent has been updated"
160
+ "jobCompleted": {
161
+ "message": "{{name}} finished successfully",
162
+ "title": "Job Completed"
70
163
  },
71
- "agentRemoved": {
72
- "title": "Agent Removed",
73
- "message": "The notification agent has been removed"
164
+ "loggedIn": {
165
+ "message": "Logged in successfully",
166
+ "title": "Success"
74
167
  },
75
- "jobCompleted": {
76
- "title": "Job Completed",
77
- "message": "{{name}} finished successfully"
168
+ "mobileAccessDisabled": {
169
+ "message": "All mobile sessions have been revoked",
170
+ "title": "Mobile Access Disabled"
171
+ },
172
+ "mobileAccessEnabled": {
173
+ "message": "Scan the QR code with the Tracearr mobile app to connect",
174
+ "title": "Mobile Access Enabled"
175
+ },
176
+ "pairTokenGenerated": {
177
+ "message": "Scan the QR code with your mobile device to pair",
178
+ "title": "Pair Token Generated"
179
+ },
180
+ "plexAccountLinked": {
181
+ "message": "You can now add servers from your Plex account",
182
+ "title": "Plex Account Linked"
183
+ },
184
+ "plexAccountUnlinked": {
185
+ "message": "Your Plex account has been disconnected",
186
+ "title": "Plex Account Unlinked"
78
187
  },
79
188
  "ruleCreated": {
80
- "title": "Rule Created",
81
- "message": "The rule has been created successfully"
189
+ "message": "The rule has been created successfully",
190
+ "title": "Rule Created"
191
+ },
192
+ "ruleDeleted": {
193
+ "message": "The rule has been deleted successfully",
194
+ "title": "Rule Deleted"
82
195
  },
83
196
  "ruleUpdated": {
84
- "title": "Rule Updated",
85
- "message": "The rule has been updated successfully"
197
+ "message": "The rule has been updated successfully",
198
+ "title": "Rule Updated"
86
199
  },
87
- "ruleDeleted": {
88
- "title": "Rule Deleted",
89
- "message": "The rule has been deleted successfully"
200
+ "serverAdded": {
201
+ "message": "{{name}} has been connected successfully",
202
+ "title": "Server Added"
90
203
  },
91
- "streamTerminated": {
92
- "title": "Stream Terminated",
93
- "message": "The playback session has been stopped"
204
+ "serverRemoved": {
205
+ "message": "The server has been removed successfully",
206
+ "title": "Server Removed"
94
207
  },
95
- "serverUrlUpdated": {
96
- "title": "Server URL Updated",
97
- "message": "The server URL has been updated successfully"
208
+ "serverSynced": {
209
+ "message": "Server data has been synchronized",
210
+ "title": "Server Synced"
98
211
  },
99
212
  "serverUpdated": {
100
- "title": "Server Updated",
101
- "message": "The server has been updated successfully"
213
+ "message": "The server has been updated successfully",
214
+ "title": "Server Updated"
102
215
  },
103
- "syncCompletedWithErrors": {
104
- "title": "Sync Completed with Errors"
216
+ "serverUrlUpdated": {
217
+ "message": "The server URL has been updated successfully",
218
+ "title": "Server URL Updated"
219
+ },
220
+ "serverUserSplit": {
221
+ "title": "Account split into a separate user"
105
222
  },
106
223
  "sessionsDeleted": {
107
- "title": "Sessions Deleted",
108
224
  "message_one": "{{count}} session deleted",
109
- "message_other": "{{count}} sessions deleted"
110
- },
111
- "violationsAcknowledged": {
112
- "title": "Violations Acknowledged",
113
- "message_one": "{{count}} violation acknowledged",
114
- "message_other": "{{count}} violations acknowledged"
115
- },
116
- "violationsDismissed": {
117
- "title": "Violations Dismissed",
118
- "message_one": "{{count}} violation dismissed",
119
- "message_other": "{{count}} violations dismissed"
225
+ "message_other": "{{count}} sessions deleted",
226
+ "title": "Sessions Deleted"
120
227
  },
121
- "apiKeyGenerated": {
122
- "title": "API Key Generated",
123
- "message": "Your new API key is ready to use"
228
+ "sessionsRevoked": {
229
+ "message": "All mobile sessions have been revoked",
230
+ "title": "Sessions Revoked"
124
231
  },
125
- "mobileAccessEnabled": {
126
- "title": "Mobile Access Enabled",
127
- "message": "Scan the QR code with the Tracearr mobile app to connect"
232
+ "settingsUpdated": {
233
+ "message": "Your settings have been saved",
234
+ "title": "Settings Updated"
128
235
  },
129
- "mobileAccessDisabled": {
130
- "title": "Mobile Access Disabled",
131
- "message": "All mobile sessions have been revoked"
236
+ "streamTerminated": {
237
+ "message": "The playback session has been stopped",
238
+ "title": "Stream Terminated"
132
239
  },
133
- "pairTokenGenerated": {
134
- "title": "Pair Token Generated",
135
- "message": "Scan the QR code with your mobile device to pair"
240
+ "syncCompletedWithErrors": {
241
+ "title": "Sync Completed with Errors"
136
242
  },
137
- "displayNameUpdated": {
138
- "title": "Display Name Updated"
243
+ "tokenCopied": {
244
+ "message": "Pair token copied to clipboard",
245
+ "title": "Token Copied"
139
246
  },
140
247
  "trustScoresReset": {
141
- "title": "Trust Scores Reset",
142
248
  "message_one": "{{count}} user reset to 100",
143
- "message_other": "{{count}} users reset to 100"
144
- },
145
- "claimCodeValidated": {
146
- "title": "Claim code validated",
147
- "message": "You can now proceed with setup"
249
+ "message_other": "{{count}} users reset to 100",
250
+ "title": "Trust Scores Reset"
148
251
  },
149
252
  "usersMerged": {
150
- "title": "Users merged",
151
- "rulesKept": "Kept target's version of: {{names}}"
253
+ "rulesKept": "Kept target's version of: {{names}}",
254
+ "title": "Users merged"
152
255
  },
153
- "serverUserSplit": {
154
- "title": "Account split into a separate user"
155
- }
156
- },
157
- "error": {
158
- "serverAddFailed": "Failed to add server",
159
- "serverRemoveFailed": "Failed to remove server",
160
- "serverSyncFailed": "Failed to sync server",
161
- "settingsUpdateFailed": "Failed to update settings",
162
- "copyFailed": "Could not copy to clipboard",
163
- "acknowledgeFailed": "Failed to acknowledge violation",
164
- "dismissFailed": "Failed to dismiss violation",
165
- "authFailed": "Authentication failed",
166
- "webhookTestFailed": "Webhook test failed",
167
- "ruleCreateFailed": "Failed to create rule",
168
- "ruleUpdateFailed": "Failed to update rule",
169
- "ruleDeleteFailed": "Failed to delete rule",
170
- "streamTerminateFailed": "Failed to terminate stream",
171
- "serverUrlUpdateFailed": "Failed to update server URL",
172
- "serverUpdateFailed": "Failed to update server",
173
- "serverReorderFailed": "Failed to reorder servers",
174
- "sessionsDeleteFailed": "Failed to delete sessions",
175
- "apiKeyGenerateFailed": "Failed to generate API key",
176
- "mobileAccessEnableFailed": "Failed to enable mobile access",
177
- "mobileAccessDisableFailed": "Failed to disable mobile access",
178
- "pairTokenGenerateFailed": "Failed to generate pair token",
179
- "deviceRemoveFailed": "Failed to remove device",
180
- "deviceRenameFailed": "Failed to rename device",
181
- "sessionsRevokeFailed": "Failed to revoke sessions",
182
- "displayNameUpdateFailed": "Failed to update display name",
183
- "trustScoresResetFailed": "Failed to reset trust scores",
184
- "routingUpdateFailed": "Failed to update routing",
185
- "clipboardFailed": "Failed to copy to clipboard",
186
- "plexUnlinkFailed": "Failed to unlink Plex account",
187
- "agentAddFailed": "Failed to add agent",
188
- "agentUpdateFailed": "Failed to update agent",
189
- "agentRemoveFailed": "Failed to remove agent",
190
- "agentTestFailed": "Test failed",
191
- "jobAlreadyRunning": "Job already running",
192
- "jobStartFailed": "Failed to start job",
193
- "jobLoadFailed": "Failed to load maintenance jobs",
194
- "invalidUrl": "Invalid URL",
195
- "plexDirectUrl": "plex.direct URLs are relay addresses that cannot be used here. Please use a direct IP address or hostname instead.",
196
- "userMergeFailed": "Failed to merge users",
197
- "serverUserSplitFailed": "Failed to split account",
198
- "invalidClaimCode": {
199
- "title": "Invalid claim code",
200
- "message": "Please check the server logs"
201
- }
202
- },
203
- "warning": {
204
- "jobFailed": {
205
- "title": "Job Failed",
206
- "message": "{{name}} encountered an error"
207
- }
208
- },
209
- "info": {
210
- "streamStarted": {
211
- "title": "New Stream Started",
212
- "message": "{{user}} started watching {{media}}"
213
- },
214
- "streamStopped": {
215
- "title": "Stream Stopped",
216
- "message": "{{user}} stopped watching"
256
+ "violationAcknowledged": {
257
+ "message": "The violation has been marked as acknowledged",
258
+ "title": "Violation Acknowledged"
217
259
  },
218
- "updateAvailable": {
219
- "title": "Update Available",
220
- "message": "Tracearr {{version}} is available"
260
+ "violationDismissed": {
261
+ "message": "The violation has been dismissed",
262
+ "title": "Violation Dismissed"
221
263
  },
222
- "serverOffline": {
223
- "title": "Server Offline",
224
- "message": "{{name}} is unreachable"
264
+ "violationsAcknowledged": {
265
+ "message_one": "{{count}} violation acknowledged",
266
+ "message_other": "{{count}} violations acknowledged",
267
+ "title": "Violations Acknowledged"
225
268
  },
226
- "serverOnline": {
227
- "title": "Server Online",
228
- "message": "{{name}} is back online"
269
+ "violationsDismissed": {
270
+ "message_one": "{{count}} violation dismissed",
271
+ "message_other": "{{count}} violations dismissed",
272
+ "title": "Violations Dismissed"
229
273
  },
230
- "violationDetected": {
231
- "title": "New Violation: {{ruleName}}",
232
- "message": "{{user}} triggered {{ruleType}}"
274
+ "webhookTest": {
275
+ "message": "Webhook is working correctly",
276
+ "title": "Test Successful"
277
+ }
278
+ },
279
+ "warning": {
280
+ "jobFailed": {
281
+ "message": "{{name}} encountered an error",
282
+ "title": "Job Failed"
233
283
  }
234
284
  }
235
- },
236
- "push": {
237
- "violationDetected": "Sharing Violation Detected",
238
- "streamStarted": "Stream Started",
239
- "streamEnded": "Stream Ended",
240
- "serverDown": "Server Connection Lost",
241
- "serverUp": "Server Back Online",
242
- "newDevice": "New Device",
243
- "trustScoreChanged": "Trust Score Changed"
244
- },
245
- "settings": {
246
- "title": "Notification Settings",
247
- "allSeverity": "All (Low, Warning, High)",
248
- "warningAndHigh": "Warning & High only",
249
- "highOnly": "High severity only",
250
- "allTypes": "All Types",
251
- "rateLimit": "Current Rate Limit Status",
252
- "perMinute": "Per Minute",
253
- "perHour": "Per Hour",
254
- "enablePushNotifications": "Enable Push Notifications",
255
- "notificationEvents": "Notification Events",
256
- "violationDetected": "Violation Detected",
257
- "violationDetectedDesc": "When a sharing violation is triggered",
258
- "streamStarted": "Stream Started",
259
- "streamStartedDesc": "When a user starts watching",
260
- "streamStopped": "Stream Stopped",
261
- "streamStoppedDesc": "When a user stops watching",
262
- "concurrentStreams": "Concurrent Streams",
263
- "concurrentStreamsDesc": "When max stream limit is exceeded",
264
- "newDevice": "New Device",
265
- "newDeviceDesc": "When a new device connects",
266
- "trustScoreChanged": "Trust Score Changed",
267
- "trustScoreChangedDesc": "When a user's trust score changes",
268
- "serverDown": "Server Down",
269
- "serverDownDesc": "When a media server goes offline",
270
- "serverUp": "Server Up",
271
- "serverUpDesc": "When a media server comes back online",
272
- "violationFilters": "Violation Filters",
273
- "minimumSeverity": "Minimum Severity",
274
- "quietHours": "Quiet Hours",
275
- "enableQuietHours": "Enable Quiet Hours",
276
- "overrideForCritical": "Override for Critical",
277
- "rateLimiting": "Rate Limiting"
278
285
  }
279
286
  }
@@ -332,7 +332,8 @@
332
332
  },
333
333
  "restoreTitle": "Restoring from backup...",
334
334
  "startingDescription": "The server is waiting for backend services to become available. This page will automatically refresh when everything is ready.",
335
- "startingTitle": "Tracearr is starting up..."
335
+ "startingTitle": "Tracearr is starting up...",
336
+ "unreachable": "Can't reach the Tracearr server right now. Live updates are paused and will resume on their own."
336
337
  },
337
338
  "map": {
338
339
  "allActivity": "All activity",
@@ -370,7 +371,6 @@
370
371
  "availability": {
371
372
  "added": "added {{date}}",
372
373
  "addedRemoved": "added {{added}} – removed {{removed}}",
373
- "removed": "removed {{date}}",
374
374
  "replaced": "replaced {{date}}"
375
375
  },
376
376
  "loadError": "Couldn't load this title",
@@ -660,6 +660,13 @@
660
660
  "blocked": "Blocked",
661
661
  "blockedCountries": "Blocked Countries",
662
662
  "blocklist": "Blocklist (block these countries)",
663
+ "builder": {
664
+ "destinationDisabled": "Disabled destination",
665
+ "errors": {
666
+ "sendNeedsDestination": "Pick at least one destination"
667
+ },
668
+ "noDestinations": "No destinations yet. Add one to send notifications."
669
+ },
663
670
  "chooseTemplate": "Choose a Rule Template",
664
671
  "chooseTemplateDesc": "Select a pre-configured rule type to get started quickly.",
665
672
  "classicRule": "Classic Rule",
@@ -720,6 +727,58 @@
720
727
  "weeks": "Weeks"
721
728
  },
722
729
  "settings": {
730
+ "destinations": {
731
+ "add": "Add destination",
732
+ "builtinNote": "Built in",
733
+ "clearSecret": "Clear",
734
+ "delete": "Delete",
735
+ "deleteConfirm": "Delete {{name}}? Rules that send to it will be blocked until they are updated.",
736
+ "description": "Where notifications go. Add as many as you like; each one picks the system events it receives, and rules can send to any of them.",
737
+ "empty": "No destinations yet.",
738
+ "events": {
739
+ "plugin_update_available": "Plugin update available",
740
+ "server_down": "Server down",
741
+ "server_up": "Server up",
742
+ "stream_started": "Stream started",
743
+ "stream_stopped": "Stream stopped",
744
+ "violation_detected": "Violation detected"
745
+ },
746
+ "eventsLabel": "Events",
747
+ "fields": {
748
+ "apiToken": "API token",
749
+ "apiUrl": "API URL",
750
+ "authToken": "Auth token",
751
+ "serverUrl": "Server URL",
752
+ "topic": "Topic",
753
+ "url": "URL",
754
+ "userKey": "User key",
755
+ "webhookUrl": "Webhook URL"
756
+ },
757
+ "hints": {
758
+ "authTokenOptional": "Optional for public topics"
759
+ },
760
+ "ownerOnly": "Only the owner can manage notification destinations.",
761
+ "pushNote": "Delivered to paired mobile devices; each device filters in its own notification settings.",
762
+ "reencrypt": "Re-enter this destination's secret",
763
+ "secretSet": "Set (leave blank to keep)",
764
+ "test": "Test",
765
+ "testHint": "Save first to test",
766
+ "testNeedsForm": "Fill in the required fields to test",
767
+ "title": "Notification destinations",
768
+ "types": {
769
+ "apprise": "Apprise",
770
+ "discord": "Discord",
771
+ "gotify": "Gotify",
772
+ "jsonWebhook": "Webhook (JSON)",
773
+ "ntfy": "ntfy",
774
+ "push": "Mobile push",
775
+ "pushover": "Pushover",
776
+ "webToast": "Browser toasts"
777
+ },
778
+ "usedBy": "Used by {{count}} rule",
779
+ "usedBy_other": "Used by {{count}} rules",
780
+ "webToastNote": "Toasts in this browser."
781
+ },
723
782
  "jobs": {
724
783
  "lastRun": "Last run",
725
784
  "nextRun": "Next run",
@@ -734,36 +793,6 @@
734
793
  "editDisplayNameDesc": "Change how this device appears in your device list",
735
794
  "updating": "Updating..."
736
795
  },
737
- "notifications": {
738
- "addAgent": "Add Notification Agent",
739
- "addAgentDesc": "Choose a notification service and configure it.",
740
- "agentType": "Agent Type",
741
- "allAgentsConfigured": "All notification agents are already configured.",
742
- "allEvents": "All Events",
743
- "currentlyConfigured": "{{name}} is currently configured.",
744
- "customEvents": "Custom Events",
745
- "description": "Configure notification channels and select which events each agent should receive.",
746
- "editAgent": "Edit Notification Agent",
747
- "editAgentDesc": "Update the notification agent configuration.",
748
- "eventSelection": "Event Selection",
749
- "loadingSettings": "Loading notification settings...",
750
- "noAgents": "No notification agents configured",
751
- "noAgentsHint": "Add an agent to receive notifications about sharing violations and stream events.",
752
- "noConfigNeeded": "No configuration needed for this agent.",
753
- "oneWebhookLimit": "Only one webhook agent can be active at a time.",
754
- "removeAgentDesc": "This will remove {{name}} and disable all its notifications. You can add it back later.",
755
- "removeAgentTitle": "Remove {{name}}?",
756
- "saveAgent": "Add Agent",
757
- "selectType": "Select type...",
758
- "testAgent": "Test Agent",
759
- "testingAgent": "Testing...",
760
- "title": "Notification Agents",
761
- "triggerEvents": "Trigger Events",
762
- "updateAgent": "Update Agent",
763
- "webhookAgents": "Webhook Agents",
764
- "webhookUrl": "Webhook URL",
765
- "webhookUrlPlaceholder": "https://..."
766
- },
767
796
  "plex": {
768
797
  "accountsLinked_one": "{{count}} Plex account linked",
769
798
  "accountsLinked_other": "{{count}} Plex accounts linked",