@tracearr/translations 2.2.0-beta.2 → 2.2.0-beta.3
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.
- package/dist/config.d.ts +3349 -1105
- package/dist/config.d.ts.map +1 -1
- package/dist/config.mobile.d.ts +3349 -1105
- package/dist/config.mobile.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/locales/af-ZA/common.json +282 -250
- package/dist/locales/af-ZA/nav.json +21 -17
- package/dist/locales/af-ZA/notifications.json +22 -38
- package/dist/locales/af-ZA/pages.json +1170 -97
- package/dist/locales/af-ZA/settings.json +455 -426
- package/dist/locales/ar-SA/common.json +282 -250
- package/dist/locales/ar-SA/nav.json +21 -17
- package/dist/locales/ar-SA/notifications.json +22 -38
- package/dist/locales/ar-SA/pages.json +1170 -97
- package/dist/locales/ar-SA/settings.json +455 -426
- package/dist/locales/ca-ES/common.json +282 -250
- package/dist/locales/ca-ES/nav.json +21 -17
- package/dist/locales/ca-ES/notifications.json +22 -38
- package/dist/locales/ca-ES/pages.json +1170 -97
- package/dist/locales/ca-ES/settings.json +455 -426
- package/dist/locales/cs-CZ/common.json +282 -250
- package/dist/locales/cs-CZ/nav.json +21 -17
- package/dist/locales/cs-CZ/notifications.json +22 -38
- package/dist/locales/cs-CZ/pages.json +1170 -97
- package/dist/locales/cs-CZ/settings.json +455 -426
- package/dist/locales/da-DK/common.json +282 -250
- package/dist/locales/da-DK/nav.json +21 -17
- package/dist/locales/da-DK/notifications.json +22 -38
- package/dist/locales/da-DK/pages.json +1170 -97
- package/dist/locales/da-DK/settings.json +455 -426
- package/dist/locales/de-DE/common.json +282 -250
- package/dist/locales/de-DE/nav.json +21 -17
- package/dist/locales/de-DE/notifications.json +22 -38
- package/dist/locales/de-DE/pages.json +1170 -97
- package/dist/locales/de-DE/settings.json +455 -426
- package/dist/locales/el-GR/common.json +282 -250
- package/dist/locales/el-GR/nav.json +21 -17
- package/dist/locales/el-GR/notifications.json +22 -38
- package/dist/locales/el-GR/pages.json +1170 -97
- package/dist/locales/el-GR/settings.json +455 -426
- package/dist/locales/en/common.json +36 -4
- package/dist/locales/en/nav.json +6 -2
- package/dist/locales/en/notifications.json +13 -29
- package/dist/locales/en/pages.json +1187 -114
- package/dist/locales/en/settings.json +31 -2
- package/dist/locales/en-US/common.json +282 -250
- package/dist/locales/en-US/nav.json +21 -17
- package/dist/locales/en-US/notifications.json +22 -38
- package/dist/locales/en-US/pages.json +1170 -97
- package/dist/locales/en-US/settings.json +455 -426
- package/dist/locales/es-ES/common.json +282 -250
- package/dist/locales/es-ES/nav.json +21 -17
- package/dist/locales/es-ES/notifications.json +22 -38
- package/dist/locales/es-ES/pages.json +1170 -97
- package/dist/locales/es-ES/settings.json +455 -426
- package/dist/locales/fi-FI/common.json +282 -250
- package/dist/locales/fi-FI/nav.json +21 -17
- package/dist/locales/fi-FI/notifications.json +22 -38
- package/dist/locales/fi-FI/pages.json +1170 -97
- package/dist/locales/fi-FI/settings.json +455 -426
- package/dist/locales/fr-FR/common.json +282 -250
- package/dist/locales/fr-FR/nav.json +21 -17
- package/dist/locales/fr-FR/notifications.json +22 -38
- package/dist/locales/fr-FR/pages.json +1170 -97
- package/dist/locales/fr-FR/settings.json +455 -426
- package/dist/locales/he-IL/common.json +282 -250
- package/dist/locales/he-IL/nav.json +21 -17
- package/dist/locales/he-IL/notifications.json +22 -38
- package/dist/locales/he-IL/pages.json +1170 -97
- package/dist/locales/he-IL/settings.json +455 -426
- package/dist/locales/hu-HU/common.json +282 -250
- package/dist/locales/hu-HU/nav.json +21 -17
- package/dist/locales/hu-HU/notifications.json +22 -38
- package/dist/locales/hu-HU/pages.json +1170 -97
- package/dist/locales/hu-HU/settings.json +455 -426
- package/dist/locales/it-IT/common.json +282 -250
- package/dist/locales/it-IT/nav.json +21 -17
- package/dist/locales/it-IT/notifications.json +22 -38
- package/dist/locales/it-IT/pages.json +1170 -97
- package/dist/locales/it-IT/settings.json +455 -426
- package/dist/locales/ja-JP/common.json +282 -250
- package/dist/locales/ja-JP/nav.json +21 -17
- package/dist/locales/ja-JP/notifications.json +22 -38
- package/dist/locales/ja-JP/pages.json +1170 -97
- package/dist/locales/ja-JP/settings.json +455 -426
- package/dist/locales/ko-KR/common.json +282 -250
- package/dist/locales/ko-KR/nav.json +21 -17
- package/dist/locales/ko-KR/notifications.json +22 -38
- package/dist/locales/ko-KR/pages.json +1170 -97
- package/dist/locales/ko-KR/settings.json +455 -426
- package/dist/locales/nl-NL/common.json +282 -250
- package/dist/locales/nl-NL/nav.json +21 -17
- package/dist/locales/nl-NL/notifications.json +22 -38
- package/dist/locales/nl-NL/pages.json +1170 -97
- package/dist/locales/nl-NL/settings.json +455 -426
- package/dist/locales/no-NO/common.json +282 -250
- package/dist/locales/no-NO/nav.json +21 -17
- package/dist/locales/no-NO/notifications.json +22 -38
- package/dist/locales/no-NO/pages.json +1170 -97
- package/dist/locales/no-NO/settings.json +455 -426
- package/dist/locales/pl-PL/common.json +282 -250
- package/dist/locales/pl-PL/nav.json +21 -17
- package/dist/locales/pl-PL/notifications.json +22 -38
- package/dist/locales/pl-PL/pages.json +1170 -97
- package/dist/locales/pl-PL/settings.json +455 -426
- package/dist/locales/pt-BR/common.json +282 -250
- package/dist/locales/pt-BR/nav.json +21 -17
- package/dist/locales/pt-BR/notifications.json +22 -38
- package/dist/locales/pt-BR/pages.json +1170 -97
- package/dist/locales/pt-BR/settings.json +455 -426
- package/dist/locales/pt-PT/common.json +282 -250
- package/dist/locales/pt-PT/nav.json +21 -17
- package/dist/locales/pt-PT/notifications.json +22 -38
- package/dist/locales/pt-PT/pages.json +1170 -97
- package/dist/locales/pt-PT/settings.json +455 -426
- package/dist/locales/ro-RO/common.json +282 -250
- package/dist/locales/ro-RO/nav.json +21 -17
- package/dist/locales/ro-RO/notifications.json +22 -38
- package/dist/locales/ro-RO/pages.json +1170 -97
- package/dist/locales/ro-RO/settings.json +455 -426
- package/dist/locales/ru-RU/common.json +282 -250
- package/dist/locales/ru-RU/nav.json +21 -17
- package/dist/locales/ru-RU/notifications.json +22 -38
- package/dist/locales/ru-RU/pages.json +1170 -97
- package/dist/locales/ru-RU/settings.json +455 -426
- package/dist/locales/sr-SP/common.json +282 -250
- package/dist/locales/sr-SP/nav.json +21 -17
- package/dist/locales/sr-SP/notifications.json +22 -38
- package/dist/locales/sr-SP/pages.json +1170 -97
- package/dist/locales/sr-SP/settings.json +455 -426
- package/dist/locales/sv-SE/common.json +282 -250
- package/dist/locales/sv-SE/nav.json +21 -17
- package/dist/locales/sv-SE/notifications.json +22 -38
- package/dist/locales/sv-SE/pages.json +1170 -97
- package/dist/locales/sv-SE/settings.json +455 -426
- package/dist/locales/tr-TR/common.json +282 -250
- package/dist/locales/tr-TR/nav.json +21 -17
- package/dist/locales/tr-TR/notifications.json +22 -38
- package/dist/locales/tr-TR/pages.json +1170 -97
- package/dist/locales/tr-TR/settings.json +455 -426
- package/dist/locales/uk-UA/common.json +282 -250
- package/dist/locales/uk-UA/nav.json +21 -17
- package/dist/locales/uk-UA/notifications.json +22 -38
- package/dist/locales/uk-UA/pages.json +1170 -97
- package/dist/locales/uk-UA/settings.json +455 -426
- package/dist/locales/vi-VN/common.json +282 -250
- package/dist/locales/vi-VN/nav.json +21 -17
- package/dist/locales/vi-VN/notifications.json +22 -38
- package/dist/locales/vi-VN/pages.json +1170 -97
- package/dist/locales/vi-VN/settings.json +455 -426
- package/dist/locales/zh-CN/common.json +282 -250
- package/dist/locales/zh-CN/nav.json +21 -17
- package/dist/locales/zh-CN/notifications.json +22 -38
- package/dist/locales/zh-CN/pages.json +1170 -97
- package/dist/locales/zh-CN/settings.json +455 -426
- package/dist/locales/zh-TW/common.json +282 -250
- package/dist/locales/zh-TW/nav.json +21 -17
- package/dist/locales/zh-TW/notifications.json +22 -38
- package/dist/locales/zh-TW/pages.json +1170 -97
- package/dist/locales/zh-TW/settings.json +455 -426
- package/package.json +1 -1
- package/src/index.ts +2 -2
- package/src/locales/af-ZA/common.json +282 -250
- package/src/locales/af-ZA/nav.json +21 -17
- package/src/locales/af-ZA/notifications.json +22 -38
- package/src/locales/af-ZA/pages.json +1170 -97
- package/src/locales/af-ZA/settings.json +455 -426
- package/src/locales/ar-SA/common.json +282 -250
- package/src/locales/ar-SA/nav.json +21 -17
- package/src/locales/ar-SA/notifications.json +22 -38
- package/src/locales/ar-SA/pages.json +1170 -97
- package/src/locales/ar-SA/settings.json +455 -426
- package/src/locales/ca-ES/common.json +282 -250
- package/src/locales/ca-ES/nav.json +21 -17
- package/src/locales/ca-ES/notifications.json +22 -38
- package/src/locales/ca-ES/pages.json +1170 -97
- package/src/locales/ca-ES/settings.json +455 -426
- package/src/locales/cs-CZ/common.json +282 -250
- package/src/locales/cs-CZ/nav.json +21 -17
- package/src/locales/cs-CZ/notifications.json +22 -38
- package/src/locales/cs-CZ/pages.json +1170 -97
- package/src/locales/cs-CZ/settings.json +455 -426
- package/src/locales/da-DK/common.json +282 -250
- package/src/locales/da-DK/nav.json +21 -17
- package/src/locales/da-DK/notifications.json +22 -38
- package/src/locales/da-DK/pages.json +1170 -97
- package/src/locales/da-DK/settings.json +455 -426
- package/src/locales/de-DE/common.json +282 -250
- package/src/locales/de-DE/nav.json +21 -17
- package/src/locales/de-DE/notifications.json +22 -38
- package/src/locales/de-DE/pages.json +1170 -97
- package/src/locales/de-DE/settings.json +455 -426
- package/src/locales/el-GR/common.json +282 -250
- package/src/locales/el-GR/nav.json +21 -17
- package/src/locales/el-GR/notifications.json +22 -38
- package/src/locales/el-GR/pages.json +1170 -97
- package/src/locales/el-GR/settings.json +455 -426
- package/src/locales/en/common.json +36 -4
- package/src/locales/en/nav.json +6 -2
- package/src/locales/en/notifications.json +13 -29
- package/src/locales/en/pages.json +1187 -114
- package/src/locales/en/settings.json +31 -2
- package/src/locales/en-US/common.json +282 -250
- package/src/locales/en-US/nav.json +21 -17
- package/src/locales/en-US/notifications.json +22 -38
- package/src/locales/en-US/pages.json +1170 -97
- package/src/locales/en-US/settings.json +455 -426
- package/src/locales/es-ES/common.json +282 -250
- package/src/locales/es-ES/nav.json +21 -17
- package/src/locales/es-ES/notifications.json +22 -38
- package/src/locales/es-ES/pages.json +1170 -97
- package/src/locales/es-ES/settings.json +455 -426
- package/src/locales/fi-FI/common.json +282 -250
- package/src/locales/fi-FI/nav.json +21 -17
- package/src/locales/fi-FI/notifications.json +22 -38
- package/src/locales/fi-FI/pages.json +1170 -97
- package/src/locales/fi-FI/settings.json +455 -426
- package/src/locales/fr-FR/common.json +282 -250
- package/src/locales/fr-FR/nav.json +21 -17
- package/src/locales/fr-FR/notifications.json +22 -38
- package/src/locales/fr-FR/pages.json +1170 -97
- package/src/locales/fr-FR/settings.json +455 -426
- package/src/locales/he-IL/common.json +282 -250
- package/src/locales/he-IL/nav.json +21 -17
- package/src/locales/he-IL/notifications.json +22 -38
- package/src/locales/he-IL/pages.json +1170 -97
- package/src/locales/he-IL/settings.json +455 -426
- package/src/locales/hu-HU/common.json +282 -250
- package/src/locales/hu-HU/nav.json +21 -17
- package/src/locales/hu-HU/notifications.json +22 -38
- package/src/locales/hu-HU/pages.json +1170 -97
- package/src/locales/hu-HU/settings.json +455 -426
- package/src/locales/it-IT/common.json +282 -250
- package/src/locales/it-IT/nav.json +21 -17
- package/src/locales/it-IT/notifications.json +22 -38
- package/src/locales/it-IT/pages.json +1170 -97
- package/src/locales/it-IT/settings.json +455 -426
- package/src/locales/ja-JP/common.json +282 -250
- package/src/locales/ja-JP/nav.json +21 -17
- package/src/locales/ja-JP/notifications.json +22 -38
- package/src/locales/ja-JP/pages.json +1170 -97
- package/src/locales/ja-JP/settings.json +455 -426
- package/src/locales/ko-KR/common.json +282 -250
- package/src/locales/ko-KR/nav.json +21 -17
- package/src/locales/ko-KR/notifications.json +22 -38
- package/src/locales/ko-KR/pages.json +1170 -97
- package/src/locales/ko-KR/settings.json +455 -426
- package/src/locales/nl-NL/common.json +282 -250
- package/src/locales/nl-NL/nav.json +21 -17
- package/src/locales/nl-NL/notifications.json +22 -38
- package/src/locales/nl-NL/pages.json +1170 -97
- package/src/locales/nl-NL/settings.json +455 -426
- package/src/locales/no-NO/common.json +282 -250
- package/src/locales/no-NO/nav.json +21 -17
- package/src/locales/no-NO/notifications.json +22 -38
- package/src/locales/no-NO/pages.json +1170 -97
- package/src/locales/no-NO/settings.json +455 -426
- package/src/locales/pl-PL/common.json +282 -250
- package/src/locales/pl-PL/nav.json +21 -17
- package/src/locales/pl-PL/notifications.json +22 -38
- package/src/locales/pl-PL/pages.json +1170 -97
- package/src/locales/pl-PL/settings.json +455 -426
- package/src/locales/pt-BR/common.json +282 -250
- package/src/locales/pt-BR/nav.json +21 -17
- package/src/locales/pt-BR/notifications.json +22 -38
- package/src/locales/pt-BR/pages.json +1170 -97
- package/src/locales/pt-BR/settings.json +455 -426
- package/src/locales/pt-PT/common.json +282 -250
- package/src/locales/pt-PT/nav.json +21 -17
- package/src/locales/pt-PT/notifications.json +22 -38
- package/src/locales/pt-PT/pages.json +1170 -97
- package/src/locales/pt-PT/settings.json +455 -426
- package/src/locales/ro-RO/common.json +282 -250
- package/src/locales/ro-RO/nav.json +21 -17
- package/src/locales/ro-RO/notifications.json +22 -38
- package/src/locales/ro-RO/pages.json +1170 -97
- package/src/locales/ro-RO/settings.json +455 -426
- package/src/locales/ru-RU/common.json +282 -250
- package/src/locales/ru-RU/nav.json +21 -17
- package/src/locales/ru-RU/notifications.json +22 -38
- package/src/locales/ru-RU/pages.json +1170 -97
- package/src/locales/ru-RU/settings.json +455 -426
- package/src/locales/sr-SP/common.json +282 -250
- package/src/locales/sr-SP/nav.json +21 -17
- package/src/locales/sr-SP/notifications.json +22 -38
- package/src/locales/sr-SP/pages.json +1170 -97
- package/src/locales/sr-SP/settings.json +455 -426
- package/src/locales/sv-SE/common.json +282 -250
- package/src/locales/sv-SE/nav.json +21 -17
- package/src/locales/sv-SE/notifications.json +22 -38
- package/src/locales/sv-SE/pages.json +1170 -97
- package/src/locales/sv-SE/settings.json +455 -426
- package/src/locales/tr-TR/common.json +282 -250
- package/src/locales/tr-TR/nav.json +21 -17
- package/src/locales/tr-TR/notifications.json +22 -38
- package/src/locales/tr-TR/pages.json +1170 -97
- package/src/locales/tr-TR/settings.json +455 -426
- package/src/locales/uk-UA/common.json +282 -250
- package/src/locales/uk-UA/nav.json +21 -17
- package/src/locales/uk-UA/notifications.json +22 -38
- package/src/locales/uk-UA/pages.json +1170 -97
- package/src/locales/uk-UA/settings.json +455 -426
- package/src/locales/vi-VN/common.json +282 -250
- package/src/locales/vi-VN/nav.json +21 -17
- package/src/locales/vi-VN/notifications.json +22 -38
- package/src/locales/vi-VN/pages.json +1170 -97
- package/src/locales/vi-VN/settings.json +455 -426
- package/src/locales/zh-CN/common.json +282 -250
- package/src/locales/zh-CN/nav.json +21 -17
- package/src/locales/zh-CN/notifications.json +22 -38
- package/src/locales/zh-CN/pages.json +1170 -97
- package/src/locales/zh-CN/settings.json +455 -426
- package/src/locales/zh-TW/common.json +282 -250
- package/src/locales/zh-TW/nav.json +21 -17
- package/src/locales/zh-TW/notifications.json +22 -38
- package/src/locales/zh-TW/pages.json +1170 -97
- package/src/locales/zh-TW/settings.json +455 -426
|
@@ -22,6 +22,1164 @@
|
|
|
22
22
|
"versionV1": "API v1",
|
|
23
23
|
"versionV2": "API v2"
|
|
24
24
|
},
|
|
25
|
+
"automations": {
|
|
26
|
+
"actions": {
|
|
27
|
+
"kill_stream": {
|
|
28
|
+
"description": "Terminate the active stream",
|
|
29
|
+
"fields": {
|
|
30
|
+
"cooldown_minutes": {
|
|
31
|
+
"description": "Minimum time between terminations for the same user"
|
|
32
|
+
},
|
|
33
|
+
"delay_seconds": {
|
|
34
|
+
"description": "Waits this many seconds, then kills the stream only if the automation still matches. 0 kills right after a final re-check.",
|
|
35
|
+
"label": "Sustain window"
|
|
36
|
+
},
|
|
37
|
+
"message": {
|
|
38
|
+
"placeholder": "Optional message"
|
|
39
|
+
},
|
|
40
|
+
"target": {
|
|
41
|
+
"description": "Which sessions to terminate"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"label": "Kill Stream",
|
|
45
|
+
"ran": "Stopped the stream"
|
|
46
|
+
},
|
|
47
|
+
"message_client": {
|
|
48
|
+
"description": "Send a message to the media player",
|
|
49
|
+
"fields": {
|
|
50
|
+
"message": {
|
|
51
|
+
"placeholder": "Message to display…"
|
|
52
|
+
},
|
|
53
|
+
"target": {
|
|
54
|
+
"description": "Which sessions to message"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"hint": "Jellyfin and Emby only. Plex only supports messages when killing a stream.",
|
|
58
|
+
"label": "Message Client",
|
|
59
|
+
"ran": "Put a message on the player"
|
|
60
|
+
},
|
|
61
|
+
"send": {
|
|
62
|
+
"description": "Send to one or more destinations",
|
|
63
|
+
"fields": {
|
|
64
|
+
"cooldown_minutes": {
|
|
65
|
+
"description": "Minimum time between notifications"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"label": "Send Notification",
|
|
69
|
+
"ran": "Sent a notification"
|
|
70
|
+
},
|
|
71
|
+
"trust": {
|
|
72
|
+
"description": "Adjust, set, or reset the trust score",
|
|
73
|
+
"fields": {
|
|
74
|
+
"amount": {
|
|
75
|
+
"description": "Positive to increase, negative to decrease",
|
|
76
|
+
"label": "Amount"
|
|
77
|
+
},
|
|
78
|
+
"mode": {
|
|
79
|
+
"label": "Mode"
|
|
80
|
+
},
|
|
81
|
+
"value": {
|
|
82
|
+
"label": "Value"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"label": "Trust Score",
|
|
86
|
+
"ran": "Changed the trust score"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"activity": {
|
|
90
|
+
"branch": {
|
|
91
|
+
"else": "Took the second branch",
|
|
92
|
+
"then": "Took the first branch"
|
|
93
|
+
},
|
|
94
|
+
"description": "What this automation did, newest first. Runs are kept for {{days}} days.",
|
|
95
|
+
"empty": "No runs yet",
|
|
96
|
+
"emptyDescription": "Runs are listed here once a trigger matches.",
|
|
97
|
+
"finished": "Finished",
|
|
98
|
+
"from": "From",
|
|
99
|
+
"group": "Group {{number}}",
|
|
100
|
+
"noSummary": "No notes",
|
|
101
|
+
"openInEditor": "Open in the builder with this run",
|
|
102
|
+
"outcome": "Outcome",
|
|
103
|
+
"outcomes": {
|
|
104
|
+
"completed": "Ran",
|
|
105
|
+
"error": "Failed",
|
|
106
|
+
"stopped_by_condition": "No match"
|
|
107
|
+
},
|
|
108
|
+
"playing": "Playing",
|
|
109
|
+
"runLoading": "Loading the run",
|
|
110
|
+
"runTitle": "Run",
|
|
111
|
+
"started": "Started",
|
|
112
|
+
"summary": "Summary",
|
|
113
|
+
"tabs": {
|
|
114
|
+
"all": "All",
|
|
115
|
+
"completed": "Ran",
|
|
116
|
+
"error": "Failed",
|
|
117
|
+
"stopped_by_condition": "No match"
|
|
118
|
+
},
|
|
119
|
+
"tabsLabel": "Filter by outcome",
|
|
120
|
+
"title": "Activity",
|
|
121
|
+
"triggeredBy": "Triggered by {{trigger}}",
|
|
122
|
+
"unknownStep": "Unrecognized step",
|
|
123
|
+
"where": "Where",
|
|
124
|
+
"who": "Who",
|
|
125
|
+
"whyBranch": "What it read",
|
|
126
|
+
"emptyRan": "Nothing has matched yet",
|
|
127
|
+
"emptyRanDescription_one": "{{count}} check ran and did not match.",
|
|
128
|
+
"emptyRanDescription_other": "{{count}} checks ran and did not match.",
|
|
129
|
+
"item": "Item",
|
|
130
|
+
"recordedViolation": "Recorded a violation"
|
|
131
|
+
},
|
|
132
|
+
"allKinds": "All kinds",
|
|
133
|
+
"allStatuses": "All statuses",
|
|
134
|
+
"allSeverities": "All severities",
|
|
135
|
+
"bind": {
|
|
136
|
+
"accountLabel": "Which account",
|
|
137
|
+
"activeLabel": "Turn it on now",
|
|
138
|
+
"anyServer": "Any server",
|
|
139
|
+
"back": "Back",
|
|
140
|
+
"created": "{{name}} is set up and running.",
|
|
141
|
+
"createdOff": "{{name}} was created and is off. Turn it on from the list.",
|
|
142
|
+
"customize": "Open in the builder",
|
|
143
|
+
"destinationsLabel": "Send to",
|
|
144
|
+
"doors": {
|
|
145
|
+
"helper": "Use this keeps the steps as they are; the answers above can change later. Open in the builder makes every step editable and ends the link to the ready-made automation."
|
|
146
|
+
},
|
|
147
|
+
"failed": "Couldn't set that up. Try again.",
|
|
148
|
+
"helper": {
|
|
149
|
+
"clientMessage": "Shown on the player while it keeps playing.",
|
|
150
|
+
"killMessage": "Shown on the player when the stream stops."
|
|
151
|
+
},
|
|
152
|
+
"nameHelper": "The name in the automations list.",
|
|
153
|
+
"namePlaceholder": "A name for this automation",
|
|
154
|
+
"needs": {
|
|
155
|
+
"title": "What it needs"
|
|
156
|
+
},
|
|
157
|
+
"noInputs": "Nothing to fill in.",
|
|
158
|
+
"personLabel": "Which person",
|
|
159
|
+
"required": "Pick at least one.",
|
|
160
|
+
"serverHelper": "Any server means all of them.",
|
|
161
|
+
"serverLabel": "Which server",
|
|
162
|
+
"submit": "Use this",
|
|
163
|
+
"submitting": "Setting it up…"
|
|
164
|
+
},
|
|
165
|
+
"builder": {
|
|
166
|
+
"actions": {
|
|
167
|
+
"add": "Add action",
|
|
168
|
+
"addBranch": "Add action",
|
|
169
|
+
"branchElse": "Otherwise…",
|
|
170
|
+
"branchElseEmpty": "Nothing. The automation carries on.",
|
|
171
|
+
"branchName": "this branch",
|
|
172
|
+
"branchThen": "then",
|
|
173
|
+
"collapseBranch": "Hide this branch's steps",
|
|
174
|
+
"confirmRemoveDescription": "Stops happening on save.",
|
|
175
|
+
"confirmRemoveTitle": "Remove this action?",
|
|
176
|
+
"emptyAction": "Choose what happens",
|
|
177
|
+
"emptyDescription": "Send a notification, stop the stream, change a trust score, or run steps only when an extra check passes.",
|
|
178
|
+
"emptyTitle": "What should happen?",
|
|
179
|
+
"expandBranch": "Show this branch's steps",
|
|
180
|
+
"helper": "These run in order, top to bottom.",
|
|
181
|
+
"ifAddCheck": "Add another check",
|
|
182
|
+
"ifNothing": "nothing yet",
|
|
183
|
+
"ifTitle": "If…",
|
|
184
|
+
"menu": "More for {{name}}",
|
|
185
|
+
"moveDown": "Move {{name}} down",
|
|
186
|
+
"moveUp": "Move {{name}} up",
|
|
187
|
+
"policyNote": "A branch does not decide whether this is flagged; the And only if… section does.",
|
|
188
|
+
"sectionTitle": "Do this…"
|
|
189
|
+
},
|
|
190
|
+
"activeLabel": "Active",
|
|
191
|
+
"clearSelection": "Clear selection",
|
|
192
|
+
"conditions": {
|
|
193
|
+
"addAnother": "Add another condition",
|
|
194
|
+
"addFirst": "Add a condition",
|
|
195
|
+
"addGroup": "Add AND condition group",
|
|
196
|
+
"all": "all of these",
|
|
197
|
+
"allCountries": "All countries",
|
|
198
|
+
"allDeviceTypes": "All device types",
|
|
199
|
+
"allHint": "and: every check has to pass",
|
|
200
|
+
"any": "any of these",
|
|
201
|
+
"anyHint": "or: any one check is enough",
|
|
202
|
+
"canNeverPass": "This can never pass. The trigger already fires at {{threshold}}.",
|
|
203
|
+
"deviceTypesHint": "Counts only streams from the selected device types. Empty means every device.",
|
|
204
|
+
"emptyLine": "No extra checks. This runs every time.",
|
|
205
|
+
"fieldLabel": "Condition",
|
|
206
|
+
"fieldPlaceholder": "Select field",
|
|
207
|
+
"groupSeparator": "and also",
|
|
208
|
+
"helper": "Checks that must pass first. Empty means it runs every time.",
|
|
209
|
+
"matchLabel": "How these conditions combine",
|
|
210
|
+
"no": "No",
|
|
211
|
+
"noFields": "No checks are available for these triggers. Add a stream or account trigger first.",
|
|
212
|
+
"operatorLabel": "Comparison",
|
|
213
|
+
"optional": "optional",
|
|
214
|
+
"recentlySeen": "Recently seen",
|
|
215
|
+
"removeGroup": "Remove this set of checks",
|
|
216
|
+
"sectionTitle": "Only when…",
|
|
217
|
+
"uniqueDevices": "Unique devices",
|
|
218
|
+
"uniqueDevicesHint": "Counts only sessions from different physical devices.",
|
|
219
|
+
"uniqueIps": "Unique IPs",
|
|
220
|
+
"uniqueIpsHint": "Counts only sessions from different IP addresses, so same-household streams are not counted.",
|
|
221
|
+
"valueLabel": "Value",
|
|
222
|
+
"windowPrefix": "in",
|
|
223
|
+
"windowUnit": "hrs",
|
|
224
|
+
"yes": "Yes"
|
|
225
|
+
},
|
|
226
|
+
"destinationDisabled": "Disabled destination",
|
|
227
|
+
"errors": {
|
|
228
|
+
"actionUnavailable": "These triggers do not supply what this action needs",
|
|
229
|
+
"daysRange": "Between {{min}} and {{max}} days",
|
|
230
|
+
"fieldNotAvailableFor": "Not available for: {{triggers}}",
|
|
231
|
+
"fieldUnavailable": "This check is not available for every trigger here",
|
|
232
|
+
"measureInvalid": "Pick how the minutes are counted",
|
|
233
|
+
"messageRequired": "Type the message to show",
|
|
234
|
+
"minutesRange": "Between {{min}} and {{max}} minutes",
|
|
235
|
+
"nameRequired": "Automation name is required",
|
|
236
|
+
"operatorInvalid": "This comparison does not fit the condition",
|
|
237
|
+
"policyNeedsSubject": "A policy needs a stream or account trigger: violations are about a person",
|
|
238
|
+
"scopeIncomplete": "Pick a target for the selected scope",
|
|
239
|
+
"sendNeedsDestination": "Pick at least one destination",
|
|
240
|
+
"tooLong": "At most {{max}} characters",
|
|
241
|
+
"triggerRequired": "Add what starts this, or switch one back on",
|
|
242
|
+
"trustAmountRange": "Trust changes by between -100 and 100 points",
|
|
243
|
+
"trustValueRange": "Trust score is between 0 and 100",
|
|
244
|
+
"valueInvalid": "This value does not fit the condition",
|
|
245
|
+
"variableUnavailable": "The message names something not every trigger here supplies"
|
|
246
|
+
},
|
|
247
|
+
"footer": {
|
|
248
|
+
"problems_one": "{{count}} problem",
|
|
249
|
+
"problems_other": "{{count}} problems",
|
|
250
|
+
"ready": "Ready to save",
|
|
251
|
+
"remaining_one": "{{count}} left to finish",
|
|
252
|
+
"remaining_other": "{{count}} left to finish",
|
|
253
|
+
"search": "to search"
|
|
254
|
+
},
|
|
255
|
+
"heldFor": {
|
|
256
|
+
"current": "this time",
|
|
257
|
+
"measureLabel": "Counted",
|
|
258
|
+
"minutesLabel": "Minutes",
|
|
259
|
+
"prefix": "A stream has been paused for",
|
|
260
|
+
"total": "in total",
|
|
261
|
+
"unit": "minutes"
|
|
262
|
+
},
|
|
263
|
+
"inactiveFor": {
|
|
264
|
+
"daysLabel": "Days",
|
|
265
|
+
"prefix": "An account has been inactive for",
|
|
266
|
+
"unit": "days"
|
|
267
|
+
},
|
|
268
|
+
"leave": {
|
|
269
|
+
"confirm": "Leave",
|
|
270
|
+
"title": "Leave without saving?"
|
|
271
|
+
},
|
|
272
|
+
"liveCheck": {
|
|
273
|
+
"actual": "now {{value}}",
|
|
274
|
+
"backToLive": "Back to what's playing now",
|
|
275
|
+
"checking": "Checking against the sessions playing now…",
|
|
276
|
+
"empty": "Nothing is playing right now; nothing to check against.",
|
|
277
|
+
"expand": "Show what matched for {{name}}",
|
|
278
|
+
"failed": "Could not reach the servers to check.",
|
|
279
|
+
"footnote": "Cooldowns and already-handled sessions aren't simulated.",
|
|
280
|
+
"notPassed": "Did not pass",
|
|
281
|
+
"passed": "Passed",
|
|
282
|
+
"paused": "Paused while this saves",
|
|
283
|
+
"sampleGone": "That session is no longer on record; nothing to check against.",
|
|
284
|
+
"sampleTitle": "What this would do to that run",
|
|
285
|
+
"title": "Right now on the servers",
|
|
286
|
+
"unfinished": "Shows what this would do once the automation is complete."
|
|
287
|
+
},
|
|
288
|
+
"newDestination": "New destination",
|
|
289
|
+
"noDestinations": "No destinations yet. Add one to send notifications.",
|
|
290
|
+
"noMatches": "No matches",
|
|
291
|
+
"picker": {
|
|
292
|
+
"close": "close",
|
|
293
|
+
"empty": "Nothing matches that.",
|
|
294
|
+
"navigate": "move",
|
|
295
|
+
"searchPlaceholder": "Search or describe what should happen",
|
|
296
|
+
"select": "pick"
|
|
297
|
+
},
|
|
298
|
+
"recordAs": {
|
|
299
|
+
"label": "When this runs, record it as",
|
|
300
|
+
"notification": "An alert",
|
|
301
|
+
"notificationDescription": "Recorded in Activity; never a violation.",
|
|
302
|
+
"policy": "A violation",
|
|
303
|
+
"policyDescription": "Listed in Violations; can be acknowledged."
|
|
304
|
+
},
|
|
305
|
+
"rows": {
|
|
306
|
+
"expandHint": "open",
|
|
307
|
+
"moveHint": "reorder",
|
|
308
|
+
"remove": "Remove {{name}}",
|
|
309
|
+
"removeHint": "remove",
|
|
310
|
+
"skipped": "Skipped",
|
|
311
|
+
"toggle": "Include {{name}}",
|
|
312
|
+
"toggleHint": "skip"
|
|
313
|
+
},
|
|
314
|
+
"saving": "Saving…",
|
|
315
|
+
"scope": {
|
|
316
|
+
"account": "Specific account",
|
|
317
|
+
"accountLabel": "Account",
|
|
318
|
+
"accountPlaceholder": "Select account",
|
|
319
|
+
"enforceAcrossServers": "Enforce across servers",
|
|
320
|
+
"enforceAcrossServersDescription": "Acts on the person's sessions on any of their servers, not only the one that triggered it. Off by default.",
|
|
321
|
+
"global": "Global",
|
|
322
|
+
"label": "Scope",
|
|
323
|
+
"noServers": "No servers connected yet.",
|
|
324
|
+
"person": "Person (all their servers)",
|
|
325
|
+
"personHelper": "Matches this person on every server they have an account on.",
|
|
326
|
+
"personLabel": "Person",
|
|
327
|
+
"personPlaceholder": "Select person",
|
|
328
|
+
"server": "Specific server",
|
|
329
|
+
"serverLabel": "Server",
|
|
330
|
+
"serverPlaceholder": "Select server"
|
|
331
|
+
},
|
|
332
|
+
"searchPlaceholder": "Search…",
|
|
333
|
+
"selectPlaceholder": "Select…",
|
|
334
|
+
"selectedCount": "{{count}} selected",
|
|
335
|
+
"sentence": {
|
|
336
|
+
"label": "What this automation does",
|
|
337
|
+
"placeholderAction": "do something",
|
|
338
|
+
"placeholderTrigger": "something happens"
|
|
339
|
+
},
|
|
340
|
+
"severityLabel": "Severity",
|
|
341
|
+
"when": {
|
|
342
|
+
"add": "Add trigger",
|
|
343
|
+
"emptyAction": "Choose what starts it",
|
|
344
|
+
"emptyDescription": "A stream starting, a server going down, an account going quiet.",
|
|
345
|
+
"emptyTitle": "What should start this?",
|
|
346
|
+
"helper": "Any one of these starts it. At least one is required.",
|
|
347
|
+
"or": "or",
|
|
348
|
+
"title": "When…"
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
"catalog": {
|
|
352
|
+
"actions": {
|
|
353
|
+
"if": {
|
|
354
|
+
"description": "Run one set of steps when a condition holds and another when it does not.",
|
|
355
|
+
"label": "Branch on a condition",
|
|
356
|
+
"synonyms": "if, else, otherwise, branch, split, condition"
|
|
357
|
+
},
|
|
358
|
+
"kill_stream": {
|
|
359
|
+
"synonyms": "stop, terminate, cut, end playback"
|
|
360
|
+
},
|
|
361
|
+
"message_client": {
|
|
362
|
+
"synonyms": "warn, tell, notice, on screen"
|
|
363
|
+
},
|
|
364
|
+
"send": {
|
|
365
|
+
"synonyms": "notify, alert, discord, email, webhook, push"
|
|
366
|
+
},
|
|
367
|
+
"trust": {
|
|
368
|
+
"synonyms": "score, reputation, penalise, reward"
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
"groups": {
|
|
372
|
+
"accounts": "Accounts",
|
|
373
|
+
"control": "Control flow",
|
|
374
|
+
"library": "Library",
|
|
375
|
+
"notify": "Notify",
|
|
376
|
+
"policy": "Policy",
|
|
377
|
+
"servers": "Servers",
|
|
378
|
+
"sessions": "Sessions",
|
|
379
|
+
"updates": "Updates"
|
|
380
|
+
},
|
|
381
|
+
"suggested": "Suggested",
|
|
382
|
+
"triggers": {
|
|
383
|
+
"accountInactiveFor": {
|
|
384
|
+
"description": "An account has watched nothing for the set number of days.",
|
|
385
|
+
"label": "An account goes quiet",
|
|
386
|
+
"synonyms": "inactive, dormant, unused, stale, cleanup"
|
|
387
|
+
},
|
|
388
|
+
"accountNewDevice": {
|
|
389
|
+
"description": "An account streams from a device for the first time.",
|
|
390
|
+
"synonyms": "device, new, unknown, unrecognized, phone, login, sharing"
|
|
391
|
+
},
|
|
392
|
+
"accountTrustChanged": {
|
|
393
|
+
"description": "An account's trust score changes, whether an automation or an owner moved it.",
|
|
394
|
+
"synonyms": "trust, score, reputation, penalty, adjusted"
|
|
395
|
+
},
|
|
396
|
+
"mediaAdded": {
|
|
397
|
+
"description": "A library item shows up on a server for the first time.",
|
|
398
|
+
"synonyms": "new, added, library, movie, episode, import"
|
|
399
|
+
},
|
|
400
|
+
"mediaUpgraded": {
|
|
401
|
+
"description": "A library item that was already there changes quality.",
|
|
402
|
+
"synonyms": "upgrade, quality, replaced, remux, 4k, resolution"
|
|
403
|
+
},
|
|
404
|
+
"pluginUpdateAvailable": {
|
|
405
|
+
"description": "The Tracearr plugin on a server has a newer release.",
|
|
406
|
+
"synonyms": "plugin, upgrade, version, release"
|
|
407
|
+
},
|
|
408
|
+
"serverDown": {
|
|
409
|
+
"description": "A media server stops answering.",
|
|
410
|
+
"synonyms": "unreachable, offline, outage, down"
|
|
411
|
+
},
|
|
412
|
+
"serverUp": {
|
|
413
|
+
"description": "A media server answers again.",
|
|
414
|
+
"synonyms": "online, recovered, restored, back"
|
|
415
|
+
},
|
|
416
|
+
"serverUpdateAvailable": {
|
|
417
|
+
"description": "A media server has a newer release.",
|
|
418
|
+
"synonyms": "upgrade, version, release, patch"
|
|
419
|
+
},
|
|
420
|
+
"sessionHeldFor": {
|
|
421
|
+
"description": "A stream has been paused longer than the set number of minutes.",
|
|
422
|
+
"label": "A stream sits paused",
|
|
423
|
+
"synonyms": "pause, idle, abandoned, stuck, afk"
|
|
424
|
+
},
|
|
425
|
+
"sessionPaused": {
|
|
426
|
+
"description": "The moment a stream is paused.",
|
|
427
|
+
"synonyms": "pause, hold, idle"
|
|
428
|
+
},
|
|
429
|
+
"sessionStarted": {
|
|
430
|
+
"description": "The moment play is pressed.",
|
|
431
|
+
"synonyms": "play, watch, begin, start, viewing"
|
|
432
|
+
},
|
|
433
|
+
"sessionStopped": {
|
|
434
|
+
"description": "Playback ends, however it ended.",
|
|
435
|
+
"synonyms": "end, finish, quit, close"
|
|
436
|
+
},
|
|
437
|
+
"sessionTranscodeChanged": {
|
|
438
|
+
"description": "The server switches a stream between direct play and transcoding.",
|
|
439
|
+
"synonyms": "transcode, convert, direct play, cpu"
|
|
440
|
+
},
|
|
441
|
+
"tracearrUpdateAvailable": {
|
|
442
|
+
"description": "Tracearr itself has a newer release.",
|
|
443
|
+
"synonyms": "upgrade, version, release, self"
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
"categories": {
|
|
448
|
+
"device_client": "Device & Client",
|
|
449
|
+
"media": "Media",
|
|
450
|
+
"network_location": "Network & Location",
|
|
451
|
+
"scope": "Scope",
|
|
452
|
+
"session_behavior": "Session Behavior",
|
|
453
|
+
"stream_quality": "Stream Quality",
|
|
454
|
+
"user_attributes": "User Attributes"
|
|
455
|
+
},
|
|
456
|
+
"configFields": {
|
|
457
|
+
"cooldown_minutes": {
|
|
458
|
+
"label": "Cooldown"
|
|
459
|
+
},
|
|
460
|
+
"message": {
|
|
461
|
+
"label": "Message"
|
|
462
|
+
},
|
|
463
|
+
"target": {
|
|
464
|
+
"label": "Target"
|
|
465
|
+
}
|
|
466
|
+
},
|
|
467
|
+
"createAutomation": "Create Automation",
|
|
468
|
+
"customAutomation": "Custom automation",
|
|
469
|
+
"deleteAutomationConfirm": "Are you sure you want to delete this automation? This action cannot be undone.",
|
|
470
|
+
"deleteAutomation_one": "Delete {{count}} Automation",
|
|
471
|
+
"deleteAutomation_other": "Delete {{count}} Automations",
|
|
472
|
+
"deleteAutomationsConfirm": "Are you sure you want to delete? This action cannot be undone.",
|
|
473
|
+
"describe": {
|
|
474
|
+
"actions": {
|
|
475
|
+
"doNothing": "do nothing",
|
|
476
|
+
"flagIt": "Flag it",
|
|
477
|
+
"if": "if",
|
|
478
|
+
"kill_stream": "stop the stream",
|
|
479
|
+
"message_client": "message the player",
|
|
480
|
+
"send": "send to {{destinations}}",
|
|
481
|
+
"sendAnywhere": "send a notification",
|
|
482
|
+
"trustAdjust": "adjust trust by {{amount}}",
|
|
483
|
+
"trustDown": "drop trust by {{amount}}",
|
|
484
|
+
"trustReset": "reset trust",
|
|
485
|
+
"trustSet": "set trust to {{value}}",
|
|
486
|
+
"trustUp": "raise trust by {{amount}}"
|
|
487
|
+
},
|
|
488
|
+
"allOf": "all of:",
|
|
489
|
+
"andAlso": "and also",
|
|
490
|
+
"anyOf": "any of:",
|
|
491
|
+
"appliesTo": "Applies to {{name}}",
|
|
492
|
+
"deviceTypesOnly": "{{types}} only",
|
|
493
|
+
"duration": {
|
|
494
|
+
"days_one": "{{count}} day",
|
|
495
|
+
"days_other": "{{count}} days",
|
|
496
|
+
"minutes_one": "{{count}} minute",
|
|
497
|
+
"minutes_other": "{{count}} minutes"
|
|
498
|
+
},
|
|
499
|
+
"fields": {
|
|
500
|
+
"account_age_days": "the account age",
|
|
501
|
+
"active_session_distance_km": "the distance between streams",
|
|
502
|
+
"audio_channels_after": "the audio channels",
|
|
503
|
+
"client_name": "the player",
|
|
504
|
+
"concurrent_streams": "the stream count",
|
|
505
|
+
"country": "the country",
|
|
506
|
+
"current_pause_minutes": "the current pause",
|
|
507
|
+
"device_type": "the device type",
|
|
508
|
+
"dynamic_range_after": "the dynamic range",
|
|
509
|
+
"file_size_after": "the file size",
|
|
510
|
+
"inactive_days": "the time since the last stream",
|
|
511
|
+
"ip_in_range": "the IP address",
|
|
512
|
+
"is_local_network": "the local network",
|
|
513
|
+
"is_transcode_downgrade": "the downgrade",
|
|
514
|
+
"is_transcoding": "the transcoding",
|
|
515
|
+
"library_item_type": "the item type",
|
|
516
|
+
"library_name": "the library",
|
|
517
|
+
"media_type": "the media type",
|
|
518
|
+
"output_resolution": "the output resolution",
|
|
519
|
+
"platform": "the platform",
|
|
520
|
+
"resolution_after": "the resolution",
|
|
521
|
+
"server_id": "the server",
|
|
522
|
+
"source_bitrate_mbps": "the source bitrate",
|
|
523
|
+
"source_resolution": "the source resolution",
|
|
524
|
+
"total_pause_minutes": "the total pause time",
|
|
525
|
+
"travel_speed_kmh": "the travel speed",
|
|
526
|
+
"trust_score": "the trust score",
|
|
527
|
+
"unique_devices_in_window": "the number of devices",
|
|
528
|
+
"unique_ips_in_window": "the number of IP addresses",
|
|
529
|
+
"user_id": "the user",
|
|
530
|
+
"video_codec_after": "the video codec"
|
|
531
|
+
},
|
|
532
|
+
"includesSameDevice": "includes same device",
|
|
533
|
+
"joinAll": "and",
|
|
534
|
+
"joinAny": "or",
|
|
535
|
+
"more_one": "+{{count}} more",
|
|
536
|
+
"more_other": "+{{count}} more",
|
|
537
|
+
"noValues": "(none)",
|
|
538
|
+
"nothing": "nothing yet",
|
|
539
|
+
"onlyWhen": "only when",
|
|
540
|
+
"operators": {
|
|
541
|
+
"contains": "contains",
|
|
542
|
+
"eq": "is",
|
|
543
|
+
"gt": "is above",
|
|
544
|
+
"gte": "is at least",
|
|
545
|
+
"in": "is one of",
|
|
546
|
+
"lt": "is below",
|
|
547
|
+
"lte": "is at most",
|
|
548
|
+
"neq": "is not",
|
|
549
|
+
"not_contains": "does not contain",
|
|
550
|
+
"not_in": "is not one of"
|
|
551
|
+
},
|
|
552
|
+
"or": "or {{text}}",
|
|
553
|
+
"otherwise": "Otherwise",
|
|
554
|
+
"sameDeviceInput": "same device: {{input}}",
|
|
555
|
+
"scope": {
|
|
556
|
+
"account": "one account",
|
|
557
|
+
"person": "one person",
|
|
558
|
+
"server": "one server"
|
|
559
|
+
},
|
|
560
|
+
"states": {
|
|
561
|
+
"is_local_network": {
|
|
562
|
+
"no": "the user is not on the local network",
|
|
563
|
+
"yes": "the user is on the local network"
|
|
564
|
+
},
|
|
565
|
+
"is_transcode_downgrade": {
|
|
566
|
+
"no": "the stream is not downgraded",
|
|
567
|
+
"yes": "the stream is downgraded"
|
|
568
|
+
},
|
|
569
|
+
"is_transcoding": {
|
|
570
|
+
"audio": {
|
|
571
|
+
"no": "the stream is not transcoding audio",
|
|
572
|
+
"yes": "the stream is transcoding audio"
|
|
573
|
+
},
|
|
574
|
+
"neither": {
|
|
575
|
+
"no": "the stream is transcoding",
|
|
576
|
+
"yes": "the stream is not transcoding"
|
|
577
|
+
},
|
|
578
|
+
"video": {
|
|
579
|
+
"no": "the stream is not transcoding video",
|
|
580
|
+
"yes": "the stream is transcoding video"
|
|
581
|
+
},
|
|
582
|
+
"video_or_audio": {
|
|
583
|
+
"no": "the stream is not transcoding",
|
|
584
|
+
"yes": "the stream is transcoding"
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
},
|
|
588
|
+
"then": "then {{text}}",
|
|
589
|
+
"triggers": {
|
|
590
|
+
"accountInactiveFor": "an account has been inactive for {{duration}}",
|
|
591
|
+
"accountNewDevice": "an account plays from a new device",
|
|
592
|
+
"accountTrustChanged": "an account's trust score changes",
|
|
593
|
+
"mediaAdded": "media is added",
|
|
594
|
+
"mediaUpgraded": "media is upgraded",
|
|
595
|
+
"pluginUpdateAvailable": "a plugin update is available",
|
|
596
|
+
"serverDown": "a server goes down",
|
|
597
|
+
"serverUp": "a server comes back up",
|
|
598
|
+
"serverUpdateAvailable": "a server update is available",
|
|
599
|
+
"sessionHeldFor": "a stream has been paused for {{duration}}",
|
|
600
|
+
"sessionHeldForTotal": "a stream has been paused for {{duration}} in total",
|
|
601
|
+
"sessionPaused": "a stream is paused",
|
|
602
|
+
"sessionStarted": "a stream starts",
|
|
603
|
+
"sessionStopped": "a stream stops",
|
|
604
|
+
"sessionTranscodeChanged": "transcoding starts or stops",
|
|
605
|
+
"tracearrUpdateAvailable": "a Tracearr update is available"
|
|
606
|
+
},
|
|
607
|
+
"uniqueIps": "unique IPs",
|
|
608
|
+
"uniqueIpsInput": "unique IPs: {{input}}",
|
|
609
|
+
"when": "When {{text}}",
|
|
610
|
+
"unbound": {
|
|
611
|
+
"server": "a chosen server",
|
|
612
|
+
"account": "a chosen account",
|
|
613
|
+
"person": "a chosen person",
|
|
614
|
+
"destinations": "a chosen destination",
|
|
615
|
+
"field_value": "a chosen value",
|
|
616
|
+
"select": "a chosen option",
|
|
617
|
+
"number": "a chosen number",
|
|
618
|
+
"duration": "a chosen length of time",
|
|
619
|
+
"text": "a chosen message",
|
|
620
|
+
"boolean": "a chosen setting",
|
|
621
|
+
"listed": "those chosen"
|
|
622
|
+
}
|
|
623
|
+
},
|
|
624
|
+
"description": "Automations watch your servers and act when their conditions match",
|
|
625
|
+
"detail": {
|
|
626
|
+
"notFound": "Automation not found",
|
|
627
|
+
"title": "Automation",
|
|
628
|
+
"unsaved": "Unsaved changes",
|
|
629
|
+
"runsLine_one": "1 run · last run {{when}}",
|
|
630
|
+
"runsLine_other": "{{count}} runs · last run {{when}}",
|
|
631
|
+
"noRuns": "No runs yet"
|
|
632
|
+
},
|
|
633
|
+
"disable": "Disable",
|
|
634
|
+
"editAutomation": "Edit Automation",
|
|
635
|
+
"effects": {
|
|
636
|
+
"allServers": "Runs on every server unless one is chosen.",
|
|
637
|
+
"everyServer": "Runs on every server.",
|
|
638
|
+
"kill": "Can stop a stream that is playing.",
|
|
639
|
+
"message": "Puts a message on a player.",
|
|
640
|
+
"oneServer": "Runs on {{server}} only.",
|
|
641
|
+
"tellsOnly": "Only notifies. Never stops a stream or changes an account.",
|
|
642
|
+
"title": "What this will do",
|
|
643
|
+
"trust": "Changes trust scores.",
|
|
644
|
+
"violation": "Records a violation against the matched person."
|
|
645
|
+
},
|
|
646
|
+
"emptyDescription": "Ready-made automations. Pick one and fill in the blanks.",
|
|
647
|
+
"emptySeeAll": "See all {{count}}",
|
|
648
|
+
"emptySeeAllLoading": "See all",
|
|
649
|
+
"emptyTitle": "No automations yet",
|
|
650
|
+
"enable": "Enable",
|
|
651
|
+
"evaluations": {
|
|
652
|
+
"reasons": {
|
|
653
|
+
"cooldown_active": "Cooldown was active",
|
|
654
|
+
"edge_replayed": "Same edge already handled",
|
|
655
|
+
"gate_blocked": "An open run already covers this",
|
|
656
|
+
"trigger_filter_failed": "Trigger threshold not reached"
|
|
657
|
+
},
|
|
658
|
+
"disclosure": "Matches that did not start a run ({{total}})"
|
|
659
|
+
},
|
|
660
|
+
"export": {
|
|
661
|
+
"authorHelper": "Shown on the gallery page and carried in the code. Optional.",
|
|
662
|
+
"authorLabel": "Author",
|
|
663
|
+
"authorPlaceholder": "Name",
|
|
664
|
+
"carries": "The code carries the steps only. Destinations, servers and accounts are not included; the receiving side fills in its own.",
|
|
665
|
+
"copyCode": "Copy the share code",
|
|
666
|
+
"copyJson": "Copy the JSON",
|
|
667
|
+
"description": "A code another Tracearr can paste in.",
|
|
668
|
+
"failed": "Couldn't make a code for this one.",
|
|
669
|
+
"save": "Save as ready-made",
|
|
670
|
+
"saveFailed": "Could not save it.",
|
|
671
|
+
"saved": "{{name}} saved as a ready-made automation.",
|
|
672
|
+
"title": "Share this automation",
|
|
673
|
+
"saveHelper": "Adds it to this server's list of ready-made automations.",
|
|
674
|
+
"authorInCode": "The code includes the author name.",
|
|
675
|
+
"groupLabel": "Section",
|
|
676
|
+
"groupHelper": "Which part of the gallery it is listed under.",
|
|
677
|
+
"gallery": {
|
|
678
|
+
"trigger": "Put this in the community gallery",
|
|
679
|
+
"body": "The gallery at docs.tracearr.com/templates lists shared automations. Adding one is a pull request to Tracearr/automation-templates with the JSON below. Tracearr never reads the gallery."
|
|
680
|
+
},
|
|
681
|
+
"openRepository": "Open the repository"
|
|
682
|
+
},
|
|
683
|
+
"fields": {
|
|
684
|
+
"account_age_days": {
|
|
685
|
+
"description": "Days since account creation",
|
|
686
|
+
"label": "Account Age"
|
|
687
|
+
},
|
|
688
|
+
"active_session_distance_km": {
|
|
689
|
+
"description": "Distance between simultaneous sessions",
|
|
690
|
+
"label": "Distance Between Sessions"
|
|
691
|
+
},
|
|
692
|
+
"audio_channels_after": {
|
|
693
|
+
"description": "Audio channel count the item ends up with",
|
|
694
|
+
"label": "Audio Channels"
|
|
695
|
+
},
|
|
696
|
+
"client_name": {
|
|
697
|
+
"description": "Media player application",
|
|
698
|
+
"label": "Client/Player",
|
|
699
|
+
"placeholder": "e.g., Plex for iOS"
|
|
700
|
+
},
|
|
701
|
+
"concurrent_streams": {
|
|
702
|
+
"description": "Number of active streams from the same user",
|
|
703
|
+
"label": "Concurrent Streams"
|
|
704
|
+
},
|
|
705
|
+
"country": {
|
|
706
|
+
"description": "Geographic country",
|
|
707
|
+
"label": "Country",
|
|
708
|
+
"placeholder": "Select countries…"
|
|
709
|
+
},
|
|
710
|
+
"current_pause_minutes": {
|
|
711
|
+
"description": "How long the session has been continuously paused",
|
|
712
|
+
"label": "Current Pause Duration"
|
|
713
|
+
},
|
|
714
|
+
"device_type": {
|
|
715
|
+
"description": "Type of device used",
|
|
716
|
+
"label": "Device Type"
|
|
717
|
+
},
|
|
718
|
+
"dynamic_range_after": {
|
|
719
|
+
"description": "HDR format the item ends up with",
|
|
720
|
+
"label": "Dynamic Range"
|
|
721
|
+
},
|
|
722
|
+
"file_size_after": {
|
|
723
|
+
"description": "Size the item ends up at, across every copy",
|
|
724
|
+
"label": "File Size"
|
|
725
|
+
},
|
|
726
|
+
"inactive_days": {
|
|
727
|
+
"description": "Days since last activity",
|
|
728
|
+
"label": "Days Inactive"
|
|
729
|
+
},
|
|
730
|
+
"ip_in_range": {
|
|
731
|
+
"description": "IP address in a CIDR range, IPv4 or IPv6",
|
|
732
|
+
"label": "IP Range",
|
|
733
|
+
"placeholder": "e.g., 192.168.1.0/24 or 2001:db8:abcd:7800::/64"
|
|
734
|
+
},
|
|
735
|
+
"is_local_network": {
|
|
736
|
+
"description": "Streaming from the local network",
|
|
737
|
+
"label": "Local Network"
|
|
738
|
+
},
|
|
739
|
+
"is_transcode_downgrade": {
|
|
740
|
+
"description": "Output resolution is lower than source",
|
|
741
|
+
"label": "Transcode Downgrade"
|
|
742
|
+
},
|
|
743
|
+
"is_transcoding": {
|
|
744
|
+
"description": "Whether video or audio streams are being transcoded",
|
|
745
|
+
"label": "Is Transcoding"
|
|
746
|
+
},
|
|
747
|
+
"library_item_type": {
|
|
748
|
+
"description": "What kind of library item it is",
|
|
749
|
+
"label": "Item Type"
|
|
750
|
+
},
|
|
751
|
+
"library_name": {
|
|
752
|
+
"description": "Name of the library it landed in",
|
|
753
|
+
"label": "Library",
|
|
754
|
+
"placeholder": "Movies"
|
|
755
|
+
},
|
|
756
|
+
"media_type": {
|
|
757
|
+
"description": "Type of content",
|
|
758
|
+
"label": "Media Type"
|
|
759
|
+
},
|
|
760
|
+
"output_resolution": {
|
|
761
|
+
"description": "Transcoded or delivered resolution",
|
|
762
|
+
"label": "Output Resolution"
|
|
763
|
+
},
|
|
764
|
+
"platform": {
|
|
765
|
+
"description": "Operating system",
|
|
766
|
+
"label": "Platform/OS"
|
|
767
|
+
},
|
|
768
|
+
"resolution_after": {
|
|
769
|
+
"description": "Resolution the item ends up at",
|
|
770
|
+
"label": "Resolution"
|
|
771
|
+
},
|
|
772
|
+
"server_id": {
|
|
773
|
+
"description": "Specific media server",
|
|
774
|
+
"label": "Server",
|
|
775
|
+
"placeholder": "Select servers…"
|
|
776
|
+
},
|
|
777
|
+
"source_bitrate_mbps": {
|
|
778
|
+
"description": "Original media bitrate",
|
|
779
|
+
"label": "Source Bitrate"
|
|
780
|
+
},
|
|
781
|
+
"source_resolution": {
|
|
782
|
+
"description": "Original media resolution",
|
|
783
|
+
"label": "Source Resolution"
|
|
784
|
+
},
|
|
785
|
+
"total_pause_minutes": {
|
|
786
|
+
"description": "Total accumulated pause time across all pause/resume cycles",
|
|
787
|
+
"label": "Total Pause Duration"
|
|
788
|
+
},
|
|
789
|
+
"travel_speed_kmh": {
|
|
790
|
+
"description": "Calculated travel speed between locations",
|
|
791
|
+
"label": "Travel Speed"
|
|
792
|
+
},
|
|
793
|
+
"trust_score": {
|
|
794
|
+
"description": "The user's trust score, from 0 to 100",
|
|
795
|
+
"label": "Trust Score"
|
|
796
|
+
},
|
|
797
|
+
"unique_devices_in_window": {
|
|
798
|
+
"description": "Number of unique devices in the time window",
|
|
799
|
+
"label": "Unique Devices in Window"
|
|
800
|
+
},
|
|
801
|
+
"unique_ips_in_window": {
|
|
802
|
+
"description": "Number of unique IP addresses in the time window",
|
|
803
|
+
"label": "Unique IPs in Window"
|
|
804
|
+
},
|
|
805
|
+
"user_id": {
|
|
806
|
+
"description": "Specific users by account",
|
|
807
|
+
"label": "User",
|
|
808
|
+
"placeholder": "Select users…"
|
|
809
|
+
},
|
|
810
|
+
"video_codec_after": {
|
|
811
|
+
"description": "Video codec the item ends up with",
|
|
812
|
+
"label": "Video Codec"
|
|
813
|
+
}
|
|
814
|
+
},
|
|
815
|
+
"gallery": {
|
|
816
|
+
"builtin": "Built-in",
|
|
817
|
+
"description": "Ready-made automations. Pick one and fill in the blanks.",
|
|
818
|
+
"failed": "Couldn't load the ready-made automations.",
|
|
819
|
+
"group": {
|
|
820
|
+
"housekeeping": "Housekeeping",
|
|
821
|
+
"notifications": "Notifications",
|
|
822
|
+
"other": "Other ways to start",
|
|
823
|
+
"policies": "Limits and rules",
|
|
824
|
+
"server_health": "Server health"
|
|
825
|
+
},
|
|
826
|
+
"hint": {
|
|
827
|
+
"close": "close",
|
|
828
|
+
"move": "move",
|
|
829
|
+
"use": "use"
|
|
830
|
+
},
|
|
831
|
+
"kind": {
|
|
832
|
+
"notification": "An alert",
|
|
833
|
+
"policy": "A violation"
|
|
834
|
+
},
|
|
835
|
+
"loading": "Loading…",
|
|
836
|
+
"missing": "That ready-made automation is not on this server.",
|
|
837
|
+
"noMatches": "Nothing matches “{{query}}”.",
|
|
838
|
+
"noMatchesHint": "Try a word from the outcome: discord, offline, paused.",
|
|
839
|
+
"paste": {
|
|
840
|
+
"description": "Paste a code and review what it does before adding it.",
|
|
841
|
+
"title": "Paste a share code"
|
|
842
|
+
},
|
|
843
|
+
"retry": "Try again",
|
|
844
|
+
"scratch": {
|
|
845
|
+
"description": "Build it step by step.",
|
|
846
|
+
"title": "Start from scratch"
|
|
847
|
+
},
|
|
848
|
+
"searchPlaceholder": "Search",
|
|
849
|
+
"title": "New automation"
|
|
850
|
+
},
|
|
851
|
+
"import": {
|
|
852
|
+
"adding": "Adding it…",
|
|
853
|
+
"check": "Check it",
|
|
854
|
+
"checking": "Reading it…",
|
|
855
|
+
"codeShort": "Code {{fingerprint}}",
|
|
856
|
+
"collision": {
|
|
857
|
+
"add": "Keep both",
|
|
858
|
+
"replace": "Replace mine",
|
|
859
|
+
"title": "A different automation named {{name}} already exists."
|
|
860
|
+
},
|
|
861
|
+
"description": "Paste the code. Everything is in the code; Tracearr fetches nothing.",
|
|
862
|
+
"errors": {
|
|
863
|
+
"notACode": "That doesn't look like a Tracearr share code.",
|
|
864
|
+
"notACodeHint": "A code starts with tracearr1. The JSON works too.",
|
|
865
|
+
"rejected": "Tracearr couldn't read this one.",
|
|
866
|
+
"rejectedHint": "It may come from a different tool or have been edited by hand.",
|
|
867
|
+
"tooBig": "That's too big to be a Tracearr automation.",
|
|
868
|
+
"tooBigHint": "Codes are a few thousand characters at most.",
|
|
869
|
+
"tooMany": "That's a lot of codes in one minute.",
|
|
870
|
+
"tooManyHint": "Wait a moment, then check it again.",
|
|
871
|
+
"tooNew": "This needs Tracearr {{required}} or newer.",
|
|
872
|
+
"tooNewHint": "This server runs {{current}}. Update Tracearr, then paste again.",
|
|
873
|
+
"truncated": "This code looks cut off.",
|
|
874
|
+
"truncatedHint": "Copy the whole code and paste it again; some chat apps split long codes across lines."
|
|
875
|
+
},
|
|
876
|
+
"existing": "Already saved as {{name}}.",
|
|
877
|
+
"existingUse": "Use it",
|
|
878
|
+
"formatHint": "A code starts with tracearr1.",
|
|
879
|
+
"madeBy": "Author: {{author}}, as written in the code",
|
|
880
|
+
"paused": {
|
|
881
|
+
"helper": "Turn it on from the list after review.",
|
|
882
|
+
"label": "Start paused"
|
|
883
|
+
},
|
|
884
|
+
"placeholder": "tracearr1.…",
|
|
885
|
+
"raw": "Show the JSON",
|
|
886
|
+
"reviewDescription": "What the code does, and what to fill in.",
|
|
887
|
+
"submit": "Add it",
|
|
888
|
+
"title": "Paste a share code",
|
|
889
|
+
"valid": "Tracearr can read this code.",
|
|
890
|
+
"source": "Shared automations are listed at docs.tracearr.com/templates.",
|
|
891
|
+
"validCaveat": "Nothing in a code says who wrote it or whether it is safe. The steps are below.",
|
|
892
|
+
"builtinMatch": "This is {{name}}, one of the automations Tracearr ships."
|
|
893
|
+
},
|
|
894
|
+
"kind": {
|
|
895
|
+
"notification": "Alert",
|
|
896
|
+
"policy": "Violation"
|
|
897
|
+
},
|
|
898
|
+
"kindColumn": "Kind",
|
|
899
|
+
"name": "Automation Name",
|
|
900
|
+
"namePlaceholder": "A name for this automation",
|
|
901
|
+
"nameInvalid": "Give it a name.",
|
|
902
|
+
"descriptionLabel": "Description",
|
|
903
|
+
"descriptionPlaceholder": "What this is for",
|
|
904
|
+
"thisAutomation": "This automation",
|
|
905
|
+
"cooldownLabel": "At most once every",
|
|
906
|
+
"cooldownInvalid": "Enter a whole number of minutes, 0 or more, or leave it empty.",
|
|
907
|
+
"retentionLabel": "Keep runs for",
|
|
908
|
+
"retentionPlaceholder": "{{days}}",
|
|
909
|
+
"retentionInvalid": "Enter a whole number of days, at least 1, or leave it empty.",
|
|
910
|
+
"newAutomation": "New automation",
|
|
911
|
+
"noAutomationsFound": "No automations found",
|
|
912
|
+
"operators": {
|
|
913
|
+
"contains": "contains",
|
|
914
|
+
"eq": "equals",
|
|
915
|
+
"gt": "greater than",
|
|
916
|
+
"gte": "at least",
|
|
917
|
+
"in": "is one of",
|
|
918
|
+
"lt": "less than",
|
|
919
|
+
"lte": "at most",
|
|
920
|
+
"neq": "not equals",
|
|
921
|
+
"not_contains": "does not contain",
|
|
922
|
+
"not_in": "is not one of"
|
|
923
|
+
},
|
|
924
|
+
"options": {
|
|
925
|
+
"1080p": "1080p",
|
|
926
|
+
"1440p": "1440p",
|
|
927
|
+
"480p": "480p",
|
|
928
|
+
"4K": "4K (2160p)",
|
|
929
|
+
"720p": "720p",
|
|
930
|
+
"8K": "8K",
|
|
931
|
+
"SD": "SD",
|
|
932
|
+
"android": "Android",
|
|
933
|
+
"androidtv": "Android TV",
|
|
934
|
+
"audio": "Audio",
|
|
935
|
+
"browser": "Browser",
|
|
936
|
+
"desktop": "Desktop",
|
|
937
|
+
"dolby vision": "Dolby Vision",
|
|
938
|
+
"episode": "TV Episode",
|
|
939
|
+
"hdr": "HDR",
|
|
940
|
+
"hdr10": "HDR10",
|
|
941
|
+
"hdr10+": "HDR10+",
|
|
942
|
+
"hlg": "HLG",
|
|
943
|
+
"ios": "iOS",
|
|
944
|
+
"libraryItemType": {
|
|
945
|
+
"album": "Album",
|
|
946
|
+
"artist": "Artist",
|
|
947
|
+
"episode": "Episode",
|
|
948
|
+
"movie": "Movie",
|
|
949
|
+
"photo": "Photo",
|
|
950
|
+
"season": "Season",
|
|
951
|
+
"show": "Show",
|
|
952
|
+
"track": "Track"
|
|
953
|
+
},
|
|
954
|
+
"linux": "Linux",
|
|
955
|
+
"live": "Live TV",
|
|
956
|
+
"macos": "macOS",
|
|
957
|
+
"mobile": "Mobile",
|
|
958
|
+
"movie": "Movie",
|
|
959
|
+
"neither": "Neither (Direct Play)",
|
|
960
|
+
"photo": "Photo",
|
|
961
|
+
"roku": "Roku",
|
|
962
|
+
"sdr": "SDR",
|
|
963
|
+
"tablet": "Tablet",
|
|
964
|
+
"tizen": "Tizen",
|
|
965
|
+
"track": "Music",
|
|
966
|
+
"trailer": "Trailer",
|
|
967
|
+
"tv": "TV",
|
|
968
|
+
"tvos": "tvOS",
|
|
969
|
+
"unknown": "Unknown",
|
|
970
|
+
"video": "Video",
|
|
971
|
+
"video_or_audio": "Video or Audio",
|
|
972
|
+
"webos": "webOS",
|
|
973
|
+
"windows": "Windows"
|
|
974
|
+
},
|
|
975
|
+
"provenance": {
|
|
976
|
+
"builtin": "Built-in · {{name}} {{version}}",
|
|
977
|
+
"customized": "Customized from {{name}}",
|
|
978
|
+
"customizedFromRemoved": "Customized from a ready-made automation that has since been removed",
|
|
979
|
+
"imported": "Imported from a share code on {{date}} · {{name}} {{version}}",
|
|
980
|
+
"importedBy": "Imported from a share code by {{author}} on {{date}} · {{name}} {{version}}",
|
|
981
|
+
"saved": "Saved here from {{name}} on {{date}} · {{version}}"
|
|
982
|
+
},
|
|
983
|
+
"recordsOnly": "Records runs only",
|
|
984
|
+
"scope": {
|
|
985
|
+
"account": "Account",
|
|
986
|
+
"crossServer": "Cross-server",
|
|
987
|
+
"global": "Global",
|
|
988
|
+
"person": "Person"
|
|
989
|
+
},
|
|
990
|
+
"searchPlaceholder": "Search automations…",
|
|
991
|
+
"sessionTargets": {
|
|
992
|
+
"all_except_one": {
|
|
993
|
+
"label": "All except one (keep oldest)",
|
|
994
|
+
"tooltip": "All sessions except the oldest, bringing the user down to one stream"
|
|
995
|
+
},
|
|
996
|
+
"all_user": {
|
|
997
|
+
"label": "All user sessions",
|
|
998
|
+
"tooltip": "Every active session for this user"
|
|
999
|
+
},
|
|
1000
|
+
"newest": {
|
|
1001
|
+
"label": "Newest session",
|
|
1002
|
+
"tooltip": "The user's most recently started session"
|
|
1003
|
+
},
|
|
1004
|
+
"oldest": {
|
|
1005
|
+
"label": "Oldest session",
|
|
1006
|
+
"tooltip": "The user's longest-running active session"
|
|
1007
|
+
},
|
|
1008
|
+
"triggering": {
|
|
1009
|
+
"label": "Triggering session",
|
|
1010
|
+
"tooltip": "Only the session that triggered this automation"
|
|
1011
|
+
}
|
|
1012
|
+
},
|
|
1013
|
+
"severity": {
|
|
1014
|
+
"high": "High",
|
|
1015
|
+
"low": "Low",
|
|
1016
|
+
"warning": "Warning"
|
|
1017
|
+
},
|
|
1018
|
+
"template": {
|
|
1019
|
+
"after": "After the update",
|
|
1020
|
+
"before": "Now",
|
|
1021
|
+
"customize": "Customize",
|
|
1022
|
+
"customizeConfirm": "Opening it in the builder makes this automation independent: every step is editable, and it no longer receives updates from the ready-made one. This cannot be undone.",
|
|
1023
|
+
"customizeConfirmAction": "Customize it",
|
|
1024
|
+
"customizeFailed": "Could not open it in the builder.",
|
|
1025
|
+
"customizeFirst": "This automation follows a ready-made one. Open it in the builder first.",
|
|
1026
|
+
"customizeTitle": "Open this in the builder?",
|
|
1027
|
+
"gone": "The ready-made automation this was built from is no longer on this server.",
|
|
1028
|
+
"review": "Review and update",
|
|
1029
|
+
"save": "Save changes",
|
|
1030
|
+
"updateAvailable": "An update is available",
|
|
1031
|
+
"updatedBody": "Review the answers below, then update.",
|
|
1032
|
+
"updatedTitle": "The ready-made automation is now on v{{version}}",
|
|
1033
|
+
"upgradeFailed": "Couldn't update that. Try again.",
|
|
1034
|
+
"version": "v{{version}}",
|
|
1035
|
+
"doorsHelper": "The steps come from the ready-made automation and are fixed. Open in the builder makes every step editable and ends the link."
|
|
1036
|
+
},
|
|
1037
|
+
"templates": {
|
|
1038
|
+
"account-inactivity": {
|
|
1039
|
+
"description": "Raise a violation when an account goes unused for the days you allow.",
|
|
1040
|
+
"keywords": "idle dormant unused stale cleanup inactive account",
|
|
1041
|
+
"name": "Inactive account"
|
|
1042
|
+
},
|
|
1043
|
+
"concurrent-streams": {
|
|
1044
|
+
"description": "Raise a violation when an account plays more streams at once than you allow.",
|
|
1045
|
+
"keywords": "limit cap concurrent simultaneous sharing too many streams",
|
|
1046
|
+
"name": "Too many streams at once"
|
|
1047
|
+
},
|
|
1048
|
+
"device-velocity": {
|
|
1049
|
+
"description": "Raise a violation when an account streams from more IP addresses in a window than you allow.",
|
|
1050
|
+
"keywords": "ip addresses vpn sharing devices window",
|
|
1051
|
+
"name": "Many IPs in a window"
|
|
1052
|
+
},
|
|
1053
|
+
"geo-restriction": {
|
|
1054
|
+
"description": "Raise a violation when a stream comes from a country you block.",
|
|
1055
|
+
"keywords": "country geo vpn abroad region block travel",
|
|
1056
|
+
"name": "Blocked countries"
|
|
1057
|
+
},
|
|
1058
|
+
"impossible-travel": {
|
|
1059
|
+
"description": "Raise a violation when two sessions sit further apart than anyone could travel between them.",
|
|
1060
|
+
"keywords": "vpn travel speed distance location sharing",
|
|
1061
|
+
"name": "Impossible travel"
|
|
1062
|
+
},
|
|
1063
|
+
"kill-paused-streams": {
|
|
1064
|
+
"description": "Stop a stream that has sat paused past the minutes you allow.",
|
|
1065
|
+
"keywords": "pause idle afk stop kill terminate reclaim",
|
|
1066
|
+
"name": "Stop paused streams"
|
|
1067
|
+
},
|
|
1068
|
+
"media-added": {
|
|
1069
|
+
"description": "Tell a destination when a library item shows up for the first time.",
|
|
1070
|
+
"keywords": "new library movie episode added import notify discord email webhook",
|
|
1071
|
+
"name": "New media added"
|
|
1072
|
+
},
|
|
1073
|
+
"media-upgraded": {
|
|
1074
|
+
"description": "Tell a destination when a library item changes quality.",
|
|
1075
|
+
"keywords": "upgrade quality remux 4k resolution replaced notify discord email webhook",
|
|
1076
|
+
"name": "Media upgraded"
|
|
1077
|
+
},
|
|
1078
|
+
"new-device": {
|
|
1079
|
+
"name": "New device",
|
|
1080
|
+
"description": "Tell a destination the first time an account streams from a device you have not seen.",
|
|
1081
|
+
"keywords": "device new unknown unrecognized phone login sharing notify discord email webhook"
|
|
1082
|
+
},
|
|
1083
|
+
"no-4k-transcodes": {
|
|
1084
|
+
"description": "Stop a stream that transcodes 4K source video.",
|
|
1085
|
+
"keywords": "4k transcode quality cpu bandwidth stop",
|
|
1086
|
+
"name": "No 4K transcodes"
|
|
1087
|
+
},
|
|
1088
|
+
"paused-too-long": {
|
|
1089
|
+
"description": "Tell a destination when a stream sits paused past the minutes you allow.",
|
|
1090
|
+
"keywords": "pause idle afk stuck abandoned notify discord email webhook",
|
|
1091
|
+
"name": "Paused too long"
|
|
1092
|
+
},
|
|
1093
|
+
"plugin-update": {
|
|
1094
|
+
"description": "Tell a destination when a server has a newer Tracearr plugin to install.",
|
|
1095
|
+
"keywords": "plugin update upgrade version release notify discord email webhook",
|
|
1096
|
+
"name": "Tracearr plugin update"
|
|
1097
|
+
},
|
|
1098
|
+
"server-down": {
|
|
1099
|
+
"description": "Tell a destination when a media server stops answering.",
|
|
1100
|
+
"keywords": "offline outage unreachable down notify discord email webhook",
|
|
1101
|
+
"name": "Server down"
|
|
1102
|
+
},
|
|
1103
|
+
"server-up": {
|
|
1104
|
+
"description": "Tell a destination when a media server answers again.",
|
|
1105
|
+
"keywords": "online recovered restored back up notify discord email webhook",
|
|
1106
|
+
"name": "Server back up"
|
|
1107
|
+
},
|
|
1108
|
+
"server-update": {
|
|
1109
|
+
"description": "Tell a destination when a media server has an update available.",
|
|
1110
|
+
"keywords": "update upgrade version release plex jellyfin emby notify discord",
|
|
1111
|
+
"name": "Media server update"
|
|
1112
|
+
},
|
|
1113
|
+
"simultaneous-locations": {
|
|
1114
|
+
"description": "Raise a violation when one account streams from two distant places at the same time.",
|
|
1115
|
+
"keywords": "distance location sharing vpn two places at once",
|
|
1116
|
+
"name": "Two places at once"
|
|
1117
|
+
},
|
|
1118
|
+
"stream-ended": {
|
|
1119
|
+
"description": "Tell a destination every time a stream stops.",
|
|
1120
|
+
"keywords": "stop end finish playback notify discord email webhook",
|
|
1121
|
+
"name": "Stream ended"
|
|
1122
|
+
},
|
|
1123
|
+
"stream-started": {
|
|
1124
|
+
"description": "Tell a destination every time a stream starts.",
|
|
1125
|
+
"keywords": "play watch begin start viewing notify discord email webhook",
|
|
1126
|
+
"name": "Stream started"
|
|
1127
|
+
},
|
|
1128
|
+
"tracearr-update": {
|
|
1129
|
+
"description": "Tell a destination when a new Tracearr release is out.",
|
|
1130
|
+
"keywords": "update upgrade version release tracearr notify discord email webhook",
|
|
1131
|
+
"name": "Tracearr update"
|
|
1132
|
+
},
|
|
1133
|
+
"transcode-started": {
|
|
1134
|
+
"description": "Tell a destination when a stream transcodes video or audio.",
|
|
1135
|
+
"keywords": "transcode convert cpu direct play quality notify discord email webhook",
|
|
1136
|
+
"name": "Stream is transcoding"
|
|
1137
|
+
},
|
|
1138
|
+
"trust-score-changed": {
|
|
1139
|
+
"name": "Trust score changed",
|
|
1140
|
+
"description": "Tell a destination when an account's trust score changes.",
|
|
1141
|
+
"keywords": "trust score reputation penalty adjusted notify discord email webhook"
|
|
1142
|
+
}
|
|
1143
|
+
},
|
|
1144
|
+
"title": "Automations",
|
|
1145
|
+
"toggleAutomation": "Turn {{name}} on or off",
|
|
1146
|
+
"trustModes": {
|
|
1147
|
+
"adjust": {
|
|
1148
|
+
"label": "Adjust by amount"
|
|
1149
|
+
},
|
|
1150
|
+
"reset": {
|
|
1151
|
+
"label": "Reset to default (100)"
|
|
1152
|
+
},
|
|
1153
|
+
"set": {
|
|
1154
|
+
"label": "Set to value"
|
|
1155
|
+
}
|
|
1156
|
+
},
|
|
1157
|
+
"tryAdjustingFilters": "Try adjusting your filters.",
|
|
1158
|
+
"units": {
|
|
1159
|
+
"days": "days",
|
|
1160
|
+
"gb": "GB",
|
|
1161
|
+
"hours": "hours",
|
|
1162
|
+
"km": "km",
|
|
1163
|
+
"kmh": "km/h",
|
|
1164
|
+
"mbps": "Mbps",
|
|
1165
|
+
"minutes": "minutes",
|
|
1166
|
+
"seconds": "seconds"
|
|
1167
|
+
},
|
|
1168
|
+
"updateAutomation": "Update Automation",
|
|
1169
|
+
"filters": {
|
|
1170
|
+
"source": "Where it came from",
|
|
1171
|
+
"allSources": "Anywhere",
|
|
1172
|
+
"sources": {
|
|
1173
|
+
"builtin": "Built-in",
|
|
1174
|
+
"import": "Imported",
|
|
1175
|
+
"local": "Saved here",
|
|
1176
|
+
"own": "Built in the builder"
|
|
1177
|
+
},
|
|
1178
|
+
"trigger": "What starts it",
|
|
1179
|
+
"allTriggers": "All triggers"
|
|
1180
|
+
},
|
|
1181
|
+
"openGallery": "Open the gallery"
|
|
1182
|
+
},
|
|
25
1183
|
"dashboard": {
|
|
26
1184
|
"activeUsers": "Активные пользователи",
|
|
27
1185
|
"alerts": "Оповещения",
|
|
@@ -35,10 +1193,11 @@
|
|
|
35
1193
|
"watchTime": "Время просмотра"
|
|
36
1194
|
},
|
|
37
1195
|
"debug": {
|
|
1196
|
+
"clearAutomations": "Delete all automations and runs",
|
|
1197
|
+
"clearAutomationsConfirm": "Delete every automation and all of their runs?",
|
|
38
1198
|
"clearLibraryCache": "Очистить кэш библиотеки",
|
|
39
1199
|
"clearMobileDevices": "Очистить мобильные устройства",
|
|
40
1200
|
"clearQueryCache": "Очистить кэш запросов",
|
|
41
|
-
"clearRules": "Очистить правила",
|
|
42
1201
|
"clearServers": "Очистить серверы",
|
|
43
1202
|
"clearSessions": "Очистить сессии",
|
|
44
1203
|
"clearStuckJobs": "Очистить застрятые задания",
|
|
@@ -226,7 +1385,6 @@
|
|
|
226
1385
|
"noDuplicatesDesc": "No titles with more than one physical file detected.",
|
|
227
1386
|
"noDuplicatesTitle": "No duplicates found",
|
|
228
1387
|
"of": "из",
|
|
229
|
-
"pageOf": "Page {{page}} of {{totalPages}}",
|
|
230
1388
|
"predictions": "Прогнозы",
|
|
231
1389
|
"recoverable": "восстанавливаемый",
|
|
232
1390
|
"sameServer": "Same server",
|
|
@@ -649,83 +1807,6 @@
|
|
|
649
1807
|
"authComplete": "Аутентификация завершена",
|
|
650
1808
|
"windowWillClose": "Это окно будет закрыто автоматически..."
|
|
651
1809
|
},
|
|
652
|
-
"rules": {
|
|
653
|
-
"accountInactivity": "Неактивность аккаунта",
|
|
654
|
-
"accountInactivityDesc": "Получать уведомления, когда пользователи не просмотрели ничего за указанный период",
|
|
655
|
-
"addRule": "Добавить правило",
|
|
656
|
-
"allowed": "Разрешено",
|
|
657
|
-
"allowedCountries": "Разрешенные страны",
|
|
658
|
-
"allowlist": "Список разрешенных (только для этих стран)",
|
|
659
|
-
"allowlistNote": "Потоки из любой другой страны спровоцируют нарушение.",
|
|
660
|
-
"blocked": "Заблокирован",
|
|
661
|
-
"blockedCountries": "Заблокированные страны",
|
|
662
|
-
"blocklist": "Список блоков (блокировать эти страны)",
|
|
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
|
-
},
|
|
670
|
-
"chooseTemplate": "Выберите шаблон правила",
|
|
671
|
-
"chooseTemplateDesc": "Выберите тип предварительно настроенных правил, чтобы начать быстро.",
|
|
672
|
-
"classicRule": "Классическое правило",
|
|
673
|
-
"concurrentStreams": "Одновременные потоки",
|
|
674
|
-
"concurrentStreamsDesc": "Ограничить количество одновременных потоков на пользователя",
|
|
675
|
-
"createDescription": "Настройте новое правило определения для ваших медиа серверов.",
|
|
676
|
-
"createFirstRule": "Создайте первое правило для определения аккаунта, чтобы начать мониторинг за совместным доступом.",
|
|
677
|
-
"createRule": "Создать правило",
|
|
678
|
-
"customRule": "Пользовательское правило",
|
|
679
|
-
"days": "Дней",
|
|
680
|
-
"deleteRule": "Удалить правило",
|
|
681
|
-
"deleteRuleConfirm": "Вы уверены, что хотите удалить это правило? Это действие нельзя отменить.",
|
|
682
|
-
"deleteRule_one": "Удалить правило {{count}}",
|
|
683
|
-
"deleteRule_other": "Удалить правила {{count}}",
|
|
684
|
-
"deleteRulesConfirm": "Вы уверены, что хотите удалить? Это действие нельзя отменить.",
|
|
685
|
-
"description": "Настройка правил обнаружения для совместного использования аккаунтов и нарушений политики",
|
|
686
|
-
"deviceVelocity": "Скорость устройства",
|
|
687
|
-
"deviceVelocityDesc": "Определять когда пользователь подключается с слишком большого числа IP-адресов в окне времени",
|
|
688
|
-
"disable": "Отключено",
|
|
689
|
-
"editRule": "Изменить правило",
|
|
690
|
-
"enable": "Включить",
|
|
691
|
-
"excludeLocalNetwork": "Исключить локальную сеть",
|
|
692
|
-
"excludeLocalNetworkDesc": "Игнорировать сессии из локальных/частных IP (например, 192.168.x.x, 10.x.x.x)",
|
|
693
|
-
"geoRestriction": "Ограничение Гео",
|
|
694
|
-
"geoRestrictionDesc": "Блокировать трансляцию из определенных стран",
|
|
695
|
-
"groupByDevice": "Группировать по устройству",
|
|
696
|
-
"groupByDeviceDesc": "Подсчет по устройству вместо IP. Предотвращает ложные срабатывания от VPN, DHCP или Виртуальных каналов.",
|
|
697
|
-
"impossibleTravel": "Невозможная поездка",
|
|
698
|
-
"impossibleTravelDesc": "Определять, когда пользователь транслирует с разных мест слишком далеко за короткое время",
|
|
699
|
-
"inactiveFor": "Неактивен для {{value}} {{unit}}",
|
|
700
|
-
"inactivityNote": "Создает предупреждение, когда пользователь не просмотрел ничего за этот период. Проверяет часовой запуск.",
|
|
701
|
-
"inactivityPeriod": "Период неактивности",
|
|
702
|
-
"maxIps": "Макс. IP",
|
|
703
|
-
"maxIpsDefault": "Максимальное количество уникальных IP-адресов, разрешенных в окне времени. По умолчанию: 5 IP-адреса в течение 24 часов",
|
|
704
|
-
"maxSpeed": "Макс. скорость ({{unit}})",
|
|
705
|
-
"maxSpeedDefault": "Максимальная реалистичная скорость передвижения. По умолчанию: {{value}} {{unit}} (скорость самолета)",
|
|
706
|
-
"maxStreams": "Макс. Потоков",
|
|
707
|
-
"maxStreamsDefault": "Максимальное количество одновременных потоков для каждого пользователя. По умолчанию: 3",
|
|
708
|
-
"minDistance": "Мин. расстояние ({{unit}})",
|
|
709
|
-
"minDistanceDefault": "Минимальное расстояние между местами для срабатывания. По умолчанию: {{value}} {{unit}}",
|
|
710
|
-
"mode": "Режим",
|
|
711
|
-
"months": "Месяцев",
|
|
712
|
-
"noRulesConfigured": "Правила не настроены",
|
|
713
|
-
"none": "Нет",
|
|
714
|
-
"recordsOnly": "Records violations only",
|
|
715
|
-
"ruleName": "Название правила",
|
|
716
|
-
"ruleNamePlaceholder": "например, Лимит одновременного потока",
|
|
717
|
-
"ruleType": "Тип правила",
|
|
718
|
-
"selectAllowedCountries": "Выберите разрешенные страны...",
|
|
719
|
-
"selectCountriesToBlock": "Выберите страны для блокировки...",
|
|
720
|
-
"simultaneousLocations": "Одновременные места",
|
|
721
|
-
"simultaneousLocationsDesc": "Определять, когда пользователь транслирует из нескольких отдаленных мест сразу",
|
|
722
|
-
"timeWindow": "Окно времени (в часах)",
|
|
723
|
-
"title": "Правила",
|
|
724
|
-
"unit": "Единица измерения",
|
|
725
|
-
"updateDescription": "Обновите конфигурацию правила ниже.",
|
|
726
|
-
"updateRule": "Обновить правило",
|
|
727
|
-
"weeks": "Недели"
|
|
728
|
-
},
|
|
729
1810
|
"settings": {
|
|
730
1811
|
"destinations": {
|
|
731
1812
|
"add": "Add destination",
|
|
@@ -733,17 +1814,8 @@
|
|
|
733
1814
|
"clearSecret": "Clear",
|
|
734
1815
|
"delete": "Delete",
|
|
735
1816
|
"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
|
|
1817
|
+
"description": "Where notifications go. Add as many as you like, and automations can send to any of them.",
|
|
737
1818
|
"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
1819
|
"fields": {
|
|
748
1820
|
"apiToken": "API token",
|
|
749
1821
|
"apiUrl": "API URL",
|
|
@@ -759,6 +1831,8 @@
|
|
|
759
1831
|
},
|
|
760
1832
|
"ownerOnly": "Only the owner can manage notification destinations.",
|
|
761
1833
|
"pushNote": "Delivered to paired mobile devices; each device filters in its own notification settings.",
|
|
1834
|
+
"receiveViolations": "Receive violations",
|
|
1835
|
+
"receiveViolationsHint": "Send every violation to this destination",
|
|
762
1836
|
"reencrypt": "Re-enter this destination's secret",
|
|
763
1837
|
"secretSet": "Set (leave blank to keep)",
|
|
764
1838
|
"test": "Test",
|
|
@@ -829,6 +1903,7 @@
|
|
|
829
1903
|
"noReachableConnections": "Нет доступных подключений",
|
|
830
1904
|
"noServersFound": "Ни один Plex сервер не найден",
|
|
831
1905
|
"noServersFoundHint": "Убедитесь, что у вас есть хотя бы один Plex сервер",
|
|
1906
|
+
"reauthorizeAccount": "Reauthorize this Plex account",
|
|
832
1907
|
"recommended": "Рекомендовано",
|
|
833
1908
|
"remote": "Удалённый",
|
|
834
1909
|
"secure": "Безопасность",
|
|
@@ -836,7 +1911,6 @@
|
|
|
836
1911
|
"serversConnected_other": "{{count}} подключены к серверам",
|
|
837
1912
|
"showAll": "Показать все",
|
|
838
1913
|
"unlinkAccount": "Отвязать этот аккаунт Plex",
|
|
839
|
-
"reauthorizeAccount": "Reauthorize this Plex account",
|
|
840
1914
|
"unlinkConfirm": "Вы уверены, что хотите отвязать этот Plex аккаунт? Вы не сможете добавить серверы из этого аккаунта, пока не привяжите его снова.",
|
|
841
1915
|
"unlinkPlexAccount": "Отвязать аккаунт Plex"
|
|
842
1916
|
}
|
|
@@ -878,9 +1952,7 @@
|
|
|
878
1952
|
"backToUsers": "Вернуться к пользователям",
|
|
879
1953
|
"byRule": "По / Правило",
|
|
880
1954
|
"linkedAccounts": "Linked accounts",
|
|
881
|
-
"locations": "Места",
|
|
882
1955
|
"manual": "Ручной",
|
|
883
|
-
"noSessionsFound": "Не найдено сессий для этого пользователя.",
|
|
884
1956
|
"noTerminationsFound": "Нет терминаций потока для этого пользователя.",
|
|
885
1957
|
"noViolationsFound": "Нет нарушений для этого пользователя.",
|
|
886
1958
|
"overallTrust": "Overall Trust",
|
|
@@ -892,12 +1964,16 @@
|
|
|
892
1964
|
"splitConfirmTitle": "Split server account",
|
|
893
1965
|
"statistics": "Статистика",
|
|
894
1966
|
"terminationHistory": "История отключения",
|
|
1967
|
+
"title": "User Details",
|
|
895
1968
|
"unknownRule": "Неизвестное правило",
|
|
896
1969
|
"userInfo": "Информация о пользователе",
|
|
897
1970
|
"userNotFound": "Пользователь не найден",
|
|
898
1971
|
"violations": "Нарушения"
|
|
899
1972
|
},
|
|
900
1973
|
"users": {
|
|
1974
|
+
"filterHasAccessTo": "Has access to",
|
|
1975
|
+
"filterHasAccessToHint": "Shows people with an active account on every server selected.",
|
|
1976
|
+
"filterHasAccessToPlaceholder": "Any server",
|
|
901
1977
|
"mergeConfirm": "Merge",
|
|
902
1978
|
"mergeDialogDescription": "Every server account, session, and violation from the duplicate moves to the primary. The duplicate identity is deleted.",
|
|
903
1979
|
"mergeDialogTitle": "Merge users",
|
|
@@ -932,8 +2008,8 @@
|
|
|
932
2008
|
"title": "Пользователи"
|
|
933
2009
|
},
|
|
934
2010
|
"violations": {
|
|
935
|
-
"allClear": "Все очищено",
|
|
936
2011
|
"allPeople": "All people",
|
|
2012
|
+
"allRules": "All rules",
|
|
937
2013
|
"allSeverities": "Все Серьезности",
|
|
938
2014
|
"allStatuses": "Все статусы",
|
|
939
2015
|
"detail": {
|
|
@@ -969,8 +2045,6 @@
|
|
|
969
2045
|
"dismissViolationsConfirm": "Вы уверены, что хотите уволить? Это приведет к их удалению из журнала нарушений навсегда и восстановит связанные оценки доверия.",
|
|
970
2046
|
"filterByPerson": "Filter violations by this person",
|
|
971
2047
|
"filterPeople": "People",
|
|
972
|
-
"noMatches": "Нет матчей",
|
|
973
|
-
"noViolationsDetected": "Нарушения правил не обнаружены",
|
|
974
2048
|
"noViolationsFound": "Нарушения не найдены",
|
|
975
2049
|
"noViolationsRecorded": "Пока никаких нарушений не зарегистрировано.",
|
|
976
2050
|
"peopleSelectedCount": "{{count}} people",
|
|
@@ -979,7 +2053,6 @@
|
|
|
979
2053
|
"personFilterPlaceholder": "Filter by person",
|
|
980
2054
|
"selectAllViolations": "Выбрать все {{count}} нарушений, соответствующих фильтрам",
|
|
981
2055
|
"title": "Нарушения",
|
|
982
|
-
"tryAdjustingFilters": "Попробуйте изменить фильтры"
|
|
983
|
-
"violationLog": "Журнал нарушений"
|
|
2056
|
+
"tryAdjustingFilters": "Попробуйте изменить фильтры"
|
|
984
2057
|
}
|
|
985
2058
|
}
|