@adminiumjs/i18n 0.2.1 → 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.
Files changed (214) hide show
  1. package/dist/a11y-keys.d.ts.map +1 -1
  2. package/dist/a11y-keys.js +1 -0
  3. package/dist/a11y-keys.js.map +1 -1
  4. package/dist/create-i18n.d.ts.map +1 -1
  5. package/dist/create-i18n.js +1 -0
  6. package/dist/create-i18n.js.map +1 -1
  7. package/dist/editing.d.ts.map +1 -1
  8. package/dist/editing.js +1 -0
  9. package/dist/editing.js.map +1 -1
  10. package/dist/fallback.d.ts.map +1 -1
  11. package/dist/fallback.js +1 -0
  12. package/dist/fallback.js.map +1 -1
  13. package/dist/format/index.d.ts.map +1 -1
  14. package/dist/format/index.js +1 -0
  15. package/dist/format/index.js.map +1 -1
  16. package/dist/format-errors.d.ts.map +1 -1
  17. package/dist/format-errors.js +1 -0
  18. package/dist/format-errors.js.map +1 -1
  19. package/dist/icu-format.d.ts.map +1 -1
  20. package/dist/icu-format.js +1 -0
  21. package/dist/icu-format.js.map +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/keys.d.ts.map +1 -1
  26. package/dist/keys.js +1 -0
  27. package/dist/keys.js.map +1 -1
  28. package/dist/locales.d.ts +6 -2
  29. package/dist/locales.d.ts.map +1 -1
  30. package/dist/locales.js +7 -2
  31. package/dist/locales.js.map +1 -1
  32. package/dist/overrides.d.ts.map +1 -1
  33. package/dist/overrides.js +1 -0
  34. package/dist/overrides.js.map +1 -1
  35. package/dist/react.d.ts.map +1 -1
  36. package/dist/react.js +1 -0
  37. package/dist/react.js.map +1 -1
  38. package/dist/resources/ar-eg/common.d.ts +692 -5
  39. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  40. package/dist/resources/ar-eg/common.js +712 -24
  41. package/dist/resources/ar-eg/common.js.map +1 -1
  42. package/dist/resources/ar-eg/errors.d.ts +1 -0
  43. package/dist/resources/ar-eg/errors.d.ts.map +1 -1
  44. package/dist/resources/ar-eg/errors.js +2 -0
  45. package/dist/resources/ar-eg/errors.js.map +1 -1
  46. package/dist/resources/ar-eg/generated.d.ts.map +1 -1
  47. package/dist/resources/ar-eg/generated.js +1 -0
  48. package/dist/resources/ar-eg/generated.js.map +1 -1
  49. package/dist/resources/ar-eg/studio.d.ts.map +1 -1
  50. package/dist/resources/ar-eg/studio.js +1 -0
  51. package/dist/resources/ar-eg/studio.js.map +1 -1
  52. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  53. package/dist/resources/ar-eg/ui.js +1 -0
  54. package/dist/resources/ar-eg/ui.js.map +1 -1
  55. package/dist/resources/cs-cz/common.d.ts +692 -5
  56. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  57. package/dist/resources/cs-cz/common.js +712 -24
  58. package/dist/resources/cs-cz/common.js.map +1 -1
  59. package/dist/resources/cs-cz/errors.d.ts +1 -0
  60. package/dist/resources/cs-cz/errors.d.ts.map +1 -1
  61. package/dist/resources/cs-cz/errors.js +2 -0
  62. package/dist/resources/cs-cz/errors.js.map +1 -1
  63. package/dist/resources/cs-cz/generated.d.ts.map +1 -1
  64. package/dist/resources/cs-cz/generated.js +1 -0
  65. package/dist/resources/cs-cz/generated.js.map +1 -1
  66. package/dist/resources/cs-cz/studio.d.ts.map +1 -1
  67. package/dist/resources/cs-cz/studio.js +1 -0
  68. package/dist/resources/cs-cz/studio.js.map +1 -1
  69. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  70. package/dist/resources/cs-cz/ui.js +1 -0
  71. package/dist/resources/cs-cz/ui.js.map +1 -1
  72. package/dist/resources/da-dk/common.d.ts +692 -5
  73. package/dist/resources/da-dk/common.d.ts.map +1 -1
  74. package/dist/resources/da-dk/common.js +712 -24
  75. package/dist/resources/da-dk/common.js.map +1 -1
  76. package/dist/resources/da-dk/errors.d.ts +1 -0
  77. package/dist/resources/da-dk/errors.d.ts.map +1 -1
  78. package/dist/resources/da-dk/errors.js +2 -0
  79. package/dist/resources/da-dk/errors.js.map +1 -1
  80. package/dist/resources/da-dk/generated.d.ts.map +1 -1
  81. package/dist/resources/da-dk/generated.js +1 -0
  82. package/dist/resources/da-dk/generated.js.map +1 -1
  83. package/dist/resources/da-dk/studio.d.ts.map +1 -1
  84. package/dist/resources/da-dk/studio.js +1 -0
  85. package/dist/resources/da-dk/studio.js.map +1 -1
  86. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  87. package/dist/resources/da-dk/ui.js +1 -0
  88. package/dist/resources/da-dk/ui.js.map +1 -1
  89. package/dist/resources/de-de/common.d.ts +692 -5
  90. package/dist/resources/de-de/common.d.ts.map +1 -1
  91. package/dist/resources/de-de/common.js +712 -24
  92. package/dist/resources/de-de/common.js.map +1 -1
  93. package/dist/resources/de-de/errors.d.ts +1 -0
  94. package/dist/resources/de-de/errors.d.ts.map +1 -1
  95. package/dist/resources/de-de/errors.js +2 -0
  96. package/dist/resources/de-de/errors.js.map +1 -1
  97. package/dist/resources/de-de/generated.d.ts.map +1 -1
  98. package/dist/resources/de-de/generated.js +1 -0
  99. package/dist/resources/de-de/generated.js.map +1 -1
  100. package/dist/resources/de-de/studio.d.ts.map +1 -1
  101. package/dist/resources/de-de/studio.js +1 -0
  102. package/dist/resources/de-de/studio.js.map +1 -1
  103. package/dist/resources/de-de/ui.d.ts.map +1 -1
  104. package/dist/resources/de-de/ui.js +1 -0
  105. package/dist/resources/de-de/ui.js.map +1 -1
  106. package/dist/resources/en-us/common.d.ts +692 -5
  107. package/dist/resources/en-us/common.d.ts.map +1 -1
  108. package/dist/resources/en-us/common.js +712 -24
  109. package/dist/resources/en-us/common.js.map +1 -1
  110. package/dist/resources/en-us/errors.d.ts +1 -0
  111. package/dist/resources/en-us/errors.d.ts.map +1 -1
  112. package/dist/resources/en-us/errors.js +2 -0
  113. package/dist/resources/en-us/errors.js.map +1 -1
  114. package/dist/resources/en-us/generated.d.ts.map +1 -1
  115. package/dist/resources/en-us/generated.js +1 -0
  116. package/dist/resources/en-us/generated.js.map +1 -1
  117. package/dist/resources/en-us/studio.d.ts.map +1 -1
  118. package/dist/resources/en-us/studio.js +1 -0
  119. package/dist/resources/en-us/studio.js.map +1 -1
  120. package/dist/resources/en-us/ui.d.ts.map +1 -1
  121. package/dist/resources/en-us/ui.js +1 -0
  122. package/dist/resources/en-us/ui.js.map +1 -1
  123. package/dist/resources/fr-fr/common.d.ts +692 -5
  124. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  125. package/dist/resources/fr-fr/common.js +712 -24
  126. package/dist/resources/fr-fr/common.js.map +1 -1
  127. package/dist/resources/fr-fr/errors.d.ts +1 -0
  128. package/dist/resources/fr-fr/errors.d.ts.map +1 -1
  129. package/dist/resources/fr-fr/errors.js +2 -0
  130. package/dist/resources/fr-fr/errors.js.map +1 -1
  131. package/dist/resources/fr-fr/generated.d.ts.map +1 -1
  132. package/dist/resources/fr-fr/generated.js +1 -0
  133. package/dist/resources/fr-fr/generated.js.map +1 -1
  134. package/dist/resources/fr-fr/studio.d.ts.map +1 -1
  135. package/dist/resources/fr-fr/studio.js +1 -0
  136. package/dist/resources/fr-fr/studio.js.map +1 -1
  137. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  138. package/dist/resources/fr-fr/ui.js +1 -0
  139. package/dist/resources/fr-fr/ui.js.map +1 -1
  140. package/dist/resources/index.d.ts.map +1 -1
  141. package/dist/resources/index.js +1 -0
  142. package/dist/resources/index.js.map +1 -1
  143. package/dist/resources/lazy.d.ts.map +1 -1
  144. package/dist/resources/lazy.js.map +1 -1
  145. package/dist/resources/zh-cn/common.d.ts +692 -5
  146. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  147. package/dist/resources/zh-cn/common.js +712 -24
  148. package/dist/resources/zh-cn/common.js.map +1 -1
  149. package/dist/resources/zh-cn/errors.d.ts +1 -0
  150. package/dist/resources/zh-cn/errors.d.ts.map +1 -1
  151. package/dist/resources/zh-cn/errors.js +2 -0
  152. package/dist/resources/zh-cn/errors.js.map +1 -1
  153. package/dist/resources/zh-cn/generated.d.ts.map +1 -1
  154. package/dist/resources/zh-cn/generated.js +1 -0
  155. package/dist/resources/zh-cn/generated.js.map +1 -1
  156. package/dist/resources/zh-cn/studio.d.ts.map +1 -1
  157. package/dist/resources/zh-cn/studio.js +1 -0
  158. package/dist/resources/zh-cn/studio.js.map +1 -1
  159. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  160. package/dist/resources/zh-cn/ui.js +1 -0
  161. package/dist/resources/zh-cn/ui.js.map +1 -1
  162. package/dist/resources/zh-tw/common.d.ts +692 -5
  163. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  164. package/dist/resources/zh-tw/common.js +712 -24
  165. package/dist/resources/zh-tw/common.js.map +1 -1
  166. package/dist/resources/zh-tw/errors.d.ts +1 -0
  167. package/dist/resources/zh-tw/errors.d.ts.map +1 -1
  168. package/dist/resources/zh-tw/errors.js +2 -0
  169. package/dist/resources/zh-tw/errors.js.map +1 -1
  170. package/dist/resources/zh-tw/generated.d.ts.map +1 -1
  171. package/dist/resources/zh-tw/generated.js +1 -0
  172. package/dist/resources/zh-tw/generated.js.map +1 -1
  173. package/dist/resources/zh-tw/studio.d.ts.map +1 -1
  174. package/dist/resources/zh-tw/studio.js +1 -0
  175. package/dist/resources/zh-tw/studio.js.map +1 -1
  176. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  177. package/dist/resources/zh-tw/ui.js +1 -0
  178. package/dist/resources/zh-tw/ui.js.map +1 -1
  179. package/dist/review-status.d.ts.map +1 -1
  180. package/dist/review-status.js +8 -7
  181. package/dist/review-status.js.map +1 -1
  182. package/dist/revision.d.ts.map +1 -1
  183. package/dist/revision.js +1 -0
  184. package/dist/revision.js.map +1 -1
  185. package/dist/server.d.ts.map +1 -1
  186. package/dist/server.js +1 -0
  187. package/dist/server.js.map +1 -1
  188. package/dist/validate-message.d.ts.map +1 -1
  189. package/dist/validate-message.js +1 -0
  190. package/dist/validate-message.js.map +1 -1
  191. package/locales/ar-EG/.meta.json +4790 -2678
  192. package/locales/ar-EG/common.json +711 -24
  193. package/locales/ar-EG/errors.json +1 -0
  194. package/locales/cs-CZ/.meta.json +4790 -2678
  195. package/locales/cs-CZ/common.json +711 -24
  196. package/locales/cs-CZ/errors.json +1 -0
  197. package/locales/da-DK/.meta.json +4790 -2678
  198. package/locales/da-DK/common.json +711 -24
  199. package/locales/da-DK/errors.json +1 -0
  200. package/locales/de-DE/.meta.json +4790 -2678
  201. package/locales/de-DE/common.json +711 -24
  202. package/locales/de-DE/errors.json +1 -0
  203. package/locales/en-US/common.json +711 -24
  204. package/locales/en-US/errors.json +1 -0
  205. package/locales/fr-FR/.meta.json +4790 -2678
  206. package/locales/fr-FR/common.json +711 -24
  207. package/locales/fr-FR/errors.json +1 -0
  208. package/locales/zh-CN/.meta.json +4790 -2678
  209. package/locales/zh-CN/common.json +711 -24
  210. package/locales/zh-CN/errors.json +1 -0
  211. package/locales/zh-TW/.meta.json +4790 -2678
  212. package/locales/zh-TW/common.json +711 -24
  213. package/locales/zh-TW/errors.json +1 -0
  214. package/package.json +2 -2
@@ -1,3 +1,4 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
1
2
  /**
2
3
  * GENERATED MIRROR of ../../../locales/en-US/common.json — do not edit by hand.
3
4
  * The JSON file is the canonical hand-authored bundle (10-i18n-theming.md §3.1);
@@ -105,7 +106,12 @@ export default {
105
106
  "planning": "Planning",
106
107
  "people": "People",
107
108
  "account": "Account"
108
- }
109
+ },
110
+ "back": "Back",
111
+ "team": "Team",
112
+ "roles": "Roles & permissions",
113
+ "audit": "Audit log",
114
+ "security": "Password & sessions"
109
115
  },
110
116
  "topbar": {
111
117
  "search": "Search…",
@@ -128,8 +134,8 @@ export default {
128
134
  "askAi": "Ask AI",
129
135
  "shortcuts": "Keyboard shortcuts",
130
136
  "signOut": "Sign out",
131
- "themeDark": "Switch to dark theme",
132
- "themeLight": "Switch to light theme",
137
+ "themeDark": "Dark mode",
138
+ "themeLight": "Light mode",
133
139
  "footerNavigate": "navigate",
134
140
  "footerOpen": "select",
135
141
  "footerClose": "close",
@@ -552,6 +558,23 @@ export default {
552
558
  "label": "Application name",
553
559
  "helper": "Shown in the sidebar, browser title, and emails.",
554
560
  "error": "Enter a name of at most 60 characters."
561
+ },
562
+ "logo": {
563
+ "label": "Logo",
564
+ "drop": "Drop an image here",
565
+ "helper": "PNG, JPEG, WebP, GIF or SVG, up to 1 MB. Replaces the built-in mark everywhere.",
566
+ "upload": "Upload logo",
567
+ "replace": "Replace logo",
568
+ "remove": "Remove",
569
+ "uploaded": "Logo updated",
570
+ "removed": "Logo removed",
571
+ "tooLarge": "That image is larger than 1 MB.",
572
+ "badType": "Choose a PNG, JPEG, WebP, GIF or SVG image.",
573
+ "undo": "Undo"
574
+ },
575
+ "showVersion": {
576
+ "label": "Version in the sidebar",
577
+ "helper": "The build number beside the logo. Off hides which version you run."
555
578
  }
556
579
  },
557
580
  "security": {
@@ -581,6 +604,8 @@ export default {
581
604
  "close": "Close",
582
605
  "on": "On",
583
606
  "off": "Off",
607
+ "shown": "Shown",
608
+ "hidden": "Hidden",
584
609
  "change": "{before} → {after}"
585
610
  },
586
611
  "defaultsCard": {
@@ -599,6 +624,11 @@ export default {
599
624
  "heading": "AI enrichment",
600
625
  "body": "Configure an AI provider (or the copy-paste round-trip) to enrich labels, groups and relations.",
601
626
  "cta": "Open AI settings"
627
+ },
628
+ "pagesCard": {
629
+ "heading": "Pages",
630
+ "body": "Add, edit and delete pages, change what each one shows, and reorder the sidebar.",
631
+ "cta": "Manage pages"
602
632
  }
603
633
  },
604
634
  "settingsAi": {
@@ -964,7 +994,20 @@ export default {
964
994
  "testFailed": "Connection failed.",
965
995
  "v1Note": {
966
996
  "title": "About this install",
967
- "body": "This server chose its meta store at first boot. This step validates that your choice is compatible with this connection and records it — the server enforces the same rule independently (409 META_PLACEMENT_INVALID). Moving an existing meta store is an ops task (M10)."
997
+ "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)."
998
+ },
999
+ "move": {
1000
+ "title": "Moving Adminium’s tables",
1001
+ "copying": "Moving Adminium’s tables…",
1002
+ "restarting": "Restarting…",
1003
+ "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.",
1004
+ "restartingBody": "The copy is done. Adminium is restarting onto the new database — this page will continue by itself in a few seconds.",
1005
+ "failed": "Could not move Adminium’s tables — retry.",
1006
+ "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."
1007
+ },
1008
+ "willMove": {
1009
+ "title": "This will move Adminium’s tables",
1010
+ "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."
968
1011
  }
969
1012
  },
970
1013
  "intent": {
@@ -1239,7 +1282,9 @@ export default {
1239
1282
  "duplicate": "Duplicate {name}",
1240
1283
  "remove": "Remove {name}",
1241
1284
  "removed": "{name} removed.",
1242
- "duplicated": "{name} duplicated."
1285
+ "duplicated": "{name} duplicated.",
1286
+ "unboundHint": "This widget shows sample data here and on the live page. Open Configure to connect it to a table.",
1287
+ "unbound": "Sample data"
1243
1288
  },
1244
1289
  "families": {
1245
1290
  "kpi": "KPIs",
@@ -1262,7 +1307,149 @@ export default {
1262
1307
  "saveVersionTitle": "Save a version",
1263
1308
  "saveVersionBody": "Snapshots the current document. Restore it any time from Versions.",
1264
1309
  "versionName": "Version name",
1265
- "versionNamePlaceholder": "e.g. Before Q3 rates change"
1310
+ "versionNamePlaceholder": "e.g. Before Q3 rates change",
1311
+ "discard": "Discard changes",
1312
+ "discardTitle": "Discard your changes?",
1313
+ "discardBody": "The dashboard goes back to how it looked when you opened the editor. Your data isn’t affected.",
1314
+ "discardConfirm": "Discard changes",
1315
+ "keepEditing": "Keep editing",
1316
+ "discarded": "Changes discarded.",
1317
+ "binding": {
1318
+ "addFilter": "Add filter",
1319
+ "brokenBody": "It no longer matches a query this version understands, so the widget shows an error on the live page.",
1320
+ "brokenTitle": "This widget’s query is broken",
1321
+ "bucketColumn": "Date column",
1322
+ "bucketRequired": "Pick the column that carries the date.",
1323
+ "bucketUnit": "Group time by",
1324
+ "columnNone": "None",
1325
+ "columnPlaceholder": "Choose a column…",
1326
+ "connect": "Connect to data",
1327
+ "edit": "Edit query",
1328
+ "event": {
1329
+ "category": "Category column (optional)",
1330
+ "date": "Start date column",
1331
+ "end": "End date column (optional)",
1332
+ "title": "Title column"
1333
+ },
1334
+ "filterColumnRequired": "Pick a column.",
1335
+ "filterColumn": "Column",
1336
+ "filterListHelper": "Separate values with commas.",
1337
+ "filterOp": "Condition",
1338
+ "filterValue": "Value",
1339
+ "fn": {
1340
+ "avg": "Average",
1341
+ "countDistinct": "Count of distinct values",
1342
+ "count": "Count of rows",
1343
+ "max": "Maximum",
1344
+ "min": "Minimum",
1345
+ "sum": "Sum"
1346
+ },
1347
+ "groupByColumns": "Columns",
1348
+ "groupByRequired": "This view needs a breakdown column.",
1349
+ "groupByRows": "Rows",
1350
+ "groupBy": "Group by",
1351
+ "incompleteBody": "Fill in the highlighted fields — a half-written query would fail on the live dashboard.",
1352
+ "incompleteTitle": "This query isn’t finished",
1353
+ "limit": "Most rows to fetch",
1354
+ "loadingSchema": "Loading tables…",
1355
+ "lossyBody": "Parts of it — extra measures, sorts or page-filter links — aren’t shown here and will be dropped if you save.",
1356
+ "lossyTitle": "This query is more advanced than the editor",
1357
+ "measureColumnRequired": "This calculation needs a column.",
1358
+ "measureColumn": "Of column",
1359
+ "measureFn": "Calculate",
1360
+ "noConnectionBody": "Widgets can only be bound on a page that belongs to a connection.",
1361
+ "noConnectionTitle": "This page has no database connection",
1362
+ "noDateColumns": "This table has no date or timestamp column.",
1363
+ "noFilters": "No filters — every row in the table is counted.",
1364
+ "noSnapshotBody": "Tables and columns come from the connection’s last introspection. Run introspection in Studio, then reopen this editor.",
1365
+ "noSnapshotTitle": "No schema snapshot for this connection",
1366
+ "op": {
1367
+ "between": "is between",
1368
+ "ilike": "contains (any case)",
1369
+ "in": "is one of",
1370
+ "isNull": "is empty",
1371
+ "like": "contains",
1372
+ "notNull": "is not empty"
1373
+ },
1374
+ "orderAsc": "Oldest / lowest first",
1375
+ "orderBy": "Sort by",
1376
+ "orderDesc": "Newest / highest first",
1377
+ "orderDir": "Direction",
1378
+ "orderNone": "Database order",
1379
+ "pickTableFirst": "Pick a table to choose its columns.",
1380
+ "removeFilter": "Remove filter",
1381
+ "remove": "Remove data source",
1382
+ "save": "Use this query",
1383
+ "sectionBreakdown": "Breakdown",
1384
+ "sectionColumns": "Columns",
1385
+ "sectionFilters": "Filters",
1386
+ "sectionMeasure": "Measure",
1387
+ "sectionRows": "Rows",
1388
+ "sectionSource": "Source",
1389
+ "sectionTime": "Time axis",
1390
+ "sectionWindow": "Period",
1391
+ "selectColumns": "Columns to show",
1392
+ "selectRequired": "Choose at least one column to show.",
1393
+ "shape": {
1394
+ "calendarEvents": "Dated events",
1395
+ "categorical": "A value per category",
1396
+ "distribution": "The spread of one column",
1397
+ "matrix": "A grid of rows by columns",
1398
+ "metricDelta": "A number, compared to the period before",
1399
+ "multiTimeseries": "One line over time per category",
1400
+ "recordList": "A list of rows",
1401
+ "record": "One row",
1402
+ "singleMetric": "A single number",
1403
+ "stream": "A live feed of recent rows",
1404
+ "timeseries": "A value over time",
1405
+ "tree": "A value per category, split in two levels",
1406
+ "geoPoints": "A value per place or region",
1407
+ "flows": "How much moves from one category to another",
1408
+ "ohlc": "Open, high, low and close per period",
1409
+ "booleanMap": "An on/off flag per key"
1410
+ },
1411
+ "shapeHelper": "Changing this changes which query controls apply.",
1412
+ "shapeLabel": "What this widget shows",
1413
+ "summaryColumns": "{count, plural, one {# column} other {# columns}}",
1414
+ "summaryFilters": "{count, plural, one {# filter} other {# filters}}",
1415
+ "tableEmpty": "No matching table.",
1416
+ "tablePlaceholder": "Search tables…",
1417
+ "tableRequired": "Pick a table to query.",
1418
+ "table": "Table or view",
1419
+ "title": "Data source",
1420
+ "unbindableBody": "It shows the shape of data the query engine doesn’t build yet, so it renders its own sample content.",
1421
+ "unbindableTitle": "This widget can’t query data yet",
1422
+ "unboundBody": "It shows sample numbers here AND on the live page. Connect it to a table to show real data.",
1423
+ "unboundTitle": "Not connected to your data",
1424
+ "unit": {
1425
+ "day": "Daily",
1426
+ "hour": "Hourly",
1427
+ "month": "Monthly",
1428
+ "quarter": "Quarterly",
1429
+ "week": "Weekly",
1430
+ "year": "Yearly"
1431
+ },
1432
+ "valueColumnRequired": "Pick the column to measure.",
1433
+ "valueColumn": "Value column",
1434
+ "windowColumn": "Date column",
1435
+ "windowLast": "Last",
1436
+ "windowNone": "All time",
1437
+ "windowRequired": "Comparing to the previous period needs a date column.",
1438
+ "windowUnit": {
1439
+ "day": "days",
1440
+ "hour": "hours",
1441
+ "month": "months",
1442
+ "quarter": "quarters",
1443
+ "week": "weeks",
1444
+ "year": "years"
1445
+ },
1446
+ "windowUnitLabel": "Unit",
1447
+ "role": {
1448
+ "flagKey": "Key column",
1449
+ "flagValue": "On/off column"
1450
+ },
1451
+ "roleColumnsRequired": "Fill every required column, and leave no gaps before one you filled — these columns are read in order."
1452
+ }
1266
1453
  },
1267
1454
  "setup": {
1268
1455
  "title": "Set up Adminium",
@@ -1615,7 +1802,8 @@ export default {
1615
1802
  "helpAbout": "About Adminium"
1616
1803
  },
1617
1804
  "settings": {
1618
- "explainer": "These settings apply to the Adminium app on this computer only. They are stored on this machine, not in your workspace."
1805
+ "explainer": "These settings apply to the Adminium app on this computer only. They are stored on this machine, not in your workspace.",
1806
+ "title": "Desktop settings"
1619
1807
  },
1620
1808
  "security": {
1621
1809
  "heading": "Sign-in"
@@ -1662,7 +1850,8 @@ export default {
1662
1850
  "mismatchBody": "Sharing is switched off, but the server has not released the network yet. Restart Adminium to close it.",
1663
1851
  "transportTitle": "Traffic on your local network is not encrypted.",
1664
1852
  "transportBody": "Share only on networks you trust. For remote access, use Adminium self-host behind HTTPS.",
1665
- "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."
1853
+ "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.",
1854
+ "manageTeam": "Manage users & roles"
1666
1855
  },
1667
1856
  "setup": {
1668
1857
  "title": "Welcome to Adminium",
@@ -1871,37 +2060,48 @@ export default {
1871
2060
  },
1872
2061
  "templates": {
1873
2062
  "crud": {
1874
- "title": "Records"
2063
+ "title": "Records",
2064
+ "description": "Rows in a searchable table."
1875
2065
  },
1876
2066
  "dashboard": {
1877
- "title": "Dashboard"
2067
+ "title": "Dashboard",
2068
+ "description": "Charts and figures you arrange."
1878
2069
  },
1879
2070
  "board": {
1880
- "title": "Board"
2071
+ "title": "Board",
2072
+ "description": "Cards in columns by status."
1881
2073
  },
1882
2074
  "calendar": {
1883
- "title": "Calendar"
2075
+ "title": "Calendar",
2076
+ "description": "Records on a month grid, by date."
1884
2077
  },
1885
2078
  "scheduler": {
1886
- "title": "Scheduler"
2079
+ "title": "Scheduler",
2080
+ "description": "A timeline per person."
1887
2081
  },
1888
2082
  "logViewer": {
1889
- "title": "Logs"
2083
+ "title": "Logs",
2084
+ "description": "Filterable event lines."
1890
2085
  },
1891
2086
  "files": {
1892
- "title": "Files"
2087
+ "title": "Files",
2088
+ "description": "Files and folders to browse."
1893
2089
  },
1894
2090
  "chat": {
1895
- "title": "Chat"
2091
+ "title": "Chat",
2092
+ "description": "Threaded conversations."
1896
2093
  },
1897
2094
  "builder": {
1898
- "title": "Builder"
2095
+ "title": "Builder",
2096
+ "description": "A drag-and-drop document canvas."
1899
2097
  },
1900
2098
  "wizard": {
1901
- "title": "Wizard"
2099
+ "title": "Wizard",
2100
+ "description": "Guided steps to finish a task."
1902
2101
  },
1903
2102
  "settings": {
1904
- "title": "Settings"
2103
+ "title": "Settings",
2104
+ "description": "Preference rows with toggles."
1905
2105
  },
1906
2106
  "directory": {
1907
2107
  "title": "Directory",
@@ -1915,7 +2115,8 @@ export default {
1915
2115
  "noMatchesBody": "Try a different search or remove a filter.",
1916
2116
  "errorTitle": "This directory failed to load",
1917
2117
  "loading": "Loading people",
1918
- "memberCount": "{count} people"
2118
+ "memberCount": "{count} people",
2119
+ "description": "People cards and an org chart."
1919
2120
  },
1920
2121
  "masterDetail": {
1921
2122
  "title": "List & detail",
@@ -1927,7 +2128,8 @@ export default {
1927
2128
  "noMatchesBody": "Try removing a filter.",
1928
2129
  "errorTitle": "This list failed to load",
1929
2130
  "loading": "Loading records",
1930
- "selectPrompt": "Select a record"
2131
+ "selectPrompt": "Select a record",
2132
+ "description": "A list, with the record beside it."
1931
2133
  },
1932
2134
  "queueInbox": {
1933
2135
  "title": "Queue",
@@ -1952,7 +2154,8 @@ export default {
1952
2154
  "errorTitle": "This queue failed to load",
1953
2155
  "loading": "Loading queue",
1954
2156
  "selectPrompt": "Select a request",
1955
- "daysUnit": "{count} days"
2157
+ "daysUnit": "{count} days",
2158
+ "description": "A work queue with approve and reject."
1956
2159
  }
1957
2160
  },
1958
2161
  "dataio": {
@@ -2056,8 +2259,493 @@ export default {
2056
2259
  }
2057
2260
  },
2058
2261
  "theme": {
2059
- "toLight": "Switch to light theme",
2060
- "toDark": "Switch to dark theme"
2262
+ "toLight": "Light mode",
2263
+ "toDark": "Dark mode"
2264
+ },
2265
+ "studioPages": {
2266
+ "title": "Pages",
2267
+ "subtitle": "Add, edit and organise the pages of your app, and the order they appear in the sidebar.",
2268
+ "createButton": "New page",
2269
+ "loadFailed": {
2270
+ "title": "Pages could not be loaded",
2271
+ "body": "Managing pages needs the “Manage pages” permission. Ask an administrator to grant it to one of your roles."
2272
+ },
2273
+ "tab": {
2274
+ "pages": "All pages",
2275
+ "sidebar": "Sidebar order"
2276
+ },
2277
+ "list": {
2278
+ "title": "Pages",
2279
+ "count": "{count, plural, one {# page} other {# pages}}"
2280
+ },
2281
+ "empty": {
2282
+ "title": "No pages yet",
2283
+ "body": "Connect a database to generate pages automatically, or create one by hand."
2284
+ },
2285
+ "status": {
2286
+ "live": "Live",
2287
+ "hidden": "Hidden"
2288
+ },
2289
+ "origin": {
2290
+ "generated": "Generated",
2291
+ "manifest": "Add-on",
2292
+ "llm": "Assistant",
2293
+ "system": "System",
2294
+ "user": "Custom"
2295
+ },
2296
+ "row": {
2297
+ "menu": "Actions for {title}"
2298
+ },
2299
+ "action": {
2300
+ "edit": "Edit page",
2301
+ "duplicate": "Duplicate",
2302
+ "hide": "Hide from sidebar",
2303
+ "show": "Show in sidebar",
2304
+ "delete": "Delete page"
2305
+ },
2306
+ "create": {
2307
+ "title": "New page",
2308
+ "failed": "The page could not be created",
2309
+ "submit": "Create page",
2310
+ "subtitle": "Pick what this page shows and how it looks."
2311
+ },
2312
+ "duplicate": {
2313
+ "title": "Duplicate page",
2314
+ "failed": "The page could not be duplicated",
2315
+ "submit": "Duplicate"
2316
+ },
2317
+ "delete": {
2318
+ "title": "Delete this page?",
2319
+ "body": "This cannot be undone. Saved views and personal layouts on this page are deleted for everyone.",
2320
+ "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.",
2321
+ "prompt": "Type {slug} to confirm",
2322
+ "confirm": "Delete page"
2323
+ },
2324
+ "field": {
2325
+ "title": "Title",
2326
+ "titleHint": "Shown in the sidebar and the page header.",
2327
+ "slug": "Page address",
2328
+ "slugHint": "Lowercase letters, numbers and dashes. Just the last part — the rest of the address is added for you.",
2329
+ "slugTaken": "Another page already uses this address.",
2330
+ "slugWarning": "Changing the address breaks existing links and bookmarks to this page.",
2331
+ "template": "Template",
2332
+ "templateHint": "Decides what the page can hold. You can change it later.",
2333
+ "group": "Sidebar group",
2334
+ "groupHint": "Which section of the sidebar it appears in.",
2335
+ "icon": "Icon",
2336
+ "iconHint": "Shown beside the page name in the sidebar.",
2337
+ "visible": "Show in sidebar",
2338
+ "visibleHint": "A hidden page stays reachable at its URL for anyone who has the link.",
2339
+ "table": "Table",
2340
+ "tableCreateHint": "The table this page reads. You can bind it later.",
2341
+ "tableNone": "Not bound",
2342
+ "tableNeedsConnection": "Pick a data source first.",
2343
+ "connection": "Data source",
2344
+ "connectionNone": "None",
2345
+ "iconPick": "Choose the page icon",
2346
+ "padding": "Page padding"
2347
+ },
2348
+ "editor": {
2349
+ "title": "Edit page",
2350
+ "save": "Save changes",
2351
+ "saveFailed": "Changes could not be saved",
2352
+ "openPage": "Open page",
2353
+ "generated": {
2354
+ "title": "This page was generated from your schema",
2355
+ "body": "Your changes survive regeneration. Deleting only lasts until the next run recreates it."
2356
+ },
2357
+ "contentUnavailable": "Page contents could not be loaded",
2358
+ "contentUnavailableBody": "The details above can still be saved.",
2359
+ "contentInvalid": "This page’s configuration is not readable",
2360
+ "contentInvalidBody": "It was written by a newer version, or it is malformed. Regenerate the page or delete it.",
2361
+ "data": "Data",
2362
+ "schemaFailed": "Tables could not be listed",
2363
+ "schemaFailedBody": "This connection may not have been analysed yet. Run introspection from Studio → Data connections.",
2364
+ "notBindable": "This template is not bound to one table",
2365
+ "notBindableBody": "Its contents are built widget by widget instead. Open the page and use Edit to add them.",
2366
+ "recompose": "This page will be rebuilt",
2367
+ "recomposeBody": "Saving rebuilds the contents. Column and widget edits here are lost.",
2368
+ "missing": "That page no longer exists",
2369
+ "missingBody": "It may have been deleted, or removed by a regeneration run.",
2370
+ "details": "Details",
2371
+ "itemsPending": "Save the change above first — the contents are rebuilt from it.",
2372
+ "columns": "Columns",
2373
+ "appearance": "Appearance"
2374
+ },
2375
+ "sidebar": {
2376
+ "help": "Reorder pages within a group, or move one to another group. Changes apply to every user.",
2377
+ "discard": "Discard",
2378
+ "save": "Save order",
2379
+ "saveFailed": "The new order could not be saved",
2380
+ "emptyGroup": "No pages in this group.",
2381
+ "moveUp": "Move {title} up",
2382
+ "moveDown": "Move {title} down",
2383
+ "moveTo": "Move {title} to a group",
2384
+ "ungrouped": {
2385
+ "title": "Some pages are in no sidebar group",
2386
+ "body": "These pages work at their URL but appear nowhere in the sidebar. Open each one and pick a group."
2387
+ }
2388
+ },
2389
+ "columns": {
2390
+ "help": "Reorder columns, rename their headers, and choose which are shown in the table.",
2391
+ "discard": "Discard",
2392
+ "save": "Save columns",
2393
+ "saveFailed": "Columns could not be saved",
2394
+ "pk": "Key",
2395
+ "pii": "PII",
2396
+ "header": "Header for {name}",
2397
+ "shown": "Shown",
2398
+ "toggle": "Show {name} in the table",
2399
+ "moveUp": "Move {name} up",
2400
+ "moveDown": "Move {name} down",
2401
+ "remove": "Remove {name}",
2402
+ "none": {
2403
+ "title": "This page has no columns yet",
2404
+ "body": "Columns are read from the table when the page is generated. Bind this page to a table and regenerate to fill them in."
2405
+ }
2406
+ },
2407
+ "icon": {
2408
+ "none": "Choose an icon",
2409
+ "search": "Search icons",
2410
+ "noMatches": "No icons match that search."
2411
+ },
2412
+ "preview": {
2413
+ "untitled": "Untitled page",
2414
+ "note": "An illustration of the layout, not your data."
2415
+ },
2416
+ "padding": {
2417
+ "default": "Default for this template",
2418
+ "none": "None",
2419
+ "standard": "Standard (28 × 24)",
2420
+ "custom": "Custom…",
2421
+ "x": "Sides (px)",
2422
+ "y": "Top and bottom (px)"
2423
+ }
2424
+ },
2425
+ "audit": {
2426
+ "action": {
2427
+ "view": "View"
2428
+ },
2429
+ "actor": {
2430
+ "apiKey": "API key",
2431
+ "automation": "Automation",
2432
+ "system": "System",
2433
+ "user": "User"
2434
+ },
2435
+ "category": {
2436
+ "auth": "Sign-in & accounts",
2437
+ "automation": "Automations",
2438
+ "connection": "Connections",
2439
+ "data": "Records",
2440
+ "export": "Imports & exports",
2441
+ "llm": "AI assist",
2442
+ "rbac": "Roles & permissions",
2443
+ "schema": "Schema",
2444
+ "settings": "Settings",
2445
+ "system": "System"
2446
+ },
2447
+ "column": {
2448
+ "action": "Action",
2449
+ "actor": "Actor",
2450
+ "category": "Category",
2451
+ "details": "Details",
2452
+ "when": "When"
2453
+ },
2454
+ "drawer": {
2455
+ "actorId": "Actor id",
2456
+ "actorKind": "Actor type",
2457
+ "after": "After",
2458
+ "before": "Before",
2459
+ "category": "Category",
2460
+ "changes": "Changes",
2461
+ "connection": "Connection",
2462
+ "field": "Field",
2463
+ "ip": "IP address",
2464
+ "noChanges": "This action recorded no before/after images.",
2465
+ "none": "None",
2466
+ "requestId": "Request id",
2467
+ "resource": "Resource",
2468
+ "subtitle": "{actor} · {when}",
2469
+ "truncated": "Truncated at 16 KB",
2470
+ "userAgent": "User agent"
2471
+ },
2472
+ "empty": {
2473
+ "body": "Changes to data, schema, settings and permissions land here as they happen.",
2474
+ "filtered": {
2475
+ "body": "Widen the date range or clear the category filter.",
2476
+ "title": "Nothing matches these filters"
2477
+ },
2478
+ "title": "Nothing has been logged yet"
2479
+ },
2480
+ "filterActor": "Actor id",
2481
+ "filterCategoryAny": "Any category",
2482
+ "filterCategory": "Filter by category",
2483
+ "filterFrom": "From",
2484
+ "filterTo": "To",
2485
+ "listFailed": {
2486
+ "title": "Could not load the audit log"
2487
+ },
2488
+ "loadMore": "Load older entries",
2489
+ "subtitle": "Every change made in this workspace, who made it, and what it changed.",
2490
+ "title": "Audit log"
2491
+ },
2492
+ "roles": {
2493
+ "action": {
2494
+ "delete": "Delete",
2495
+ "rename": "Rename"
2496
+ },
2497
+ "builtinLocked": "Built-in roles cannot be deleted.",
2498
+ "category": {
2499
+ "access": "Access",
2500
+ "data": "Data",
2501
+ "operations": "Operations",
2502
+ "workspace": "Workspace"
2503
+ },
2504
+ "column": {
2505
+ "actions": "Actions",
2506
+ "members": "Members",
2507
+ "name": "Role"
2508
+ },
2509
+ "create": {
2510
+ "descriptionLabel": "Description",
2511
+ "description": "A new role starts with no permissions at all.",
2512
+ "failed": "Could not create the role",
2513
+ "namePlaceholder": "e.g. Support agent",
2514
+ "name": "Name",
2515
+ "submit": "Create role",
2516
+ "title": "New role"
2517
+ },
2518
+ "createButton": "New role",
2519
+ "delete": {
2520
+ "confirm": "Delete role",
2521
+ "description": "The role and its permission rows are removed.",
2522
+ "failed": "Could not delete the role",
2523
+ "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.",
2524
+ "noMembers": "Nobody holds “{name}”, so nothing moves.",
2525
+ "reassignPlaceholder": "Choose a role…",
2526
+ "reassignTo": "Move members to",
2527
+ "title": "Delete role"
2528
+ },
2529
+ "list": {
2530
+ "title": "Roles"
2531
+ },
2532
+ "loadFailed": {
2533
+ "body": "The matrix below is incomplete, so saving it would clear permissions that are simply not loaded. Reload before making changes.",
2534
+ "title": "Some permissions could not be read"
2535
+ },
2536
+ "matrix": {
2537
+ "discard": "Discard",
2538
+ "empty": {
2539
+ "body": "This instance reported no grantable permissions at all, which should not happen — reload, and if it persists check the server log.",
2540
+ "title": "No permissions to show"
2541
+ },
2542
+ "label": "Role permissions",
2543
+ "noChanges": "No pending changes",
2544
+ "pending": "{count, plural, one {# pending change} other {# pending changes}}",
2545
+ "rowHeader": "Permission",
2546
+ "title": "Permissions"
2547
+ },
2548
+ "memberCount": "{count, plural, one {# user} other {# users}}",
2549
+ "permission": {
2550
+ "apiKeysManage": "Manage API keys",
2551
+ "auditRead": "Read the audit log",
2552
+ "connectionsManage": "Manage database connections",
2553
+ "exportsManage": "Manage everyone’s exports",
2554
+ "importsManage": "Manage everyone’s imports",
2555
+ "jobsManage": "Start and cancel background jobs",
2556
+ "jobsRead": "See all background jobs",
2557
+ "llmRun": "Run AI assist",
2558
+ "pagesManage": "Create and organize pages",
2559
+ "reportsManage": "Manage scheduled reports",
2560
+ "rolesManage": "Manage roles and permissions",
2561
+ "schemaRemap": "Edit schema labels and overrides",
2562
+ "settingsManage": "Manage workspace settings",
2563
+ "usersManage": "Manage users"
2564
+ },
2565
+ "rename": {
2566
+ "failed": "Could not rename the role",
2567
+ "title": "Rename role"
2568
+ },
2569
+ "saveFailed": {
2570
+ "title": "Could not save every role"
2571
+ },
2572
+ "subtitle": "What each role may do. A user gets the union of every role they hold.",
2573
+ "title": "Roles & permissions"
2574
+ },
2575
+ "security": {
2576
+ "password": {
2577
+ "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.",
2578
+ "changed": "Password changed",
2579
+ "confirm": "Confirm new password",
2580
+ "current": "Current password",
2581
+ "failed": "Could not change your password",
2582
+ "helper": "At least 8 characters.",
2583
+ "mismatch": "The two passwords do not match.",
2584
+ "new": "New password",
2585
+ "submit": "Change password",
2586
+ "title": "Password"
2587
+ },
2588
+ "sessions": {
2589
+ "expires": "Expires {at}",
2590
+ "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.",
2591
+ "failed": "Could not read your sessions",
2592
+ "ip": "IP {ip}",
2593
+ "loading": "Looking for other signed-in devices…",
2594
+ "noIp": "No IP recorded",
2595
+ "revokeBody": "The session ends immediately and whoever is using it has to sign in again.",
2596
+ "revokeFailed": "Could not sign that device out",
2597
+ "revokeTitle": "Sign this device out",
2598
+ "revoke": "Sign out",
2599
+ "seenUnknown": "Last seen: unknown",
2600
+ "seen": "Last seen {since}",
2601
+ "thisDevice": "This device",
2602
+ "title": "Signed in",
2603
+ "unknownDevice": "Unrecognised device"
2604
+ },
2605
+ "subtitle": "Your password, your second factor, and everywhere you are signed in.",
2606
+ "title": "Security",
2607
+ "twoFactor": {
2608
+ "activateFailed": "That code was not accepted",
2609
+ "activate": "Turn on two-factor",
2610
+ "body": "An authenticator app generates a 6-digit code that Adminium asks for after your password.",
2611
+ "code": "Code from your app",
2612
+ "copyKey": "Copy setup key",
2613
+ "copyLink": "Copy setup link",
2614
+ "disableBody": "Your account goes back to password-only, and your recovery codes stop working.",
2615
+ "disableConfirm": "Turn it off",
2616
+ "disableFailed": "Could not turn off two-factor",
2617
+ "disablePassword": "Your password",
2618
+ "disableTitle": "Turn off two-factor authentication",
2619
+ "disable": "Turn off two-factor",
2620
+ "enrollFailed": "Could not start setup",
2621
+ "enroll": "Set up two-factor",
2622
+ "hide": "Hide setup key",
2623
+ "off": "Off",
2624
+ "on": "On",
2625
+ "recovery": {
2626
+ "body": "Each code signs you in once if you lose your authenticator. They are shown only now.",
2627
+ "copy": "Copy codes",
2628
+ "title": "Save your recovery codes"
2629
+ },
2630
+ "reveal": "Show setup key",
2631
+ "secretHelper": "Paste the setup link into your authenticator, or type the key in by hand.",
2632
+ "secret": "Setup key",
2633
+ "title": "Two-factor authentication"
2634
+ }
2635
+ },
2636
+ "team": {
2637
+ "action": {
2638
+ "reactivate": "Reactivate",
2639
+ "remove": "Delete",
2640
+ "resend": "New link",
2641
+ "roles": "Roles",
2642
+ "suspend": "Suspend"
2643
+ },
2644
+ "column": {
2645
+ "actions": "Actions",
2646
+ "lastSeen": "Last seen",
2647
+ "person": "Person",
2648
+ "roles": "Roles",
2649
+ "status": "Status"
2650
+ },
2651
+ "counts": "{active} active · {invited} invited · {suspended} suspended",
2652
+ "empty": {
2653
+ "body": "Invite a teammate to give them their own sign-in and role.",
2654
+ "filtered": {
2655
+ "body": "Clear the filters to see the whole directory.",
2656
+ "title": "No one matches these filters"
2657
+ },
2658
+ "title": "Only you have an account"
2659
+ },
2660
+ "filterRoleAny": "Any role",
2661
+ "filterRole": "Filter by role",
2662
+ "filterStatusAny": "Any status",
2663
+ "filterStatus": "Filter by status",
2664
+ "invite": {
2665
+ "copied": "Copied",
2666
+ "copyLink": "Copy link",
2667
+ "created": {
2668
+ "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.",
2669
+ "title": "Invitation created"
2670
+ },
2671
+ "emailIt": "Email the invitation",
2672
+ "expiresRelative": "The link expires {at} ({relative}).",
2673
+ "expires": "The link expires {at}.",
2674
+ "noEmail": {
2675
+ "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.",
2676
+ "title": "Adminium did not email this link",
2677
+ "unknown": "Adminium could not check whether this instance can send mail. Share the link over a channel you already trust."
2678
+ }
2679
+ },
2680
+ "inviteButton": "Invite teammate",
2681
+ "inviteDialog": {
2682
+ "description": "Adminium creates the account and gives you a one-time activation link to pass on.",
2683
+ "emailPlaceholder": "name@example.com",
2684
+ "email": "Email",
2685
+ "failed": "Could not create the invitation",
2686
+ "namePlaceholder": "e.g. Dana Osei",
2687
+ "name": "Name",
2688
+ "rolesHelper": "Pick the least-privileged role that lets them do their job. You can change this later.",
2689
+ "roles": "Roles",
2690
+ "submit": "Create invitation",
2691
+ "title": "Invite a teammate"
2692
+ },
2693
+ "listFailed": {
2694
+ "title": "Could not load the directory"
2695
+ },
2696
+ "loadMore": "Load more",
2697
+ "neverSignedIn": "Never signed in",
2698
+ "noRoles": "No roles",
2699
+ "remove": {
2700
+ "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.",
2701
+ "confirm": "Delete permanently",
2702
+ "prompt": "Type “{email}” to confirm",
2703
+ "title": "Delete account permanently"
2704
+ },
2705
+ "roles": {
2706
+ "unavailable": "Roles are not visible to your account, so none can be assigned here."
2707
+ },
2708
+ "rolesDialog": {
2709
+ "description": "A user gets the union of every role they hold.",
2710
+ "failed": "Could not change the roles",
2711
+ "title": "Roles for {name}"
2712
+ },
2713
+ "rolesLocked": "Changing roles needs the “Manage roles” permission.",
2714
+ "search": "Search name or email",
2715
+ "status": {
2716
+ "active": "Active",
2717
+ "invited": "Invited",
2718
+ "suspended": "Suspended"
2719
+ },
2720
+ "subtitle": "Who has an account on this Adminium, and what each of them can do.",
2721
+ "title": "Team",
2722
+ "twoFactorOn": "Two-factor authentication is on",
2723
+ "twoFactorShort": "2FA"
2724
+ },
2725
+ "email": {
2726
+ "linkFallback": "If the button doesn’t work, paste this link into your browser: {url}",
2727
+ "notification": {
2728
+ "action": "Open {appName}",
2729
+ "footer": "You are receiving this because email notifications are on for your {appName} account. You can turn them off in your notification preferences.",
2730
+ "name": "Notification"
2731
+ },
2732
+ "passwordReset": {
2733
+ "action": "Choose a new password",
2734
+ "heading": "Reset your password",
2735
+ "intro": "Hi {name}, we received a request to reset the password for {email}.",
2736
+ "name": "Password reset",
2737
+ "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.",
2738
+ "subject": "Reset your {appName} password"
2739
+ },
2740
+ "userInvite": {
2741
+ "action": "Accept the invitation",
2742
+ "heading": "You’ve been invited",
2743
+ "intro": "{inviterName} invited you to join {appName}. Accept the invitation to set a password for {email} and sign in.",
2744
+ "inviterFallback": "An administrator",
2745
+ "name": "Team invitation",
2746
+ "notice": "This invitation works only once and expires in {expiresInDays} days. If you weren’t expecting it, you can ignore this email.",
2747
+ "subject": "You have been invited to {appName}"
2748
+ }
2061
2749
  }
2062
2750
  };
2063
2751
  //# sourceMappingURL=common.js.map