@adminiumjs/i18n 0.1.2 → 0.2.2-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/a11y-keys.d.ts +17 -0
- package/dist/a11y-keys.d.ts.map +1 -0
- package/dist/a11y-keys.js +479 -0
- package/dist/a11y-keys.js.map +1 -0
- package/dist/create-i18n.d.ts.map +1 -1
- package/dist/create-i18n.js +38 -4
- package/dist/create-i18n.js.map +1 -1
- package/dist/editing.d.ts +17 -0
- package/dist/editing.d.ts.map +1 -0
- package/dist/editing.js +17 -0
- package/dist/editing.js.map +1 -0
- package/dist/fallback.d.ts +24 -0
- package/dist/fallback.d.ts.map +1 -0
- package/dist/fallback.js +41 -0
- package/dist/fallback.js.map +1 -0
- package/dist/format/index.d.ts.map +1 -1
- package/dist/format/index.js +1 -0
- package/dist/format/index.js.map +1 -1
- package/dist/format-errors.d.ts +41 -0
- package/dist/format-errors.d.ts.map +1 -0
- package/dist/format-errors.js +64 -0
- package/dist/format-errors.js.map +1 -0
- package/dist/icu-format.d.ts +4 -0
- package/dist/icu-format.d.ts.map +1 -1
- package/dist/icu-format.js +44 -3
- package/dist/icu-format.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +33 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +78 -0
- package/dist/keys.js.map +1 -0
- package/dist/locales.d.ts +106 -13
- package/dist/locales.d.ts.map +1 -1
- package/dist/locales.js +147 -17
- package/dist/locales.js.map +1 -1
- package/dist/overrides.d.ts +62 -0
- package/dist/overrides.d.ts.map +1 -0
- package/dist/overrides.js +113 -0
- package/dist/overrides.js.map +1 -0
- package/dist/react.d.ts +6 -0
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +18 -26
- package/dist/react.js.map +1 -1
- package/dist/resources/ar-eg/common.d.ts +786 -3
- package/dist/resources/ar-eg/common.d.ts.map +1 -1
- package/dist/resources/ar-eg/common.js +813 -29
- package/dist/resources/ar-eg/common.js.map +1 -1
- package/dist/resources/ar-eg/errors.d.ts +1 -0
- package/dist/resources/ar-eg/errors.d.ts.map +1 -1
- package/dist/resources/ar-eg/errors.js +2 -0
- package/dist/resources/ar-eg/errors.js.map +1 -1
- package/dist/resources/ar-eg/generated.d.ts.map +1 -1
- package/dist/resources/ar-eg/generated.js +1 -0
- package/dist/resources/ar-eg/generated.js.map +1 -1
- package/dist/resources/ar-eg/studio.d.ts.map +1 -1
- package/dist/resources/ar-eg/studio.js +1 -0
- package/dist/resources/ar-eg/studio.js.map +1 -1
- package/dist/resources/ar-eg/ui.d.ts +586 -586
- package/dist/resources/ar-eg/ui.d.ts.map +1 -1
- package/dist/resources/ar-eg/ui.js +587 -586
- package/dist/resources/ar-eg/ui.js.map +1 -1
- package/dist/resources/cs-cz/common.d.ts +786 -3
- package/dist/resources/cs-cz/common.d.ts.map +1 -1
- package/dist/resources/cs-cz/common.js +811 -27
- package/dist/resources/cs-cz/common.js.map +1 -1
- package/dist/resources/cs-cz/errors.d.ts +1 -0
- package/dist/resources/cs-cz/errors.d.ts.map +1 -1
- package/dist/resources/cs-cz/errors.js +2 -0
- package/dist/resources/cs-cz/errors.js.map +1 -1
- package/dist/resources/cs-cz/generated.d.ts.map +1 -1
- package/dist/resources/cs-cz/generated.js +1 -0
- package/dist/resources/cs-cz/generated.js.map +1 -1
- package/dist/resources/cs-cz/studio.d.ts.map +1 -1
- package/dist/resources/cs-cz/studio.js +1 -0
- package/dist/resources/cs-cz/studio.js.map +1 -1
- package/dist/resources/cs-cz/ui.d.ts +582 -582
- package/dist/resources/cs-cz/ui.d.ts.map +1 -1
- package/dist/resources/cs-cz/ui.js +583 -582
- package/dist/resources/cs-cz/ui.js.map +1 -1
- package/dist/resources/da-dk/common.d.ts +787 -4
- package/dist/resources/da-dk/common.d.ts.map +1 -1
- package/dist/resources/da-dk/common.js +814 -30
- package/dist/resources/da-dk/common.js.map +1 -1
- package/dist/resources/da-dk/errors.d.ts +1 -0
- package/dist/resources/da-dk/errors.d.ts.map +1 -1
- package/dist/resources/da-dk/errors.js +2 -0
- package/dist/resources/da-dk/errors.js.map +1 -1
- package/dist/resources/da-dk/generated.d.ts.map +1 -1
- package/dist/resources/da-dk/generated.js +1 -0
- package/dist/resources/da-dk/generated.js.map +1 -1
- package/dist/resources/da-dk/studio.d.ts.map +1 -1
- package/dist/resources/da-dk/studio.js +1 -0
- package/dist/resources/da-dk/studio.js.map +1 -1
- package/dist/resources/da-dk/ui.d.ts +568 -568
- package/dist/resources/da-dk/ui.d.ts.map +1 -1
- package/dist/resources/da-dk/ui.js +569 -568
- package/dist/resources/da-dk/ui.js.map +1 -1
- package/dist/resources/de-de/common.d.ts +790 -7
- package/dist/resources/de-de/common.d.ts.map +1 -1
- package/dist/resources/de-de/common.js +817 -33
- package/dist/resources/de-de/common.js.map +1 -1
- package/dist/resources/de-de/errors.d.ts +1 -0
- package/dist/resources/de-de/errors.d.ts.map +1 -1
- package/dist/resources/de-de/errors.js +2 -0
- package/dist/resources/de-de/errors.js.map +1 -1
- package/dist/resources/de-de/generated.d.ts.map +1 -1
- package/dist/resources/de-de/generated.js +1 -0
- package/dist/resources/de-de/generated.js.map +1 -1
- package/dist/resources/de-de/studio.d.ts.map +1 -1
- package/dist/resources/de-de/studio.js +1 -0
- package/dist/resources/de-de/studio.js.map +1 -1
- package/dist/resources/de-de/ui.d.ts +569 -569
- package/dist/resources/de-de/ui.d.ts.map +1 -1
- package/dist/resources/de-de/ui.js +570 -569
- package/dist/resources/de-de/ui.js.map +1 -1
- package/dist/resources/en-us/common.d.ts +786 -3
- package/dist/resources/en-us/common.d.ts.map +1 -1
- package/dist/resources/en-us/common.js +813 -29
- package/dist/resources/en-us/common.js.map +1 -1
- package/dist/resources/en-us/errors.d.ts +1 -0
- package/dist/resources/en-us/errors.d.ts.map +1 -1
- package/dist/resources/en-us/errors.js +2 -0
- package/dist/resources/en-us/errors.js.map +1 -1
- package/dist/resources/en-us/generated.d.ts.map +1 -1
- package/dist/resources/en-us/generated.js +1 -0
- package/dist/resources/en-us/generated.js.map +1 -1
- package/dist/resources/en-us/studio.d.ts.map +1 -1
- package/dist/resources/en-us/studio.js +1 -0
- package/dist/resources/en-us/studio.js.map +1 -1
- package/dist/resources/en-us/ui.d.ts.map +1 -1
- package/dist/resources/en-us/ui.js +1 -0
- package/dist/resources/en-us/ui.js.map +1 -1
- package/dist/resources/fr-fr/common.d.ts +788 -5
- package/dist/resources/fr-fr/common.d.ts.map +1 -1
- package/dist/resources/fr-fr/common.js +815 -31
- package/dist/resources/fr-fr/common.js.map +1 -1
- package/dist/resources/fr-fr/errors.d.ts +1 -0
- package/dist/resources/fr-fr/errors.d.ts.map +1 -1
- package/dist/resources/fr-fr/errors.js +2 -0
- package/dist/resources/fr-fr/errors.js.map +1 -1
- package/dist/resources/fr-fr/generated.d.ts.map +1 -1
- package/dist/resources/fr-fr/generated.js +1 -0
- package/dist/resources/fr-fr/generated.js.map +1 -1
- package/dist/resources/fr-fr/studio.d.ts.map +1 -1
- package/dist/resources/fr-fr/studio.js +1 -0
- package/dist/resources/fr-fr/studio.js.map +1 -1
- package/dist/resources/fr-fr/ui.d.ts +559 -559
- package/dist/resources/fr-fr/ui.d.ts.map +1 -1
- package/dist/resources/fr-fr/ui.js +560 -559
- package/dist/resources/fr-fr/ui.js.map +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +1 -0
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/lazy.d.ts.map +1 -1
- package/dist/resources/lazy.js.map +1 -1
- package/dist/resources/zh-cn/common.d.ts +787 -4
- package/dist/resources/zh-cn/common.d.ts.map +1 -1
- package/dist/resources/zh-cn/common.js +814 -30
- package/dist/resources/zh-cn/common.js.map +1 -1
- package/dist/resources/zh-cn/errors.d.ts +1 -0
- package/dist/resources/zh-cn/errors.d.ts.map +1 -1
- package/dist/resources/zh-cn/errors.js +2 -0
- package/dist/resources/zh-cn/errors.js.map +1 -1
- package/dist/resources/zh-cn/generated.d.ts.map +1 -1
- package/dist/resources/zh-cn/generated.js +1 -0
- package/dist/resources/zh-cn/generated.js.map +1 -1
- package/dist/resources/zh-cn/studio.d.ts.map +1 -1
- package/dist/resources/zh-cn/studio.js +1 -0
- package/dist/resources/zh-cn/studio.js.map +1 -1
- package/dist/resources/zh-cn/ui.d.ts +575 -575
- package/dist/resources/zh-cn/ui.d.ts.map +1 -1
- package/dist/resources/zh-cn/ui.js +576 -575
- package/dist/resources/zh-cn/ui.js.map +1 -1
- package/dist/resources/zh-tw/common.d.ts +786 -3
- package/dist/resources/zh-tw/common.d.ts.map +1 -1
- package/dist/resources/zh-tw/common.js +813 -29
- package/dist/resources/zh-tw/common.js.map +1 -1
- package/dist/resources/zh-tw/errors.d.ts +1 -0
- package/dist/resources/zh-tw/errors.d.ts.map +1 -1
- package/dist/resources/zh-tw/errors.js +2 -0
- package/dist/resources/zh-tw/errors.js.map +1 -1
- package/dist/resources/zh-tw/generated.d.ts.map +1 -1
- package/dist/resources/zh-tw/generated.js +1 -0
- package/dist/resources/zh-tw/generated.js.map +1 -1
- package/dist/resources/zh-tw/studio.d.ts.map +1 -1
- package/dist/resources/zh-tw/studio.js +1 -0
- package/dist/resources/zh-tw/studio.js.map +1 -1
- package/dist/resources/zh-tw/ui.d.ts +575 -575
- package/dist/resources/zh-tw/ui.d.ts.map +1 -1
- package/dist/resources/zh-tw/ui.js +576 -575
- package/dist/resources/zh-tw/ui.js.map +1 -1
- package/dist/review-status.d.ts +55 -0
- package/dist/review-status.d.ts.map +1 -0
- package/dist/review-status.js +60 -0
- package/dist/review-status.js.map +1 -0
- package/dist/revision.d.ts +35 -0
- package/dist/revision.d.ts.map +1 -0
- package/dist/revision.js +56 -0
- package/dist/revision.js.map +1 -0
- package/dist/server.d.ts +36 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +36 -0
- package/dist/server.js.map +1 -0
- package/dist/validate-message.d.ts +57 -0
- package/dist/validate-message.d.ts.map +1 -0
- package/dist/validate-message.js +179 -0
- package/dist/validate-message.js.map +1 -0
- package/locales/ar-EG/.meta.json +13246 -0
- package/locales/ar-EG/common.json +812 -29
- package/locales/ar-EG/errors.json +1 -0
- package/locales/ar-EG/ui.json +586 -586
- package/locales/cs-CZ/.meta.json +13246 -0
- package/locales/cs-CZ/common.json +810 -27
- package/locales/cs-CZ/errors.json +1 -0
- package/locales/cs-CZ/ui.json +582 -582
- package/locales/da-DK/.meta.json +13246 -0
- package/locales/da-DK/common.json +813 -30
- package/locales/da-DK/errors.json +1 -0
- package/locales/da-DK/ui.json +568 -568
- package/locales/de-DE/.meta.json +13246 -0
- package/locales/de-DE/common.json +816 -33
- package/locales/de-DE/errors.json +1 -0
- package/locales/de-DE/ui.json +569 -569
- package/locales/en-US/common.json +812 -29
- package/locales/en-US/errors.json +1 -0
- package/locales/fr-FR/.meta.json +13246 -0
- package/locales/fr-FR/common.json +814 -31
- package/locales/fr-FR/errors.json +1 -0
- package/locales/fr-FR/ui.json +559 -559
- package/locales/zh-CN/.meta.json +13246 -0
- package/locales/zh-CN/common.json +813 -30
- package/locales/zh-CN/errors.json +1 -0
- package/locales/zh-CN/ui.json +575 -575
- package/locales/zh-TW/.meta.json +13246 -0
- package/locales/zh-TW/common.json +812 -29
- package/locales/zh-TW/errors.json +1 -0
- package/locales/zh-TW/ui.json +575 -575
- package/package.json +11 -3
|
@@ -42,7 +42,10 @@
|
|
|
42
42
|
"done": "Back to sign in",
|
|
43
43
|
"rateLimited": "Too many requests — try again later.",
|
|
44
44
|
"failed": "Something went wrong. Try again.",
|
|
45
|
-
"smtpUnconfigured": "This Adminium has no email server configured, so it cannot send a reset link. Ask an administrator to reset your password for you."
|
|
45
|
+
"smtpUnconfigured": "This Adminium has no email server configured, so it cannot send a reset link. Ask an administrator to reset your password for you.",
|
|
46
|
+
"subtitle": "Enter your email and we'll send you a reset link.",
|
|
47
|
+
"sentBody": "We sent a reset link to {email}. It expires in 15 minutes.",
|
|
48
|
+
"resendHint": "Didn't get it?"
|
|
46
49
|
},
|
|
47
50
|
"reset": {
|
|
48
51
|
"title": "Set a new password",
|
|
@@ -58,7 +61,8 @@
|
|
|
58
61
|
"strong": "Strong",
|
|
59
62
|
"tooShort": "Use at least 8 characters.",
|
|
60
63
|
"submit": "Reset password",
|
|
61
|
-
"failed": "Reset failed. Try again."
|
|
64
|
+
"failed": "Reset failed. Try again.",
|
|
65
|
+
"mismatch": "Passwords don't match."
|
|
62
66
|
},
|
|
63
67
|
"otp": {
|
|
64
68
|
"title": "Two-factor authentication",
|
|
@@ -93,7 +97,12 @@
|
|
|
93
97
|
"planning": "Planning",
|
|
94
98
|
"people": "People",
|
|
95
99
|
"account": "Account"
|
|
96
|
-
}
|
|
100
|
+
},
|
|
101
|
+
"back": "Back",
|
|
102
|
+
"team": "Team",
|
|
103
|
+
"roles": "Roles & permissions",
|
|
104
|
+
"audit": "Audit log",
|
|
105
|
+
"security": "Password & sessions"
|
|
97
106
|
},
|
|
98
107
|
"topbar": {
|
|
99
108
|
"search": "Search…",
|
|
@@ -105,6 +114,7 @@
|
|
|
105
114
|
"userMenu": "Account menu",
|
|
106
115
|
"profile": "Profile",
|
|
107
116
|
"preferences": "Preferences",
|
|
117
|
+
"studio": "Studio",
|
|
108
118
|
"signOut": "Sign out"
|
|
109
119
|
},
|
|
110
120
|
"palette": {
|
|
@@ -115,11 +125,15 @@
|
|
|
115
125
|
"askAi": "Ask AI",
|
|
116
126
|
"shortcuts": "Keyboard shortcuts",
|
|
117
127
|
"signOut": "Sign out",
|
|
118
|
-
"themeDark": "
|
|
119
|
-
"themeLight": "
|
|
128
|
+
"themeDark": "Dark mode",
|
|
129
|
+
"themeLight": "Light mode",
|
|
120
130
|
"footerNavigate": "navigate",
|
|
121
131
|
"footerOpen": "select",
|
|
122
|
-
"footerClose": "close"
|
|
132
|
+
"footerClose": "close",
|
|
133
|
+
"recent": "Recent",
|
|
134
|
+
"searching": "Searching records…",
|
|
135
|
+
"records": "Records",
|
|
136
|
+
"empty": "No results for \"{query}\""
|
|
123
137
|
},
|
|
124
138
|
"shortcuts": {
|
|
125
139
|
"title": "Keyboard shortcuts",
|
|
@@ -130,6 +144,7 @@
|
|
|
130
144
|
"panel": "Show shortcuts panel",
|
|
131
145
|
"search": "Focus search",
|
|
132
146
|
"sidebar": "Toggle sidebar",
|
|
147
|
+
"studio": "Go to Studio",
|
|
133
148
|
"theme": "Toggle light / dark",
|
|
134
149
|
"then": "then",
|
|
135
150
|
"footerPre": "Press",
|
|
@@ -137,7 +152,86 @@
|
|
|
137
152
|
},
|
|
138
153
|
"states": {
|
|
139
154
|
"checked": "checked 8s ago",
|
|
140
|
-
"diagnostics": "Diagnostics"
|
|
155
|
+
"diagnostics": "Diagnostics",
|
|
156
|
+
"reference": {
|
|
157
|
+
"label": "Reference",
|
|
158
|
+
"copy": "Copy reference",
|
|
159
|
+
"copied": "Copied",
|
|
160
|
+
"hint": "Quote this when reporting the problem — your server log records the same id."
|
|
161
|
+
},
|
|
162
|
+
"notFound": {
|
|
163
|
+
"title": "Page not found",
|
|
164
|
+
"body": "We couldn't find that page. It may have been moved or the link is broken.",
|
|
165
|
+
"primary": "Back to dashboard",
|
|
166
|
+
"secondary": "Contact support"
|
|
167
|
+
},
|
|
168
|
+
"forbidden": {
|
|
169
|
+
"title": "You don’t have access",
|
|
170
|
+
"body": "This dashboard is restricted. Ask a workspace admin to grant you access.",
|
|
171
|
+
"primary": "Request access",
|
|
172
|
+
"secondary": "Go back"
|
|
173
|
+
},
|
|
174
|
+
"error": {
|
|
175
|
+
"title": "Something went wrong",
|
|
176
|
+
"body": "Adminium hit an unexpected error handling this request. The details are in the server log.",
|
|
177
|
+
"primary": "Try again"
|
|
178
|
+
},
|
|
179
|
+
"dbUnreachable": {
|
|
180
|
+
"title": "Database unreachable",
|
|
181
|
+
"body": "We couldn't connect to prod-db. Your dashboards will resume once the connection is restored.",
|
|
182
|
+
"primary": "Retry connection",
|
|
183
|
+
"secondary": "Edit connection",
|
|
184
|
+
"diag": {
|
|
185
|
+
"status": "connection timed out (10s)",
|
|
186
|
+
"hint": "allowlist 52.9.14.2, then retry"
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"maintenance": {
|
|
190
|
+
"title": "Scheduled maintenance",
|
|
191
|
+
"body": "Adminium is undergoing maintenance and will be back shortly. Thanks for your patience.",
|
|
192
|
+
"primary": "View status"
|
|
193
|
+
},
|
|
194
|
+
"rateLimited": {
|
|
195
|
+
"title": "Rate limit reached",
|
|
196
|
+
"body": "Too many requests in a short time. Wait a few minutes and try again.",
|
|
197
|
+
"primary": "Try again",
|
|
198
|
+
"secondary": "Go back"
|
|
199
|
+
},
|
|
200
|
+
"offline": {
|
|
201
|
+
"title": "You're offline",
|
|
202
|
+
"body": "Check your internet connection. Adminium will reconnect automatically when you’re back.",
|
|
203
|
+
"primary": "Retry now",
|
|
204
|
+
"banner": "You're offline — trying to reconnect…"
|
|
205
|
+
},
|
|
206
|
+
"expiredLink": {
|
|
207
|
+
"title": "This link has expired",
|
|
208
|
+
"body": "Magic sign-in links expire after 10 minutes. Request a fresh one to continue.",
|
|
209
|
+
"primary": "Send a new link",
|
|
210
|
+
"secondary": "Back to sign in"
|
|
211
|
+
},
|
|
212
|
+
"expiredSession": {
|
|
213
|
+
"title": "Your session expired",
|
|
214
|
+
"body": "For your security you were signed out after a period of inactivity. Sign in to pick up where you left off.",
|
|
215
|
+
"primary": "Sign in again"
|
|
216
|
+
},
|
|
217
|
+
"emptyNoSources": {
|
|
218
|
+
"title": "No data sources yet",
|
|
219
|
+
"body": "Connect a PostgreSQL database and Adminium will generate your first admin dashboard.",
|
|
220
|
+
"primary": "Connect a database",
|
|
221
|
+
"secondary": "Import sample data"
|
|
222
|
+
},
|
|
223
|
+
"readOnly": {
|
|
224
|
+
"title": "Read-only mode",
|
|
225
|
+
"body": "You have Viewer access to this workspace. You can explore dashboards, but editing and destructive actions are disabled.",
|
|
226
|
+
"primary": "Request edit access",
|
|
227
|
+
"secondary": "Got it"
|
|
228
|
+
},
|
|
229
|
+
"suspended": {
|
|
230
|
+
"title": "This workspace is suspended",
|
|
231
|
+
"body": "This workspace has been suspended by an administrator. Your data is preserved — contact the workspace owner to restore access.",
|
|
232
|
+
"primary": "Contact owner",
|
|
233
|
+
"secondary": "Go back"
|
|
234
|
+
}
|
|
141
235
|
},
|
|
142
236
|
"notFound": {
|
|
143
237
|
"title": "This page went missing",
|
|
@@ -146,7 +240,8 @@
|
|
|
146
240
|
"matches": "Matching pages",
|
|
147
241
|
"popular": "Popular destinations",
|
|
148
242
|
"goBack": "Go back",
|
|
149
|
-
"backToDashboard": "Back to dashboard"
|
|
243
|
+
"backToDashboard": "Back to dashboard",
|
|
244
|
+
"noMatches": "No pages match \"{query}\""
|
|
150
245
|
},
|
|
151
246
|
"page": {
|
|
152
247
|
"invalid": {
|
|
@@ -197,7 +292,8 @@
|
|
|
197
292
|
},
|
|
198
293
|
"locale": {
|
|
199
294
|
"label": "Language",
|
|
200
|
-
"directionNote": "Text direction: right to left (set automatically by the language)"
|
|
295
|
+
"directionNote": "Text direction: right to left (set automatically by the language)",
|
|
296
|
+
"communityDraft": "This translation is a community draft — it has not been reviewed by a native speaker yet."
|
|
201
297
|
}
|
|
202
298
|
},
|
|
203
299
|
"account": {
|
|
@@ -453,6 +549,23 @@
|
|
|
453
549
|
"label": "Application name",
|
|
454
550
|
"helper": "Shown in the sidebar, browser title, and emails.",
|
|
455
551
|
"error": "Enter a name of at most 60 characters."
|
|
552
|
+
},
|
|
553
|
+
"logo": {
|
|
554
|
+
"label": "Logo",
|
|
555
|
+
"drop": "Drop an image here",
|
|
556
|
+
"helper": "PNG, JPEG, WebP, GIF or SVG, up to 1 MB. Replaces the built-in mark everywhere.",
|
|
557
|
+
"upload": "Upload logo",
|
|
558
|
+
"replace": "Replace logo",
|
|
559
|
+
"remove": "Remove",
|
|
560
|
+
"uploaded": "Logo updated",
|
|
561
|
+
"removed": "Logo removed",
|
|
562
|
+
"tooLarge": "That image is larger than 1 MB.",
|
|
563
|
+
"badType": "Choose a PNG, JPEG, WebP, GIF or SVG image.",
|
|
564
|
+
"undo": "Undo"
|
|
565
|
+
},
|
|
566
|
+
"showVersion": {
|
|
567
|
+
"label": "Version in the sidebar",
|
|
568
|
+
"helper": "The build number beside the logo. Off hides which version you run."
|
|
456
569
|
}
|
|
457
570
|
},
|
|
458
571
|
"security": {
|
|
@@ -482,6 +595,8 @@
|
|
|
482
595
|
"close": "Close",
|
|
483
596
|
"on": "On",
|
|
484
597
|
"off": "Off",
|
|
598
|
+
"shown": "Shown",
|
|
599
|
+
"hidden": "Hidden",
|
|
485
600
|
"change": "{before} → {after}"
|
|
486
601
|
},
|
|
487
602
|
"defaultsCard": {
|
|
@@ -500,6 +615,11 @@
|
|
|
500
615
|
"heading": "AI enrichment",
|
|
501
616
|
"body": "Configure an AI provider (or the copy-paste round-trip) to enrich labels, groups and relations.",
|
|
502
617
|
"cta": "Open AI settings"
|
|
618
|
+
},
|
|
619
|
+
"pagesCard": {
|
|
620
|
+
"heading": "Pages",
|
|
621
|
+
"body": "Add, edit and delete pages, change what each one shows, and reorder the sidebar.",
|
|
622
|
+
"cta": "Manage pages"
|
|
503
623
|
}
|
|
504
624
|
},
|
|
505
625
|
"settingsAi": {
|
|
@@ -865,7 +985,20 @@
|
|
|
865
985
|
"testFailed": "Connection failed.",
|
|
866
986
|
"v1Note": {
|
|
867
987
|
"title": "About this install",
|
|
868
|
-
"body": "This server
|
|
988
|
+
"body": "This server already keeps its own tables in a configured database, and this step does not move them. It validates that your choice is compatible with this connection — the server enforces the same rule independently (409 META_PLACEMENT_INVALID)."
|
|
989
|
+
},
|
|
990
|
+
"move": {
|
|
991
|
+
"title": "Moving Adminium’s tables",
|
|
992
|
+
"copying": "Moving Adminium’s tables…",
|
|
993
|
+
"restarting": "Restarting…",
|
|
994
|
+
"copyingBody": "Copying every adminium_ table into the new database. Your source data is not touched, and nothing is switched over until the copy is verified.",
|
|
995
|
+
"restartingBody": "The copy is done. Adminium is restarting onto the new database — this page will continue by itself in a few seconds.",
|
|
996
|
+
"failed": "Could not move Adminium’s tables — retry.",
|
|
997
|
+
"timeout": "Adminium moved its tables but has not come back yet. Your data is safe in the new database — reload this page in a moment."
|
|
998
|
+
},
|
|
999
|
+
"willMove": {
|
|
1000
|
+
"title": "This will move Adminium’s tables",
|
|
1001
|
+
"body": "Adminium is currently using its built-in SQLite store. Continue copies that store into the database you picked and restarts onto it — accounts, pages and settings come with it, so you stay signed in."
|
|
869
1002
|
}
|
|
870
1003
|
},
|
|
871
1004
|
"intent": {
|
|
@@ -1019,7 +1152,8 @@
|
|
|
1019
1152
|
"unique": "UNIQUE",
|
|
1020
1153
|
"pii": "PII",
|
|
1021
1154
|
"masked": "Masked"
|
|
1022
|
-
}
|
|
1155
|
+
},
|
|
1156
|
+
"unavailableTitle": "Schema remap editor not available"
|
|
1023
1157
|
}
|
|
1024
1158
|
},
|
|
1025
1159
|
"onboarding": {
|
|
@@ -1139,7 +1273,9 @@
|
|
|
1139
1273
|
"duplicate": "Duplicate {name}",
|
|
1140
1274
|
"remove": "Remove {name}",
|
|
1141
1275
|
"removed": "{name} removed.",
|
|
1142
|
-
"duplicated": "{name} duplicated."
|
|
1276
|
+
"duplicated": "{name} duplicated.",
|
|
1277
|
+
"unboundHint": "This widget shows sample data here and on the live page. Open Configure to connect it to a table.",
|
|
1278
|
+
"unbound": "Sample data"
|
|
1143
1279
|
},
|
|
1144
1280
|
"families": {
|
|
1145
1281
|
"kpi": "KPIs",
|
|
@@ -1162,7 +1298,149 @@
|
|
|
1162
1298
|
"saveVersionTitle": "Save a version",
|
|
1163
1299
|
"saveVersionBody": "Snapshots the current document. Restore it any time from Versions.",
|
|
1164
1300
|
"versionName": "Version name",
|
|
1165
|
-
"versionNamePlaceholder": "e.g. Before Q3 rates change"
|
|
1301
|
+
"versionNamePlaceholder": "e.g. Before Q3 rates change",
|
|
1302
|
+
"discard": "Discard changes",
|
|
1303
|
+
"discardTitle": "Discard your changes?",
|
|
1304
|
+
"discardBody": "The dashboard goes back to how it looked when you opened the editor. Your data isn’t affected.",
|
|
1305
|
+
"discardConfirm": "Discard changes",
|
|
1306
|
+
"keepEditing": "Keep editing",
|
|
1307
|
+
"discarded": "Changes discarded.",
|
|
1308
|
+
"binding": {
|
|
1309
|
+
"addFilter": "Add filter",
|
|
1310
|
+
"brokenBody": "It no longer matches a query this version understands, so the widget shows an error on the live page.",
|
|
1311
|
+
"brokenTitle": "This widget’s query is broken",
|
|
1312
|
+
"bucketColumn": "Date column",
|
|
1313
|
+
"bucketRequired": "Pick the column that carries the date.",
|
|
1314
|
+
"bucketUnit": "Group time by",
|
|
1315
|
+
"columnNone": "None",
|
|
1316
|
+
"columnPlaceholder": "Choose a column…",
|
|
1317
|
+
"connect": "Connect to data",
|
|
1318
|
+
"edit": "Edit query",
|
|
1319
|
+
"event": {
|
|
1320
|
+
"category": "Category column (optional)",
|
|
1321
|
+
"date": "Start date column",
|
|
1322
|
+
"end": "End date column (optional)",
|
|
1323
|
+
"title": "Title column"
|
|
1324
|
+
},
|
|
1325
|
+
"filterColumnRequired": "Pick a column.",
|
|
1326
|
+
"filterColumn": "Column",
|
|
1327
|
+
"filterListHelper": "Separate values with commas.",
|
|
1328
|
+
"filterOp": "Condition",
|
|
1329
|
+
"filterValue": "Value",
|
|
1330
|
+
"fn": {
|
|
1331
|
+
"avg": "Average",
|
|
1332
|
+
"countDistinct": "Count of distinct values",
|
|
1333
|
+
"count": "Count of rows",
|
|
1334
|
+
"max": "Maximum",
|
|
1335
|
+
"min": "Minimum",
|
|
1336
|
+
"sum": "Sum"
|
|
1337
|
+
},
|
|
1338
|
+
"groupByColumns": "Columns",
|
|
1339
|
+
"groupByRequired": "This view needs a breakdown column.",
|
|
1340
|
+
"groupByRows": "Rows",
|
|
1341
|
+
"groupBy": "Group by",
|
|
1342
|
+
"incompleteBody": "Fill in the highlighted fields — a half-written query would fail on the live dashboard.",
|
|
1343
|
+
"incompleteTitle": "This query isn’t finished",
|
|
1344
|
+
"limit": "Most rows to fetch",
|
|
1345
|
+
"loadingSchema": "Loading tables…",
|
|
1346
|
+
"lossyBody": "Parts of it — extra measures, sorts or page-filter links — aren’t shown here and will be dropped if you save.",
|
|
1347
|
+
"lossyTitle": "This query is more advanced than the editor",
|
|
1348
|
+
"measureColumnRequired": "This calculation needs a column.",
|
|
1349
|
+
"measureColumn": "Of column",
|
|
1350
|
+
"measureFn": "Calculate",
|
|
1351
|
+
"noConnectionBody": "Widgets can only be bound on a page that belongs to a connection.",
|
|
1352
|
+
"noConnectionTitle": "This page has no database connection",
|
|
1353
|
+
"noDateColumns": "This table has no date or timestamp column.",
|
|
1354
|
+
"noFilters": "No filters — every row in the table is counted.",
|
|
1355
|
+
"noSnapshotBody": "Tables and columns come from the connection’s last introspection. Run introspection in Studio, then reopen this editor.",
|
|
1356
|
+
"noSnapshotTitle": "No schema snapshot for this connection",
|
|
1357
|
+
"op": {
|
|
1358
|
+
"between": "is between",
|
|
1359
|
+
"ilike": "contains (any case)",
|
|
1360
|
+
"in": "is one of",
|
|
1361
|
+
"isNull": "is empty",
|
|
1362
|
+
"like": "contains",
|
|
1363
|
+
"notNull": "is not empty"
|
|
1364
|
+
},
|
|
1365
|
+
"orderAsc": "Oldest / lowest first",
|
|
1366
|
+
"orderBy": "Sort by",
|
|
1367
|
+
"orderDesc": "Newest / highest first",
|
|
1368
|
+
"orderDir": "Direction",
|
|
1369
|
+
"orderNone": "Database order",
|
|
1370
|
+
"pickTableFirst": "Pick a table to choose its columns.",
|
|
1371
|
+
"removeFilter": "Remove filter",
|
|
1372
|
+
"remove": "Remove data source",
|
|
1373
|
+
"save": "Use this query",
|
|
1374
|
+
"sectionBreakdown": "Breakdown",
|
|
1375
|
+
"sectionColumns": "Columns",
|
|
1376
|
+
"sectionFilters": "Filters",
|
|
1377
|
+
"sectionMeasure": "Measure",
|
|
1378
|
+
"sectionRows": "Rows",
|
|
1379
|
+
"sectionSource": "Source",
|
|
1380
|
+
"sectionTime": "Time axis",
|
|
1381
|
+
"sectionWindow": "Period",
|
|
1382
|
+
"selectColumns": "Columns to show",
|
|
1383
|
+
"selectRequired": "Choose at least one column to show.",
|
|
1384
|
+
"shape": {
|
|
1385
|
+
"calendarEvents": "Dated events",
|
|
1386
|
+
"categorical": "A value per category",
|
|
1387
|
+
"distribution": "The spread of one column",
|
|
1388
|
+
"matrix": "A grid of rows by columns",
|
|
1389
|
+
"metricDelta": "A number, compared to the period before",
|
|
1390
|
+
"multiTimeseries": "One line over time per category",
|
|
1391
|
+
"recordList": "A list of rows",
|
|
1392
|
+
"record": "One row",
|
|
1393
|
+
"singleMetric": "A single number",
|
|
1394
|
+
"stream": "A live feed of recent rows",
|
|
1395
|
+
"timeseries": "A value over time",
|
|
1396
|
+
"tree": "A value per category, split in two levels",
|
|
1397
|
+
"geoPoints": "A value per place or region",
|
|
1398
|
+
"flows": "How much moves from one category to another",
|
|
1399
|
+
"ohlc": "Open, high, low and close per period",
|
|
1400
|
+
"booleanMap": "An on/off flag per key"
|
|
1401
|
+
},
|
|
1402
|
+
"shapeHelper": "Changing this changes which query controls apply.",
|
|
1403
|
+
"shapeLabel": "What this widget shows",
|
|
1404
|
+
"summaryColumns": "{count, plural, one {# column} other {# columns}}",
|
|
1405
|
+
"summaryFilters": "{count, plural, one {# filter} other {# filters}}",
|
|
1406
|
+
"tableEmpty": "No matching table.",
|
|
1407
|
+
"tablePlaceholder": "Search tables…",
|
|
1408
|
+
"tableRequired": "Pick a table to query.",
|
|
1409
|
+
"table": "Table or view",
|
|
1410
|
+
"title": "Data source",
|
|
1411
|
+
"unbindableBody": "It shows the shape of data the query engine doesn’t build yet, so it renders its own sample content.",
|
|
1412
|
+
"unbindableTitle": "This widget can’t query data yet",
|
|
1413
|
+
"unboundBody": "It shows sample numbers here AND on the live page. Connect it to a table to show real data.",
|
|
1414
|
+
"unboundTitle": "Not connected to your data",
|
|
1415
|
+
"unit": {
|
|
1416
|
+
"day": "Daily",
|
|
1417
|
+
"hour": "Hourly",
|
|
1418
|
+
"month": "Monthly",
|
|
1419
|
+
"quarter": "Quarterly",
|
|
1420
|
+
"week": "Weekly",
|
|
1421
|
+
"year": "Yearly"
|
|
1422
|
+
},
|
|
1423
|
+
"valueColumnRequired": "Pick the column to measure.",
|
|
1424
|
+
"valueColumn": "Value column",
|
|
1425
|
+
"windowColumn": "Date column",
|
|
1426
|
+
"windowLast": "Last",
|
|
1427
|
+
"windowNone": "All time",
|
|
1428
|
+
"windowRequired": "Comparing to the previous period needs a date column.",
|
|
1429
|
+
"windowUnit": {
|
|
1430
|
+
"day": "days",
|
|
1431
|
+
"hour": "hours",
|
|
1432
|
+
"month": "months",
|
|
1433
|
+
"quarter": "quarters",
|
|
1434
|
+
"week": "weeks",
|
|
1435
|
+
"year": "years"
|
|
1436
|
+
},
|
|
1437
|
+
"windowUnitLabel": "Unit",
|
|
1438
|
+
"role": {
|
|
1439
|
+
"flagKey": "Key column",
|
|
1440
|
+
"flagValue": "On/off column"
|
|
1441
|
+
},
|
|
1442
|
+
"roleColumnsRequired": "Fill every required column, and leave no gaps before one you filled — these columns are read in order."
|
|
1443
|
+
}
|
|
1166
1444
|
},
|
|
1167
1445
|
"setup": {
|
|
1168
1446
|
"title": "Set up Adminium",
|
|
@@ -1515,7 +1793,8 @@
|
|
|
1515
1793
|
"helpAbout": "About Adminium"
|
|
1516
1794
|
},
|
|
1517
1795
|
"settings": {
|
|
1518
|
-
"explainer": "These settings apply to the Adminium app on this computer only. They are stored on this machine, not in your workspace."
|
|
1796
|
+
"explainer": "These settings apply to the Adminium app on this computer only. They are stored on this machine, not in your workspace.",
|
|
1797
|
+
"title": "Desktop settings"
|
|
1519
1798
|
},
|
|
1520
1799
|
"security": {
|
|
1521
1800
|
"heading": "Sign-in"
|
|
@@ -1562,7 +1841,8 @@
|
|
|
1562
1841
|
"mismatchBody": "Sharing is switched off, but the server has not released the network yet. Restart Adminium to close it.",
|
|
1563
1842
|
"transportTitle": "Traffic on your local network is not encrypted.",
|
|
1564
1843
|
"transportBody": "Share only on networks you trust. For remote access, use Adminium self-host behind HTTPS.",
|
|
1565
|
-
"firewall": "The first time you share, your operating system will ask whether to allow incoming connections — choose Allow, or other devices will not be able to reach Adminium."
|
|
1844
|
+
"firewall": "The first time you share, your operating system will ask whether to allow incoming connections — choose Allow, or other devices will not be able to reach Adminium.",
|
|
1845
|
+
"manageTeam": "Manage users & roles"
|
|
1566
1846
|
},
|
|
1567
1847
|
"setup": {
|
|
1568
1848
|
"title": "Welcome to Adminium",
|
|
@@ -1771,37 +2051,48 @@
|
|
|
1771
2051
|
},
|
|
1772
2052
|
"templates": {
|
|
1773
2053
|
"crud": {
|
|
1774
|
-
"title": "Records"
|
|
2054
|
+
"title": "Records",
|
|
2055
|
+
"description": "Rows in a searchable table."
|
|
1775
2056
|
},
|
|
1776
2057
|
"dashboard": {
|
|
1777
|
-
"title": "Dashboard"
|
|
2058
|
+
"title": "Dashboard",
|
|
2059
|
+
"description": "Charts and figures you arrange."
|
|
1778
2060
|
},
|
|
1779
2061
|
"board": {
|
|
1780
|
-
"title": "Board"
|
|
2062
|
+
"title": "Board",
|
|
2063
|
+
"description": "Cards in columns by status."
|
|
1781
2064
|
},
|
|
1782
2065
|
"calendar": {
|
|
1783
|
-
"title": "Calendar"
|
|
2066
|
+
"title": "Calendar",
|
|
2067
|
+
"description": "Records on a month grid, by date."
|
|
1784
2068
|
},
|
|
1785
2069
|
"scheduler": {
|
|
1786
|
-
"title": "Scheduler"
|
|
2070
|
+
"title": "Scheduler",
|
|
2071
|
+
"description": "A timeline per person."
|
|
1787
2072
|
},
|
|
1788
2073
|
"logViewer": {
|
|
1789
|
-
"title": "Logs"
|
|
2074
|
+
"title": "Logs",
|
|
2075
|
+
"description": "Filterable event lines."
|
|
1790
2076
|
},
|
|
1791
2077
|
"files": {
|
|
1792
|
-
"title": "Files"
|
|
2078
|
+
"title": "Files",
|
|
2079
|
+
"description": "Files and folders to browse."
|
|
1793
2080
|
},
|
|
1794
2081
|
"chat": {
|
|
1795
|
-
"title": "Chat"
|
|
2082
|
+
"title": "Chat",
|
|
2083
|
+
"description": "Threaded conversations."
|
|
1796
2084
|
},
|
|
1797
2085
|
"builder": {
|
|
1798
|
-
"title": "Builder"
|
|
2086
|
+
"title": "Builder",
|
|
2087
|
+
"description": "A drag-and-drop document canvas."
|
|
1799
2088
|
},
|
|
1800
2089
|
"wizard": {
|
|
1801
|
-
"title": "Wizard"
|
|
2090
|
+
"title": "Wizard",
|
|
2091
|
+
"description": "Guided steps to finish a task."
|
|
1802
2092
|
},
|
|
1803
2093
|
"settings": {
|
|
1804
|
-
"title": "Settings"
|
|
2094
|
+
"title": "Settings",
|
|
2095
|
+
"description": "Preference rows with toggles."
|
|
1805
2096
|
},
|
|
1806
2097
|
"directory": {
|
|
1807
2098
|
"title": "Directory",
|
|
@@ -1815,7 +2106,8 @@
|
|
|
1815
2106
|
"noMatchesBody": "Try a different search or remove a filter.",
|
|
1816
2107
|
"errorTitle": "This directory failed to load",
|
|
1817
2108
|
"loading": "Loading people",
|
|
1818
|
-
"memberCount": "{count} people"
|
|
2109
|
+
"memberCount": "{count} people",
|
|
2110
|
+
"description": "People cards and an org chart."
|
|
1819
2111
|
},
|
|
1820
2112
|
"masterDetail": {
|
|
1821
2113
|
"title": "List & detail",
|
|
@@ -1827,7 +2119,8 @@
|
|
|
1827
2119
|
"noMatchesBody": "Try removing a filter.",
|
|
1828
2120
|
"errorTitle": "This list failed to load",
|
|
1829
2121
|
"loading": "Loading records",
|
|
1830
|
-
"selectPrompt": "Select a record"
|
|
2122
|
+
"selectPrompt": "Select a record",
|
|
2123
|
+
"description": "A list, with the record beside it."
|
|
1831
2124
|
},
|
|
1832
2125
|
"queueInbox": {
|
|
1833
2126
|
"title": "Queue",
|
|
@@ -1852,7 +2145,8 @@
|
|
|
1852
2145
|
"errorTitle": "This queue failed to load",
|
|
1853
2146
|
"loading": "Loading queue",
|
|
1854
2147
|
"selectPrompt": "Select a request",
|
|
1855
|
-
"daysUnit": "{count} days"
|
|
2148
|
+
"daysUnit": "{count} days",
|
|
2149
|
+
"description": "A work queue with approve and reject."
|
|
1856
2150
|
}
|
|
1857
2151
|
},
|
|
1858
2152
|
"dataio": {
|
|
@@ -1954,5 +2248,494 @@
|
|
|
1954
2248
|
"reportFailed": "Scheduled report failed",
|
|
1955
2249
|
"backupCompleted": "Backup completed"
|
|
1956
2250
|
}
|
|
2251
|
+
},
|
|
2252
|
+
"theme": {
|
|
2253
|
+
"toLight": "Light mode",
|
|
2254
|
+
"toDark": "Dark mode"
|
|
2255
|
+
},
|
|
2256
|
+
"studioPages": {
|
|
2257
|
+
"title": "Pages",
|
|
2258
|
+
"subtitle": "Add, edit and organise the pages of your app, and the order they appear in the sidebar.",
|
|
2259
|
+
"createButton": "New page",
|
|
2260
|
+
"loadFailed": {
|
|
2261
|
+
"title": "Pages could not be loaded",
|
|
2262
|
+
"body": "Managing pages needs the “Manage pages” permission. Ask an administrator to grant it to one of your roles."
|
|
2263
|
+
},
|
|
2264
|
+
"tab": {
|
|
2265
|
+
"pages": "All pages",
|
|
2266
|
+
"sidebar": "Sidebar order"
|
|
2267
|
+
},
|
|
2268
|
+
"list": {
|
|
2269
|
+
"title": "Pages",
|
|
2270
|
+
"count": "{count, plural, one {# page} other {# pages}}"
|
|
2271
|
+
},
|
|
2272
|
+
"empty": {
|
|
2273
|
+
"title": "No pages yet",
|
|
2274
|
+
"body": "Connect a database to generate pages automatically, or create one by hand."
|
|
2275
|
+
},
|
|
2276
|
+
"status": {
|
|
2277
|
+
"live": "Live",
|
|
2278
|
+
"hidden": "Hidden"
|
|
2279
|
+
},
|
|
2280
|
+
"origin": {
|
|
2281
|
+
"generated": "Generated",
|
|
2282
|
+
"manifest": "Add-on",
|
|
2283
|
+
"llm": "Assistant",
|
|
2284
|
+
"system": "System",
|
|
2285
|
+
"user": "Custom"
|
|
2286
|
+
},
|
|
2287
|
+
"row": {
|
|
2288
|
+
"menu": "Actions for {title}"
|
|
2289
|
+
},
|
|
2290
|
+
"action": {
|
|
2291
|
+
"edit": "Edit page",
|
|
2292
|
+
"duplicate": "Duplicate",
|
|
2293
|
+
"hide": "Hide from sidebar",
|
|
2294
|
+
"show": "Show in sidebar",
|
|
2295
|
+
"delete": "Delete page"
|
|
2296
|
+
},
|
|
2297
|
+
"create": {
|
|
2298
|
+
"title": "New page",
|
|
2299
|
+
"failed": "The page could not be created",
|
|
2300
|
+
"submit": "Create page",
|
|
2301
|
+
"subtitle": "Pick what this page shows and how it looks."
|
|
2302
|
+
},
|
|
2303
|
+
"duplicate": {
|
|
2304
|
+
"title": "Duplicate page",
|
|
2305
|
+
"failed": "The page could not be duplicated",
|
|
2306
|
+
"submit": "Duplicate"
|
|
2307
|
+
},
|
|
2308
|
+
"delete": {
|
|
2309
|
+
"title": "Delete this page?",
|
|
2310
|
+
"body": "This cannot be undone. Saved views and personal layouts on this page are deleted for everyone.",
|
|
2311
|
+
"bodyGenerated": "This page was created by schema generation, so it will come back the next time you regenerate. Saved views and personal layouts on it are deleted for everyone.",
|
|
2312
|
+
"prompt": "Type {slug} to confirm",
|
|
2313
|
+
"confirm": "Delete page"
|
|
2314
|
+
},
|
|
2315
|
+
"field": {
|
|
2316
|
+
"title": "Title",
|
|
2317
|
+
"titleHint": "Shown in the sidebar and the page header.",
|
|
2318
|
+
"slug": "Page address",
|
|
2319
|
+
"slugHint": "Lowercase letters, numbers and dashes. Just the last part — the rest of the address is added for you.",
|
|
2320
|
+
"slugTaken": "Another page already uses this address.",
|
|
2321
|
+
"slugWarning": "Changing the address breaks existing links and bookmarks to this page.",
|
|
2322
|
+
"template": "Template",
|
|
2323
|
+
"templateHint": "Decides what the page can hold. You can change it later.",
|
|
2324
|
+
"group": "Sidebar group",
|
|
2325
|
+
"groupHint": "Which section of the sidebar it appears in.",
|
|
2326
|
+
"icon": "Icon",
|
|
2327
|
+
"iconHint": "Shown beside the page name in the sidebar.",
|
|
2328
|
+
"visible": "Show in sidebar",
|
|
2329
|
+
"visibleHint": "A hidden page stays reachable at its URL for anyone who has the link.",
|
|
2330
|
+
"table": "Table",
|
|
2331
|
+
"tableCreateHint": "The table this page reads. You can bind it later.",
|
|
2332
|
+
"tableNone": "Not bound",
|
|
2333
|
+
"tableNeedsConnection": "Pick a data source first.",
|
|
2334
|
+
"connection": "Data source",
|
|
2335
|
+
"connectionNone": "None",
|
|
2336
|
+
"iconPick": "Choose the page icon",
|
|
2337
|
+
"padding": "Page padding"
|
|
2338
|
+
},
|
|
2339
|
+
"editor": {
|
|
2340
|
+
"title": "Edit page",
|
|
2341
|
+
"save": "Save changes",
|
|
2342
|
+
"saveFailed": "Changes could not be saved",
|
|
2343
|
+
"openPage": "Open page",
|
|
2344
|
+
"generated": {
|
|
2345
|
+
"title": "This page was generated from your schema",
|
|
2346
|
+
"body": "Your changes survive regeneration. Deleting only lasts until the next run recreates it."
|
|
2347
|
+
},
|
|
2348
|
+
"contentUnavailable": "Page contents could not be loaded",
|
|
2349
|
+
"contentUnavailableBody": "The details above can still be saved.",
|
|
2350
|
+
"contentInvalid": "This page’s configuration is not readable",
|
|
2351
|
+
"contentInvalidBody": "It was written by a newer version, or it is malformed. Regenerate the page or delete it.",
|
|
2352
|
+
"data": "Data",
|
|
2353
|
+
"schemaFailed": "Tables could not be listed",
|
|
2354
|
+
"schemaFailedBody": "This connection may not have been analysed yet. Run introspection from Studio → Data connections.",
|
|
2355
|
+
"notBindable": "This template is not bound to one table",
|
|
2356
|
+
"notBindableBody": "Its contents are built widget by widget instead. Open the page and use Edit to add them.",
|
|
2357
|
+
"recompose": "This page will be rebuilt",
|
|
2358
|
+
"recomposeBody": "Saving rebuilds the contents. Column and widget edits here are lost.",
|
|
2359
|
+
"missing": "That page no longer exists",
|
|
2360
|
+
"missingBody": "It may have been deleted, or removed by a regeneration run.",
|
|
2361
|
+
"details": "Details",
|
|
2362
|
+
"itemsPending": "Save the change above first — the contents are rebuilt from it.",
|
|
2363
|
+
"columns": "Columns",
|
|
2364
|
+
"appearance": "Appearance"
|
|
2365
|
+
},
|
|
2366
|
+
"sidebar": {
|
|
2367
|
+
"help": "Reorder pages within a group, or move one to another group. Changes apply to every user.",
|
|
2368
|
+
"discard": "Discard",
|
|
2369
|
+
"save": "Save order",
|
|
2370
|
+
"saveFailed": "The new order could not be saved",
|
|
2371
|
+
"emptyGroup": "No pages in this group.",
|
|
2372
|
+
"moveUp": "Move {title} up",
|
|
2373
|
+
"moveDown": "Move {title} down",
|
|
2374
|
+
"moveTo": "Move {title} to a group",
|
|
2375
|
+
"ungrouped": {
|
|
2376
|
+
"title": "Some pages are in no sidebar group",
|
|
2377
|
+
"body": "These pages work at their URL but appear nowhere in the sidebar. Open each one and pick a group."
|
|
2378
|
+
}
|
|
2379
|
+
},
|
|
2380
|
+
"columns": {
|
|
2381
|
+
"help": "Reorder columns, rename their headers, and choose which are shown in the table.",
|
|
2382
|
+
"discard": "Discard",
|
|
2383
|
+
"save": "Save columns",
|
|
2384
|
+
"saveFailed": "Columns could not be saved",
|
|
2385
|
+
"pk": "Key",
|
|
2386
|
+
"pii": "PII",
|
|
2387
|
+
"header": "Header for {name}",
|
|
2388
|
+
"shown": "Shown",
|
|
2389
|
+
"toggle": "Show {name} in the table",
|
|
2390
|
+
"moveUp": "Move {name} up",
|
|
2391
|
+
"moveDown": "Move {name} down",
|
|
2392
|
+
"remove": "Remove {name}",
|
|
2393
|
+
"none": {
|
|
2394
|
+
"title": "This page has no columns yet",
|
|
2395
|
+
"body": "Columns are read from the table when the page is generated. Bind this page to a table and regenerate to fill them in."
|
|
2396
|
+
}
|
|
2397
|
+
},
|
|
2398
|
+
"icon": {
|
|
2399
|
+
"none": "Choose an icon",
|
|
2400
|
+
"search": "Search icons",
|
|
2401
|
+
"noMatches": "No icons match that search."
|
|
2402
|
+
},
|
|
2403
|
+
"preview": {
|
|
2404
|
+
"untitled": "Untitled page",
|
|
2405
|
+
"note": "An illustration of the layout, not your data."
|
|
2406
|
+
},
|
|
2407
|
+
"padding": {
|
|
2408
|
+
"default": "Default for this template",
|
|
2409
|
+
"none": "None",
|
|
2410
|
+
"standard": "Standard (28 × 24)",
|
|
2411
|
+
"custom": "Custom…",
|
|
2412
|
+
"x": "Sides (px)",
|
|
2413
|
+
"y": "Top and bottom (px)"
|
|
2414
|
+
}
|
|
2415
|
+
},
|
|
2416
|
+
"audit": {
|
|
2417
|
+
"action": {
|
|
2418
|
+
"view": "View"
|
|
2419
|
+
},
|
|
2420
|
+
"actor": {
|
|
2421
|
+
"apiKey": "API key",
|
|
2422
|
+
"automation": "Automation",
|
|
2423
|
+
"system": "System",
|
|
2424
|
+
"user": "User"
|
|
2425
|
+
},
|
|
2426
|
+
"category": {
|
|
2427
|
+
"auth": "Sign-in & accounts",
|
|
2428
|
+
"automation": "Automations",
|
|
2429
|
+
"connection": "Connections",
|
|
2430
|
+
"data": "Records",
|
|
2431
|
+
"export": "Imports & exports",
|
|
2432
|
+
"llm": "AI assist",
|
|
2433
|
+
"rbac": "Roles & permissions",
|
|
2434
|
+
"schema": "Schema",
|
|
2435
|
+
"settings": "Settings",
|
|
2436
|
+
"system": "System"
|
|
2437
|
+
},
|
|
2438
|
+
"column": {
|
|
2439
|
+
"action": "Action",
|
|
2440
|
+
"actor": "Actor",
|
|
2441
|
+
"category": "Category",
|
|
2442
|
+
"details": "Details",
|
|
2443
|
+
"when": "When"
|
|
2444
|
+
},
|
|
2445
|
+
"drawer": {
|
|
2446
|
+
"actorId": "Actor id",
|
|
2447
|
+
"actorKind": "Actor type",
|
|
2448
|
+
"after": "After",
|
|
2449
|
+
"before": "Before",
|
|
2450
|
+
"category": "Category",
|
|
2451
|
+
"changes": "Changes",
|
|
2452
|
+
"connection": "Connection",
|
|
2453
|
+
"field": "Field",
|
|
2454
|
+
"ip": "IP address",
|
|
2455
|
+
"noChanges": "This action recorded no before/after images.",
|
|
2456
|
+
"none": "None",
|
|
2457
|
+
"requestId": "Request id",
|
|
2458
|
+
"resource": "Resource",
|
|
2459
|
+
"subtitle": "{actor} · {when}",
|
|
2460
|
+
"truncated": "Truncated at 16 KB",
|
|
2461
|
+
"userAgent": "User agent"
|
|
2462
|
+
},
|
|
2463
|
+
"empty": {
|
|
2464
|
+
"body": "Changes to data, schema, settings and permissions land here as they happen.",
|
|
2465
|
+
"filtered": {
|
|
2466
|
+
"body": "Widen the date range or clear the category filter.",
|
|
2467
|
+
"title": "Nothing matches these filters"
|
|
2468
|
+
},
|
|
2469
|
+
"title": "Nothing has been logged yet"
|
|
2470
|
+
},
|
|
2471
|
+
"filterActor": "Actor id",
|
|
2472
|
+
"filterCategoryAny": "Any category",
|
|
2473
|
+
"filterCategory": "Filter by category",
|
|
2474
|
+
"filterFrom": "From",
|
|
2475
|
+
"filterTo": "To",
|
|
2476
|
+
"listFailed": {
|
|
2477
|
+
"title": "Could not load the audit log"
|
|
2478
|
+
},
|
|
2479
|
+
"loadMore": "Load older entries",
|
|
2480
|
+
"subtitle": "Every change made in this workspace, who made it, and what it changed.",
|
|
2481
|
+
"title": "Audit log"
|
|
2482
|
+
},
|
|
2483
|
+
"roles": {
|
|
2484
|
+
"action": {
|
|
2485
|
+
"delete": "Delete",
|
|
2486
|
+
"rename": "Rename"
|
|
2487
|
+
},
|
|
2488
|
+
"builtinLocked": "Built-in roles cannot be deleted.",
|
|
2489
|
+
"category": {
|
|
2490
|
+
"access": "Access",
|
|
2491
|
+
"data": "Data",
|
|
2492
|
+
"operations": "Operations",
|
|
2493
|
+
"workspace": "Workspace"
|
|
2494
|
+
},
|
|
2495
|
+
"column": {
|
|
2496
|
+
"actions": "Actions",
|
|
2497
|
+
"members": "Members",
|
|
2498
|
+
"name": "Role"
|
|
2499
|
+
},
|
|
2500
|
+
"create": {
|
|
2501
|
+
"descriptionLabel": "Description",
|
|
2502
|
+
"description": "A new role starts with no permissions at all.",
|
|
2503
|
+
"failed": "Could not create the role",
|
|
2504
|
+
"namePlaceholder": "e.g. Support agent",
|
|
2505
|
+
"name": "Name",
|
|
2506
|
+
"submit": "Create role",
|
|
2507
|
+
"title": "New role"
|
|
2508
|
+
},
|
|
2509
|
+
"createButton": "New role",
|
|
2510
|
+
"delete": {
|
|
2511
|
+
"confirm": "Delete role",
|
|
2512
|
+
"description": "The role and its permission rows are removed.",
|
|
2513
|
+
"failed": "Could not delete the role",
|
|
2514
|
+
"hasMembers": "“{name}” still has {count, plural, one {# member} other {# members}}. Choose the role they move to — Adminium will not leave an account with no role.",
|
|
2515
|
+
"noMembers": "Nobody holds “{name}”, so nothing moves.",
|
|
2516
|
+
"reassignPlaceholder": "Choose a role…",
|
|
2517
|
+
"reassignTo": "Move members to",
|
|
2518
|
+
"title": "Delete role"
|
|
2519
|
+
},
|
|
2520
|
+
"list": {
|
|
2521
|
+
"title": "Roles"
|
|
2522
|
+
},
|
|
2523
|
+
"loadFailed": {
|
|
2524
|
+
"body": "The matrix below is incomplete, so saving it would clear permissions that are simply not loaded. Reload before making changes.",
|
|
2525
|
+
"title": "Some permissions could not be read"
|
|
2526
|
+
},
|
|
2527
|
+
"matrix": {
|
|
2528
|
+
"discard": "Discard",
|
|
2529
|
+
"empty": {
|
|
2530
|
+
"body": "This instance reported no grantable permissions at all, which should not happen — reload, and if it persists check the server log.",
|
|
2531
|
+
"title": "No permissions to show"
|
|
2532
|
+
},
|
|
2533
|
+
"label": "Role permissions",
|
|
2534
|
+
"noChanges": "No pending changes",
|
|
2535
|
+
"pending": "{count, plural, one {# pending change} other {# pending changes}}",
|
|
2536
|
+
"rowHeader": "Permission",
|
|
2537
|
+
"title": "Permissions"
|
|
2538
|
+
},
|
|
2539
|
+
"memberCount": "{count, plural, one {# user} other {# users}}",
|
|
2540
|
+
"permission": {
|
|
2541
|
+
"apiKeysManage": "Manage API keys",
|
|
2542
|
+
"auditRead": "Read the audit log",
|
|
2543
|
+
"connectionsManage": "Manage database connections",
|
|
2544
|
+
"exportsManage": "Manage everyone’s exports",
|
|
2545
|
+
"importsManage": "Manage everyone’s imports",
|
|
2546
|
+
"jobsManage": "Start and cancel background jobs",
|
|
2547
|
+
"jobsRead": "See all background jobs",
|
|
2548
|
+
"llmRun": "Run AI assist",
|
|
2549
|
+
"pagesManage": "Create and organize pages",
|
|
2550
|
+
"reportsManage": "Manage scheduled reports",
|
|
2551
|
+
"rolesManage": "Manage roles and permissions",
|
|
2552
|
+
"schemaRemap": "Edit schema labels and overrides",
|
|
2553
|
+
"settingsManage": "Manage workspace settings",
|
|
2554
|
+
"usersManage": "Manage users"
|
|
2555
|
+
},
|
|
2556
|
+
"rename": {
|
|
2557
|
+
"failed": "Could not rename the role",
|
|
2558
|
+
"title": "Rename role"
|
|
2559
|
+
},
|
|
2560
|
+
"saveFailed": {
|
|
2561
|
+
"title": "Could not save every role"
|
|
2562
|
+
},
|
|
2563
|
+
"subtitle": "What each role may do. A user gets the union of every role they hold.",
|
|
2564
|
+
"title": "Roles & permissions"
|
|
2565
|
+
},
|
|
2566
|
+
"security": {
|
|
2567
|
+
"password": {
|
|
2568
|
+
"changedBody": "Use the new password the next time you sign in. Sessions on other devices are unaffected — revoke them below if you want them signed out.",
|
|
2569
|
+
"changed": "Password changed",
|
|
2570
|
+
"confirm": "Confirm new password",
|
|
2571
|
+
"current": "Current password",
|
|
2572
|
+
"failed": "Could not change your password",
|
|
2573
|
+
"helper": "At least 8 characters.",
|
|
2574
|
+
"mismatch": "The two passwords do not match.",
|
|
2575
|
+
"new": "New password",
|
|
2576
|
+
"submit": "Change password",
|
|
2577
|
+
"title": "Password"
|
|
2578
|
+
},
|
|
2579
|
+
"sessions": {
|
|
2580
|
+
"expires": "Expires {at}",
|
|
2581
|
+
"failedBody": "This list is the only place that shows where your account is signed in, so treat an empty one as unknown rather than as none.",
|
|
2582
|
+
"failed": "Could not read your sessions",
|
|
2583
|
+
"ip": "IP {ip}",
|
|
2584
|
+
"loading": "Looking for other signed-in devices…",
|
|
2585
|
+
"noIp": "No IP recorded",
|
|
2586
|
+
"revokeBody": "The session ends immediately and whoever is using it has to sign in again.",
|
|
2587
|
+
"revokeFailed": "Could not sign that device out",
|
|
2588
|
+
"revokeTitle": "Sign this device out",
|
|
2589
|
+
"revoke": "Sign out",
|
|
2590
|
+
"seenUnknown": "Last seen: unknown",
|
|
2591
|
+
"seen": "Last seen {since}",
|
|
2592
|
+
"thisDevice": "This device",
|
|
2593
|
+
"title": "Signed in",
|
|
2594
|
+
"unknownDevice": "Unrecognised device"
|
|
2595
|
+
},
|
|
2596
|
+
"subtitle": "Your password, your second factor, and everywhere you are signed in.",
|
|
2597
|
+
"title": "Security",
|
|
2598
|
+
"twoFactor": {
|
|
2599
|
+
"activateFailed": "That code was not accepted",
|
|
2600
|
+
"activate": "Turn on two-factor",
|
|
2601
|
+
"body": "An authenticator app generates a 6-digit code that Adminium asks for after your password.",
|
|
2602
|
+
"code": "Code from your app",
|
|
2603
|
+
"copyKey": "Copy setup key",
|
|
2604
|
+
"copyLink": "Copy setup link",
|
|
2605
|
+
"disableBody": "Your account goes back to password-only, and your recovery codes stop working.",
|
|
2606
|
+
"disableConfirm": "Turn it off",
|
|
2607
|
+
"disableFailed": "Could not turn off two-factor",
|
|
2608
|
+
"disablePassword": "Your password",
|
|
2609
|
+
"disableTitle": "Turn off two-factor authentication",
|
|
2610
|
+
"disable": "Turn off two-factor",
|
|
2611
|
+
"enrollFailed": "Could not start setup",
|
|
2612
|
+
"enroll": "Set up two-factor",
|
|
2613
|
+
"hide": "Hide setup key",
|
|
2614
|
+
"off": "Off",
|
|
2615
|
+
"on": "On",
|
|
2616
|
+
"recovery": {
|
|
2617
|
+
"body": "Each code signs you in once if you lose your authenticator. They are shown only now.",
|
|
2618
|
+
"copy": "Copy codes",
|
|
2619
|
+
"title": "Save your recovery codes"
|
|
2620
|
+
},
|
|
2621
|
+
"reveal": "Show setup key",
|
|
2622
|
+
"secretHelper": "Paste the setup link into your authenticator, or type the key in by hand.",
|
|
2623
|
+
"secret": "Setup key",
|
|
2624
|
+
"title": "Two-factor authentication"
|
|
2625
|
+
}
|
|
2626
|
+
},
|
|
2627
|
+
"team": {
|
|
2628
|
+
"action": {
|
|
2629
|
+
"reactivate": "Reactivate",
|
|
2630
|
+
"remove": "Delete",
|
|
2631
|
+
"resend": "New link",
|
|
2632
|
+
"roles": "Roles",
|
|
2633
|
+
"suspend": "Suspend"
|
|
2634
|
+
},
|
|
2635
|
+
"column": {
|
|
2636
|
+
"actions": "Actions",
|
|
2637
|
+
"lastSeen": "Last seen",
|
|
2638
|
+
"person": "Person",
|
|
2639
|
+
"roles": "Roles",
|
|
2640
|
+
"status": "Status"
|
|
2641
|
+
},
|
|
2642
|
+
"counts": "{active} active · {invited} invited · {suspended} suspended",
|
|
2643
|
+
"empty": {
|
|
2644
|
+
"body": "Invite a teammate to give them their own sign-in and role.",
|
|
2645
|
+
"filtered": {
|
|
2646
|
+
"body": "Clear the filters to see the whole directory.",
|
|
2647
|
+
"title": "No one matches these filters"
|
|
2648
|
+
},
|
|
2649
|
+
"title": "Only you have an account"
|
|
2650
|
+
},
|
|
2651
|
+
"filterRoleAny": "Any role",
|
|
2652
|
+
"filterRole": "Filter by role",
|
|
2653
|
+
"filterStatusAny": "Any status",
|
|
2654
|
+
"filterStatus": "Filter by status",
|
|
2655
|
+
"invite": {
|
|
2656
|
+
"copied": "Copied",
|
|
2657
|
+
"copyLink": "Copy link",
|
|
2658
|
+
"created": {
|
|
2659
|
+
"body": "Send this link to {email} yourself. It is shown once — Adminium stores only a hash of it, so if you lose it you will have to delete the invitation and issue a new one.",
|
|
2660
|
+
"title": "Invitation created"
|
|
2661
|
+
},
|
|
2662
|
+
"emailIt": "Email the invitation",
|
|
2663
|
+
"expiresRelative": "The link expires {at} ({relative}).",
|
|
2664
|
+
"expires": "The link expires {at}.",
|
|
2665
|
+
"noEmail": {
|
|
2666
|
+
"smtp": "No SMTP server is configured on this instance, so there is nothing to send mail with. Share the link over a channel you already trust.",
|
|
2667
|
+
"title": "Adminium did not email this link",
|
|
2668
|
+
"unknown": "Adminium could not check whether this instance can send mail. Share the link over a channel you already trust."
|
|
2669
|
+
}
|
|
2670
|
+
},
|
|
2671
|
+
"inviteButton": "Invite teammate",
|
|
2672
|
+
"inviteDialog": {
|
|
2673
|
+
"description": "Adminium creates the account and gives you a one-time activation link to pass on.",
|
|
2674
|
+
"emailPlaceholder": "name@example.com",
|
|
2675
|
+
"email": "Email",
|
|
2676
|
+
"failed": "Could not create the invitation",
|
|
2677
|
+
"namePlaceholder": "e.g. Dana Osei",
|
|
2678
|
+
"name": "Name",
|
|
2679
|
+
"rolesHelper": "Pick the least-privileged role that lets them do their job. You can change this later.",
|
|
2680
|
+
"roles": "Roles",
|
|
2681
|
+
"submit": "Create invitation",
|
|
2682
|
+
"title": "Invite a teammate"
|
|
2683
|
+
},
|
|
2684
|
+
"listFailed": {
|
|
2685
|
+
"title": "Could not load the directory"
|
|
2686
|
+
},
|
|
2687
|
+
"loadMore": "Load more",
|
|
2688
|
+
"neverSignedIn": "Never signed in",
|
|
2689
|
+
"noRoles": "No roles",
|
|
2690
|
+
"remove": {
|
|
2691
|
+
"body": "This erases {name}’s account, their preferences and their sign-in sessions, and blanks their name from the record of settings they changed. Suspending instead keeps all of it and only stops them signing in. This cannot be undone.",
|
|
2692
|
+
"confirm": "Delete permanently",
|
|
2693
|
+
"prompt": "Type “{email}” to confirm",
|
|
2694
|
+
"title": "Delete account permanently"
|
|
2695
|
+
},
|
|
2696
|
+
"roles": {
|
|
2697
|
+
"unavailable": "Roles are not visible to your account, so none can be assigned here."
|
|
2698
|
+
},
|
|
2699
|
+
"rolesDialog": {
|
|
2700
|
+
"description": "A user gets the union of every role they hold.",
|
|
2701
|
+
"failed": "Could not change the roles",
|
|
2702
|
+
"title": "Roles for {name}"
|
|
2703
|
+
},
|
|
2704
|
+
"rolesLocked": "Changing roles needs the “Manage roles” permission.",
|
|
2705
|
+
"search": "Search name or email",
|
|
2706
|
+
"status": {
|
|
2707
|
+
"active": "Active",
|
|
2708
|
+
"invited": "Invited",
|
|
2709
|
+
"suspended": "Suspended"
|
|
2710
|
+
},
|
|
2711
|
+
"subtitle": "Who has an account on this Adminium, and what each of them can do.",
|
|
2712
|
+
"title": "Team",
|
|
2713
|
+
"twoFactorOn": "Two-factor authentication is on",
|
|
2714
|
+
"twoFactorShort": "2FA"
|
|
2715
|
+
},
|
|
2716
|
+
"email": {
|
|
2717
|
+
"linkFallback": "If the button doesn’t work, paste this link into your browser: {url}",
|
|
2718
|
+
"notification": {
|
|
2719
|
+
"action": "Open {appName}",
|
|
2720
|
+
"footer": "You are receiving this because email notifications are on for your {appName} account. You can turn them off in your notification preferences.",
|
|
2721
|
+
"name": "Notification"
|
|
2722
|
+
},
|
|
2723
|
+
"passwordReset": {
|
|
2724
|
+
"action": "Choose a new password",
|
|
2725
|
+
"heading": "Reset your password",
|
|
2726
|
+
"intro": "Hi {name}, we received a request to reset the password for {email}.",
|
|
2727
|
+
"name": "Password reset",
|
|
2728
|
+
"notice": "This link works only once and expires in {expiresInMinutes} minutes. If you didn’t ask to reset your password, you can ignore this email — your current password stays active.",
|
|
2729
|
+
"subject": "Reset your {appName} password"
|
|
2730
|
+
},
|
|
2731
|
+
"userInvite": {
|
|
2732
|
+
"action": "Accept the invitation",
|
|
2733
|
+
"heading": "You’ve been invited",
|
|
2734
|
+
"intro": "{inviterName} invited you to join {appName}. Accept the invitation to set a password for {email} and sign in.",
|
|
2735
|
+
"inviterFallback": "An administrator",
|
|
2736
|
+
"name": "Team invitation",
|
|
2737
|
+
"notice": "This invitation works only once and expires in {expiresInDays} days. If you weren’t expecting it, you can ignore this email.",
|
|
2738
|
+
"subject": "You have been invited to {appName}"
|
|
2739
|
+
}
|
|
1957
2740
|
}
|
|
1958
2741
|
}
|