@magicvr/schema-ui-lib 0.1.2 → 0.1.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/i18n/catalog.d.ts +1 -1
- package/i18n/catalog.js +96 -0
- package/i18n/format.d.ts +1 -1
- package/i18n/format.js +35 -0
- package/i18n/locale.js +79 -0
- package/i18n/messages/en-US.json +954 -0
- package/i18n/messages/zh-CN.json +954 -0
- package/i18n/money.d.ts +1 -1
- package/i18n/money.js +187 -0
- package/i18n/runtime.d.ts +3 -3
- package/i18n/runtime.js +184 -0
- package/i18n/timezone.js +117 -0
- package/lib/datetime.js +36 -0
- package/lib/fetch-timeout.js +43 -0
- package/lib/index.d.ts +9 -9
- package/lib/index.js +11 -0
- package/lib/utils.js +5 -0
- package/package.json +5 -5
- package/index.js +0 -5765
|
@@ -0,0 +1,954 @@
|
|
|
1
|
+
{
|
|
2
|
+
"locale.name.zh-CN": "简体中文",
|
|
3
|
+
"locale.name.en-US": "English",
|
|
4
|
+
"locale.switcher.label": "Language",
|
|
5
|
+
"locale.switcher.auto": "Auto (follow browser)",
|
|
6
|
+
"timezone.switcher.label": "Timezone",
|
|
7
|
+
"timezone.switcher.auto": "Auto (system)",
|
|
8
|
+
"app.boot.checkingSession": "Checking session…",
|
|
9
|
+
"manifest.title.overview": "Overview",
|
|
10
|
+
"manifest.title.admin-list-batch": "List + batch",
|
|
11
|
+
"manifest.title.data-display": "Data display",
|
|
12
|
+
"manifest.title.data-table": "Data table",
|
|
13
|
+
"manifest.title.search-form-table": "Search + table",
|
|
14
|
+
"manifest.title.form-controls": "Form controls",
|
|
15
|
+
"manifest.title.form-with-reactions": "Form with reactions",
|
|
16
|
+
"manifest.title.form-with-upload": "Form with upload",
|
|
17
|
+
"manifest.title.users": "Users",
|
|
18
|
+
"manifest.title.usersInvites": "Invitations",
|
|
19
|
+
"manifest.title.roles": "Roles",
|
|
20
|
+
"manifest.title.settings": "Settings",
|
|
21
|
+
"manifest.title.activity": "Activity",
|
|
22
|
+
"manifest.title.account": "Account",
|
|
23
|
+
"manifest.title.dashboard": "Dashboard",
|
|
24
|
+
"manifest.title.notifications": "Notifications",
|
|
25
|
+
"manifest.nav.examples": "Examples",
|
|
26
|
+
"manifest.nav.admin": "Admin",
|
|
27
|
+
"manifest.nav.overview": "Overview",
|
|
28
|
+
"manifest.nav.data-table": "Data table",
|
|
29
|
+
"manifest.nav.admin-list-batch": "List + batch",
|
|
30
|
+
"manifest.nav.data-display": "Data display",
|
|
31
|
+
"manifest.nav.search-form-table": "Search + table",
|
|
32
|
+
"manifest.nav.form-controls": "Form controls",
|
|
33
|
+
"manifest.nav.form-with-reactions": "Form with reactions",
|
|
34
|
+
"manifest.nav.form-with-upload": "Form with upload",
|
|
35
|
+
"manifest.nav.users": "Users",
|
|
36
|
+
"manifest.nav.roles": "Roles",
|
|
37
|
+
"manifest.nav.settings": "Settings",
|
|
38
|
+
"manifest.nav.activity": "Activity",
|
|
39
|
+
"manifest.nav.account": "Account",
|
|
40
|
+
"manifest.nav.dashboard": "Dashboard",
|
|
41
|
+
"manifest.nav.notifications": "Notifications",
|
|
42
|
+
"login.title": "Sign in",
|
|
43
|
+
"login.username": "Username",
|
|
44
|
+
"login.password": "Password",
|
|
45
|
+
"login.password.show": "Show password",
|
|
46
|
+
"login.password.hide": "Hide password",
|
|
47
|
+
"login.signIn": "Sign in",
|
|
48
|
+
"login.signingIn": "Signing in…",
|
|
49
|
+
"login.seedHint": "Local development seed:",
|
|
50
|
+
"login.error.generic": "login failed",
|
|
51
|
+
"login.error.network": "unable to reach the login service",
|
|
52
|
+
"login.error.invalidCredentials": "invalid username or password",
|
|
53
|
+
"login.error.failed": "login failed: HTTP {status}",
|
|
54
|
+
"login.error.malformed": "login response was malformed",
|
|
55
|
+
"login.error.invalidCaptcha": "captcha verification failed",
|
|
56
|
+
"login.captchaQuestion": "Security check",
|
|
57
|
+
"login.captchaAnswer": "Answer",
|
|
58
|
+
"login.captchaRefresh": "Refresh",
|
|
59
|
+
"forcePasswordChange.title": "Change your password",
|
|
60
|
+
"forcePasswordChange.description": "You must replace the initial password before continuing.",
|
|
61
|
+
"forcePasswordChange.currentPassword": "Current password",
|
|
62
|
+
"forcePasswordChange.newPassword": "New password",
|
|
63
|
+
"forcePasswordChange.confirmPassword": "Confirm new password",
|
|
64
|
+
"forcePasswordChange.mismatch": "New password confirmation does not match.",
|
|
65
|
+
"forcePasswordChange.failed": "Could not change password.",
|
|
66
|
+
"forcePasswordChange.saving": "Saving…",
|
|
67
|
+
"forcePasswordChange.submit": "Change password",
|
|
68
|
+
"forcePasswordChange.signOut": "Sign out",
|
|
69
|
+
"cronPreview.title": "Cron preview",
|
|
70
|
+
"cronPreview.cron": "Cron expression",
|
|
71
|
+
"cronPreview.preview": "Preview",
|
|
72
|
+
"cronPreview.loading": "Loading…",
|
|
73
|
+
"cronPreview.description": "Description",
|
|
74
|
+
"cronPreview.nextRuns": "Next runs",
|
|
75
|
+
"cronPreview.invalid": "Invalid cron expression.",
|
|
76
|
+
"cronPreview.failed": "Could not preview cron expression.",
|
|
77
|
+
"monitoringRefresh.label": "Auto refresh",
|
|
78
|
+
"monitoringRefresh.off": "Off",
|
|
79
|
+
"monitoringRefresh.5s": "5 seconds",
|
|
80
|
+
"monitoringRefresh.10s": "10 seconds",
|
|
81
|
+
"monitoringRefresh.30s": "30 seconds",
|
|
82
|
+
"shell.adminConsole": "Admin console",
|
|
83
|
+
"shell.workspace": "Workspace",
|
|
84
|
+
"shell.signOut": "Sign out",
|
|
85
|
+
"shell.openMenu": "Open navigation menu",
|
|
86
|
+
"shell.closeMenu": "Close navigation menu",
|
|
87
|
+
"shell.accountError": "Account session failed to load; permissions and navigation may be incomplete.",
|
|
88
|
+
"shell.adminWorkspace": "Admin workspace",
|
|
89
|
+
"shell.routeFallback": "Route fallback",
|
|
90
|
+
"shell.pageNotFound": "Page not found",
|
|
91
|
+
"shell.noManifestPage": "No manifest page matches",
|
|
92
|
+
"shell.back": "Back to previous page",
|
|
93
|
+
"shell.theme.toggle": "Toggle color theme",
|
|
94
|
+
"shell.returnHome": "Return to home",
|
|
95
|
+
"shell.pageSchemaError": "Page schema error",
|
|
96
|
+
"shell.pageSchemaError.title": "This page can't be displayed",
|
|
97
|
+
"shell.pageSchemaError.description": "The page definition could not be loaded. Try reloading, or contact an administrator if the problem persists.",
|
|
98
|
+
"shell.pageSchemaError.reload": "Reload page",
|
|
99
|
+
"shell.pageSchemaError.technicalDetails": "Technical details",
|
|
100
|
+
"shell.loadingPageSchema": "Loading page schema…",
|
|
101
|
+
"manifestFailure.kicker": "schema-ui-core",
|
|
102
|
+
"manifestFailure.title": "Admin unavailable",
|
|
103
|
+
"manifestFailure.loadFailed": "The application manifest could not be loaded.",
|
|
104
|
+
"manifestFailure.refusesToRender": "The host refuses to render pages until a valid manifest is available.",
|
|
105
|
+
"manifestFailure.retry": "Retry manifest",
|
|
106
|
+
"feedback.itemCreated": "Item created",
|
|
107
|
+
"feedback.itemUpdated": "Item updated",
|
|
108
|
+
"feedback.itemDeleted": "Item deleted",
|
|
109
|
+
"feedback.itemsDeleted": "Items deleted",
|
|
110
|
+
"feedback.actionCompleted": "Action completed",
|
|
111
|
+
"feedback.submitting": "Submitting…",
|
|
112
|
+
"feedback.search": "Search",
|
|
113
|
+
"feedback.submit": "Submit",
|
|
114
|
+
"feedback.confirm": "Confirm",
|
|
115
|
+
"feedback.cancel": "Cancel",
|
|
116
|
+
"feedback.retry": "Retry",
|
|
117
|
+
"schema.account.passwordChangedReauth": "Password updated. All sessions were signed out. Please sign in again.",
|
|
118
|
+
"schema.account.column.current": "Current device",
|
|
119
|
+
"schema.account.column.userAgent": "Device",
|
|
120
|
+
"schema.account.column.ip": "IP",
|
|
121
|
+
"schema.myWallet.action.open": "Open wallet",
|
|
122
|
+
"schema.myWallet.ensure.failed": "Could not open the wallet. Try again.",
|
|
123
|
+
"schema.myWallet.ensure.retrying": "Opening…",
|
|
124
|
+
"feedback.listEmpty": "No items yet.",
|
|
125
|
+
"feedback.confirmAction": "Confirm action",
|
|
126
|
+
"feedback.action": "Action",
|
|
127
|
+
"feedback.recordDetails": "Record details",
|
|
128
|
+
"feedback.closeRecordDetails": "Close record details",
|
|
129
|
+
"feedback.loadingStatCard": "Loading statCard",
|
|
130
|
+
"feedback.loadingChart": "Loading chart",
|
|
131
|
+
"feedback.value": "Value",
|
|
132
|
+
"feedback.selectRow": "Select row",
|
|
133
|
+
"feedback.selectAllOnPage": "Select all on this page",
|
|
134
|
+
"feedback.noItemsMatch": "No items match.",
|
|
135
|
+
"feedback.schemaDrivenItems": "Schema-driven items",
|
|
136
|
+
"feedback.resourceFetchFailed": "resource fetch failed",
|
|
137
|
+
"feedback.mobileCardList": "Mobile card list",
|
|
138
|
+
"feedback.loading": "Loading",
|
|
139
|
+
"feedback.noRows": "No rows.",
|
|
140
|
+
"feedback.switchMarker": "(switch)",
|
|
141
|
+
"feedback.tabsNoChildren": "tabs node has no children",
|
|
142
|
+
"feedback.selectRecordToView": "Select a record to view details.",
|
|
143
|
+
"feedback.item": "item",
|
|
144
|
+
"feedback.items": "items",
|
|
145
|
+
"feedback.pageOf": "page {page} of {total}",
|
|
146
|
+
"feedback.pagination": "Pagination",
|
|
147
|
+
"feedback.previousPage": "Previous page",
|
|
148
|
+
"feedback.nextPage": "Next page",
|
|
149
|
+
"feedback.pageNumber": "Page {page}",
|
|
150
|
+
"feedback.pageSize": "Rows per page",
|
|
151
|
+
"feedback.goToPage": "Go to page",
|
|
152
|
+
"feedback.moreActions": "More actions",
|
|
153
|
+
"schema.users.field.username": "Username",
|
|
154
|
+
"schema.users.field.name": "Name",
|
|
155
|
+
"schema.users.field.password": "Password",
|
|
156
|
+
"schema.users.field.newPassword": "New password",
|
|
157
|
+
"schema.users.field.roles": "Roles",
|
|
158
|
+
"schema.users.submit.create": "Create user",
|
|
159
|
+
"schema.users.submit.save": "Save changes",
|
|
160
|
+
"schema.users.submit.saveRoles": "Save roles",
|
|
161
|
+
"schema.users.submit.changePassword": "Change password",
|
|
162
|
+
"schema.users.column.id": "ID",
|
|
163
|
+
"schema.users.column.username": "Username",
|
|
164
|
+
"schema.users.column.name": "Name",
|
|
165
|
+
"schema.users.column.roles": "Roles",
|
|
166
|
+
"schema.users.column.updated": "Updated",
|
|
167
|
+
"schema.users.column.created": "Created",
|
|
168
|
+
"schema.users.detail.title": "User details",
|
|
169
|
+
"schema.users.toolbar.newUser": "New user",
|
|
170
|
+
"schema.users.action.edit": "Edit",
|
|
171
|
+
"schema.users.action.roles": "Roles",
|
|
172
|
+
"schema.users.action.password": "Password",
|
|
173
|
+
"schema.users.action.delete": "Delete",
|
|
174
|
+
"schema.users.confirm.delete": "Delete this user?",
|
|
175
|
+
"schema.users.column.enabled": "Enabled",
|
|
176
|
+
"schema.users.action.enable": "Enable",
|
|
177
|
+
"schema.users.action.disable": "Disable",
|
|
178
|
+
"schema.users.action.unlock": "Unlock",
|
|
179
|
+
"schema.users.confirm.enable": "Enable this user?",
|
|
180
|
+
"schema.users.confirm.disable": "Disable this user? All sessions will be revoked.",
|
|
181
|
+
"schema.users.confirm.unlock": "Unlock this user?",
|
|
182
|
+
"schema.account.profile.title": "Profile",
|
|
183
|
+
"schema.account.password.title": "Change password",
|
|
184
|
+
"schema.account.field.avatarUrl": "Avatar",
|
|
185
|
+
"schema.account.field.name": "Name",
|
|
186
|
+
"schema.account.field.currentPassword": "Current password",
|
|
187
|
+
"schema.account.field.newPassword": "New password",
|
|
188
|
+
"schema.account.submit.saveProfile": "Save profile",
|
|
189
|
+
"schema.account.submit.changePassword": "Change password",
|
|
190
|
+
"schema.account.column.created": "Created",
|
|
191
|
+
"schema.account.column.expires": "Expires",
|
|
192
|
+
"schema.account.column.status": "Status",
|
|
193
|
+
"schema.account.action.revoke": "Revoke",
|
|
194
|
+
"schema.account.confirm.revoke": "Revoke this session?",
|
|
195
|
+
"schema.account.session.title": "Signed-in sessions",
|
|
196
|
+
"schema.account.session.revokeOthers": "Sign out other devices",
|
|
197
|
+
"schema.account.session.revokeOthersHint": "Immediately revoke all other active sessions. You will stay signed in on this device.",
|
|
198
|
+
"schema.account.session.revokeOthersConfirm": "Sign out all other devices?",
|
|
199
|
+
"schema.account.session.revokeOthersDone": "Other devices signed out.",
|
|
200
|
+
"schema.account.session.revokeOthersFailed": "Could not revoke other devices.",
|
|
201
|
+
"schema.account.filter.status": "Status",
|
|
202
|
+
"schema.account.filter.status.all": "All statuses",
|
|
203
|
+
"schema.account.filter.status.active": "Active",
|
|
204
|
+
"schema.account.filter.status.revoked": "Revoked",
|
|
205
|
+
"schema.users.toolbar.invites": "Invitations",
|
|
206
|
+
"schema.users.toolbar.export": "Export",
|
|
207
|
+
"schema.users.toolbar.import": "Import",
|
|
208
|
+
"schema.users.import.field.file": "CSV file",
|
|
209
|
+
"schema.users.import.submit": "Import",
|
|
210
|
+
"schema.roles.toolbar.export": "Export",
|
|
211
|
+
"schema.dashboard.text.intro": "Console overview — key account and role metrics.",
|
|
212
|
+
"schema.dashboard.statCard.users": "Users",
|
|
213
|
+
"schema.dashboard.statCard.roles": "Roles",
|
|
214
|
+
"schema.notifications.settings.title": "Notification settings",
|
|
215
|
+
"schema.notifications.settings.enable": "Enable in-app notifications",
|
|
216
|
+
"schema.notifications.settings.enabled": "Enabled",
|
|
217
|
+
"schema.notifications.settings.disabled": "Disabled",
|
|
218
|
+
"schema.notifications.settings.submit": "Save settings",
|
|
219
|
+
"schema.notifications.column.title": "Title",
|
|
220
|
+
"schema.notifications.column.body": "Body",
|
|
221
|
+
"schema.notifications.column.event": "Event",
|
|
222
|
+
"schema.notifications.column.read": "Read",
|
|
223
|
+
"schema.notifications.column.created": "Created",
|
|
224
|
+
"schema.notifications.toolbar.markAllRead": "Mark all read",
|
|
225
|
+
"schema.notifications.action.markRead": "Mark read",
|
|
226
|
+
"schema.notifications.empty": "Your inbox is empty.",
|
|
227
|
+
"notification.account.locked.title": "Account locked",
|
|
228
|
+
"notification.account.locked.body": "Your account was temporarily locked after repeated failed sign-in attempts.",
|
|
229
|
+
"notification.account.disabled.title": "Account disabled",
|
|
230
|
+
"notification.account.disabled.body": "Your account was disabled by an administrator.",
|
|
231
|
+
"notification.account.unlocked.title": "Account unlocked",
|
|
232
|
+
"notification.account.unlocked.body": "Your account was unlocked by an administrator.",
|
|
233
|
+
"notification.account.passwordChanged.title": "Password changed",
|
|
234
|
+
"notification.account.passwordChanged.body": "Your account password was changed.",
|
|
235
|
+
"manifest.title.fileLibrary": "File library",
|
|
236
|
+
"manifest.nav.fileLibrary": "File library",
|
|
237
|
+
"schema.fileLibrary.upload.field.file": "File",
|
|
238
|
+
"schema.fileLibrary.upload.submit": "Upload",
|
|
239
|
+
"schema.fileLibrary.column.name": "Name",
|
|
240
|
+
"schema.fileLibrary.column.type": "Type",
|
|
241
|
+
"schema.fileLibrary.column.size": "Size",
|
|
242
|
+
"schema.fileLibrary.column.owner": "Owner",
|
|
243
|
+
"schema.fileLibrary.column.created": "Created",
|
|
244
|
+
"schema.fileLibrary.toolbar.upload": "Upload file",
|
|
245
|
+
"schema.fileLibrary.action.download": "Download",
|
|
246
|
+
"schema.fileLibrary.action.preview": "Preview",
|
|
247
|
+
"schema.fileLibrary.action.copyLink": "Copy link",
|
|
248
|
+
"schema.fileLibrary.action.delete": "Delete",
|
|
249
|
+
"schema.fileLibrary.confirm.delete": "Delete this file?",
|
|
250
|
+
"manifest.title.dataDictionary": "Data dictionary",
|
|
251
|
+
"manifest.title.dictionaryEntries": "Dictionary entries",
|
|
252
|
+
"manifest.nav.dataDictionary": "Data dictionary",
|
|
253
|
+
"schema.dataDictionary.field.key": "Key",
|
|
254
|
+
"schema.dataDictionary.field.name": "Name",
|
|
255
|
+
"schema.dataDictionary.field.enabled": "Enabled",
|
|
256
|
+
"schema.dataDictionary.field.description": "Description",
|
|
257
|
+
"schema.dataDictionary.field.sort": "Sort",
|
|
258
|
+
"schema.dataDictionary.submit.create": "Create type",
|
|
259
|
+
"schema.dataDictionary.submit.save": "Save changes",
|
|
260
|
+
"schema.dataDictionary.column.key": "Key",
|
|
261
|
+
"schema.dataDictionary.column.name": "Name",
|
|
262
|
+
"schema.dataDictionary.column.enabled": "Enabled",
|
|
263
|
+
"schema.dataDictionary.column.sort": "Sort",
|
|
264
|
+
"schema.dataDictionary.column.updated": "Updated",
|
|
265
|
+
"schema.dataDictionary.toolbar.newType": "New type",
|
|
266
|
+
"schema.dataDictionary.action.entries": "Entries",
|
|
267
|
+
"schema.dataDictionary.action.edit": "Edit",
|
|
268
|
+
"schema.dataDictionary.action.delete": "Delete",
|
|
269
|
+
"schema.dataDictionary.confirm.delete": "Delete this type and all its entries?",
|
|
270
|
+
"schema.dictionaryEntries.field.dictKey": "Type key",
|
|
271
|
+
"schema.dictionaryEntries.field.dictTypeName": "Type name",
|
|
272
|
+
"schema.dictionaryEntries.field.dictKeyReadonly": "Type (read-only)",
|
|
273
|
+
"schema.dictionaryEntries.field.entryKey": "Entry key",
|
|
274
|
+
"schema.dictionaryEntries.field.label": "Label",
|
|
275
|
+
"schema.dictionaryEntries.field.enabled": "Enabled",
|
|
276
|
+
"schema.dictionaryEntries.field.sort": "Sort",
|
|
277
|
+
"schema.dictionaryEntries.field.remark": "Remark",
|
|
278
|
+
"schema.dictionaryEntries.field.badgeStyle": "Badge style",
|
|
279
|
+
"schema.dictionaryEntries.badge.default": "Default",
|
|
280
|
+
"schema.dictionaryEntries.badge.success": "Success",
|
|
281
|
+
"schema.dictionaryEntries.badge.warning": "Warning",
|
|
282
|
+
"schema.dictionaryEntries.badge.destructive": "Destructive",
|
|
283
|
+
"schema.dictionaryEntries.badge.info": "Info",
|
|
284
|
+
"schema.dictionaryEntries.submit.create": "Create entry",
|
|
285
|
+
"schema.dictionaryEntries.submit.save": "Save changes",
|
|
286
|
+
"schema.dictionaryEntries.column.dictKey": "Type key",
|
|
287
|
+
"schema.dictionaryEntries.column.entryKey": "Entry key",
|
|
288
|
+
"schema.dictionaryEntries.column.label": "Label",
|
|
289
|
+
"schema.dictionaryEntries.column.enabled": "Enabled",
|
|
290
|
+
"schema.dictionaryEntries.column.sort": "Sort",
|
|
291
|
+
"schema.dictionaryEntries.column.updated": "Updated",
|
|
292
|
+
"schema.dictionaryEntries.toolbar.newEntry": "New entry",
|
|
293
|
+
"schema.dictionaryEntries.action.edit": "Edit",
|
|
294
|
+
"schema.dictionaryEntries.action.delete": "Delete",
|
|
295
|
+
"schema.dictionaryEntries.confirm.delete": "Delete this entry?",
|
|
296
|
+
"manifest.title.systemMonitoring": "System monitoring",
|
|
297
|
+
"manifest.nav.systemMonitoring": "System monitoring",
|
|
298
|
+
"schema.systemMonitoring.text.intro": "Read-only system status and recent events.",
|
|
299
|
+
"schema.systemMonitoring.statCard.status": "Status",
|
|
300
|
+
"schema.systemMonitoring.statCard.ready": "Ready",
|
|
301
|
+
"schema.systemMonitoring.statCard.availability": "Availability",
|
|
302
|
+
"schema.systemMonitoring.statCard.uptime": "Uptime (s)",
|
|
303
|
+
"schema.systemMonitoring.statCard.modules": "Modules",
|
|
304
|
+
"schema.systemMonitoring.statCard.dbSize": "DB size (bytes)",
|
|
305
|
+
"schema.systemMonitoring.column.created": "Created",
|
|
306
|
+
"schema.systemMonitoring.column.event": "Event",
|
|
307
|
+
"schema.systemMonitoring.column.actor": "Actor",
|
|
308
|
+
"schema.systemMonitoring.column.detail": "Detail",
|
|
309
|
+
"manifest.title.scheduledTasks": "Scheduled tasks",
|
|
310
|
+
"manifest.title.taskRuns": "Task runs",
|
|
311
|
+
"manifest.nav.scheduledTasks": "Scheduled tasks",
|
|
312
|
+
"schema.scheduledTasks.field.key": "Key",
|
|
313
|
+
"schema.scheduledTasks.field.cron": "Cron (5 fields)",
|
|
314
|
+
"schema.scheduledTasks.field.name": "Name",
|
|
315
|
+
"schema.scheduledTasks.field.enabled": "Enabled",
|
|
316
|
+
"schema.scheduledTasks.field.handler": "Handler",
|
|
317
|
+
"schema.scheduledTasks.field.description": "Description",
|
|
318
|
+
"schema.scheduledTasks.submit.create": "Create task",
|
|
319
|
+
"schema.scheduledTasks.submit.save": "Save changes",
|
|
320
|
+
"schema.scheduledTasks.column.key": "Key",
|
|
321
|
+
"schema.scheduledTasks.column.cron": "Cron",
|
|
322
|
+
"schema.scheduledTasks.column.name": "Name",
|
|
323
|
+
"schema.scheduledTasks.column.enabled": "Enabled",
|
|
324
|
+
"schema.scheduledTasks.column.updated": "Updated",
|
|
325
|
+
"schema.scheduledTasks.toolbar.newTask": "New task",
|
|
326
|
+
"schema.scheduledTasks.action.run": "Run now",
|
|
327
|
+
"schema.scheduledTasks.confirm.run": "Run this task now?",
|
|
328
|
+
"schema.scheduledTasks.action.runs": "Runs",
|
|
329
|
+
"schema.scheduledTasks.action.edit": "Edit",
|
|
330
|
+
"schema.scheduledTasks.action.delete": "Delete",
|
|
331
|
+
"schema.scheduledTasks.confirm.delete": "Delete this task and its run history?",
|
|
332
|
+
"schema.taskRuns.column.task": "Task",
|
|
333
|
+
"schema.taskRuns.column.status": "Status",
|
|
334
|
+
"schema.taskRuns.column.started": "Started",
|
|
335
|
+
"schema.taskRuns.column.finished": "Finished",
|
|
336
|
+
"schema.taskRuns.column.detail": "Detail",
|
|
337
|
+
"manifest.title.recycleBin": "Recycle bin",
|
|
338
|
+
"manifest.nav.recycleBin": "Recycle bin",
|
|
339
|
+
"schema.recycleBin.column.resource": "Resource",
|
|
340
|
+
"schema.recycleBin.column.resourceId": "Resource ID",
|
|
341
|
+
"schema.recycleBin.column.actor": "Deleted by",
|
|
342
|
+
"schema.recycleBin.column.deletedAt": "Deleted at",
|
|
343
|
+
"schema.recycleBin.column.restored": "Restored",
|
|
344
|
+
"schema.recycleBin.action.restore": "Restore",
|
|
345
|
+
"schema.recycleBin.action.purge": "Purge",
|
|
346
|
+
"schema.recycleBin.toolbar.purgeAll": "Purge all",
|
|
347
|
+
"error.recycleItemNotFound": "no recycle item with that id",
|
|
348
|
+
"error.recycleRestoreConflict": "a row with that key already exists; resolve the conflict and retry",
|
|
349
|
+
"error.recycleItemAlreadyRestored": "recycle item is already restored",
|
|
350
|
+
"shell.notifications.bell": "Notifications",
|
|
351
|
+
"shell.notifications.viewAll": "View all",
|
|
352
|
+
"shell.notifications.unavailable": "Notifications are temporarily unavailable.",
|
|
353
|
+
"schema.roles.field.key": "Key",
|
|
354
|
+
"schema.roles.field.name": "Name",
|
|
355
|
+
"schema.roles.field.permissions": "Permissions",
|
|
356
|
+
"schema.roles.field.menuAccess": "Menu access",
|
|
357
|
+
"schema.roles.option.readUsers": "Read users",
|
|
358
|
+
"schema.roles.option.writeUsers": "Write users",
|
|
359
|
+
"schema.roles.option.readRoles": "Read roles",
|
|
360
|
+
"schema.roles.option.writeRoles": "Write roles",
|
|
361
|
+
"schema.roles.option.assignRoles": "Assign roles",
|
|
362
|
+
"schema.roles.option.readSettings": "Read settings",
|
|
363
|
+
"schema.roles.option.writeSettings": "Write settings",
|
|
364
|
+
"schema.roles.option.readActivityLog": "Read activity log",
|
|
365
|
+
"schema.roles.option.users": "Users",
|
|
366
|
+
"schema.roles.option.roles": "Roles",
|
|
367
|
+
"schema.roles.option.settings": "Settings",
|
|
368
|
+
"schema.roles.option.activity": "Activity",
|
|
369
|
+
"schema.roles.submit.create": "Create role",
|
|
370
|
+
"schema.roles.submit.save": "Save changes",
|
|
371
|
+
"schema.roles.column.id": "ID",
|
|
372
|
+
"schema.roles.column.key": "Key",
|
|
373
|
+
"schema.roles.column.name": "Name",
|
|
374
|
+
"schema.roles.column.permissions": "Permissions",
|
|
375
|
+
"schema.roles.column.menus": "Menus",
|
|
376
|
+
"schema.roles.column.users": "Users",
|
|
377
|
+
"schema.roles.column.system": "System",
|
|
378
|
+
"schema.roles.column.updated": "Updated",
|
|
379
|
+
"schema.roles.column.created": "Created",
|
|
380
|
+
"schema.roles.detail.title": "Role details",
|
|
381
|
+
"schema.roles.toolbar.newRole": "New role",
|
|
382
|
+
"schema.roles.action.edit": "Edit",
|
|
383
|
+
"schema.roles.action.delete": "Delete",
|
|
384
|
+
"schema.roles.confirm.delete": "Delete this role?",
|
|
385
|
+
"schema.settings.field.siteTitle": "Site title",
|
|
386
|
+
"schema.settings.field.copyrightText": "Footer copyright text",
|
|
387
|
+
"schema.settings.field.icpNumber": "ICP number",
|
|
388
|
+
"schema.settings.field.logoUrl": "Logo (empty = hide)",
|
|
389
|
+
"schema.settings.field.logoUrlLight": "Logo (light theme)",
|
|
390
|
+
"schema.settings.field.logoUrlDark": "Logo (dark theme)",
|
|
391
|
+
"schema.settings.field.faviconUrl": "Favicon",
|
|
392
|
+
"schema.settings.field.defaultLocale": "Default language",
|
|
393
|
+
"schema.settings.field.siteTimezone": "Default timezone (IANA name or auto)",
|
|
394
|
+
"schema.settings.field.defaultCurrency": "Default currency (ISO 4217)",
|
|
395
|
+
"schema.settings.field.defaultTheme": "Default theme",
|
|
396
|
+
"schema.settings.submit.save": "Save settings",
|
|
397
|
+
"schema.settings.description": "Site defaults used across the admin shell, login page, and public startup configuration. Brand icons are uploaded (auto-resized and compressed; SVG not supported); leave empty to hide.",
|
|
398
|
+
"schema.settings.column.siteTitle": "Site title",
|
|
399
|
+
"schema.settings.column.logoUrl": "Logo URL",
|
|
400
|
+
"schema.settings.column.logoUrlLight": "Logo (light)",
|
|
401
|
+
"schema.settings.column.logoUrlDark": "Logo (dark)",
|
|
402
|
+
"schema.settings.column.faviconUrl": "Favicon",
|
|
403
|
+
"schema.settings.column.defaultLocale": "Default language",
|
|
404
|
+
"schema.settings.column.siteTimezone": "Timezone",
|
|
405
|
+
"schema.settings.column.defaultTheme": "Theme",
|
|
406
|
+
"schema.settings.column.updated": "Updated",
|
|
407
|
+
"schema.settings.toolbar.general": "General",
|
|
408
|
+
"schema.settings.toolbar.branding": "Branding",
|
|
409
|
+
"schema.settings.toolbar.localization": "Localization",
|
|
410
|
+
"schema.settings.toolbar.appearance": "Appearance",
|
|
411
|
+
"schema.settings.toolbar.audit": "Audit log",
|
|
412
|
+
"schema.settings.toolbar.security": "Security",
|
|
413
|
+
"schema.settings.field.requireCaptcha": "Require captcha on login",
|
|
414
|
+
"schema.settings.option.captchaEnabled": "Enabled",
|
|
415
|
+
"schema.settings.option.captchaDisabled": "Disabled",
|
|
416
|
+
"schema.settings.field.operationLogRetentionDays": "Retention days",
|
|
417
|
+
"schema.settings.field.operationLogExpirationAction": "When logs expire",
|
|
418
|
+
"schema.settings.option.expirationArchive": "Archive",
|
|
419
|
+
"schema.settings.option.expirationDelete": "Delete",
|
|
420
|
+
"schema.settings.toolbar.reset": "Restore defaults",
|
|
421
|
+
"schema.settings.tab.general": "General",
|
|
422
|
+
"schema.settings.tab.branding": "Branding",
|
|
423
|
+
"schema.settings.tab.localization": "Localization",
|
|
424
|
+
"schema.settings.tab.appearance": "Appearance",
|
|
425
|
+
"schema.settings.tab.audit": "Audit log",
|
|
426
|
+
"schema.settings.tab.security": "Security",
|
|
427
|
+
"schema.settings.confirm.reset": "Restore all settings to their defaults?",
|
|
428
|
+
"schema.settings.option.localeAuto": "Auto (follow browser)",
|
|
429
|
+
"schema.settings.option.themeAuto": "Auto",
|
|
430
|
+
"schema.settings.option.themeLight": "Light",
|
|
431
|
+
"schema.settings.option.themeDark": "Dark",
|
|
432
|
+
"schema.settings.action.edit": "Edit",
|
|
433
|
+
"schema.overview.text.welcome": "Welcome to the schema-driven admin workspace.",
|
|
434
|
+
"schema.data-table.text.intro": "Sortable users from the Go list API (/api/users). This page exercises D-DATA list/detail and D-TABLE sort declarations.",
|
|
435
|
+
"schema.admin-list-batch.text.intro": "ADR-0022 page multi-select + batch request (table.selection / actions.batch.request). Select rows to enable the toolbar batch button; success reloads and clears the selection.",
|
|
436
|
+
"schema.admin-list-batch.toolbar.batchDelete": "Batch delete",
|
|
437
|
+
"schema.admin-list-batch.confirm.batchDelete": "Delete the selected users?",
|
|
438
|
+
"schema.data-display.text.intro": "Registry display types (statCard / chart) driven by the same single-slash dataSource contract as table.",
|
|
439
|
+
"schema.data-display.statCard.totalRoles": "Total roles",
|
|
440
|
+
"schema.data-display.statCard.usersOnFirstRole": "Users on first role",
|
|
441
|
+
"schema.search-form-table.text.intro": "A search form filters the role list (D-TABLE search-table); column headers declare sort (D-TABLE table-sort). R4 binds the search form to the target table query (form-to-query, mode: search + targetTable).",
|
|
442
|
+
"schema.search-form-table.field.searchRoles": "Search roles",
|
|
443
|
+
"schema.search-form-table.submit.search": "Search",
|
|
444
|
+
"schema.form-controls.text.intro": "Full registry form control surface (D-FORM): base controls incl. inputNumber / datePicker / dateRangePicker, 2.6 extended and 2.7 advanced controls.",
|
|
445
|
+
"schema.form-controls.field.name": "Name (input)",
|
|
446
|
+
"schema.form-controls.field.kind": "Kind (select)",
|
|
447
|
+
"schema.form-controls.field.quantity": "Quantity (inputNumber)",
|
|
448
|
+
"schema.form-controls.field.deliveryDate": "Delivery date (datePicker)",
|
|
449
|
+
"schema.form-controls.field.window": "Window (dateRangePicker)",
|
|
450
|
+
"schema.form-controls.field.approval": "Approval (switch)",
|
|
451
|
+
"schema.form-controls.field.auditNote": "Audit note (textarea)",
|
|
452
|
+
"schema.form-controls.field.scope": "Scope (radio)",
|
|
453
|
+
"schema.form-controls.field.tags": "Tags (checkboxGroup)",
|
|
454
|
+
"schema.form-controls.option.standard": "Standard",
|
|
455
|
+
"schema.form-controls.option.priority": "Priority",
|
|
456
|
+
"schema.form-controls.option.internal": "Internal",
|
|
457
|
+
"schema.form-controls.option.external": "External",
|
|
458
|
+
"schema.form-controls.option.alpha": "Alpha",
|
|
459
|
+
"schema.form-controls.option.beta": "Beta",
|
|
460
|
+
"schema.form-controls.submit.submit": "Submit",
|
|
461
|
+
"schema.form-with-reactions.text.intro": "D-EXPR reactions reuse the frozen $context expression engine to flip field visibility / disabled state.",
|
|
462
|
+
"schema.form-with-reactions.field.name": "Name (input)",
|
|
463
|
+
"schema.form-with-reactions.field.kind": "Kind (select)",
|
|
464
|
+
"schema.form-with-reactions.field.approval": "Approval (switch)",
|
|
465
|
+
"schema.form-with-reactions.field.auditNote": "Audit note (textarea)",
|
|
466
|
+
"schema.form-with-reactions.option.standard": "Standard",
|
|
467
|
+
"schema.form-with-reactions.option.priority": "Priority",
|
|
468
|
+
"schema.form-with-reactions.submit.submit": "Submit",
|
|
469
|
+
"schema.activity.field.id": "ID",
|
|
470
|
+
"schema.activity.field.event": "Event",
|
|
471
|
+
"schema.activity.field.actorName": "Actor",
|
|
472
|
+
"schema.activity.field.actorId": "Actor ID",
|
|
473
|
+
"schema.activity.field.recordId": "Record ID",
|
|
474
|
+
"schema.activity.field.detail": "Detail",
|
|
475
|
+
"schema.activity.field.createdAt": "Created",
|
|
476
|
+
"schema.activity.submit.close": "Close",
|
|
477
|
+
"schema.activity.text.intro": "Read-only operation log (auth and resource writes). Select a row for detail; no create/edit/delete.",
|
|
478
|
+
"schema.activity.field.search": "Search",
|
|
479
|
+
"schema.activity.submit.search": "Search",
|
|
480
|
+
"schema.activity.column.when": "When",
|
|
481
|
+
"schema.activity.column.event": "Event",
|
|
482
|
+
"schema.activity.column.actor": "Actor",
|
|
483
|
+
"schema.activity.column.record": "Record",
|
|
484
|
+
"schema.activity.column.detail": "Detail",
|
|
485
|
+
"schema.activity.action.view": "View",
|
|
486
|
+
"schema.activity.detail.title": "Activity details",
|
|
487
|
+
"schema.activity.search.event": "Event",
|
|
488
|
+
"schema.activity.search.actorName": "Actor",
|
|
489
|
+
"schema.activity.search.from": "From",
|
|
490
|
+
"schema.activity.search.to": "To",
|
|
491
|
+
"schema.activity.export.button": "Export CSV",
|
|
492
|
+
"schema.activity.export.error": "Could not export the activity log.",
|
|
493
|
+
"schema.form-with-upload.text.intro": "ADR-0012 upload orchestration: selecting a file validates (accept/maxSize/multiple) and uploads each file as multipart; the field value takes the response url (preferred) or id.",
|
|
494
|
+
"schema.form-with-upload.field.title": "Title (input)",
|
|
495
|
+
"schema.form-with-upload.field.attachment": "Attachment (upload)",
|
|
496
|
+
"schema.form-with-upload.submit.submit": "Submit",
|
|
497
|
+
"error.unauth": "no active session",
|
|
498
|
+
"error.unauthorized": "invalid username or password",
|
|
499
|
+
"error.forbidden": "you do not have permission for this action",
|
|
500
|
+
"error.invalidLoginBody": "body must be JSON with username and password",
|
|
501
|
+
"error.loginFailed": "authentication unavailable",
|
|
502
|
+
"error.invalidRefreshBody": "body must be JSON with refreshToken",
|
|
503
|
+
"error.refreshFailed": "refresh unavailable",
|
|
504
|
+
"error.refreshTokenExpired": "sign-in expired; please sign in again",
|
|
505
|
+
"error.notFound": "not found",
|
|
506
|
+
"error.methodNotAllowed": "method not allowed",
|
|
507
|
+
"error.invalidLogoutBody": "body must be JSON with refreshToken",
|
|
508
|
+
"error.logoutFailed": "logout unavailable",
|
|
509
|
+
"error.invalidPatchBody": "body must be JSON",
|
|
510
|
+
"error.schemaNotFound": "no page document for that pageId",
|
|
511
|
+
"error.settingsNotFound": "no settings with that id",
|
|
512
|
+
"error.invalidSiteTitle": "siteTitle must not be empty",
|
|
513
|
+
"error.invalidLogoUrl": "logoUrl fields must be empty, a same-origin path, or an http(s) URL",
|
|
514
|
+
"error.invalidKind": "kind must be logo or favicon",
|
|
515
|
+
"error.assetNotFound": "no brand asset with that id",
|
|
516
|
+
"error.invalidDefaultLocale": "defaultLocale must be auto, zh-CN or en-US",
|
|
517
|
+
"error.invalidDefaultTheme": "defaultTheme must be auto, light or dark",
|
|
518
|
+
"error.invalidTimezone": "siteTimezone must be auto or a valid IANA timezone",
|
|
519
|
+
"error.invalidDefaultCurrency": "defaultCurrency must be empty or a valid ISO 4217 code",
|
|
520
|
+
"error.invalidRetentionDays": "operationLogRetentionDays must be between 1 and 3650",
|
|
521
|
+
"error.invalidExpirationAction": "operationLogExpirationAction must be archive or delete",
|
|
522
|
+
"error.invalidSortField": "unsupported sort field",
|
|
523
|
+
"error.invalidSortOrder": "order must be asc or desc",
|
|
524
|
+
"error.invalidPage": "page must be a positive integer",
|
|
525
|
+
"error.invalidPageSize": "pageSize must be a positive integer not exceeding 100",
|
|
526
|
+
"error.invalidDateFilter": "from/to must be YYYY-MM-DD or RFC3339",
|
|
527
|
+
"error.invalidCreateBody": "body must be JSON",
|
|
528
|
+
"error.invalidCreateField": "invalid create field",
|
|
529
|
+
"error.invalidPatchField": "invalid patch field",
|
|
530
|
+
"form.upload.remove": "Remove image",
|
|
531
|
+
"form.validation.required": "this field is required",
|
|
532
|
+
"form.validation.pattern": "format does not match the expected pattern",
|
|
533
|
+
"form.validation.minLength": "value is shorter than the minimum length",
|
|
534
|
+
"form.validation.maxLength": "value is longer than the maximum length",
|
|
535
|
+
"form.validation.minValue": "value is below the minimum",
|
|
536
|
+
"form.validation.maxValue": "value exceeds the maximum",
|
|
537
|
+
"error.invalidBody": "expected a JSON object with an ids array",
|
|
538
|
+
"error.emptySelection": "ids must contain at least one key",
|
|
539
|
+
"error.invalidSelectionKey": "ids entries must be scalar keys",
|
|
540
|
+
"error.usernameTaken": "username already exists",
|
|
541
|
+
"error.roleKeyTaken": "role key already exists",
|
|
542
|
+
"error.roleInUse": "role is assigned to users",
|
|
543
|
+
"error.roleSystem": "system roles cannot be modified",
|
|
544
|
+
"error.invalidRoleKey": "invalid role key format",
|
|
545
|
+
"error.invalidPermissionRef": "permissions contain an unknown key",
|
|
546
|
+
"error.roleGrantForbidden": "you may not grant roles you do not hold",
|
|
547
|
+
"error.roleNotFound": "no role with that key",
|
|
548
|
+
"error.userNotFound": "no user with that id",
|
|
549
|
+
"error.catalogNotFound": "no catalog with that id",
|
|
550
|
+
"error.invalidUpload": "expected a multipart file part named file",
|
|
551
|
+
"error.fileTooLarge": "file exceeds the size limit",
|
|
552
|
+
"error.fileNotFound": "file not found",
|
|
553
|
+
"error.invalidUploadBody": "body must be JSON with a file field",
|
|
554
|
+
"error.invalidFileId": "invalid file id",
|
|
555
|
+
"error.dictTypeNotFound": "no dict type with that id",
|
|
556
|
+
"error.dictEntryNotFound": "no dict entry with that id",
|
|
557
|
+
"error.dictTypeKeyTaken": "a dict type with that key already exists",
|
|
558
|
+
"error.dictEntryKeyTaken": "an entry with that key already exists in the dict type",
|
|
559
|
+
"error.dictKeyNotFound": "no dict type with that key",
|
|
560
|
+
"error.taskNotFound": "no scheduled task with that id",
|
|
561
|
+
"error.taskRunNotFound": "no task run with that id",
|
|
562
|
+
"error.taskKeyTaken": "a scheduled task with that key already exists",
|
|
563
|
+
"error.invalidCron": "invalid cron expression",
|
|
564
|
+
"error.invalidCaptcha": "captcha verification failed",
|
|
565
|
+
"error.invalidHandler": "unknown task handler",
|
|
566
|
+
"error.invalidFile": "file part is invalid",
|
|
567
|
+
"error.unsupportedFileType": "file type is not allowed",
|
|
568
|
+
"error.storageUnavailable": "storage is temporarily unavailable",
|
|
569
|
+
"error.rateLimited": "too many failed login attempts; try again later",
|
|
570
|
+
"error.uploadQuotaExceeded": "upload rejected: per-user quota exceeded",
|
|
571
|
+
"hostFailure.kicker": "Host failure",
|
|
572
|
+
"hostFailure.generic": "Something went wrong",
|
|
573
|
+
"hostFailure.maintenance": "Scheduled maintenance",
|
|
574
|
+
"hostFailure.upgradeRequired": "Upgrade required",
|
|
575
|
+
"hostFailure.requiresAuth": "Sign in required",
|
|
576
|
+
"hostFailure.reauthRequired": "Session expired",
|
|
577
|
+
"hostFailure.accountLocked": "Account locked",
|
|
578
|
+
"hostFailure.forbidden": "Access denied",
|
|
579
|
+
"hostFailure.notFound": "Page not found",
|
|
580
|
+
"hostFailure.rateLimited": "Too many requests",
|
|
581
|
+
"hostFailure.timeout": "Request timed out",
|
|
582
|
+
"hostFailure.offline": "You are offline",
|
|
583
|
+
"hostFailure.protocolRejected": "Incompatible application",
|
|
584
|
+
"hostFailure.renderFailed": "Something went wrong while rendering",
|
|
585
|
+
"hostFailure.unavailable": "Service unavailable",
|
|
586
|
+
"hostFailure.countdown": "Retry available in {seconds}s",
|
|
587
|
+
"hostFailure.action.retry": "Retry",
|
|
588
|
+
"hostFailure.action.reauth": "Sign in again",
|
|
589
|
+
"hostFailure.action.home": "Return home",
|
|
590
|
+
"hostFailure.action.back": "Go back",
|
|
591
|
+
"hostFailure.action.reload": "Reload",
|
|
592
|
+
"hostFailure.action.support": "Support",
|
|
593
|
+
"manifest.title.dataPermission": "Data permission",
|
|
594
|
+
"manifest.nav.dataPermission": "Data permission",
|
|
595
|
+
"schema.dataPermission.field.resource": "Resource",
|
|
596
|
+
"schema.dataPermission.field.ownerColumn": "Owner column",
|
|
597
|
+
"schema.dataPermission.field.defaultScope": "Default scope",
|
|
598
|
+
"schema.dataPermission.field.enabled": "Enabled",
|
|
599
|
+
"schema.dataPermission.scope.all": "All",
|
|
600
|
+
"schema.dataPermission.scope.self": "Self",
|
|
601
|
+
"schema.dataPermission.submit.register": "Register policy",
|
|
602
|
+
"schema.dataPermission.column.resource": "Resource",
|
|
603
|
+
"schema.dataPermission.column.ownerColumn": "Owner column",
|
|
604
|
+
"schema.dataPermission.column.defaultScope": "Default scope",
|
|
605
|
+
"schema.dataPermission.column.enabled": "Enabled",
|
|
606
|
+
"schema.dataPermission.toolbar.register": "Register policy",
|
|
607
|
+
"schema.dataPermission.scopes.title": "Scope assignments",
|
|
608
|
+
"schema.dataPermission.scopes.user": "User",
|
|
609
|
+
"schema.dataPermission.scopes.selectUser": "Select a user",
|
|
610
|
+
"schema.dataPermission.scopes.selectUserPrompt": "Select a user to configure their resource scopes.",
|
|
611
|
+
"schema.dataPermission.scopes.noPolicies": "No scope policies registered yet.",
|
|
612
|
+
"schema.dataPermission.scopes.scope": "Scope",
|
|
613
|
+
"schema.dataPermission.scopes.scopeFor": "Scope for {resource}",
|
|
614
|
+
"schema.dataPermission.scopes.save": "Save scopes",
|
|
615
|
+
"schema.dataPermission.scopes.saved": "Scope assignments saved.",
|
|
616
|
+
"schema.dataPermission.scopes.saveError": "Could not save scope assignments.",
|
|
617
|
+
"schema.dataPermission.scopes.loadError": "Could not load scope assignments.",
|
|
618
|
+
"schema.dataPermission.scopes.selectUserFirst": "Select a user before saving.",
|
|
619
|
+
"error.invalidScope": "Scope must be all or self",
|
|
620
|
+
"error.invalidScopeBody": "Body must be JSON with userId and scopes",
|
|
621
|
+
"error.scopeNotEnforceable": "Resource is not wired for row-level scoping",
|
|
622
|
+
"login.mfa.title": "Two-factor authentication",
|
|
623
|
+
"login.mfa.description": "Enter the 6-digit code from your authenticator app, or a recovery code.",
|
|
624
|
+
"login.mfa.code": "Authenticator code",
|
|
625
|
+
"login.mfa.recovery": "Recovery code (optional)",
|
|
626
|
+
"login.mfa.verify": "Verify code",
|
|
627
|
+
"login.error.mfaInvalid": "Invalid second-factor code",
|
|
628
|
+
"login.error.mfaProofExpired": "Second-factor verification expired; sign in again",
|
|
629
|
+
"login.error.mfaProofExhausted": "Too many failed attempts; sign in again",
|
|
630
|
+
"login.error.mfaRequired": "Second factor required",
|
|
631
|
+
"login.mfaDisabledNotice": "MFA was disabled. All sessions were revoked; sign in again.",
|
|
632
|
+
"invite.title": "Account invitation",
|
|
633
|
+
"invite.description": "Choose a username and password to activate the invited account.",
|
|
634
|
+
"invite.activate": "Activate account",
|
|
635
|
+
"invite.success": "Account activated. Sign in with your new password.",
|
|
636
|
+
"invite.goSignIn": "Go to sign in",
|
|
637
|
+
"invite.error.invalid": "This invitation is unknown, expired, already used or revoked",
|
|
638
|
+
"invite.error.roleGone": "The invited roles changed; ask for a new invitation",
|
|
639
|
+
"invite.policy.title": "Password policy",
|
|
640
|
+
"invite.policy.description": "Applies when any password is set (create / admin reset / recovery / self change). Existing accounts are never locked out.",
|
|
641
|
+
"invite.policy.minLength": "Minimum length (bytes)",
|
|
642
|
+
"invite.policy.minCategories": "Character categories required (0 = off)",
|
|
643
|
+
"invite.policy.historyDepth": "Password history depth (0 = off)",
|
|
644
|
+
"invite.policy.save": "Save policy",
|
|
645
|
+
"invite.policy.saved": "Password policy saved.",
|
|
646
|
+
"invite.policy.saveError": "Could not save the password policy.",
|
|
647
|
+
"invite.policy.loadError": "Could not load the password policy.",
|
|
648
|
+
"invite.panel.issueTitle": "Issue invitation",
|
|
649
|
+
"invite.panel.recordsTitle": "Invitation records",
|
|
650
|
+
"invite.panel.recordsHint": "Filterable list of issued invitations.",
|
|
651
|
+
"invite.panel.filter": "Show",
|
|
652
|
+
"invite.panel.filterAll": "All",
|
|
653
|
+
"invite.panel.filterPending": "Pending",
|
|
654
|
+
"invite.panel.filterConsumed": "Used",
|
|
655
|
+
"invite.panel.filterRevoked": "Revoked",
|
|
656
|
+
"invite.panel.filterExpired": "Expired",
|
|
657
|
+
"invite.panel.title": "Invitations",
|
|
658
|
+
"invite.panel.description": "Roles are fixed at issuance; the invitee activates via emailed link or a manually shared link.",
|
|
659
|
+
"invite.panel.email": "Target email (optional)",
|
|
660
|
+
"invite.panel.roles": "Roles",
|
|
661
|
+
"invite.panel.rolesPlaceholder": "Select at least one role…",
|
|
662
|
+
"invite.panel.rolesEmpty": "No roles available.",
|
|
663
|
+
"invite.panel.confirmRevoke": "Revoke this invitation? Its link stops working immediately.",
|
|
664
|
+
"invite.panel.days": "Valid days",
|
|
665
|
+
"invite.panel.create": "Create invitation",
|
|
666
|
+
"invite.panel.disclose": "One-time link (copy now):",
|
|
667
|
+
"invite.panel.status": "Status",
|
|
668
|
+
"invite.panel.expires": "Expires",
|
|
669
|
+
"invite.panel.actions": "Actions",
|
|
670
|
+
"invite.resendDialog.newLink": "New one-time link",
|
|
671
|
+
"invite.detail.title": "Invitation details",
|
|
672
|
+
"invite.detail.invitedBy": "Invited by",
|
|
673
|
+
"invite.resendDialog.confirm": "Rotate the token of this invitation and reveal a fresh link?",
|
|
674
|
+
"invite.resendDialog.noRow": "No invitation row context.",
|
|
675
|
+
"invite.resendDialog.noLink": "The resend response carried no link.",
|
|
676
|
+
"invite.resendDialog.copy": "Copy link",
|
|
677
|
+
"invite.resendDialog.copied": "Copied",
|
|
678
|
+
"invite.resendDialog.done": "Done",
|
|
679
|
+
"invite.resendDialog.copyFailed": "Could not copy the link.",
|
|
680
|
+
"invite.panel.resend": "Resend",
|
|
681
|
+
"invite.panel.revoke": "Revoke",
|
|
682
|
+
"invite.panel.empty": "No invitations yet.",
|
|
683
|
+
"invite.panel.loadError": "Could not load invitations.",
|
|
684
|
+
"invite.panel.actionError": "The invitation operation failed.",
|
|
685
|
+
"login.recovery.link": "Forgot password?",
|
|
686
|
+
"login.recovery.title": "Password recovery",
|
|
687
|
+
"login.recovery.description": "We will send a 6-digit code to the verified email bound to the account.",
|
|
688
|
+
"login.recovery.account": "Username or email",
|
|
689
|
+
"login.recovery.accountPlaceholder": "username or name@example.com",
|
|
690
|
+
"login.recovery.sendCode": "Send code",
|
|
691
|
+
"login.recovery.codeSent": "If the account has a verified email, a code is on its way. It expires in 10 minutes.",
|
|
692
|
+
"login.recovery.code": "6-digit email code",
|
|
693
|
+
"login.recovery.newPassword": "New password",
|
|
694
|
+
"login.recovery.secondFactor": "Authenticator code (if MFA is enabled)",
|
|
695
|
+
"login.recovery.recoveryCode": "MFA recovery code (optional)",
|
|
696
|
+
"login.recovery.complete": "Reset password",
|
|
697
|
+
"login.recovery.back": "Back to sign in",
|
|
698
|
+
"login.recovery.success": "Password updated. Sign in with your new password.",
|
|
699
|
+
"login.recovery.error.cooldown": "Please wait before requesting another code",
|
|
700
|
+
"login.recovery.error.codeInvalid": "Recovery code is invalid",
|
|
701
|
+
"login.recovery.error.codeExpired": "Recovery code expired; request a new one",
|
|
702
|
+
"login.recovery.error.secondFactorRequired": "Enter your authenticator code to finish recovery",
|
|
703
|
+
"login.recovery.error.passwordPolicy": "New password must be a non-blank string of 8 to 72 bytes",
|
|
704
|
+
"login.recovery.error.sendFailed": "The reset email could not be sent; try again later",
|
|
705
|
+
"error.mfaInvalid": "Invalid second-factor code",
|
|
706
|
+
"error.mfaProofExpired": "Second-factor verification expired; sign in again",
|
|
707
|
+
"error.mfaProofExhausted": "Too many failed attempts; sign in again",
|
|
708
|
+
"error.mfaNotEnrolled": "No MFA enrollment for this account",
|
|
709
|
+
"error.mfaPendingOnly": "MFA is not activated yet",
|
|
710
|
+
"error.mfaAlreadyActive": "MFA is already active",
|
|
711
|
+
"error.invalidMfaBody": "Body must be JSON with proof and code",
|
|
712
|
+
"schema.users.column.mfaEnabled": "MFA",
|
|
713
|
+
"schema.users.action.resetMfa": "Reset MFA",
|
|
714
|
+
"schema.users.confirm.resetMfa": "Reset this user's MFA? All sessions will be revoked.",
|
|
715
|
+
"schema.account.mfa.title": "Two-factor authentication (MFA)",
|
|
716
|
+
"schema.account.email.title": "Account email",
|
|
717
|
+
"schema.account.email.unavailable": "Email binding status is unavailable.",
|
|
718
|
+
"schema.account.email.statusUnbound": "No email bound.",
|
|
719
|
+
"schema.account.email.statusPending": "Email pending verification — enter the code you received.",
|
|
720
|
+
"schema.account.email.statusVerified": "Email verified.",
|
|
721
|
+
"schema.account.email.addressLabel": "Email address",
|
|
722
|
+
"schema.account.email.bindSubmit": "Send code",
|
|
723
|
+
"schema.account.email.codeLabel": "6-digit code",
|
|
724
|
+
"schema.account.email.verifySubmit": "Verify",
|
|
725
|
+
"schema.account.email.resendSubmit": "Resend (60s cooldown)",
|
|
726
|
+
"schema.account.email.errorGeneric": "The operation failed; try again later.",
|
|
727
|
+
"schema.account.email.errTaken": "That email is already used by another account.",
|
|
728
|
+
"schema.account.email.errCode": "The verification code is invalid.",
|
|
729
|
+
"schema.account.email.errExpired": "The code expired or was voided — resend one.",
|
|
730
|
+
"schema.account.email.errCooldown": "Too many requests; wait a moment.",
|
|
731
|
+
"schema.account.mfa.unavailable": "MFA status is unavailable.",
|
|
732
|
+
"schema.account.mfa.statusEnabled": "MFA is enabled.",
|
|
733
|
+
"schema.account.mfa.statusDisabled": "MFA is disabled.",
|
|
734
|
+
"schema.account.mfa.enroll": "Enable MFA",
|
|
735
|
+
"schema.account.mfa.qr": "Scan this QR code with your authenticator app",
|
|
736
|
+
"schema.account.mfa.qrHint": "Can't scan? Enter the secret manually below.",
|
|
737
|
+
"schema.account.mfa.secret": "Secret (add manually)",
|
|
738
|
+
"schema.account.mfa.copySecret": "Copy secret",
|
|
739
|
+
"schema.account.mfa.secretCopied": "Secret copied to clipboard",
|
|
740
|
+
"schema.account.mfa.copyFailed": "Could not copy secret",
|
|
741
|
+
"schema.account.mfa.downloadRecovery": "Download recovery codes (.txt)",
|
|
742
|
+
"schema.account.mfa.otpauth": "Authenticator URI",
|
|
743
|
+
"schema.account.mfa.recoveryCodes": "Recovery codes (save them once)",
|
|
744
|
+
"schema.account.mfa.confirmCode": "6-digit code",
|
|
745
|
+
"schema.account.mfa.confirm": "Confirm and enable",
|
|
746
|
+
"schema.account.mfa.disableCode": "Current code or recovery code",
|
|
747
|
+
"schema.account.mfa.disable": "Disable MFA",
|
|
748
|
+
"schema.account.mfa.rotateRecovery": "Current code or recovery code",
|
|
749
|
+
"schema.account.mfa.rotate": "Rotate recovery codes",
|
|
750
|
+
"schema.account.mfa.errorGeneric": "MFA operation failed.",
|
|
751
|
+
"manifest.title.wallet": "Wallet",
|
|
752
|
+
"manifest.title.walletEntries": "Wallet entries",
|
|
753
|
+
"manifest.nav.wallet": "Wallet",
|
|
754
|
+
"manifest.title.myWallet": "My wallet",
|
|
755
|
+
"manifest.nav.myWallet": "My wallet",
|
|
756
|
+
"schema.myWallet.text.intro": "Your wallet balance and recent ledger entries. Amounts are in min units.",
|
|
757
|
+
"schema.myWallet.statCard.total": "Total balance (min units)",
|
|
758
|
+
"schema.myWallet.statCard.available": "Available (min units)",
|
|
759
|
+
"schema.myWallet.statCard.frozen": "Frozen (min units)",
|
|
760
|
+
"schema.wallet.owner.user": "User",
|
|
761
|
+
"schema.wallet.owner.business": "Business",
|
|
762
|
+
"schema.wallet.owner.system": "System",
|
|
763
|
+
"schema.wallet.field.ownerType": "Owner type",
|
|
764
|
+
"schema.wallet.field.ownerId": "Owner ID",
|
|
765
|
+
"schema.wallet.field.currency": "Currency",
|
|
766
|
+
"schema.wallet.field.amountDelta": "Amount (signed, min units)",
|
|
767
|
+
"schema.wallet.adjustWarning": "Large or negative adjustment; please review before submitting.",
|
|
768
|
+
"schema.wallet.adjustConfirm": "This adjustment is large or negative. Continue?",
|
|
769
|
+
"schema.wallet.field.amount": "Amount (min units)",
|
|
770
|
+
"schema.wallet.field.memo": "Memo",
|
|
771
|
+
"schema.wallet.field.idempotencyKey": "Idempotency key (optional)",
|
|
772
|
+
"schema.wallet.field.status": "Status",
|
|
773
|
+
"schema.wallet.field.version": "Version",
|
|
774
|
+
"schema.wallet.status.active": "Active",
|
|
775
|
+
"schema.wallet.status.disabled": "Disabled",
|
|
776
|
+
"schema.wallet.submit.create": "Create account",
|
|
777
|
+
"schema.wallet.submit.adjust": "Adjust balance",
|
|
778
|
+
"schema.wallet.submit.freeze": "Freeze",
|
|
779
|
+
"schema.wallet.submit.unfreeze": "Unfreeze",
|
|
780
|
+
"schema.wallet.submit.deductFrozen": "Deduct frozen",
|
|
781
|
+
"schema.wallet.submit.status": "Save status",
|
|
782
|
+
"schema.wallet.column.ownerType": "Owner type",
|
|
783
|
+
"schema.wallet.column.ownerId": "Owner ID",
|
|
784
|
+
"schema.wallet.column.currency": "Currency",
|
|
785
|
+
"schema.wallet.column.balanceTotal": "Balance",
|
|
786
|
+
"schema.wallet.column.balanceAvailable": "Available",
|
|
787
|
+
"schema.wallet.column.balanceFrozen": "Frozen",
|
|
788
|
+
"schema.wallet.column.status": "Status",
|
|
789
|
+
"schema.wallet.column.updated": "Updated",
|
|
790
|
+
"schema.wallet.toolbar.create": "New account",
|
|
791
|
+
"schema.wallet.toolbar.reconcile": "Reconcile",
|
|
792
|
+
"schema.wallet.action.entries": "Entries",
|
|
793
|
+
"schema.wallet.action.adjust": "Adjust",
|
|
794
|
+
"schema.wallet.action.freeze": "Freeze",
|
|
795
|
+
"schema.wallet.action.unfreeze": "Unfreeze",
|
|
796
|
+
"schema.wallet.action.deductFrozen": "Deduct frozen",
|
|
797
|
+
"schema.wallet.action.status": "Status",
|
|
798
|
+
"schema.walletEntries.column.entryType": "Type",
|
|
799
|
+
"schema.walletEntries.column.amountDelta": "Amount",
|
|
800
|
+
"schema.walletEntries.column.balanceAfterTotal": "Balance after",
|
|
801
|
+
"schema.walletEntries.column.balanceAfterAvail": "Available after",
|
|
802
|
+
"schema.walletEntries.column.balanceAfterFrozen": "Frozen after",
|
|
803
|
+
"schema.walletEntries.column.memo": "Memo",
|
|
804
|
+
"schema.walletEntries.column.actorName": "Actor",
|
|
805
|
+
"schema.walletEntries.column.created": "Created",
|
|
806
|
+
"error.invalidWalletBody": "Body must be JSON with ownerType and ownerId",
|
|
807
|
+
"error.invalidWalletOwner": "ownerId is required",
|
|
808
|
+
"error.invalidWalletAccount": "accountId is required",
|
|
809
|
+
"error.invalidWalletStatus": "status must be active or disabled",
|
|
810
|
+
"error.walletNotFound": "Wallet account not found",
|
|
811
|
+
"error.walletOwnerTaken": "An account for that owner already exists",
|
|
812
|
+
"error.walletDisabled": "Wallet account is disabled",
|
|
813
|
+
"error.insufficientBalance": "Insufficient balance for this mutation",
|
|
814
|
+
"error.ledgerVersionConflict": "The account changed concurrently; reload and retry",
|
|
815
|
+
"error.ledgerIdempotencyConflict": "Idempotency key was already used with a different payload",
|
|
816
|
+
"error.invalidLedgerEntry": "Invalid ledger entry",
|
|
817
|
+
"error.preconditionRequired": "Provide If-Match or expectedVersion",
|
|
818
|
+
"error.invalidPrecondition": "Version preconditions must be valid and agree",
|
|
819
|
+
"error.walletUserAutoOnly": "User wallet accounts are created automatically",
|
|
820
|
+
"shell.userMenu": "User menu",
|
|
821
|
+
"schema.users.search.q": "Username / display name / ID",
|
|
822
|
+
"schema.users.filter.enabled": "Enabled",
|
|
823
|
+
"schema.users.filter.enabled.all": "All",
|
|
824
|
+
"schema.users.filter.enabled.yes": "Enabled",
|
|
825
|
+
"schema.users.filter.enabled.no": "Disabled",
|
|
826
|
+
"schema.users.filter.locked": "Locked",
|
|
827
|
+
"schema.users.filter.locked.all": "All",
|
|
828
|
+
"schema.users.filter.locked.yes": "Locked",
|
|
829
|
+
"schema.users.filter.locked.no": "Not locked",
|
|
830
|
+
"schema.roles.search.q": "Role name / key",
|
|
831
|
+
"schema.roles.filter.system": "System",
|
|
832
|
+
"schema.roles.filter.system.all": "All",
|
|
833
|
+
"schema.roles.filter.system.yes": "System",
|
|
834
|
+
"schema.roles.filter.system.no": "Custom",
|
|
835
|
+
"schema.activity.search.q": "Event / actor / resource",
|
|
836
|
+
"schema.wallet.search.q": "Account / owner",
|
|
837
|
+
"schema.wallet.filter.ownerType": "Owner type",
|
|
838
|
+
"schema.wallet.filter.ownerType.all": "All",
|
|
839
|
+
"schema.walletEntries.search.q": "Memo / reference",
|
|
840
|
+
"schema.walletEntries.filter.entryType": "Entry type",
|
|
841
|
+
"schema.walletEntries.filter.entryType.all": "All",
|
|
842
|
+
"schema.walletEntries.filter.entryType.adjust": "Adjust",
|
|
843
|
+
"schema.walletEntries.filter.entryType.freeze": "Freeze",
|
|
844
|
+
"schema.walletEntries.filter.entryType.unfreeze": "Unfreeze",
|
|
845
|
+
"schema.walletEntries.filter.entryType.deductFrozen": "Deduct frozen",
|
|
846
|
+
"schema.fileLibrary.search.q": "File name",
|
|
847
|
+
"schema.dataDictionary.search.q": "Dictionary key / name",
|
|
848
|
+
"schema.dictionaryEntries.search.q": "Entry key / name",
|
|
849
|
+
"schema.recycleBin.search.q": "Resource ID / actor",
|
|
850
|
+
"schema.recycleBin.filter.resource": "Resource type",
|
|
851
|
+
"schema.recycleBin.filter.resource.all": "All",
|
|
852
|
+
"schema.recycleBin.filter.resource.dictTypes": "Dictionary types",
|
|
853
|
+
"schema.recycleBin.filter.resource.dictEntries": "Dictionary entries",
|
|
854
|
+
"schema.recycleBin.filter.resource.scheduledTasks": "Scheduled tasks",
|
|
855
|
+
"schema.scheduledTasks.search.q": "Task key / name",
|
|
856
|
+
"schema.scheduledTasks.filter.enabled": "Enabled",
|
|
857
|
+
"schema.scheduledTasks.filter.enabled.all": "All",
|
|
858
|
+
"schema.scheduledTasks.filter.enabled.yes": "Enabled",
|
|
859
|
+
"schema.scheduledTasks.filter.enabled.no": "Disabled",
|
|
860
|
+
"schema.taskRuns.search.q": "Task key",
|
|
861
|
+
"schema.taskRuns.filter.status": "Status",
|
|
862
|
+
"schema.taskRuns.filter.status.all": "All",
|
|
863
|
+
"schema.taskRuns.filter.status.ran": "Ran",
|
|
864
|
+
"schema.taskRuns.filter.status.failed": "Failed",
|
|
865
|
+
"schema.notifications.search.q": "Title / body",
|
|
866
|
+
"schema.notifications.filter.read": "Read state",
|
|
867
|
+
"schema.notifications.filter.read.all": "All",
|
|
868
|
+
"schema.notifications.filter.read.unread": "Unread",
|
|
869
|
+
"schema.notifications.filter.read.read": "Read",
|
|
870
|
+
"schema.account.tab.profile": "Profile",
|
|
871
|
+
"schema.account.tab.notifications": "Notifications",
|
|
872
|
+
"schema.account.tab.security": "Security",
|
|
873
|
+
"schema.account.tab.sessions": "Sessions",
|
|
874
|
+
"feedback.reset": "Reset",
|
|
875
|
+
"feedback.clearFilters": "Clear all filters",
|
|
876
|
+
"feedback.removeFilter": "Remove filter",
|
|
877
|
+
"feedback.selectPlaceholder": "Select…",
|
|
878
|
+
"feedback.tabs": "Tabs",
|
|
879
|
+
"feedback.actionNotPermitted": "You don't have permission for this action.",
|
|
880
|
+
"feedback.selectRowFirst": "Select at least one row first.",
|
|
881
|
+
"error.actionNotFound": "Action \"{action}\" is not defined on this page.",
|
|
882
|
+
"error.actionNotRequest": "Action \"{action}\" is not a request action.",
|
|
883
|
+
"error.actionNotExecuted": "Action \"{action}\" was not executed ({reason}).",
|
|
884
|
+
"error.batchActionNotExecuted": "Batch action \"{action}\" was not executed ({reason}).",
|
|
885
|
+
"error.customHandlerNotFound": "Custom handler is not whitelisted: {handler}.",
|
|
886
|
+
"error.clipboardUnavailable": "Clipboard is unavailable.",
|
|
887
|
+
"error.popupBlocked": "The preview window was blocked.",
|
|
888
|
+
"importErrors.title": "Some rows were not imported. Review the errors below.",
|
|
889
|
+
"importTemplate.download": "Download CSV template",
|
|
890
|
+
"importTemplate.failed": "Could not download the import template.",
|
|
891
|
+
"error.customHandlerMissingRowId": "Custom handler requires a row id: {handler}.",
|
|
892
|
+
"error.invalidNavigateUrl": "{action} has an invalid url.",
|
|
893
|
+
"error.rowNavigationFailed": "Row navigation construction failed ({path}).",
|
|
894
|
+
"error.navigateNoUrl": "Navigate mapping produced no url.",
|
|
895
|
+
"error.operationNotFound": "No operation with that id.",
|
|
896
|
+
"error.uploadNotUploadAction": "Upload action \"{action}\" is not a type=upload action.",
|
|
897
|
+
"error.uploadRequiresAction": "Upload field requires action or actionRef.",
|
|
898
|
+
"error.tableColumnsRequired": "table node requires a columns array",
|
|
899
|
+
"error.tableDataSourceInvalid": "table node requires a valid dataSource (single-slash same-origin path)",
|
|
900
|
+
"feedback.clearSearch": "Clear search",
|
|
901
|
+
"schema.settings.tab.mail": "Mail",
|
|
902
|
+
"schema.settings.toolbar.mail": "Outbound mail",
|
|
903
|
+
"schema.settings.field.channel": "Outbound channel",
|
|
904
|
+
"schema.settings.option.channelMock": "Mock (in-app records)",
|
|
905
|
+
"schema.settings.option.channelResend": "Resend (production)",
|
|
906
|
+
"schema.settings.option.channelSMTP": "SMTP",
|
|
907
|
+
"schema.settings.field.mockRetention": "Mock record retention (rows)",
|
|
908
|
+
"schema.settings.field.resendApiKey": "Resend API key (empty = keep current)",
|
|
909
|
+
"schema.settings.field.resendFrom": "Resend sender address",
|
|
910
|
+
"schema.settings.field.smtpHost": "SMTP host",
|
|
911
|
+
"schema.settings.field.smtpPort": "SMTP port (empty = 465)",
|
|
912
|
+
"schema.settings.field.smtpUsername": "SMTP username",
|
|
913
|
+
"schema.settings.field.smtpPassword": "SMTP password (empty = keep current)",
|
|
914
|
+
"schema.settings.field.smtpFrom": "SMTP sender address",
|
|
915
|
+
"schema.mail.test.title": "Send test mail",
|
|
916
|
+
"schema.mail.test.to": "Recipient",
|
|
917
|
+
"schema.mail.test.submit": "Send test mail",
|
|
918
|
+
"schema.mail.outbox.title": "Outbound records",
|
|
919
|
+
"schema.mail.column.to": "To",
|
|
920
|
+
"schema.mail.column.subject": "Subject",
|
|
921
|
+
"schema.mail.column.created": "Created",
|
|
922
|
+
"schema.mail.column.id": "Record ID",
|
|
923
|
+
"schema.mail.column.channel": "Channel",
|
|
924
|
+
"schema.mail.column.deliveryStatus": "Delivery status",
|
|
925
|
+
"schema.mail.column.body": "Body",
|
|
926
|
+
"schema.mail.outbox.detailTitle": "Outbound record details",
|
|
927
|
+
"schema.mail.search.q": "Search recipient or subject",
|
|
928
|
+
"schema.mail.filter.channel": "Channel",
|
|
929
|
+
"schema.mail.filter.deliveryStatus": "Delivery status",
|
|
930
|
+
"schema.mail.filter.all": "All",
|
|
931
|
+
"schema.mail.status.delivered": "Delivered",
|
|
932
|
+
"schema.mail.status.sent": "Sent",
|
|
933
|
+
"schema.mail.status.failed": "Failed",
|
|
934
|
+
"schema.usersInvites.search.q": "Search email / ID / inviter",
|
|
935
|
+
"schema.mail.test.subject": "Subject",
|
|
936
|
+
"schema.mail.test.subjectPlaceholder": "Empty = default subject",
|
|
937
|
+
"schema.mail.test.body": "Body",
|
|
938
|
+
"schema.mail.test.bodyPlaceholder": "Empty = default text",
|
|
939
|
+
"schema.mail.action.save": "Save configuration",
|
|
940
|
+
"schema.mail.secret.keep": "configured — leave empty to keep",
|
|
941
|
+
"schema.mail.smtp.portPlaceholder": "Empty = 465",
|
|
942
|
+
"schema.mail.feedback.saved": "Configuration saved. New channel applies to subsequent sends.",
|
|
943
|
+
"schema.mail.feedback.saveFailed": "Could not save the configuration.",
|
|
944
|
+
"schema.mail.feedback.sendOk": "Test mail sent through the current channel.",
|
|
945
|
+
"schema.mail.feedback.sendFailed": "Test mail failed",
|
|
946
|
+
"schema.mail.feedback.loadFailed": "Could not load the outbound-mail configuration.",
|
|
947
|
+
"schema.mail.outbox.refresh": "Refresh",
|
|
948
|
+
"manifest.title.mail": "Mail console",
|
|
949
|
+
"manifest.title.mailOutbox": "Outbound email log",
|
|
950
|
+
"manifest.nav.mail": "Mail console",
|
|
951
|
+
"manifest.nav.mailOutbox": "Outbound email log",
|
|
952
|
+
"schema.users.column.email": "Email",
|
|
953
|
+
"schema.users.column.emailStatus": "Email status"
|
|
954
|
+
}
|