@masterteam/system-settings 0.0.15 → 0.0.16

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.
@@ -1,370 +1,382 @@
1
- {
2
- "system-settings": {
3
- "general-configuration-title": "Experience & Appearance",
4
- "general-configuration-description": "Product-wide defaults for how the app looks and where users land.",
5
- "explore-default-view": "Default Explore View",
6
- "explore-default-view-hint": "The view the Explore page opens with. Users can still switch views at any time.",
7
- "explore-default-view-cards": "Cards",
8
- "explore-default-view-timeline": "Timeline",
9
- "design-switcher": "Show Design Switcher",
10
- "design-switcher-hint": "Adds the Classic / DS switcher to the topbar so users can preview the experimental Masterteam design system. Off by default — everyone stays on the Classic design.",
11
- "page-title": "System Settings",
12
- "page-subtitle": "Manage holidays, weekend, timezone, currency, and TimeSheet policy from one screen.",
13
- "save": "Save",
14
- "save-tooltip": "Save changes ",
15
- "cancel": "Cancel",
16
- "loading": "Loading settings...",
17
- "holidays-title": "Holidays",
18
- "holidays-description": "Add the holidays that should be applied across the product.",
19
- "add-holiday": "Add Holiday",
20
- "update-holiday": "Update Holiday",
21
- "holiday-name": "Holiday Name",
22
- "holiday-name-placeholder": "Enter holiday name",
23
- "from-date": "From Date",
24
- "to-date": "To Date",
25
- "edit-holiday": "Edit holiday",
26
- "remove-holiday": "Remove holiday",
27
- "holiday-range-error": "The end date must be on or after the start date.",
28
- "no-holidays-title": "No holidays added yet",
29
- "no-holidays-description": "Add a holiday row to define product-wide holiday periods.",
30
- "date-time-weekend-title": "Date, Time & Weekend",
31
- "date-time-weekend-description": "Configure the default date and time formats and choose which days are treated as weekends.",
32
- "date-format": "Date Format",
33
- "date-format-placeholder": "Select date format",
34
- "time-format": "Time Format",
35
- "time-format-placeholder": "Select time format",
36
- "format-token-year": "Year",
37
- "format-token-month": "Month",
38
- "format-token-day": "Day",
39
- "format-token-hour": "Hour",
40
- "format-token-minute": "Minute",
41
- "format-token-second": "Second",
42
- "format-token-period": "AM/PM",
43
- "currency-title": "Currency",
44
- "currency-description": "Set the default currency and display format used across the product.",
45
- "currency": "Currency",
46
- "currency-placeholder": "Select currency",
47
- "currency-format": "Currency Format",
48
- "currency-format-placeholder": "Select currency format",
49
- "weekend-days": "Weekend Days",
50
- "weekend-placeholder": "Select weekend days",
51
- "monday": "Monday",
52
- "tuesday": "Tuesday",
53
- "wednesday": "Wednesday",
54
- "thursday": "Thursday",
55
- "friday": "Friday",
56
- "saturday": "Saturday",
57
- "sunday": "Sunday",
58
- "timesheet-policy-title": "TimeSheet Policy",
59
- "timesheet-policy-description": "Configure TimeSheet validation and generation behavior. Approval is always controlled by Process Builder.",
60
- "timesheet-policy-workflow-note": "Approval is configured in Process Builder. This page controls validation and generation only.",
61
- "general-card-title": "TimeSheet",
62
- "general-card-description": "Configure how TimeSheets are captured and submitted. Approval is always controlled by Process Builder.",
63
- "frequency": "TimeSheet Frequency",
64
- "frequency-placeholder": "Select frequency",
65
- "frequency-daily": "Daily",
66
- "frequency-weekly": "Weekly",
67
- "frequency-biweekly": "Bi-Weekly",
68
- "frequency-monthly": "Monthly",
69
- "allow-backdated-entry": "Allow Backdated Entry",
70
- "auto-lock-on-approve": "Auto-Lock on Approve",
71
- "submission-deadline-days": "Submission Deadline (Days)",
72
- "submission-deadline-days-placeholder": "Enter number of days",
73
- "submission-deadline-hint": "Days after the period ends before submission is locked. Use 0 for no deadline.",
74
- "working-hours-card-title": "Working Hours",
75
- "working-hours-card-description": "Configure the organization-level working calendar used when a record does not have its own override.",
76
- "daily-working-hours": "Daily Working Hours",
77
- "daily-working-hours-placeholder": "Enter hours per day",
78
- "max-daily-below-daily": "Maximum daily hours is below the configured daily working hours.",
79
- "week-start-day": "Week Start Day",
80
- "week-start-day-placeholder": "Select week start day",
81
- "allowed-schedule-item-types": "Allowed Schedule Item Types",
82
- "allowed-schedule-item-types-placeholder": "Select item types",
83
- "regular-daily-hours": "Regular Daily Hours",
84
- "regular-daily-hours-placeholder": "Enter regular daily hours",
85
- "max-daily-hours": "Maximum Daily Hours",
86
- "max-daily-hours-placeholder": "Enter maximum daily hours",
87
- "past-entry-lock-days": "Past Entry Lock Days",
88
- "past-entry-lock-days-placeholder": "Leave empty for no lock",
89
- "rate-source": "Rate Source",
90
- "rate-source-placeholder": "Select rate source",
91
- "generation-enabled": "Generation Enabled",
92
- "manual-generation-enabled": "Manual Generation Enabled",
93
- "allow-overtime": "Allow Overtime",
94
- "require-overtime-reason": "Require Overtime Reason",
95
- "require-description": "Require Description",
96
- "allow-future-entry": "Allow Future Entry",
97
- "assigned-items-only": "Assigned Items Only",
98
- "allow-zero-hour-submit": "Allow Zero-Hour Submit",
99
- "cost-enabled": "Cost Enabled",
100
- "schedule-item-task": "Task",
101
- "schedule-item-milestone": "Milestone",
102
- "schedule-item-deliverable": "Deliverable",
103
- "rate-source-user-hourly-rate": "User Hourly Rate",
104
- "rate-source-none": "None",
105
- "global-working-hours-title": "Global Working Hours",
106
- "global-working-hours-description": "Configure the inherited organization-level working calendar used when a record does not have its own override.",
107
- "global-timezone": "Timezone",
108
- "global-timezone-placeholder": "Select timezone",
109
- "work-day-start": "Work Day Start",
110
- "work-day-start-placeholder": "Select start time",
111
- "work-day-end": "Work Day End",
112
- "work-day-end-placeholder": "Select end time",
113
- "working-days": "Working Days",
114
- "working-days-placeholder": "Select working days",
115
- "global-holidays": "Holiday Dates",
116
- "global-holidays-placeholder": "YYYY-MM-DD dates separated by commas",
117
- "saved-successfully": "Settings saved successfully.",
118
- "no-changes-message": "There are no changes to save."
119
- },
120
- "email-delivery": {
121
- "title": "Email Delivery",
122
- "description": "Configure the connection used to send notification email and review recent delivery activity.",
123
- "tabs": { "connections": "Connections", "activity": "Activity" },
124
- "ready": "Ready",
125
- "needs-setup": "Needs setup",
126
- "unavailable": "Unavailable",
127
- "loading": "Loading...",
128
- "access-denied-title": "Access denied",
129
- "access-denied-description": "Control Panel access is required to manage email delivery.",
130
- "connections-title": "Connections",
131
- "connections-description": "Configure and verify the provider connection used for notification email.",
132
- "create-connection": "Add connection",
133
- "connection-details": "Connection details",
134
- "connection-not-found": "Connection not found",
135
- "no-providers-title": "No providers available",
136
- "no-providers-description": "Ask an administrator to enable an approved email provider.",
137
- "no-connections-title": "No email connections",
138
- "no-connections-description": "Add an approved provider connection to begin setup.",
139
- "details": "Details",
140
- "view-details": "View details",
141
- "edit": "Edit",
142
- "validate": "Validate",
143
- "authorize": "Authorize",
144
- "test-send": "Send test",
145
- "bind": "Use for notifications",
146
- "unbind": "Stop using",
147
- "use-for-notifications": "Use for notifications",
148
- "stop-using": "Stop using",
149
- "delete": "Delete",
150
- "revoke": "Revoke authorization",
151
- "save": "Save",
152
- "cancel": "Cancel",
153
- "close": "Close",
154
- "configured": "Configured",
155
- "not-configured": "Not configured",
156
- "safe-settings": "Safe settings",
157
- "connection-overview": "Connection overview",
158
- "provider-settings": "Provider settings",
159
- "credential-status": "Credential status",
160
- "last-rotated": "Last rotated",
161
- "no-credentials": "This connection has no stored credential fields.",
162
- "used-for-notifications": "Used for notifications",
163
- "yes": "Yes",
164
- "no": "No",
165
- "authorization-state": "Authorization state",
166
- "provider-warnings": "Provider guidance",
167
- "connection": {
168
- "name": "Name",
169
- "provider": "Provider",
170
- "authentication-mode": "Sign-in method",
171
- "sender": "Sender",
172
- "sender-address": "Sender email",
173
- "sender-display-name": "Sender name",
174
- "state": "Status",
175
- "bindings": "Used for",
176
- "last-validation": "Last checked"
177
- },
178
- "editor": {
179
- "create-title": "Add email connection",
180
- "edit-title": "Edit email connection",
181
- "description": "Choose a runtime provider and complete only the settings it advertises.",
182
- "basics": "Connection",
183
- "configuration": "Provider settings",
184
- "credentials": "Credentials",
185
- "select-provider-mode": "Select a provider and sign-in method to see its settings.",
186
- "update-invalidates-proof": "Saving changes invalidates the previous validation and controlled-test proof. Validate and test again."
187
- },
188
- "credential": {
189
- "operation": "Update action",
190
- "keep": "Keep current credential",
191
- "replace": "Replace credential",
192
- "clear": "Clear credential",
193
- "storage-choice": "Credential storage",
194
- "protected-value": "Protected value",
195
- "protected-value-hint": "Submitted once and protected before storage. It cannot be displayed later.",
196
- "external-reference": "External secret reference",
197
- "external-reference-hint": "The value is stored by DevOps. Pplus saves only an EmailSecrets reference alias."
198
- },
199
- "validation": {
200
- "host": "Enter an approved DNS host, not localhost or an IP address.",
201
- "https-url": "Enter an approved HTTPS URL without credentials or fragments."
202
- },
203
- "test": {
204
- "title": "Send controlled test",
205
- "real-email-warning-title": "This sends a real email.",
206
- "real-email-warning": "Confirm the recipients and content before sending.",
207
- "recipients": "Recipients",
208
- "recipients-placeholder": "name@example.com",
209
- "recipients-hint": "Enter 1–100 distinct addresses separated by commas, spaces, or semicolons.",
210
- "recipients-invalid": "Enter 1–100 valid, distinct email addresses.",
211
- "subject": "Subject",
212
- "body": "Body",
213
- "html": "Send as HTML",
214
- "send": "Send test",
215
- "retrieve": "Retrieve result",
216
- "timeout-title": "The send result was not received.",
217
- "timeout-description": "Retrieve the stored result with the same request ID. This will not send another email."
218
- },
219
- "accepted-unconfirmed": "Accepted by provider — final mailbox delivery is not confirmed.",
220
- "accepted-copy": "Accepted by provider — final mailbox delivery is not confirmed.",
221
- "outcome-unknown-warning": "The provider outcome is unknown. Do not resend until an operator investigates.",
222
- "outcome-unknown-copy": "The provider outcome is unknown. Do not resend until an operator investigates.",
223
- "activity-title": "Recent delivery attempts",
224
- "activity-description": "Provider acceptance is shown separately from final mailbox delivery.",
225
- "all-statuses": "All statuses",
226
- "apply-filter": "Apply filter",
227
- "attempt-details": "Attempt details",
228
- "delivery-summary": "Delivery summary",
229
- "technical-identifiers": "Technical identifiers",
230
- "no-attempts-title": "No delivery attempts",
231
- "no-attempts-description": "Recent notification and controlled-test attempts will appear here.",
232
- "load-more": "Load more",
233
- "recipient-fingerprint": "Recipient fingerprint",
234
- "provider-request-id": "Provider request ID",
235
- "correlation-id": "Correlation ID",
236
- "attempt": {
237
- "id": "Attempt ID",
238
- "status": "Status",
239
- "status-filter": "Filter by status",
240
- "provider": "Provider",
241
- "created": "Time",
242
- "count": "Attempts",
243
- "outcome": "Provider outcome"
244
- },
245
- "replay-attempt": "Replay attempt",
246
- "replay-warning": "Replay schedules a new provider operation. Confirm that retry is safe.",
247
- "replay-exceptional-warning": "The original email may already have been accepted. Replay can duplicate it and requires an explicit exceptional override.",
248
- "operator-reason": "Operator reason",
249
- "operator-reason-hint": "Required for the audit record; maximum 500 characters.",
250
- "exceptional-override": "I approve an exceptional replay",
251
- "exceptional-override-hint": "Use only after investigating the possibility that the provider accepted the original message.",
252
- "confirm-action": "Confirm",
253
- "advanced-support": "Advanced support",
254
- "advanced-support-description": "Recovery and evidence tools for trained operators.",
255
- "quarantine-title": "Finalization quarantine",
256
- "quarantine-description": "Scope-owned results that need operator recovery or acknowledgement.",
257
- "no-quarantine-title": "No quarantined results",
258
- "no-quarantine-description": "There are no scope-owned finalization items to review.",
259
- "recovery-classification": "Recovery classification",
260
- "code": "Code",
261
- "issue": "Issue",
262
- "detected": "Detected",
263
- "actions": "Actions",
264
- "retry": "Retry",
265
- "acknowledge": "Acknowledge",
266
- "retry-quarantine": "Retry quarantined result",
267
- "acknowledge-quarantine": "Acknowledge quarantined result",
268
- "quarantine-retry-warning": "Retry finalization using the preserved provider result.",
269
- "quarantine-acknowledge-warning": "Acknowledgement terminalizes the related unknown outcome.",
270
- "host-evidence-title": "Host evidence",
271
- "host-evidence-description": "Orphan, conflict, and unresolved evidence. Export files are never previewed or persisted.",
272
- "no-evidence-title": "No host evidence",
273
- "no-evidence-description": "There are no unresolved evidence occurrences.",
274
- "evidence-kind": "Evidence kind",
275
- "evidence-occurrence-id": "Evidence occurrence ID",
276
- "resolution-state": "Resolution state",
277
- "ownership-state": "Ownership state",
278
- "export": "Export",
279
- "repair": "Repair",
280
- "repair-evidence": "Repair evidence",
281
- "acknowledge-evidence": "Acknowledge evidence",
282
- "evidence-repair-warning": "Repair uses the latest decision token and may update the related attempt.",
283
- "evidence-acknowledge-warning": "Acknowledgement records this occurrence as reviewed without repair.",
284
- "rebuild-evidence-index": "Rebuild evidence index",
285
- "rebuild-evidence-warning": "Rebuild the host evidence index with a scan budget of 200?",
286
- "scan-budget-exhausted": "The scan budget was exhausted. Rebuild again or load the refreshed results.",
287
- "confirm": {
288
- "unbind": "This disables notification email for this purpose.",
289
- "delete": "Delete this unbound connection and its credential and authorization state?",
290
- "revoke": "Revoke stored authorization? New authorization and a controlled test will be required."
291
- },
292
- "unknown-code": "An email delivery error occurred.",
293
- "connection-created": "Connection created.",
294
- "connection-updated": "Connection updated.",
295
- "connection-deleted": "Connection deleted.",
296
- "connection-bound": "This connection is now used for notifications.",
297
- "connection-unbound": "Notification email has been stopped for this purpose.",
298
- "authorization-revoked": "Authorization revoked.",
299
- "attempt-replay-scheduled": "Replay was scheduled.",
300
- "quarantine-retry-submitted": "Quarantine retry submitted.",
301
- "quarantine-acknowledged": "Quarantine item acknowledged.",
302
- "evidence-repaired": "Evidence repaired.",
303
- "evidence-acknowledged": "Evidence acknowledged.",
304
- "evidence-index-rebuilt": "Evidence index rebuilt.",
305
- "status": {
306
- "connection": {
307
- "draft": "Draft",
308
- "pending-authorization": "Pending authorization",
309
- "pending-validation": "Pending validation",
310
- "ready": "Ready",
311
- "reauthorization-required": "Reauthorization required",
312
- "conditional-access-required": "Conditional access required",
313
- "disabled": "Disabled",
314
- "invalid": "Invalid"
315
- },
316
- "attempt": {
317
- "reserved": "Reserved",
318
- "provider-invocation-started": "Sending",
319
- "provider-not-accepted": "Not accepted",
320
- "reconciling": "Reconciling",
321
- "pending": "Pending",
322
- "blocked": "Blocked",
323
- "retry-scheduled": "Retry scheduled",
324
- "accepted": "Accepted by provider",
325
- "outcome-unknown": "Outcome unknown",
326
- "failed-permanent": "Permanently failed",
327
- "dead-lettered": "Needs operator review"
328
- },
329
- "support": {
330
- "active": "Active",
331
- "repair-pending": "Repair pending",
332
- "repaired": "Repaired",
333
- "acknowledgement-pending": "Acknowledgement pending",
334
- "conflict": "Conflict",
335
- "owned": "Owned",
336
- "missing": "Missing",
337
- "identity-incomplete": "Identity incomplete",
338
- "retryable-after-upgrade": "Retry after upgrade",
339
- "repair-required": "Repair required",
340
- "acknowledge-only": "Acknowledge only",
341
- "configured": "Configured",
342
- "not-configured": "Not configured",
343
- "acknowledged": "Acknowledged"
344
- }
345
- },
346
- "error-actions": {
347
- "refresh": "Refresh the latest state",
348
- "request_permission": "Request the required permission",
349
- "authorize": "Authorize the connection",
350
- "retry_later": "Try again later",
351
- "poll_status": "Check the stored status",
352
- "review_evidence": "Review recovery evidence",
353
- "inspect_notification": "Review notification configuration",
354
- "contact_administrator": "Contact an administrator",
355
- "correct_input": "Correct the entered information",
356
- "correct_configuration": "Correct the connection configuration",
357
- "contact_support": "Contact support"
358
- },
359
- "codes": {
360
- "email.ready": "Email delivery is ready.",
361
- "email.not_ready": "Complete connection setup, validation, and a controlled test.",
362
- "email.management_disabled": "Email delivery management is unavailable in this deployment.",
363
- "email.validation_succeeded": "Connection validation succeeded.",
364
- "email.authorization_completed": "Mailbox authorization completed.",
365
- "email.delivery_result_quarantined": "A delivery result requires operator review.",
366
- "email.secret_unavailable": "The configured credential is unavailable.",
367
- "email.concurrency_conflict": "This item changed. Refresh and try again."
368
- }
369
- }
370
- }
1
+ {
2
+ "system-settings": {
3
+ "general-configuration-title": "Experience & Appearance",
4
+ "general-configuration-description": "Product-wide defaults for how the app looks and where users land.",
5
+ "explore-default-view": "Default Explore View",
6
+ "explore-default-view-hint": "The view the Explore page opens with. Users can still switch views at any time.",
7
+ "explore-default-view-cards": "Cards",
8
+ "explore-default-view-timeline": "Timeline",
9
+ "design-switcher": "Show Design Switcher",
10
+ "design-switcher-hint": "Adds the Classic / DS switcher to the topbar so users can preview the experimental Masterteam design system. Off by default — everyone stays on the Classic design.",
11
+ "page-title": "System Settings",
12
+ "page-subtitle": "Manage holidays, weekend, timezone, currency, and TimeSheet policy from one screen.",
13
+ "save": "Save",
14
+ "save-tooltip": "Save changes ",
15
+ "cancel": "Cancel",
16
+ "loading": "Loading settings...",
17
+ "holidays-title": "Holidays",
18
+ "holidays-description": "Add the holidays that should be applied across the product.",
19
+ "add-holiday": "Add Holiday",
20
+ "update-holiday": "Update Holiday",
21
+ "holiday-name": "Holiday Name",
22
+ "holiday-name-placeholder": "Enter holiday name",
23
+ "from-date": "From Date",
24
+ "to-date": "To Date",
25
+ "edit-holiday": "Edit holiday",
26
+ "remove-holiday": "Remove holiday",
27
+ "holiday-range-error": "The end date must be on or after the start date.",
28
+ "no-holidays-title": "No holidays added yet",
29
+ "no-holidays-description": "Add a holiday row to define product-wide holiday periods.",
30
+ "date-time-weekend-title": "Date, Time & Weekend",
31
+ "date-time-weekend-description": "Configure the default date and time formats and choose which days are treated as weekends.",
32
+ "date-format": "Date Format",
33
+ "date-format-placeholder": "Select date format",
34
+ "time-format": "Time Format",
35
+ "time-format-placeholder": "Select time format",
36
+ "format-token-year": "Year",
37
+ "format-token-month": "Month",
38
+ "format-token-day": "Day",
39
+ "format-token-hour": "Hour",
40
+ "format-token-minute": "Minute",
41
+ "format-token-second": "Second",
42
+ "format-token-period": "AM/PM",
43
+ "currency-title": "Currency",
44
+ "currency-description": "Set the default currency and display format used across the product.",
45
+ "currency": "Currency",
46
+ "currency-placeholder": "Select currency",
47
+ "currency-format": "Currency Format",
48
+ "currency-format-placeholder": "Select currency format",
49
+ "weekend-days": "Weekend Days",
50
+ "weekend-placeholder": "Select weekend days",
51
+ "monday": "Monday",
52
+ "tuesday": "Tuesday",
53
+ "wednesday": "Wednesday",
54
+ "thursday": "Thursday",
55
+ "friday": "Friday",
56
+ "saturday": "Saturday",
57
+ "sunday": "Sunday",
58
+ "timesheet-policy-title": "TimeSheet Policy",
59
+ "timesheet-policy-description": "Configure TimeSheet validation and generation behavior. Approval is always controlled by Process Builder.",
60
+ "timesheet-policy-workflow-note": "Approval is configured in Process Builder. This page controls validation and generation only.",
61
+ "general-card-title": "TimeSheet",
62
+ "general-card-description": "Configure how TimeSheets are captured and submitted. Approval is always controlled by Process Builder.",
63
+ "frequency": "TimeSheet Frequency",
64
+ "frequency-placeholder": "Select frequency",
65
+ "frequency-daily": "Daily",
66
+ "frequency-weekly": "Weekly",
67
+ "frequency-biweekly": "Bi-Weekly",
68
+ "frequency-monthly": "Monthly",
69
+ "allow-backdated-entry": "Allow Backdated Entry",
70
+ "auto-lock-on-approve": "Auto-Lock on Approve",
71
+ "submission-deadline-days": "Submission Deadline (Days)",
72
+ "submission-deadline-days-placeholder": "Enter number of days",
73
+ "submission-deadline-hint": "Days after the period ends before submission is locked. Use 0 for no deadline.",
74
+ "working-hours-card-title": "Working Hours",
75
+ "working-hours-card-description": "Configure the organization-level working calendar used when a record does not have its own override.",
76
+ "daily-working-hours": "Daily Working Hours",
77
+ "daily-working-hours-placeholder": "Enter hours per day",
78
+ "max-daily-below-daily": "Maximum daily hours is below the configured daily working hours.",
79
+ "week-start-day": "Week Start Day",
80
+ "week-start-day-placeholder": "Select week start day",
81
+ "allowed-schedule-item-types": "Allowed Schedule Item Types",
82
+ "allowed-schedule-item-types-placeholder": "Select item types",
83
+ "regular-daily-hours": "Regular Daily Hours",
84
+ "regular-daily-hours-placeholder": "Enter regular daily hours",
85
+ "max-daily-hours": "Maximum Daily Hours",
86
+ "max-daily-hours-placeholder": "Enter maximum daily hours",
87
+ "past-entry-lock-days": "Past Entry Lock Days",
88
+ "past-entry-lock-days-placeholder": "Leave empty for no lock",
89
+ "rate-source": "Rate Source",
90
+ "rate-source-placeholder": "Select rate source",
91
+ "generation-enabled": "Generation Enabled",
92
+ "manual-generation-enabled": "Manual Generation Enabled",
93
+ "allow-overtime": "Allow Overtime",
94
+ "require-overtime-reason": "Require Overtime Reason",
95
+ "require-description": "Require Description",
96
+ "allow-future-entry": "Allow Future Entry",
97
+ "assigned-items-only": "Assigned Items Only",
98
+ "allow-zero-hour-submit": "Allow Zero-Hour Submit",
99
+ "cost-enabled": "Cost Enabled",
100
+ "schedule-item-task": "Task",
101
+ "schedule-item-milestone": "Milestone",
102
+ "schedule-item-deliverable": "Deliverable",
103
+ "rate-source-user-hourly-rate": "User Hourly Rate",
104
+ "rate-source-none": "None",
105
+ "global-working-hours-title": "Global Working Hours",
106
+ "global-working-hours-description": "Configure the inherited organization-level working calendar used when a record does not have its own override.",
107
+ "global-timezone": "Timezone",
108
+ "global-timezone-placeholder": "Select timezone",
109
+ "work-day-start": "Work Day Start",
110
+ "work-day-start-placeholder": "Select start time",
111
+ "work-day-end": "Work Day End",
112
+ "work-day-end-placeholder": "Select end time",
113
+ "working-days": "Working Days",
114
+ "working-days-placeholder": "Select working days",
115
+ "global-holidays": "Holiday Dates",
116
+ "global-holidays-placeholder": "YYYY-MM-DD dates separated by commas",
117
+ "saved-successfully": "Settings saved successfully.",
118
+ "no-changes-message": "There are no changes to save."
119
+ },
120
+ "email-delivery": {
121
+ "title": "Email Delivery",
122
+ "tabs": {
123
+ "connections": "Connections",
124
+ "activity": "Activity"
125
+ },
126
+ "loading": "Loading...",
127
+ "access-denied-title": "Access denied",
128
+ "access-denied-description": "Control Panel access is required to manage email delivery.",
129
+ "connections-title": "Connections",
130
+ "create-connection": "Add connection",
131
+ "connection-details": "Connection details",
132
+ "connection-not-found": "Connection not found",
133
+ "no-providers-title": "No providers available",
134
+ "no-providers-description": "Ask an administrator to enable an approved email provider.",
135
+ "no-connections-title": "No email connections",
136
+ "no-connections-description": "Add an approved provider connection to begin setup.",
137
+ "details": "Details",
138
+ "view-details": "View details",
139
+ "edit": "Edit",
140
+ "validate": "Validate",
141
+ "authorize": "Authorize",
142
+ "test-send": "Send test",
143
+ "bind": "Use for notifications",
144
+ "unbind": "Stop using",
145
+ "use-for-notifications": "Use for notifications",
146
+ "stop-using": "Stop using",
147
+ "delete": "Delete",
148
+ "revoke": "Revoke authorization",
149
+ "save": "Save",
150
+ "cancel": "Cancel",
151
+ "close": "Close",
152
+ "configured": "Configured",
153
+ "not-configured": "Not configured",
154
+ "safe-settings": "Safe settings",
155
+ "connection-overview": "Connection overview",
156
+ "provider-settings": "Provider settings",
157
+ "credential-status": "Credential status",
158
+ "last-rotated": "Last rotated",
159
+ "no-credentials": "This connection has no stored credential fields.",
160
+ "used-for-notifications": "Used for notifications",
161
+ "yes": "Yes",
162
+ "no": "No",
163
+ "authorization-state": "Authorization state",
164
+ "provider-warnings": "Provider guidance",
165
+ "connection": {
166
+ "name": "Name",
167
+ "provider": "Provider",
168
+ "authentication-mode": "Sign-in method",
169
+ "sender": "Sender",
170
+ "sender-address": "Sender email",
171
+ "sender-display-name": "Sender name",
172
+ "state": "Status",
173
+ "bindings": "Used for",
174
+ "last-validation": "Last checked"
175
+ },
176
+ "editor": {
177
+ "create-title": "Add email connection",
178
+ "edit-title": "Edit email connection",
179
+ "basics": "Connection",
180
+ "configuration": "Provider settings",
181
+ "credentials": "Credentials",
182
+ "select-provider-mode": "Select a provider and sign-in method to see its settings.",
183
+ "update-invalidates-proof": "Saving changes invalidates the previous validation and controlled-test proof. Validate and test again."
184
+ },
185
+ "credential": {
186
+ "operation": "Update action",
187
+ "keep": "Keep current credential",
188
+ "replace": "Replace credential",
189
+ "clear": "Clear credential",
190
+ "storage-choice": "Credential storage",
191
+ "protected-value": "Protected value",
192
+ "protected-value-hint": "Submitted once and protected before storage. It cannot be displayed later.",
193
+ "external-reference": "External secret reference",
194
+ "external-reference-hint": "The value is stored by DevOps. Pplus saves only an EmailSecrets reference alias."
195
+ },
196
+ "validation": {
197
+ "host": "Enter an approved DNS host, not localhost or an IP address.",
198
+ "https-url": "Enter an approved HTTPS URL without credentials or fragments."
199
+ },
200
+ "test": {
201
+ "title": "Send controlled test",
202
+ "real-email-warning-title": "This sends a real email.",
203
+ "real-email-warning": "Confirm the recipients and content before sending.",
204
+ "recipients": "Recipients",
205
+ "recipients-placeholder": "name@example.com",
206
+ "recipients-hint": "Enter 1–100 distinct addresses separated by commas, spaces, or semicolons.",
207
+ "recipients-invalid": "Enter 1–100 valid, distinct email addresses.",
208
+ "subject": "Subject",
209
+ "body": "Body",
210
+ "html": "Send as HTML",
211
+ "send": "Send test",
212
+ "retrieve": "Retrieve result",
213
+ "timeout-title": "The send result was not received.",
214
+ "timeout-description": "Retrieve the stored result with the same request ID. This will not send another email."
215
+ },
216
+ "accepted-unconfirmed": "Accepted by provider — final mailbox delivery is not confirmed.",
217
+ "accepted-copy": "Accepted by provider — final mailbox delivery is not confirmed.",
218
+ "outcome-unknown-warning": "The provider outcome is unknown. Do not resend until an operator investigates.",
219
+ "outcome-unknown-copy": "The provider outcome is unknown. Do not resend until an operator investigates.",
220
+ "activity-title": "Recent delivery attempts",
221
+ "attempt-details": "Attempt details",
222
+ "delivery-summary": "Delivery summary",
223
+ "technical-identifiers": "Technical identifiers",
224
+ "no-attempts-title": "No delivery attempts",
225
+ "no-attempts-description": "Recent notification and controlled-test attempts will appear here.",
226
+ "load-more": "Load more",
227
+ "recipient-fingerprint": "Recipient fingerprint",
228
+ "provider-request-id": "Provider request ID",
229
+ "correlation-id": "Correlation ID",
230
+ "attempt": {
231
+ "id": "Attempt ID",
232
+ "status": "Status",
233
+ "provider": "Provider",
234
+ "created": "Time",
235
+ "count": "Attempts",
236
+ "outcome": "Provider outcome",
237
+ "operation": "Operation",
238
+ "result": "Result"
239
+ },
240
+ "replay-attempt": "Replay attempt",
241
+ "replay-warning": "Replay schedules a new provider operation. Confirm that retry is safe.",
242
+ "replay-exceptional-warning": "The original email may already have been accepted. Replay can duplicate it and requires an explicit exceptional override.",
243
+ "operator-reason": "Operator reason",
244
+ "operator-reason-hint": "Required for the audit record; maximum 500 characters.",
245
+ "exceptional-override": "I approve an exceptional replay",
246
+ "exceptional-override-hint": "Use only after investigating the possibility that the provider accepted the original message.",
247
+ "confirm-action": "Confirm",
248
+ "advanced-support": "Advanced support",
249
+ "advanced-support-description": "Recovery and evidence tools for trained operators.",
250
+ "quarantine-title": "Finalization quarantine",
251
+ "quarantine-description": "Scope-owned results that need operator recovery or acknowledgement.",
252
+ "no-quarantine-title": "No quarantined results",
253
+ "no-quarantine-description": "There are no scope-owned finalization items to review.",
254
+ "recovery-classification": "Recovery classification",
255
+ "code": "Code",
256
+ "issue": "Issue",
257
+ "detected": "Detected",
258
+ "actions": "Actions",
259
+ "retry": "Retry",
260
+ "acknowledge": "Acknowledge",
261
+ "retry-quarantine": "Retry quarantined result",
262
+ "acknowledge-quarantine": "Acknowledge quarantined result",
263
+ "quarantine-retry-warning": "Retry finalization using the preserved provider result.",
264
+ "quarantine-acknowledge-warning": "Acknowledgement terminalizes the related unknown outcome.",
265
+ "host-evidence-title": "Host evidence",
266
+ "host-evidence-description": "Orphan, conflict, and unresolved evidence. Export files are never previewed or persisted.",
267
+ "no-evidence-title": "No host evidence",
268
+ "no-evidence-description": "There are no unresolved evidence occurrences.",
269
+ "evidence-kind": "Evidence kind",
270
+ "evidence-occurrence-id": "Evidence occurrence ID",
271
+ "resolution-state": "Resolution state",
272
+ "ownership-state": "Ownership state",
273
+ "export": "Export",
274
+ "repair": "Repair",
275
+ "repair-evidence": "Repair evidence",
276
+ "acknowledge-evidence": "Acknowledge evidence",
277
+ "evidence-repair-warning": "Repair uses the latest decision token and may update the related attempt.",
278
+ "evidence-acknowledge-warning": "Acknowledgement records this occurrence as reviewed without repair.",
279
+ "rebuild-evidence-index": "Rebuild evidence index",
280
+ "rebuild-evidence-warning": "Rebuild the host evidence index with a scan budget of 200?",
281
+ "scan-budget-exhausted": "The scan budget was exhausted. Rebuild again or load the refreshed results.",
282
+ "confirm": {
283
+ "unbind": "This disables notification email for this purpose.",
284
+ "delete": "Delete this unbound connection and its credential and authorization state?",
285
+ "revoke": "Revoke stored authorization? New authorization and a controlled test will be required."
286
+ },
287
+ "unknown-code": "An email delivery error occurred.",
288
+ "connection-created": "Connection created.",
289
+ "connection-updated": "Connection updated.",
290
+ "connection-deleted": "Connection deleted.",
291
+ "connection-bound": "This connection is now used for notifications.",
292
+ "connection-unbound": "Notification email has been stopped for this purpose.",
293
+ "authorization-revoked": "Authorization revoked.",
294
+ "attempt-replay-scheduled": "Replay was scheduled.",
295
+ "quarantine-retry-submitted": "Quarantine retry submitted.",
296
+ "quarantine-acknowledged": "Quarantine item acknowledged.",
297
+ "evidence-repaired": "Evidence repaired.",
298
+ "evidence-acknowledged": "Evidence acknowledged.",
299
+ "evidence-index-rebuilt": "Evidence index rebuilt.",
300
+ "status": {
301
+ "readiness": {
302
+ "ready": "Ready",
303
+ "needs-setup": "Needs setup",
304
+ "unavailable": "Unavailable"
305
+ },
306
+ "connection": {
307
+ "draft": "Draft",
308
+ "pending-authorization": "Pending authorization",
309
+ "pending-validation": "Pending validation",
310
+ "ready": "Ready",
311
+ "reauthorization-required": "Reauthorization required",
312
+ "conditional-access-required": "Conditional access required",
313
+ "disabled": "Disabled",
314
+ "invalid": "Invalid"
315
+ },
316
+ "attempt": {
317
+ "reserved": "Reserved",
318
+ "provider-invocation-started": "Sending",
319
+ "provider-not-accepted": "Not accepted",
320
+ "reconciling": "Reconciling",
321
+ "pending": "Pending",
322
+ "blocked": "Blocked",
323
+ "retry-scheduled": "Retry scheduled",
324
+ "accepted": "Accepted by provider",
325
+ "outcome-unknown": "Outcome unknown",
326
+ "failed-permanent": "Permanently failed",
327
+ "dead-lettered": "Needs operator review"
328
+ },
329
+ "support": {
330
+ "active": "Active",
331
+ "repair-pending": "Repair pending",
332
+ "repaired": "Repaired",
333
+ "acknowledgement-pending": "Acknowledgement pending",
334
+ "conflict": "Conflict",
335
+ "owned": "Owned",
336
+ "missing": "Missing",
337
+ "identity-incomplete": "Identity incomplete",
338
+ "retryable-after-upgrade": "Retry after upgrade",
339
+ "repair-required": "Repair required",
340
+ "acknowledge-only": "Acknowledge only",
341
+ "configured": "Configured",
342
+ "not-configured": "Not configured",
343
+ "acknowledged": "Acknowledged"
344
+ }
345
+ },
346
+ "error-actions": {
347
+ "refresh": "Refresh the latest state",
348
+ "request_permission": "Request the required permission",
349
+ "authorize": "Authorize the connection",
350
+ "retry_later": "Try again later",
351
+ "poll_status": "Check the stored status",
352
+ "review_evidence": "Review recovery evidence",
353
+ "inspect_notification": "Review notification configuration",
354
+ "contact_administrator": "Contact an administrator",
355
+ "correct_input": "Correct the entered information",
356
+ "correct_configuration": "Correct the connection configuration",
357
+ "contact_support": "Contact support"
358
+ },
359
+ "codes": {
360
+ "email.ready": "Email delivery is ready.",
361
+ "email.not_ready": "Complete connection setup, validation, and a controlled test.",
362
+ "email.management_disabled": "Email delivery management is unavailable in this deployment.",
363
+ "email.validation_succeeded": "Connection validation succeeded.",
364
+ "email.authorization_completed": "Mailbox authorization completed.",
365
+ "email.delivery_result_quarantined": "A delivery result requires operator review.",
366
+ "email.secret_unavailable": "The configured credential is unavailable.",
367
+ "email.concurrency_conflict": "This item changed. Refresh and try again.",
368
+ "email.connection_not_ready": "Complete connection setup, validation, and a controlled test.",
369
+ "email.accepted_delivery_unconfirmed": "The provider accepted the email. Mailbox delivery is not confirmed."
370
+ },
371
+ "operation": {
372
+ "connection-test": "Connection test"
373
+ },
374
+ "test-request-id": "Test request ID",
375
+ "recipient-fingerprint-hint": "A non-reversible fingerprint. It is not a recipient address.",
376
+ "refresh": "Refresh",
377
+ "in-use": "In use",
378
+ "breadcrumb": {
379
+ "product-settings": "Product Settings"
380
+ }
381
+ }
382
+ }