@adminiumjs/i18n 0.2.5 → 0.2.6
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 +1 -1
- package/dist/a11y-keys.d.ts.map +1 -1
- package/dist/a11y-keys.js +545 -18
- package/dist/a11y-keys.js.map +1 -1
- package/dist/format/index.d.ts +15 -3
- package/dist/format/index.d.ts.map +1 -1
- package/dist/format/index.js +15 -4
- package/dist/format/index.js.map +1 -1
- package/dist/resources/ar-eg/automations.d.ts +417 -0
- package/dist/resources/ar-eg/automations.d.ts.map +1 -0
- package/dist/resources/ar-eg/automations.js +417 -0
- package/dist/resources/ar-eg/automations.js.map +1 -0
- package/dist/resources/ar-eg/common.d.ts +23 -91
- package/dist/resources/ar-eg/common.d.ts.map +1 -1
- package/dist/resources/ar-eg/common.js +25 -93
- package/dist/resources/ar-eg/common.js.map +1 -1
- package/dist/resources/ar-eg/dataio.d.ts +260 -0
- package/dist/resources/ar-eg/dataio.d.ts.map +1 -0
- package/dist/resources/ar-eg/dataio.js +260 -0
- package/dist/resources/ar-eg/dataio.js.map +1 -0
- package/dist/resources/ar-eg/email.d.ts +824 -0
- package/dist/resources/ar-eg/email.d.ts.map +1 -0
- package/dist/resources/ar-eg/email.js +824 -0
- package/dist/resources/ar-eg/email.js.map +1 -0
- package/dist/resources/ar-eg/files.d.ts +112 -0
- package/dist/resources/ar-eg/files.d.ts.map +1 -0
- package/dist/resources/ar-eg/files.js +112 -0
- package/dist/resources/ar-eg/files.js.map +1 -0
- package/dist/resources/ar-eg/invoices.d.ts +717 -0
- package/dist/resources/ar-eg/invoices.d.ts.map +1 -0
- package/dist/resources/ar-eg/invoices.js +717 -0
- package/dist/resources/ar-eg/invoices.js.map +1 -0
- package/dist/resources/ar-eg/onboarding.d.ts +190 -0
- package/dist/resources/ar-eg/onboarding.d.ts.map +1 -0
- package/dist/resources/ar-eg/onboarding.js +190 -0
- package/dist/resources/ar-eg/onboarding.js.map +1 -0
- package/dist/resources/ar-eg/reportBuilder.d.ts +415 -0
- package/dist/resources/ar-eg/reportBuilder.d.ts.map +1 -0
- package/dist/resources/ar-eg/reportBuilder.js +415 -0
- package/dist/resources/ar-eg/reportBuilder.js.map +1 -0
- package/dist/resources/ar-eg/studio.d.ts +1760 -1117
- package/dist/resources/ar-eg/studio.d.ts.map +1 -1
- package/dist/resources/ar-eg/studio.js +1782 -1139
- package/dist/resources/ar-eg/studio.js.map +1 -1
- package/dist/resources/ar-eg/ui.d.ts +45 -9
- package/dist/resources/ar-eg/ui.d.ts.map +1 -1
- package/dist/resources/ar-eg/ui.js +47 -11
- package/dist/resources/ar-eg/ui.js.map +1 -1
- package/dist/resources/cs-cz/automations.d.ts +417 -0
- package/dist/resources/cs-cz/automations.d.ts.map +1 -0
- package/dist/resources/cs-cz/automations.js +417 -0
- package/dist/resources/cs-cz/automations.js.map +1 -0
- package/dist/resources/cs-cz/common.d.ts +23 -91
- package/dist/resources/cs-cz/common.d.ts.map +1 -1
- package/dist/resources/cs-cz/common.js +25 -93
- package/dist/resources/cs-cz/common.js.map +1 -1
- package/dist/resources/cs-cz/dataio.d.ts +260 -0
- package/dist/resources/cs-cz/dataio.d.ts.map +1 -0
- package/dist/resources/cs-cz/dataio.js +260 -0
- package/dist/resources/cs-cz/dataio.js.map +1 -0
- package/dist/resources/cs-cz/email.d.ts +824 -0
- package/dist/resources/cs-cz/email.d.ts.map +1 -0
- package/dist/resources/cs-cz/email.js +824 -0
- package/dist/resources/cs-cz/email.js.map +1 -0
- package/dist/resources/cs-cz/files.d.ts +112 -0
- package/dist/resources/cs-cz/files.d.ts.map +1 -0
- package/dist/resources/cs-cz/files.js +112 -0
- package/dist/resources/cs-cz/files.js.map +1 -0
- package/dist/resources/cs-cz/invoices.d.ts +717 -0
- package/dist/resources/cs-cz/invoices.d.ts.map +1 -0
- package/dist/resources/cs-cz/invoices.js +717 -0
- package/dist/resources/cs-cz/invoices.js.map +1 -0
- package/dist/resources/cs-cz/onboarding.d.ts +190 -0
- package/dist/resources/cs-cz/onboarding.d.ts.map +1 -0
- package/dist/resources/cs-cz/onboarding.js +190 -0
- package/dist/resources/cs-cz/onboarding.js.map +1 -0
- package/dist/resources/cs-cz/reportBuilder.d.ts +415 -0
- package/dist/resources/cs-cz/reportBuilder.d.ts.map +1 -0
- package/dist/resources/cs-cz/reportBuilder.js +415 -0
- package/dist/resources/cs-cz/reportBuilder.js.map +1 -0
- package/dist/resources/cs-cz/studio.d.ts +1759 -1116
- package/dist/resources/cs-cz/studio.d.ts.map +1 -1
- package/dist/resources/cs-cz/studio.js +1774 -1131
- package/dist/resources/cs-cz/studio.js.map +1 -1
- package/dist/resources/cs-cz/ui.d.ts +45 -9
- package/dist/resources/cs-cz/ui.d.ts.map +1 -1
- package/dist/resources/cs-cz/ui.js +47 -11
- package/dist/resources/cs-cz/ui.js.map +1 -1
- package/dist/resources/da-dk/automations.d.ts +417 -0
- package/dist/resources/da-dk/automations.d.ts.map +1 -0
- package/dist/resources/da-dk/automations.js +417 -0
- package/dist/resources/da-dk/automations.js.map +1 -0
- package/dist/resources/da-dk/common.d.ts +23 -91
- package/dist/resources/da-dk/common.d.ts.map +1 -1
- package/dist/resources/da-dk/common.js +25 -93
- package/dist/resources/da-dk/common.js.map +1 -1
- package/dist/resources/da-dk/dataio.d.ts +260 -0
- package/dist/resources/da-dk/dataio.d.ts.map +1 -0
- package/dist/resources/da-dk/dataio.js +260 -0
- package/dist/resources/da-dk/dataio.js.map +1 -0
- package/dist/resources/da-dk/email.d.ts +824 -0
- package/dist/resources/da-dk/email.d.ts.map +1 -0
- package/dist/resources/da-dk/email.js +824 -0
- package/dist/resources/da-dk/email.js.map +1 -0
- package/dist/resources/da-dk/files.d.ts +112 -0
- package/dist/resources/da-dk/files.d.ts.map +1 -0
- package/dist/resources/da-dk/files.js +112 -0
- package/dist/resources/da-dk/files.js.map +1 -0
- package/dist/resources/da-dk/invoices.d.ts +717 -0
- package/dist/resources/da-dk/invoices.d.ts.map +1 -0
- package/dist/resources/da-dk/invoices.js +717 -0
- package/dist/resources/da-dk/invoices.js.map +1 -0
- package/dist/resources/da-dk/onboarding.d.ts +190 -0
- package/dist/resources/da-dk/onboarding.d.ts.map +1 -0
- package/dist/resources/da-dk/onboarding.js +190 -0
- package/dist/resources/da-dk/onboarding.js.map +1 -0
- package/dist/resources/da-dk/reportBuilder.d.ts +415 -0
- package/dist/resources/da-dk/reportBuilder.d.ts.map +1 -0
- package/dist/resources/da-dk/reportBuilder.js +415 -0
- package/dist/resources/da-dk/reportBuilder.js.map +1 -0
- package/dist/resources/da-dk/studio.d.ts +1760 -1117
- package/dist/resources/da-dk/studio.d.ts.map +1 -1
- package/dist/resources/da-dk/studio.js +1771 -1128
- package/dist/resources/da-dk/studio.js.map +1 -1
- package/dist/resources/da-dk/ui.d.ts +45 -9
- package/dist/resources/da-dk/ui.d.ts.map +1 -1
- package/dist/resources/da-dk/ui.js +47 -11
- package/dist/resources/da-dk/ui.js.map +1 -1
- package/dist/resources/de-de/automations.d.ts +417 -0
- package/dist/resources/de-de/automations.d.ts.map +1 -0
- package/dist/resources/de-de/automations.js +417 -0
- package/dist/resources/de-de/automations.js.map +1 -0
- package/dist/resources/de-de/common.d.ts +23 -91
- package/dist/resources/de-de/common.d.ts.map +1 -1
- package/dist/resources/de-de/common.js +25 -93
- package/dist/resources/de-de/common.js.map +1 -1
- package/dist/resources/de-de/dataio.d.ts +260 -0
- package/dist/resources/de-de/dataio.d.ts.map +1 -0
- package/dist/resources/de-de/dataio.js +260 -0
- package/dist/resources/de-de/dataio.js.map +1 -0
- package/dist/resources/de-de/email.d.ts +824 -0
- package/dist/resources/de-de/email.d.ts.map +1 -0
- package/dist/resources/de-de/email.js +824 -0
- package/dist/resources/de-de/email.js.map +1 -0
- package/dist/resources/de-de/files.d.ts +112 -0
- package/dist/resources/de-de/files.d.ts.map +1 -0
- package/dist/resources/de-de/files.js +112 -0
- package/dist/resources/de-de/files.js.map +1 -0
- package/dist/resources/de-de/invoices.d.ts +717 -0
- package/dist/resources/de-de/invoices.d.ts.map +1 -0
- package/dist/resources/de-de/invoices.js +717 -0
- package/dist/resources/de-de/invoices.js.map +1 -0
- package/dist/resources/de-de/onboarding.d.ts +190 -0
- package/dist/resources/de-de/onboarding.d.ts.map +1 -0
- package/dist/resources/de-de/onboarding.js +190 -0
- package/dist/resources/de-de/onboarding.js.map +1 -0
- package/dist/resources/de-de/reportBuilder.d.ts +415 -0
- package/dist/resources/de-de/reportBuilder.d.ts.map +1 -0
- package/dist/resources/de-de/reportBuilder.js +415 -0
- package/dist/resources/de-de/reportBuilder.js.map +1 -0
- package/dist/resources/de-de/studio.d.ts +1759 -1116
- package/dist/resources/de-de/studio.d.ts.map +1 -1
- package/dist/resources/de-de/studio.js +1770 -1127
- package/dist/resources/de-de/studio.js.map +1 -1
- package/dist/resources/de-de/ui.d.ts +45 -9
- package/dist/resources/de-de/ui.d.ts.map +1 -1
- package/dist/resources/de-de/ui.js +47 -11
- package/dist/resources/de-de/ui.js.map +1 -1
- package/dist/resources/en-us/automations.d.ts +417 -0
- package/dist/resources/en-us/automations.d.ts.map +1 -0
- package/dist/resources/en-us/automations.js +417 -0
- package/dist/resources/en-us/automations.js.map +1 -0
- package/dist/resources/en-us/common.d.ts +23 -91
- package/dist/resources/en-us/common.d.ts.map +1 -1
- package/dist/resources/en-us/common.js +25 -93
- package/dist/resources/en-us/common.js.map +1 -1
- package/dist/resources/en-us/dataio.d.ts +260 -0
- package/dist/resources/en-us/dataio.d.ts.map +1 -0
- package/dist/resources/en-us/dataio.js +260 -0
- package/dist/resources/en-us/dataio.js.map +1 -0
- package/dist/resources/en-us/email.d.ts +824 -0
- package/dist/resources/en-us/email.d.ts.map +1 -0
- package/dist/resources/en-us/email.js +824 -0
- package/dist/resources/en-us/email.js.map +1 -0
- package/dist/resources/en-us/files.d.ts +112 -0
- package/dist/resources/en-us/files.d.ts.map +1 -0
- package/dist/resources/en-us/files.js +112 -0
- package/dist/resources/en-us/files.js.map +1 -0
- package/dist/resources/en-us/invoices.d.ts +717 -0
- package/dist/resources/en-us/invoices.d.ts.map +1 -0
- package/dist/resources/en-us/invoices.js +717 -0
- package/dist/resources/en-us/invoices.js.map +1 -0
- package/dist/resources/en-us/onboarding.d.ts +190 -0
- package/dist/resources/en-us/onboarding.d.ts.map +1 -0
- package/dist/resources/en-us/onboarding.js +190 -0
- package/dist/resources/en-us/onboarding.js.map +1 -0
- package/dist/resources/en-us/reportBuilder.d.ts +415 -0
- package/dist/resources/en-us/reportBuilder.d.ts.map +1 -0
- package/dist/resources/en-us/reportBuilder.js +415 -0
- package/dist/resources/en-us/reportBuilder.js.map +1 -0
- package/dist/resources/en-us/studio.d.ts +1742 -1099
- package/dist/resources/en-us/studio.d.ts.map +1 -1
- package/dist/resources/en-us/studio.js +1769 -1126
- package/dist/resources/en-us/studio.js.map +1 -1
- package/dist/resources/en-us/ui.d.ts +37 -1
- package/dist/resources/en-us/ui.d.ts.map +1 -1
- package/dist/resources/en-us/ui.js +39 -3
- package/dist/resources/en-us/ui.js.map +1 -1
- package/dist/resources/fr-fr/automations.d.ts +417 -0
- package/dist/resources/fr-fr/automations.d.ts.map +1 -0
- package/dist/resources/fr-fr/automations.js +417 -0
- package/dist/resources/fr-fr/automations.js.map +1 -0
- package/dist/resources/fr-fr/common.d.ts +23 -91
- package/dist/resources/fr-fr/common.d.ts.map +1 -1
- package/dist/resources/fr-fr/common.js +25 -93
- package/dist/resources/fr-fr/common.js.map +1 -1
- package/dist/resources/fr-fr/dataio.d.ts +260 -0
- package/dist/resources/fr-fr/dataio.d.ts.map +1 -0
- package/dist/resources/fr-fr/dataio.js +260 -0
- package/dist/resources/fr-fr/dataio.js.map +1 -0
- package/dist/resources/fr-fr/email.d.ts +824 -0
- package/dist/resources/fr-fr/email.d.ts.map +1 -0
- package/dist/resources/fr-fr/email.js +824 -0
- package/dist/resources/fr-fr/email.js.map +1 -0
- package/dist/resources/fr-fr/files.d.ts +112 -0
- package/dist/resources/fr-fr/files.d.ts.map +1 -0
- package/dist/resources/fr-fr/files.js +112 -0
- package/dist/resources/fr-fr/files.js.map +1 -0
- package/dist/resources/fr-fr/invoices.d.ts +717 -0
- package/dist/resources/fr-fr/invoices.d.ts.map +1 -0
- package/dist/resources/fr-fr/invoices.js +717 -0
- package/dist/resources/fr-fr/invoices.js.map +1 -0
- package/dist/resources/fr-fr/onboarding.d.ts +190 -0
- package/dist/resources/fr-fr/onboarding.d.ts.map +1 -0
- package/dist/resources/fr-fr/onboarding.js +190 -0
- package/dist/resources/fr-fr/onboarding.js.map +1 -0
- package/dist/resources/fr-fr/reportBuilder.d.ts +415 -0
- package/dist/resources/fr-fr/reportBuilder.d.ts.map +1 -0
- package/dist/resources/fr-fr/reportBuilder.js +415 -0
- package/dist/resources/fr-fr/reportBuilder.js.map +1 -0
- package/dist/resources/fr-fr/studio.d.ts +1759 -1116
- package/dist/resources/fr-fr/studio.d.ts.map +1 -1
- package/dist/resources/fr-fr/studio.js +1774 -1131
- package/dist/resources/fr-fr/studio.js.map +1 -1
- package/dist/resources/fr-fr/ui.d.ts +44 -8
- package/dist/resources/fr-fr/ui.d.ts.map +1 -1
- package/dist/resources/fr-fr/ui.js +46 -10
- package/dist/resources/fr-fr/ui.js.map +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +14 -0
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/lazy.d.ts.map +1 -1
- package/dist/resources/lazy.js +57 -1
- package/dist/resources/lazy.js.map +1 -1
- package/dist/resources/namespaces.d.ts +62 -3
- package/dist/resources/namespaces.d.ts.map +1 -1
- package/dist/resources/namespaces.js +84 -3
- package/dist/resources/namespaces.js.map +1 -1
- package/dist/resources/zh-cn/automations.d.ts +417 -0
- package/dist/resources/zh-cn/automations.d.ts.map +1 -0
- package/dist/resources/zh-cn/automations.js +417 -0
- package/dist/resources/zh-cn/automations.js.map +1 -0
- package/dist/resources/zh-cn/common.d.ts +23 -91
- package/dist/resources/zh-cn/common.d.ts.map +1 -1
- package/dist/resources/zh-cn/common.js +25 -93
- package/dist/resources/zh-cn/common.js.map +1 -1
- package/dist/resources/zh-cn/dataio.d.ts +260 -0
- package/dist/resources/zh-cn/dataio.d.ts.map +1 -0
- package/dist/resources/zh-cn/dataio.js +260 -0
- package/dist/resources/zh-cn/dataio.js.map +1 -0
- package/dist/resources/zh-cn/email.d.ts +824 -0
- package/dist/resources/zh-cn/email.d.ts.map +1 -0
- package/dist/resources/zh-cn/email.js +824 -0
- package/dist/resources/zh-cn/email.js.map +1 -0
- package/dist/resources/zh-cn/files.d.ts +112 -0
- package/dist/resources/zh-cn/files.d.ts.map +1 -0
- package/dist/resources/zh-cn/files.js +112 -0
- package/dist/resources/zh-cn/files.js.map +1 -0
- package/dist/resources/zh-cn/invoices.d.ts +717 -0
- package/dist/resources/zh-cn/invoices.d.ts.map +1 -0
- package/dist/resources/zh-cn/invoices.js +717 -0
- package/dist/resources/zh-cn/invoices.js.map +1 -0
- package/dist/resources/zh-cn/onboarding.d.ts +190 -0
- package/dist/resources/zh-cn/onboarding.d.ts.map +1 -0
- package/dist/resources/zh-cn/onboarding.js +190 -0
- package/dist/resources/zh-cn/onboarding.js.map +1 -0
- package/dist/resources/zh-cn/reportBuilder.d.ts +415 -0
- package/dist/resources/zh-cn/reportBuilder.d.ts.map +1 -0
- package/dist/resources/zh-cn/reportBuilder.js +415 -0
- package/dist/resources/zh-cn/reportBuilder.js.map +1 -0
- package/dist/resources/zh-cn/studio.d.ts +1758 -1115
- package/dist/resources/zh-cn/studio.d.ts.map +1 -1
- package/dist/resources/zh-cn/studio.js +1764 -1121
- package/dist/resources/zh-cn/studio.js.map +1 -1
- package/dist/resources/zh-cn/ui.d.ts +45 -9
- package/dist/resources/zh-cn/ui.d.ts.map +1 -1
- package/dist/resources/zh-cn/ui.js +47 -11
- package/dist/resources/zh-cn/ui.js.map +1 -1
- package/dist/resources/zh-tw/automations.d.ts +417 -0
- package/dist/resources/zh-tw/automations.d.ts.map +1 -0
- package/dist/resources/zh-tw/automations.js +417 -0
- package/dist/resources/zh-tw/automations.js.map +1 -0
- package/dist/resources/zh-tw/common.d.ts +23 -91
- package/dist/resources/zh-tw/common.d.ts.map +1 -1
- package/dist/resources/zh-tw/common.js +25 -93
- package/dist/resources/zh-tw/common.js.map +1 -1
- package/dist/resources/zh-tw/dataio.d.ts +260 -0
- package/dist/resources/zh-tw/dataio.d.ts.map +1 -0
- package/dist/resources/zh-tw/dataio.js +260 -0
- package/dist/resources/zh-tw/dataio.js.map +1 -0
- package/dist/resources/zh-tw/email.d.ts +824 -0
- package/dist/resources/zh-tw/email.d.ts.map +1 -0
- package/dist/resources/zh-tw/email.js +824 -0
- package/dist/resources/zh-tw/email.js.map +1 -0
- package/dist/resources/zh-tw/files.d.ts +112 -0
- package/dist/resources/zh-tw/files.d.ts.map +1 -0
- package/dist/resources/zh-tw/files.js +112 -0
- package/dist/resources/zh-tw/files.js.map +1 -0
- package/dist/resources/zh-tw/invoices.d.ts +717 -0
- package/dist/resources/zh-tw/invoices.d.ts.map +1 -0
- package/dist/resources/zh-tw/invoices.js +717 -0
- package/dist/resources/zh-tw/invoices.js.map +1 -0
- package/dist/resources/zh-tw/onboarding.d.ts +190 -0
- package/dist/resources/zh-tw/onboarding.d.ts.map +1 -0
- package/dist/resources/zh-tw/onboarding.js +190 -0
- package/dist/resources/zh-tw/onboarding.js.map +1 -0
- package/dist/resources/zh-tw/reportBuilder.d.ts +415 -0
- package/dist/resources/zh-tw/reportBuilder.d.ts.map +1 -0
- package/dist/resources/zh-tw/reportBuilder.js +415 -0
- package/dist/resources/zh-tw/reportBuilder.js.map +1 -0
- package/dist/resources/zh-tw/studio.d.ts +1759 -1116
- package/dist/resources/zh-tw/studio.d.ts.map +1 -1
- package/dist/resources/zh-tw/studio.js +1773 -1130
- package/dist/resources/zh-tw/studio.js.map +1 -1
- package/dist/resources/zh-tw/ui.d.ts +45 -9
- package/dist/resources/zh-tw/ui.d.ts.map +1 -1
- package/dist/resources/zh-tw/ui.js +47 -11
- package/dist/resources/zh-tw/ui.js.map +1 -1
- package/dist/review-status.js +7 -7
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +14 -1
- package/dist/server.js.map +1 -1
- package/locales/ar-EG/.meta.json +15999 -5979
- package/locales/ar-EG/automations.json +406 -0
- package/locales/ar-EG/common.json +25 -93
- package/locales/ar-EG/dataio.json +249 -0
- package/locales/ar-EG/email.json +813 -0
- package/locales/ar-EG/files.json +101 -0
- package/locales/ar-EG/invoices.json +706 -0
- package/locales/ar-EG/onboarding.json +179 -0
- package/locales/ar-EG/reportBuilder.json +404 -0
- package/locales/ar-EG/studio.json +1782 -1139
- package/locales/ar-EG/ui.json +47 -11
- package/locales/cs-CZ/.meta.json +16271 -6251
- package/locales/cs-CZ/automations.json +406 -0
- package/locales/cs-CZ/common.json +25 -93
- package/locales/cs-CZ/dataio.json +249 -0
- package/locales/cs-CZ/email.json +813 -0
- package/locales/cs-CZ/files.json +101 -0
- package/locales/cs-CZ/invoices.json +706 -0
- package/locales/cs-CZ/onboarding.json +179 -0
- package/locales/cs-CZ/reportBuilder.json +404 -0
- package/locales/cs-CZ/studio.json +1774 -1131
- package/locales/cs-CZ/ui.json +47 -11
- package/locales/da-DK/.meta.json +16245 -6225
- package/locales/da-DK/automations.json +406 -0
- package/locales/da-DK/common.json +25 -93
- package/locales/da-DK/dataio.json +249 -0
- package/locales/da-DK/email.json +813 -0
- package/locales/da-DK/files.json +101 -0
- package/locales/da-DK/invoices.json +706 -0
- package/locales/da-DK/onboarding.json +179 -0
- package/locales/da-DK/reportBuilder.json +404 -0
- package/locales/da-DK/studio.json +1771 -1128
- package/locales/da-DK/ui.json +47 -11
- package/locales/de-DE/.meta.json +16094 -6074
- package/locales/de-DE/automations.json +406 -0
- package/locales/de-DE/common.json +25 -93
- package/locales/de-DE/dataio.json +249 -0
- package/locales/de-DE/email.json +813 -0
- package/locales/de-DE/files.json +101 -0
- package/locales/de-DE/invoices.json +706 -0
- package/locales/de-DE/onboarding.json +179 -0
- package/locales/de-DE/reportBuilder.json +404 -0
- package/locales/de-DE/studio.json +1770 -1127
- package/locales/de-DE/ui.json +47 -11
- package/locales/en-US/automations.json +406 -0
- package/locales/en-US/common.json +25 -93
- package/locales/en-US/dataio.json +249 -0
- package/locales/en-US/email.json +813 -0
- package/locales/en-US/files.json +101 -0
- package/locales/en-US/invoices.json +706 -0
- package/locales/en-US/onboarding.json +179 -0
- package/locales/en-US/reportBuilder.json +404 -0
- package/locales/en-US/studio.json +1769 -1126
- package/locales/en-US/ui.json +39 -3
- package/locales/fr-FR/.meta.json +14117 -4097
- package/locales/fr-FR/automations.json +406 -0
- package/locales/fr-FR/common.json +25 -93
- package/locales/fr-FR/dataio.json +249 -0
- package/locales/fr-FR/email.json +813 -0
- package/locales/fr-FR/files.json +101 -0
- package/locales/fr-FR/invoices.json +706 -0
- package/locales/fr-FR/onboarding.json +179 -0
- package/locales/fr-FR/reportBuilder.json +404 -0
- package/locales/fr-FR/studio.json +1774 -1131
- package/locales/fr-FR/ui.json +46 -10
- package/locales/zh-CN/.meta.json +16223 -6203
- package/locales/zh-CN/automations.json +406 -0
- package/locales/zh-CN/common.json +25 -93
- package/locales/zh-CN/dataio.json +249 -0
- package/locales/zh-CN/email.json +813 -0
- package/locales/zh-CN/files.json +101 -0
- package/locales/zh-CN/invoices.json +706 -0
- package/locales/zh-CN/onboarding.json +179 -0
- package/locales/zh-CN/reportBuilder.json +404 -0
- package/locales/zh-CN/studio.json +1764 -1121
- package/locales/zh-CN/ui.json +47 -11
- package/locales/zh-TW/.meta.json +15999 -5979
- package/locales/zh-TW/automations.json +406 -0
- package/locales/zh-TW/common.json +25 -93
- package/locales/zh-TW/dataio.json +249 -0
- package/locales/zh-TW/email.json +813 -0
- package/locales/zh-TW/files.json +101 -0
- package/locales/zh-TW/invoices.json +706 -0
- package/locales/zh-TW/onboarding.json +179 -0
- package/locales/zh-TW/reportBuilder.json +404 -0
- package/locales/zh-TW/studio.json +1773 -1130
- package/locales/zh-TW/ui.json +47 -11
- package/package.json +1 -1
|
@@ -8,1290 +8,1933 @@
|
|
|
8
8
|
* scripts/gen-resources.mjs.
|
|
9
9
|
*/
|
|
10
10
|
declare const _default: {
|
|
11
|
-
readonly
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
readonly
|
|
20
|
-
readonly
|
|
21
|
-
readonly
|
|
22
|
-
readonly
|
|
11
|
+
readonly addOns: {
|
|
12
|
+
readonly browse: {
|
|
13
|
+
readonly all: "All";
|
|
14
|
+
readonly bundled: "Included";
|
|
15
|
+
readonly categories: "Categories";
|
|
16
|
+
readonly discard: "Discard";
|
|
17
|
+
readonly download: "Download";
|
|
18
|
+
readonly emptyBody: "This build shipped none, and the online catalogue is off.";
|
|
19
|
+
readonly emptyOnlineBody: "The online catalogue is on, but the last check found nothing. Try checking for newer.";
|
|
20
|
+
readonly emptyTitle: "No add-ons available";
|
|
21
|
+
readonly install: "Install";
|
|
22
|
+
readonly noMatchBody: "No add-on here matches that search and category.";
|
|
23
|
+
readonly noMatchTitle: "Nothing matches";
|
|
24
|
+
readonly offline: "Showing the add-ons that came with this build. Browsing online is switched off, and nothing here has contacted the internet.";
|
|
25
|
+
readonly online: "Includes add-ons from the online catalogue. Checking for newer versions is a separate action.";
|
|
26
|
+
readonly refresh: "Check for newer";
|
|
27
|
+
readonly search: "Search add-ons";
|
|
28
|
+
readonly title: "Available";
|
|
29
|
+
readonly toggle: "Browse the online catalogue";
|
|
30
|
+
readonly upgrade: "v{version} available";
|
|
31
|
+
readonly upgradeAction: "Upgrade";
|
|
23
32
|
};
|
|
24
|
-
readonly
|
|
25
|
-
readonly
|
|
26
|
-
readonly
|
|
27
|
-
readonly auto: "Auto-detect";
|
|
28
|
-
readonly sql: "SQL DDL / pg_dump";
|
|
29
|
-
readonly prisma: "Prisma schema";
|
|
30
|
-
readonly drizzle: "Drizzle ORM";
|
|
31
|
-
readonly typeorm: "TypeORM entities";
|
|
32
|
-
readonly sequelize: "Sequelize models";
|
|
33
|
-
readonly rails: "Rails schema.rb";
|
|
34
|
-
readonly django: "Django models.py";
|
|
35
|
-
readonly json: "Adminium JSON";
|
|
33
|
+
readonly card: {
|
|
34
|
+
readonly needsApiKey: "Needs an API key";
|
|
35
|
+
readonly needsOauth: "Connects with OAuth";
|
|
36
36
|
};
|
|
37
|
-
readonly
|
|
38
|
-
readonly
|
|
39
|
-
readonly
|
|
37
|
+
readonly category: {
|
|
38
|
+
readonly artwork: "Artwork";
|
|
39
|
+
readonly data: "Data";
|
|
40
|
+
readonly delivery: "Delivery";
|
|
41
|
+
readonly email: "Email";
|
|
42
|
+
readonly payments: "Payments";
|
|
40
43
|
};
|
|
41
|
-
readonly
|
|
42
|
-
readonly
|
|
43
|
-
readonly
|
|
44
|
-
readonly
|
|
45
|
-
readonly
|
|
46
|
-
readonly
|
|
47
|
-
readonly
|
|
48
|
-
readonly
|
|
49
|
-
readonly
|
|
50
|
-
readonly
|
|
51
|
-
readonly
|
|
52
|
-
readonly
|
|
53
|
-
readonly unsupported: "That format is not recognized — SQL DDL, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django models and Adminium JSON are supported. Pick one explicitly and retry.";
|
|
54
|
-
readonly requestFailed: "Upload failed — check your connection and try again.";
|
|
44
|
+
readonly confirm: {
|
|
45
|
+
readonly cancel: "Cancel";
|
|
46
|
+
readonly close: "Close";
|
|
47
|
+
readonly discard: "Discard";
|
|
48
|
+
readonly discardBody: "The downloaded files are deleted. Nothing was installed, so nothing else changes — you can download it again whenever you like.";
|
|
49
|
+
readonly discardTitle: "Discard this download";
|
|
50
|
+
readonly disconnect: "Disconnect";
|
|
51
|
+
readonly disconnectBody: "Its keys are deleted and it stops making calls. Every table and every row it created stays exactly as it is, and you can reconnect at any time.";
|
|
52
|
+
readonly disconnectTitle: "Disconnect this add-on";
|
|
53
|
+
readonly uninstall: "Uninstall";
|
|
54
|
+
readonly uninstallBody: "Its keys are deleted and its files are removed from this server. Every table and every row it created stays exactly as it is. You can install it again later.";
|
|
55
|
+
readonly uninstallTitle: "Uninstall this add-on";
|
|
55
56
|
};
|
|
56
|
-
readonly
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
readonly namePlaceholder: "Production Postgres";
|
|
60
|
-
readonly modeLabel: "Source input mode";
|
|
61
|
-
readonly mode: {
|
|
62
|
-
readonly dsn: "Connection string";
|
|
63
|
-
readonly fields: "Individual fields";
|
|
64
|
-
readonly file: "Schema file";
|
|
57
|
+
readonly connect: {
|
|
58
|
+
readonly apiKey: "API key";
|
|
59
|
+
readonly submit: "Connect";
|
|
65
60
|
};
|
|
66
|
-
readonly
|
|
67
|
-
readonly
|
|
68
|
-
readonly
|
|
69
|
-
readonly
|
|
70
|
-
readonly
|
|
71
|
-
readonly
|
|
61
|
+
readonly consent: {
|
|
62
|
+
readonly cancel: "Cancel";
|
|
63
|
+
readonly close: "Close";
|
|
64
|
+
readonly confirm: "Install";
|
|
65
|
+
readonly hosts: "Attach to";
|
|
66
|
+
readonly loading: "Working out what this would do…";
|
|
67
|
+
readonly subtitle: "What this add-on will do, before it can do it.";
|
|
68
|
+
readonly title: "Install {name}";
|
|
72
69
|
};
|
|
73
|
-
readonly
|
|
74
|
-
|
|
75
|
-
readonly
|
|
76
|
-
readonly
|
|
77
|
-
readonly
|
|
78
|
-
readonly
|
|
79
|
-
readonly
|
|
80
|
-
readonly
|
|
70
|
+
readonly error: "Something went wrong";
|
|
71
|
+
readonly installed: {
|
|
72
|
+
readonly connected: "Connected";
|
|
73
|
+
readonly disconnect: "Disconnect";
|
|
74
|
+
readonly egress: "May contact: {hosts}";
|
|
75
|
+
readonly emptyBody: "Install an add-on above and it will appear here with its hosts and connection.";
|
|
76
|
+
readonly emptyTitle: "Nothing installed yet";
|
|
77
|
+
readonly notConnected: "Not connected";
|
|
78
|
+
readonly off: "off";
|
|
79
|
+
readonly on: "on";
|
|
80
|
+
readonly title: "Installed";
|
|
81
|
+
readonly uninstall: "Uninstall";
|
|
81
82
|
};
|
|
82
|
-
readonly
|
|
83
|
-
readonly
|
|
84
|
-
readonly
|
|
83
|
+
readonly job: {
|
|
84
|
+
readonly body: "Fetching and verifying. Nothing is installed until you say so.";
|
|
85
|
+
readonly failed: "The download did not finish. Nothing was installed.";
|
|
86
|
+
readonly title: "Downloading";
|
|
87
|
+
};
|
|
88
|
+
readonly plan: {
|
|
89
|
+
readonly blocked: "This cannot be installed here";
|
|
90
|
+
readonly needsColumns: "This add-on needs columns you do not have";
|
|
91
|
+
readonly needsColumnsBody: "Adminium will not add columns to tables you already own. Add them yourself, then install.";
|
|
92
|
+
readonly noData: "This add-on reads and writes no tables of its own.";
|
|
93
|
+
readonly reuse: "This add-on will use tables you already have:";
|
|
94
|
+
readonly willCreate: "This will create tables in your database";
|
|
95
|
+
readonly willCreateBody: "Installing creates these tables. Uninstalling later leaves them, and their data, alone.";
|
|
96
|
+
};
|
|
97
|
+
readonly settings: {
|
|
98
|
+
readonly badJson: "That is not valid JSON, so it was not saved.";
|
|
99
|
+
readonly save: "Save settings";
|
|
100
|
+
readonly title: "Settings";
|
|
101
|
+
};
|
|
102
|
+
readonly sideload: {
|
|
103
|
+
readonly file: "Package file (.tgz)";
|
|
104
|
+
readonly hint: "For a server with no internet. It is checked exactly as a download would be, so it needs the hash that came with it.";
|
|
105
|
+
readonly key: "Add-on key";
|
|
106
|
+
readonly sha: "Integrity (sha512-…)";
|
|
107
|
+
readonly shaHint: "The `integrity` value `npm pack --json` printed. The upload is refused if the bytes do not match.";
|
|
108
|
+
readonly submit: "Upload";
|
|
109
|
+
readonly title: "Upload a package";
|
|
110
|
+
readonly version: "Version";
|
|
111
|
+
};
|
|
112
|
+
readonly subtitle: "Extra capabilities you can add to your apps — shipping, artwork, data. Each one says what it needs before you install it.";
|
|
113
|
+
readonly title: "Add-ons";
|
|
114
|
+
readonly upgradeNote: "Upgrading keeps the hosts an add-on is attached to and the connection it already has.";
|
|
115
|
+
readonly veto: {
|
|
116
|
+
readonly body: "The setting is saved, but network features are off for this server and that wins. Downloaded add-ons still work, and you can still upload one yourself.";
|
|
117
|
+
readonly title: "This deployment cannot browse online";
|
|
85
118
|
};
|
|
86
119
|
};
|
|
87
120
|
readonly capability: {
|
|
121
|
+
readonly importNoLiveHealth: "No live database connection — health checks and schema-drift detection are unavailable for this source.";
|
|
122
|
+
readonly importNoRowCounts: "Schema files carry no row counts — the tables list shows — instead of made-up numbers.";
|
|
88
123
|
readonly mysqlApproxRows: "MySQL row counts are storage-engine estimates (they can drift up to ±40%) — shown with ≈.";
|
|
89
124
|
readonly mysqlFkEnum: "MySQL FK/enum metadata is weaker: MyISAM tables declare no foreign keys, enums are per-column enum(…) types, and CHECK constraints need MySQL 8.0.16+ / MariaDB 10.2+.";
|
|
125
|
+
readonly rowsApproximate: "Storage-engine estimate — can drift up to ±40% on InnoDB.";
|
|
126
|
+
readonly rowsNoEstimate: "The engine reported no estimate for this table.";
|
|
127
|
+
readonly rowsRunAnalyze: "No estimate yet — run ANALYZE on the database for row counts.";
|
|
128
|
+
readonly rowsUnavailable: "Schema files have no live database — row counts are unknown until you connect one.";
|
|
90
129
|
readonly sqliteCheckEnums: "SQLite has no native enum type — enums are synthesized from CHECK (col IN (…)) constraints.";
|
|
91
130
|
readonly sqliteNoComments: "SQLite has no column comments — use the schema remap editor to add labels.";
|
|
92
|
-
readonly importNoRowCounts: "Schema files carry no row counts — the tables list shows — instead of made-up numbers.";
|
|
93
|
-
readonly importNoLiveHealth: "No live database connection — health checks and schema-drift detection are unavailable for this source.";
|
|
94
|
-
readonly rowsUnavailable: "Schema files have no live database — row counts are unknown until you connect one.";
|
|
95
|
-
readonly rowsRunAnalyze: "No estimate yet — run ANALYZE on the database for row counts.";
|
|
96
|
-
readonly rowsNoEstimate: "The engine reported no estimate for this table.";
|
|
97
|
-
readonly rowsApproximate: "Storage-engine estimate — can drift up to ±40% on InnoDB.";
|
|
98
131
|
};
|
|
99
|
-
readonly
|
|
100
|
-
readonly
|
|
101
|
-
readonly
|
|
102
|
-
readonly
|
|
103
|
-
readonly
|
|
104
|
-
readonly
|
|
105
|
-
readonly
|
|
106
|
-
readonly
|
|
107
|
-
readonly
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
readonly
|
|
112
|
-
readonly
|
|
113
|
-
readonly
|
|
114
|
-
readonly
|
|
115
|
-
readonly
|
|
116
|
-
readonly networkFailed: "Request failed — check your connection and retry.";
|
|
117
|
-
readonly ready: "Ready";
|
|
132
|
+
readonly design: {
|
|
133
|
+
readonly adopt: {
|
|
134
|
+
readonly action: "Add to my app";
|
|
135
|
+
readonly done: "{created} pages created, {updated} updated, {unchanged} already current.";
|
|
136
|
+
readonly everything: "This connection already shows every table, so nothing had to be included.";
|
|
137
|
+
readonly forbidden: "Your role can change the schema but not generate pages. Ask an admin with connection management to add these tables to the app.";
|
|
138
|
+
readonly grants: "No role is given access automatically — grant it in Settings → Roles.";
|
|
139
|
+
readonly offer: "A new table does nothing until it has a page. Add {tables} to your app?";
|
|
140
|
+
readonly skippedEdited: "Left untouched because you edited them: {pages}.";
|
|
141
|
+
};
|
|
142
|
+
readonly apply: "Apply";
|
|
143
|
+
readonly ceiling: {
|
|
144
|
+
readonly authorise: "Authorise this rewrite";
|
|
145
|
+
readonly body: "{table} holds over {rows} rows — past the size Adminium rewrites on its own. Only a Super Admin can authorise this, and the table will be locked for as long as the rewrite takes.";
|
|
146
|
+
readonly hint: "Type the table name exactly as it appears above.";
|
|
147
|
+
readonly notYours: "{table} holds over {rows} rows. Only a Super Admin can authorise a rewrite this large — ask one, or run the change during a maintenance window with your own tooling.";
|
|
148
|
+
readonly prompt: "Type {table} again to authorise the rewrite";
|
|
118
149
|
};
|
|
119
|
-
readonly
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
readonly
|
|
127
|
-
readonly
|
|
128
|
-
readonly
|
|
129
|
-
readonly
|
|
130
|
-
readonly
|
|
131
|
-
readonly
|
|
132
|
-
readonly
|
|
150
|
+
readonly column: {
|
|
151
|
+
readonly help: "What do these settings mean?";
|
|
152
|
+
readonly key: "Key";
|
|
153
|
+
readonly length: "Length";
|
|
154
|
+
readonly link: "Links to";
|
|
155
|
+
readonly linkHelp: "Connect this to a row in another table.";
|
|
156
|
+
readonly linkTypeNote: "The type is matched to the linked table’s key.";
|
|
157
|
+
readonly name: "Name";
|
|
158
|
+
readonly namePlaceholder: "client_id";
|
|
159
|
+
readonly noLink: "Nothing";
|
|
160
|
+
readonly onDelete: "If the linked row is deleted";
|
|
161
|
+
readonly precision: "Precision";
|
|
162
|
+
readonly primaryKey: "Primary key";
|
|
163
|
+
readonly remove: "Remove {name}";
|
|
164
|
+
readonly required: "Required";
|
|
165
|
+
readonly type: "Type";
|
|
166
|
+
readonly unique: "Unique";
|
|
133
167
|
};
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
readonly emptyFilter: "No tables match your filter.";
|
|
142
|
-
readonly pii: "PII";
|
|
143
|
-
readonly highVolume: "high volume";
|
|
144
|
-
readonly highVolumeNote: "Tables over 100,000 rows start unchecked — ops tables rarely belong in a dashboard.";
|
|
145
|
-
readonly joinHidden: "{count} join/system tables are pre-hidden — they still power many-to-many relations.";
|
|
146
|
-
};
|
|
147
|
-
readonly hub: {
|
|
148
|
-
readonly title: "Data connections";
|
|
149
|
-
readonly subtitle: "{healthy, number} of {total, plural, one {# connection} other {# connections}} healthy";
|
|
150
|
-
readonly connectNew: "New connection";
|
|
151
|
-
readonly stats: {
|
|
152
|
-
readonly connections: "Connections";
|
|
153
|
-
readonly healthy: "Healthy";
|
|
154
|
-
readonly tables: "Tables included";
|
|
155
|
-
readonly pages: "Generated pages";
|
|
168
|
+
readonly confirm: {
|
|
169
|
+
readonly body: "This change discards data or removes an object. Adminium cannot undo it.";
|
|
170
|
+
readonly cancel: "Cancel";
|
|
171
|
+
readonly close: "Close";
|
|
172
|
+
readonly confirm: "Apply changes";
|
|
173
|
+
readonly prompt: "Type {word} to confirm";
|
|
174
|
+
readonly title: "Apply a destructive change";
|
|
156
175
|
};
|
|
157
|
-
readonly
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
readonly
|
|
162
|
-
readonly
|
|
176
|
+
readonly designer: "Table designer";
|
|
177
|
+
readonly discard: "Discard changes";
|
|
178
|
+
readonly dropping: "Marked for deletion";
|
|
179
|
+
readonly empty: {
|
|
180
|
+
readonly body: "Create a table, or pick one to edit. Nothing reaches your database until you review the statements and apply them.";
|
|
181
|
+
readonly title: "Design your schema";
|
|
182
|
+
};
|
|
183
|
+
readonly error: {
|
|
184
|
+
readonly atColumn: "Column {n}, {field}";
|
|
185
|
+
readonly atTable: "Table {field}";
|
|
186
|
+
readonly empty: "A name is required.";
|
|
187
|
+
readonly identifier: "Use lowercase letters, numbers and underscores, starting with a letter.";
|
|
188
|
+
readonly tooLong: "Too long — {dialect} allows {max} characters.";
|
|
189
|
+
};
|
|
190
|
+
readonly existing: "Existing tables";
|
|
191
|
+
readonly hazard: {
|
|
192
|
+
readonly irreversible: "Cannot be undone";
|
|
193
|
+
readonly locking: "Holds a lock";
|
|
194
|
+
readonly lossy: "Discards data";
|
|
195
|
+
readonly refused: "Refused";
|
|
196
|
+
readonly rewrite: "Rewrites the table";
|
|
197
|
+
readonly safe: "Safe";
|
|
198
|
+
};
|
|
199
|
+
readonly help: {
|
|
200
|
+
readonly close: "Close";
|
|
201
|
+
readonly link: {
|
|
202
|
+
readonly example: "A reservation links to a client. Adminium then shows the client on the reservation, and the reservations on the client.";
|
|
203
|
+
readonly term: "Link to another table";
|
|
204
|
+
readonly what: "Connects this row to a row in another table, and asks the database to keep the connection honest — you cannot point at something that is not there.";
|
|
205
|
+
};
|
|
206
|
+
readonly primaryKey: {
|
|
207
|
+
readonly example: "Without a primary key, Adminium can list the rows but cannot edit or delete an individual one.";
|
|
208
|
+
readonly term: "Primary key";
|
|
209
|
+
readonly what: "The field that identifies each row — the one Adminium uses to tell one row from another. Every table should have exactly one, and it is almost always the \"id\" field created for you.";
|
|
210
|
+
};
|
|
211
|
+
readonly required: {
|
|
212
|
+
readonly example: "An order needs a customer, so that field is required. A delivery note is optional, so it is not.";
|
|
213
|
+
readonly term: "Required";
|
|
214
|
+
readonly what: "The field must be filled in. A row cannot be saved while it is empty.";
|
|
215
|
+
};
|
|
216
|
+
readonly subtitle: "Plain-language descriptions of each setting, and what it changes for the people using your app.";
|
|
217
|
+
readonly title: "What these fields mean";
|
|
218
|
+
readonly type: {
|
|
219
|
+
readonly example: "A phone number is usually text, not a number — numbers drop leading zeros.";
|
|
220
|
+
readonly term: "Type";
|
|
221
|
+
readonly what: "What kind of information the field holds — words, whole numbers, money, a date, a yes/no answer. Picking the right one is what lets Adminium show a date picker instead of a text box, and add up a column of money.";
|
|
222
|
+
};
|
|
223
|
+
readonly unique: {
|
|
224
|
+
readonly example: "Two customers should not share an email address — mark it unique and they cannot.";
|
|
225
|
+
readonly term: "Unique";
|
|
226
|
+
readonly what: "No two rows may hold the same value. The database refuses the second one.";
|
|
227
|
+
};
|
|
163
228
|
};
|
|
164
|
-
readonly
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
readonly
|
|
168
|
-
readonly
|
|
169
|
-
readonly
|
|
170
|
-
readonly lastIntrospected: "Last introspected";
|
|
171
|
-
readonly never: "Never";
|
|
172
|
-
readonly timezone: "Timezone";
|
|
173
|
-
readonly timezoneGuessed: "from this server";
|
|
174
|
-
readonly paused: "Adminium is not connecting to this database. Its pages load again when you resume it.";
|
|
175
|
-
readonly pausedSince: "Paused {when} — Adminium is not connecting to this database. Its pages load again when you resume it.";
|
|
229
|
+
readonly keepTable: "Keep {table}";
|
|
230
|
+
readonly newTable: "New table";
|
|
231
|
+
readonly onDelete: {
|
|
232
|
+
readonly cascade: "Delete this row too";
|
|
233
|
+
readonly restrict: "Prevent the deletion";
|
|
234
|
+
readonly setNull: "Leave this field empty";
|
|
176
235
|
};
|
|
177
|
-
readonly
|
|
178
|
-
|
|
179
|
-
readonly
|
|
180
|
-
readonly
|
|
181
|
-
readonly
|
|
182
|
-
readonly
|
|
183
|
-
readonly regional: "Regional settings";
|
|
184
|
-
readonly pause: "Pause";
|
|
185
|
-
readonly resume: "Resume";
|
|
186
|
-
readonly pausedHint: "This connection is paused — resume it to reach the database.";
|
|
187
|
-
readonly rename: "Rename";
|
|
236
|
+
readonly plan: "Review changes";
|
|
237
|
+
readonly result: {
|
|
238
|
+
readonly applied: "Applied. Adminium re-read your schema.";
|
|
239
|
+
readonly failed: "Nothing was applied — your database is unchanged. {error}";
|
|
240
|
+
readonly partial: "Partly applied: {done} of {total} steps ran. Applying the same changes again completes them.";
|
|
241
|
+
readonly repaired: "The rename was carried into {pages, plural, one {# page} other {# pages}}, {grants, plural, one {# role grant} other {# role grants}} and {overrides, plural, one {# schema override} other {# schema overrides}}.";
|
|
188
242
|
};
|
|
189
|
-
readonly
|
|
190
|
-
readonly
|
|
191
|
-
readonly
|
|
192
|
-
readonly
|
|
193
|
-
readonly
|
|
194
|
-
readonly
|
|
195
|
-
readonly guessedBody: "Adminium filled it in from the machine it runs on, not from anyone here. Save to confirm it, or pick the zone this business actually keeps.";
|
|
196
|
-
readonly timezonePlaceholder: "Region/City";
|
|
197
|
-
readonly currency: "Currency";
|
|
198
|
-
readonly currencyHelper: "Used to format money. Optional — leaving it unset affects formatting only.";
|
|
199
|
-
readonly currencyPlaceholder: "ISO-4217 code";
|
|
200
|
-
readonly notSet: "Not set";
|
|
201
|
-
readonly noMatch: "No matching zone";
|
|
202
|
-
readonly noMatchCurrency: "No matching currency";
|
|
203
|
-
readonly save: "Save";
|
|
204
|
-
readonly failed: "Regional settings could not be saved";
|
|
205
|
-
readonly saved: "Regional settings updated";
|
|
243
|
+
readonly review: {
|
|
244
|
+
readonly noChanges: "No schema changes yet.";
|
|
245
|
+
readonly pending: "Review your changes to see the exact statements Adminium will run.";
|
|
246
|
+
readonly steps: "Planned steps";
|
|
247
|
+
readonly superAdmin: "Super Admin";
|
|
248
|
+
readonly unfinished: "A previous apply on this connection never reported an outcome. Its schema may be part-way between two shapes — check the change history before applying more.";
|
|
206
249
|
};
|
|
207
|
-
readonly
|
|
208
|
-
|
|
209
|
-
readonly
|
|
250
|
+
readonly reviewPane: "Review";
|
|
251
|
+
readonly table: {
|
|
252
|
+
readonly addColumn: "Add column";
|
|
253
|
+
readonly columns: "Columns";
|
|
254
|
+
readonly drop: "Drop this table";
|
|
255
|
+
readonly dropHelp: "The table and every row in it are destroyed. You will see exactly what breaks before anything runs.";
|
|
256
|
+
readonly name: "Table name";
|
|
257
|
+
readonly nameHelp: "Lowercase letters, numbers and underscores.";
|
|
258
|
+
readonly namePlaceholder: "reservations";
|
|
259
|
+
readonly noKey: "This table has no primary key, so Adminium will treat it as read-only — rows can be listed but not edited.";
|
|
260
|
+
readonly renameHelp: "Changing this renames the table in your database.";
|
|
261
|
+
readonly uuidKeyUnavailable: "On this engine a key must be a generated integer: a database-generated uuid cannot be read back after an insert.";
|
|
262
|
+
};
|
|
263
|
+
readonly unnamed: "Name every table and column to review the changes.";
|
|
264
|
+
readonly unrepresentableDefaults: "These columns keep a database-generated default Adminium cannot edit here, and it is left as it is: {columns}";
|
|
265
|
+
};
|
|
266
|
+
readonly diagram: {
|
|
267
|
+
readonly ceiling: "Showing the {shown} most connected tables. {omitted} more are hidden — search to bring one in.";
|
|
268
|
+
readonly legend: {
|
|
269
|
+
readonly declared: "Foreign key";
|
|
270
|
+
readonly inferred: "Inferred";
|
|
271
|
+
readonly virtual: "Added in Adminium";
|
|
272
|
+
};
|
|
273
|
+
readonly legendLabel: "Legend";
|
|
274
|
+
readonly node: {
|
|
275
|
+
readonly foreignKey: "Foreign key";
|
|
276
|
+
readonly more: "+{count} more";
|
|
277
|
+
readonly primaryKey: "Primary key";
|
|
278
|
+
};
|
|
279
|
+
readonly outline: {
|
|
280
|
+
readonly intro: "{tables} tables and {relations} relations, as a list.";
|
|
281
|
+
readonly more: " and {count} more";
|
|
282
|
+
readonly referencedBy: "Referenced by: {list}";
|
|
283
|
+
readonly references: "References: {list}";
|
|
284
|
+
};
|
|
285
|
+
readonly saveLayout: "Save layout";
|
|
286
|
+
readonly search: "Find a table or column";
|
|
287
|
+
readonly showDiagram: "Show diagram";
|
|
288
|
+
readonly showList: "Show as list";
|
|
289
|
+
};
|
|
290
|
+
readonly documents: {
|
|
291
|
+
readonly cancel: "Cancel";
|
|
292
|
+
readonly connectionLabel: "Connection";
|
|
293
|
+
readonly delete: "Delete";
|
|
294
|
+
readonly delivery: {
|
|
295
|
+
readonly email: "Email it to";
|
|
296
|
+
readonly noEmail: "Nobody — keep it on the record";
|
|
297
|
+
readonly noEmailSlot: "This kind of document has no address field, so it cannot be emailed.";
|
|
298
|
+
readonly noSmtp: "This Adminium has no email server set up yet, so nothing can be sent. Set one up in Studio → Settings → Email.";
|
|
299
|
+
readonly stored: "Kept on the record, always.";
|
|
300
|
+
};
|
|
301
|
+
readonly disabled: "switched off";
|
|
302
|
+
readonly edit: "Edit";
|
|
303
|
+
readonly empty: "No mappings yet.";
|
|
304
|
+
readonly grants: {
|
|
305
|
+
readonly refused: "This mapping reads {tables}, which you may not read. Documents from it will fail for you.";
|
|
306
|
+
readonly title: "You cannot read all of this";
|
|
307
|
+
};
|
|
308
|
+
readonly intro: "A mapping says which columns of which table make one kind of document, what draws it, and where it goes.";
|
|
309
|
+
readonly name: "Name this mapping";
|
|
310
|
+
readonly newFrom: "New mapping for:";
|
|
311
|
+
readonly noProvider: "No installed add-on can draw documents yet. Install one from Add-ons, and the mappings you can make will appear here.";
|
|
312
|
+
readonly pickTable: "Choose a table…";
|
|
313
|
+
readonly prefix: "Number prefix";
|
|
314
|
+
readonly render: {
|
|
315
|
+
readonly failedRow: "It did not draw: {reason}";
|
|
316
|
+
readonly intro: "Draw one now, from a row you choose. Nothing is sent anywhere — it is kept on the record like any other.";
|
|
317
|
+
readonly noRows: "No rows to draw from yet.";
|
|
318
|
+
readonly open: "Open it";
|
|
319
|
+
readonly pending: "Drawing…";
|
|
320
|
+
readonly pick: "Draw this one";
|
|
321
|
+
readonly ready: "Drawn.";
|
|
322
|
+
readonly saveFirst: "Save the mapping first. A document is drawn from a saved one, so you can see what it makes before anybody else does.";
|
|
323
|
+
readonly search: "Search rows";
|
|
324
|
+
readonly slow: "No document has appeared yet. It may still be waiting its turn, or this installation may not be running background jobs — nothing draws until it does.";
|
|
325
|
+
readonly slowTitle: "Still nothing";
|
|
326
|
+
};
|
|
327
|
+
readonly save: "Save mapping";
|
|
328
|
+
readonly slot: {
|
|
329
|
+
readonly byDefault: "Filled by Adminium";
|
|
330
|
+
readonly lineColumnOf: "{column} of each line";
|
|
331
|
+
readonly lineColumns: "What fills each column of a line";
|
|
332
|
+
readonly looksLikeLines: "looks like lines";
|
|
333
|
+
readonly noChildren: "Nothing in your database points at this table, so there are no lines to draw. A document needs a child table with a foreign key back to this one.";
|
|
334
|
+
readonly noLines: "No lines";
|
|
335
|
+
readonly pii: "hidden data";
|
|
336
|
+
readonly typed: "A value I type";
|
|
337
|
+
readonly typedHint: "Entered here, not read from your data — every document from this mapping gets the same value.";
|
|
338
|
+
readonly typedValue: "Value for {slot}";
|
|
339
|
+
readonly unmapped: "Not filled";
|
|
210
340
|
};
|
|
211
|
-
readonly
|
|
212
|
-
readonly
|
|
213
|
-
readonly
|
|
214
|
-
readonly
|
|
215
|
-
readonly
|
|
341
|
+
readonly step: {
|
|
342
|
+
readonly delivery: "Where it goes";
|
|
343
|
+
readonly kind: "Kind";
|
|
344
|
+
readonly mapping: "What fills each field";
|
|
345
|
+
readonly mappingHelp: "Each field reads a column, or takes a value you type here.";
|
|
346
|
+
readonly render: "Try it on a row";
|
|
347
|
+
readonly table: "Connection and table";
|
|
348
|
+
readonly trigger: "What draws it";
|
|
349
|
+
};
|
|
350
|
+
readonly tableLabel: "Table";
|
|
351
|
+
readonly title: "Document mappings";
|
|
352
|
+
readonly trigger: {
|
|
353
|
+
readonly created: "When a row is added";
|
|
354
|
+
readonly manual: "Only when somebody asks";
|
|
355
|
+
readonly manualShort: "on request";
|
|
356
|
+
readonly note: "Rows added by an import or written straight into the database do not draw anything — only writes through Adminium do.";
|
|
357
|
+
readonly noteTitle: "What counts as a change";
|
|
358
|
+
readonly updated: "When a row changes";
|
|
359
|
+
};
|
|
360
|
+
readonly unbound: "Still to fill: {slots}";
|
|
361
|
+
};
|
|
362
|
+
readonly enrich: {
|
|
363
|
+
readonly byo: {
|
|
364
|
+
readonly cardDescription: "Copy a self-contained prompt into Claude Code, ChatGPT, anything — then paste the JSON back. No key needed, nothing leaves this machine automatically.";
|
|
365
|
+
readonly cardTitle: "Copy a prompt to my own AI tool";
|
|
366
|
+
readonly cardTitleRecommended: "Copy a prompt to my own AI tool — recommended";
|
|
367
|
+
readonly chunkTab: "Prompt {index}";
|
|
368
|
+
readonly chunkTabs: "Prompt chunks";
|
|
369
|
+
readonly chunkValid: "Chunk {index} validated";
|
|
370
|
+
readonly continueReview: "Continue to review";
|
|
371
|
+
readonly copyErrors: "Copy errors for your AI tool";
|
|
372
|
+
readonly copyErrorsDone: "Errors copied";
|
|
373
|
+
readonly copyErrorsHint: "Paste this back into your AI tool to get a corrected response.";
|
|
374
|
+
readonly copyPrompt: "Copy prompt";
|
|
375
|
+
readonly copyPromptDone: "Prompt copied";
|
|
376
|
+
readonly download: "Download .md";
|
|
377
|
+
readonly droppedItems: "{count} suggestions were dropped during validation — review shows the rest.";
|
|
378
|
+
readonly errorsTitle: "Validation found {count} issues";
|
|
379
|
+
readonly guidance: "Run this in any AI tool — Claude Code, ChatGPT, anything. Paste the JSON it returns below.";
|
|
380
|
+
readonly mergedBody: "Suggestions are ready to review against the heuristic baseline.";
|
|
381
|
+
readonly mergedTitle: "All {count} chunks validated and merged";
|
|
382
|
+
readonly mergedTitleSingle: "Response validated";
|
|
383
|
+
readonly pasteLabel: "Paste the JSON response";
|
|
384
|
+
readonly pastePlaceholder: "Paste the JSON response here…";
|
|
385
|
+
readonly pendingBody: "Paste the JSON response above and validate it to continue to review.";
|
|
386
|
+
readonly pendingBodyChunked: "Each chunk must validate before the suggestions merge. Paste and validate every prompt above.";
|
|
387
|
+
readonly pendingTitle: "Validate every prompt to continue";
|
|
388
|
+
readonly promptLabel: "Enrichment prompt";
|
|
389
|
+
readonly promptLabelN: "Enrichment prompt {index} of {total}";
|
|
390
|
+
readonly requestFailed: "Could not reach the server to validate — retry.";
|
|
391
|
+
readonly tokenChip: "≈ {tokens} tokens";
|
|
392
|
+
readonly valid: "Response validated";
|
|
393
|
+
readonly validate: "Validate";
|
|
394
|
+
readonly wholeDocument: "whole document";
|
|
216
395
|
};
|
|
217
|
-
readonly
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
readonly
|
|
396
|
+
readonly copied: "Copied";
|
|
397
|
+
readonly createFailed: "Could not build the enrichment prompt — retry.";
|
|
398
|
+
readonly createFailedTitle: "Could not start";
|
|
399
|
+
readonly direct: {
|
|
400
|
+
readonly back: "Back to options";
|
|
401
|
+
readonly building: "Building prompt…";
|
|
222
402
|
readonly cancel: "Cancel";
|
|
223
|
-
readonly
|
|
224
|
-
readonly
|
|
225
|
-
readonly
|
|
403
|
+
readonly continueReview: "Continue to review";
|
|
404
|
+
readonly done: "Enrichment complete — review the suggestions.";
|
|
405
|
+
readonly errorTitle: "Enrichment failed";
|
|
406
|
+
readonly failed: "The provider run failed. Check your AI settings and retry.";
|
|
407
|
+
readonly jobFailed: "The enrichment run did not finish.";
|
|
408
|
+
readonly logLabel: "Enrichment log";
|
|
409
|
+
readonly retry: "Retry";
|
|
410
|
+
readonly startFailed: "Could not start the run — retry.";
|
|
411
|
+
readonly subtitle: "Sending your schema to";
|
|
412
|
+
readonly title: "Enriching with AI";
|
|
226
413
|
};
|
|
227
|
-
readonly
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
414
|
+
readonly fileBody: "Schema-file sources have no snapshot to enrich yet. Connect a live database to use AI enrichment, or continue — the heuristic baseline still generates a complete app.";
|
|
415
|
+
readonly fileTitle: "AI enrichment needs a live database";
|
|
416
|
+
readonly generatePrompt: "Generate prompt";
|
|
417
|
+
readonly intentLabel: "How would you like to enrich?";
|
|
418
|
+
readonly localeLocked: "(required)";
|
|
419
|
+
readonly localesLegend: "Translate labels into";
|
|
420
|
+
readonly noSections: "Select at least one decision group to enrich.";
|
|
421
|
+
readonly provider: {
|
|
422
|
+
readonly configError: "Could not load the provider settings — set one up in Settings → AI, then come back to this step.";
|
|
423
|
+
readonly description: "Run enrichment now against your configured provider. You review every suggestion as a diff.";
|
|
424
|
+
readonly networkDisabled: "This Adminium has no outbound internet access, so it cannot reach a provider API. Use the copy-paste round-trip instead — same prompt, same review.";
|
|
425
|
+
readonly readyBody: "Pick “Use my AI provider” above to run enrichment on this connection now.";
|
|
426
|
+
readonly readyTitle: "AI provider configured";
|
|
427
|
+
readonly setUpHere: "Set up a provider here";
|
|
428
|
+
readonly setUpHide: "Hide provider setup";
|
|
429
|
+
readonly settingsHint: "Want to run it directly?";
|
|
430
|
+
readonly settingsLink: "Configure a provider in Settings → AI";
|
|
431
|
+
readonly title: "Use my AI provider";
|
|
432
|
+
readonly unconfigured: "No AI provider is configured yet — set one up below, or copy a prompt to your own AI tool.";
|
|
231
433
|
};
|
|
232
|
-
readonly
|
|
233
|
-
readonly
|
|
234
|
-
readonly
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
readonly
|
|
239
|
-
readonly
|
|
240
|
-
readonly
|
|
241
|
-
readonly
|
|
242
|
-
readonly
|
|
434
|
+
readonly providerFallback: "your AI provider";
|
|
435
|
+
readonly samplingHint: "Includes up to 20 real values per non-PII column in the prompt.";
|
|
436
|
+
readonly samplingPreviewBody: "Up to 20 most-common values per non-PII column, plus min/max for numeric and date columns. PII-flagged columns are never sampled. Everything else stays aggregate-only. Review the exact prompt before copying (BYO) — nothing is sent without your action.";
|
|
437
|
+
readonly samplingPreviewTitle: "What leaves this machine";
|
|
438
|
+
readonly samplingTitle: "Include sample values";
|
|
439
|
+
readonly section: {
|
|
440
|
+
readonly enums: "Enum semantics";
|
|
441
|
+
readonly groups: "Navigation groups";
|
|
442
|
+
readonly icons: "Icons";
|
|
443
|
+
readonly keys: "Key columns";
|
|
444
|
+
readonly labels: "Labels & descriptions";
|
|
445
|
+
readonly microcopy: "Micro-copy";
|
|
446
|
+
readonly pii: "PII & masking";
|
|
447
|
+
readonly relations: "Relations";
|
|
448
|
+
readonly templates: "Page templates";
|
|
449
|
+
readonly widgets: "Dashboard widgets";
|
|
243
450
|
};
|
|
244
|
-
readonly
|
|
245
|
-
|
|
246
|
-
readonly
|
|
247
|
-
readonly
|
|
248
|
-
readonly
|
|
249
|
-
readonly
|
|
250
|
-
readonly failed: "The connection could not be renamed";
|
|
451
|
+
readonly sectionsLegend: "What should the AI decide?";
|
|
452
|
+
readonly skip: {
|
|
453
|
+
readonly confirmBody: "The generated app will use the heuristic labels, groups and dashboards. Continue to generate — you can run AI enrichment any time from Settings → AI.";
|
|
454
|
+
readonly confirmTitle: "Continuing with heuristics";
|
|
455
|
+
readonly description: "Generate from the heuristic baseline. You can enrich later from Settings → AI — skipping is never penalized.";
|
|
456
|
+
readonly title: "Skip — use heuristics only";
|
|
251
457
|
};
|
|
458
|
+
readonly startOver: "Start over";
|
|
459
|
+
readonly startProvider: "Start enrichment";
|
|
460
|
+
readonly subtitle: "Optionally refine the generated labels, groups, enums and dashboards with an LLM. The heuristic baseline works without it — this only adds suggestions you review before anything applies.";
|
|
461
|
+
readonly title: "Enrich with AI";
|
|
252
462
|
};
|
|
253
|
-
readonly
|
|
254
|
-
readonly
|
|
255
|
-
readonly
|
|
256
|
-
readonly
|
|
257
|
-
readonly
|
|
258
|
-
readonly
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
readonly
|
|
263
|
-
readonly appName: {
|
|
264
|
-
readonly label: "Application name";
|
|
265
|
-
readonly helper: "Shown in the sidebar, browser title, and emails.";
|
|
266
|
-
readonly error: "Enter a name of at most 60 characters.";
|
|
267
|
-
};
|
|
268
|
-
readonly logo: {
|
|
269
|
-
readonly label: "Logo";
|
|
270
|
-
readonly drop: "Drop an image here";
|
|
271
|
-
readonly helper: "PNG, JPEG, WebP, GIF or SVG, up to 1 MB. Replaces the built-in mark everywhere.";
|
|
272
|
-
readonly upload: "Upload logo";
|
|
273
|
-
readonly replace: "Replace logo";
|
|
274
|
-
readonly remove: "Remove";
|
|
275
|
-
readonly uploaded: "Logo updated";
|
|
276
|
-
readonly removed: "Logo removed";
|
|
277
|
-
readonly tooLarge: "That image is larger than 1 MB.";
|
|
278
|
-
readonly badType: "Choose a PNG, JPEG, WebP, GIF or SVG image.";
|
|
279
|
-
readonly undo: "Undo";
|
|
280
|
-
};
|
|
281
|
-
readonly showVersion: {
|
|
282
|
-
readonly label: "Version in the sidebar";
|
|
283
|
-
readonly helper: "The build number beside the logo. Off hides which version you run.";
|
|
284
|
-
};
|
|
463
|
+
readonly generate: {
|
|
464
|
+
readonly errorTitle: "Generation failed";
|
|
465
|
+
readonly failed: "Generation failed — retry, or re-run introspection first.";
|
|
466
|
+
readonly fileBody: "Your schema parsed cleanly and the preview above is real. Generating a running app straight from a schema file (with placeholder rows) is not available yet — connect a live database to generate today.";
|
|
467
|
+
readonly fileTitle: "Schema file parsed — generation needs a live database";
|
|
468
|
+
readonly log: {
|
|
469
|
+
readonly classifying: "Classifying schema…";
|
|
470
|
+
readonly composing: "Composing templates…";
|
|
471
|
+
readonly done: "{pages} pages generated across {groups} nav groups";
|
|
472
|
+
readonly writing: "Writing pages…";
|
|
285
473
|
};
|
|
286
|
-
readonly
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
readonly
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
readonly
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
474
|
+
readonly logLabel: "Generation log";
|
|
475
|
+
readonly openApp: "Open your app";
|
|
476
|
+
readonly run: "Generate dashboard";
|
|
477
|
+
readonly subtitle: "One page per included table plus dashboards per domain — intent:";
|
|
478
|
+
readonly successBody: "{pages} pages across {groups} navigation groups — generated from your schema, editable in Studio.";
|
|
479
|
+
readonly successTitle: "Your dashboard is ready";
|
|
480
|
+
readonly title: "Generate your app";
|
|
481
|
+
};
|
|
482
|
+
readonly hostedApps: {
|
|
483
|
+
readonly domains: {
|
|
484
|
+
readonly add: "Attach a domain";
|
|
485
|
+
readonly hostLabel: "Host";
|
|
486
|
+
readonly instanceLabel: "Instance";
|
|
487
|
+
readonly instanceOwn: "The app's own";
|
|
488
|
+
readonly issuesTitle: "The domain map was refused";
|
|
489
|
+
readonly none: "No domains are attached.";
|
|
490
|
+
readonly remove: "Remove";
|
|
491
|
+
readonly save: "Save domains";
|
|
492
|
+
readonly savedBody: "Mappings take effect within a few seconds. A host only answers once its DNS and your proxy actually reach this instance.";
|
|
493
|
+
readonly savedTitle: "Saved";
|
|
494
|
+
readonly subtitle: "Point a domain’s DNS at your proxy, pass the Host header through to Adminium, and attach it here — that host then serves the surface instead of this dashboard. Certificates stay on your proxy.";
|
|
495
|
+
readonly surfaceLabel: "Surface";
|
|
496
|
+
readonly title: "Domains";
|
|
305
497
|
};
|
|
306
|
-
readonly
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
readonly
|
|
314
|
-
|
|
315
|
-
|
|
498
|
+
readonly emptyBody: "Point ADMINIUM_SURFACES_DIR at a directory of built surfaces — one folder per app and side, each with its index.html — and restart. They are then served under /apps/ and appear here.";
|
|
499
|
+
readonly emptyTitle: "No app surfaces are being served";
|
|
500
|
+
readonly error: "Something went wrong";
|
|
501
|
+
readonly instances: {
|
|
502
|
+
readonly add: "Add an instance";
|
|
503
|
+
readonly appLabel: "App";
|
|
504
|
+
readonly body: "Serve the same app over more than one database. Each instance is reachable at /apps/<app>/<segment>/<side>/ and reads only the connection you give it.";
|
|
505
|
+
readonly empty: "No extra instances.";
|
|
506
|
+
readonly failed: "Instances were not saved";
|
|
507
|
+
readonly readsLabel: "Reads";
|
|
508
|
+
readonly remove: "Remove";
|
|
509
|
+
readonly save: "Save instances";
|
|
510
|
+
readonly slugLabel: "URL segment";
|
|
511
|
+
readonly title: "Instances";
|
|
512
|
+
};
|
|
513
|
+
readonly subtitle: "The app surfaces this instance serves — where each one appears, and the domains pointed at them.";
|
|
514
|
+
readonly surfaces: {
|
|
515
|
+
readonly boundKey: "Serves key";
|
|
516
|
+
readonly connectionLabel: "Reads";
|
|
517
|
+
readonly connectionUnset: "Whichever is serving";
|
|
518
|
+
readonly customer: "Customer";
|
|
519
|
+
readonly mintLink: "Mint one under Public API";
|
|
520
|
+
readonly noKey: "No key bound — this surface cannot read data until one is minted for it.";
|
|
521
|
+
readonly noNav: "Internal placement unavailable — rebuild this surface with the current toolkit so it emits surface.json.";
|
|
522
|
+
readonly placementExternal: "External (own URL only)";
|
|
523
|
+
readonly placementInternal: "In the sidebar (blended)";
|
|
524
|
+
readonly placementLabel: "Placement";
|
|
525
|
+
readonly staff: "Staff";
|
|
526
|
+
readonly subtitle: "A staff surface can blend into this dashboard’s sidebar or stand on its own; a customer surface is public and reads through its bound key.";
|
|
527
|
+
readonly title: "Surfaces";
|
|
528
|
+
};
|
|
529
|
+
readonly title: "Hosted apps";
|
|
530
|
+
readonly install: {
|
|
531
|
+
readonly steps: {
|
|
532
|
+
readonly bundle: "Bundle";
|
|
533
|
+
readonly database: "Database";
|
|
534
|
+
readonly plan: "Schema plan";
|
|
535
|
+
readonly done: "Done";
|
|
316
536
|
};
|
|
317
|
-
readonly
|
|
318
|
-
|
|
319
|
-
|
|
537
|
+
readonly progress: "Install progress";
|
|
538
|
+
readonly failed: "Install failed";
|
|
539
|
+
readonly bundle: {
|
|
540
|
+
readonly title: "Upload the app bundle";
|
|
541
|
+
readonly hint: "The .tgz that `npm pack` produces for a built surface — it holds manifest.json and a staff/ or customer/ directory.";
|
|
542
|
+
readonly file: "Bundle file (.tgz)";
|
|
543
|
+
readonly fileHint: "Nothing is created until you confirm on the schema-plan step.";
|
|
544
|
+
readonly key: "App key";
|
|
545
|
+
readonly version: "Version";
|
|
546
|
+
readonly integrity: "Integrity (optional)";
|
|
547
|
+
readonly integrityHint: "Paste the sha512- value from `npm pack --json` to have the server check these exact bytes. Left empty, it is computed here.";
|
|
320
548
|
};
|
|
321
|
-
readonly
|
|
322
|
-
readonly
|
|
323
|
-
readonly
|
|
324
|
-
readonly
|
|
549
|
+
readonly database: {
|
|
550
|
+
readonly title: "Install into which database?";
|
|
551
|
+
readonly hint: "Pick a writable connection. This is where the tables will be created, and it is what the app reads afterwards.";
|
|
552
|
+
readonly tables: "Tables: {count}";
|
|
553
|
+
readonly readOnly: "Read-only";
|
|
554
|
+
readonly writable: "Writable";
|
|
555
|
+
readonly noWritable: "No writable connection";
|
|
556
|
+
readonly allReadOnly: "Every connection here uses a read-only role, so no app can create its tables. Connect one that can run DDL first.";
|
|
325
557
|
};
|
|
326
|
-
readonly
|
|
327
|
-
readonly
|
|
328
|
-
readonly
|
|
329
|
-
readonly
|
|
558
|
+
readonly plan: {
|
|
559
|
+
readonly title: "Review the schema plan";
|
|
560
|
+
readonly hint: "Exactly what will be created in your database. Nothing has been written yet.";
|
|
561
|
+
readonly refused: "This app cannot be installed here";
|
|
562
|
+
readonly create: "Create";
|
|
563
|
+
readonly reuse: "Reuse existing";
|
|
564
|
+
readonly toggleDdl: "Show the DDL preview";
|
|
565
|
+
readonly ddl: "DDL preview";
|
|
566
|
+
readonly ddlNote: "Illustrative. The server emits the exact statement for your engine, including foreign keys.";
|
|
567
|
+
readonly summary: "{created} created · {reused} reused";
|
|
330
568
|
};
|
|
331
|
-
readonly
|
|
332
|
-
readonly
|
|
333
|
-
readonly
|
|
569
|
+
readonly done: {
|
|
570
|
+
readonly title: "Installed";
|
|
571
|
+
readonly body: "{key} is being served now. Choose where its staff side appears below.";
|
|
572
|
+
readonly schema: "Tables created: {created} · reused: {reused}";
|
|
334
573
|
};
|
|
335
|
-
readonly
|
|
336
|
-
readonly
|
|
337
|
-
|
|
338
|
-
|
|
574
|
+
readonly cancel: "Cancel";
|
|
575
|
+
readonly back: "Back";
|
|
576
|
+
readonly upload: "Upload";
|
|
577
|
+
readonly continue: "Continue";
|
|
578
|
+
readonly confirm: "Install";
|
|
579
|
+
readonly finish: "Manage apps";
|
|
580
|
+
readonly staged: "Files unpacked: {files}";
|
|
581
|
+
readonly footerStep: "Step {n} of {total}";
|
|
582
|
+
readonly footerStepApp: "Step {n} of {total} · {app}";
|
|
583
|
+
readonly chosen: {
|
|
584
|
+
readonly title: "Install {app}";
|
|
585
|
+
readonly hint: "This app came with your build and is already on disk. Nothing is created until you confirm the schema plan.";
|
|
339
586
|
};
|
|
340
587
|
};
|
|
341
|
-
readonly
|
|
342
|
-
readonly title: "
|
|
343
|
-
readonly
|
|
344
|
-
readonly
|
|
345
|
-
readonly
|
|
346
|
-
readonly
|
|
347
|
-
readonly
|
|
348
|
-
readonly
|
|
349
|
-
readonly
|
|
350
|
-
readonly
|
|
351
|
-
readonly
|
|
588
|
+
readonly installed: {
|
|
589
|
+
readonly title: "Installed apps";
|
|
590
|
+
readonly install: "Install an app";
|
|
591
|
+
readonly emptyTitle: "No apps installed yet";
|
|
592
|
+
readonly emptyBody: "Upload a built surface bundle to install one. Apps installed here are served immediately — no restart, unlike a directory you point at.";
|
|
593
|
+
readonly uninstall: "Uninstall";
|
|
594
|
+
readonly confirmTitle: "Uninstall this app?";
|
|
595
|
+
readonly confirmBody: "Its surfaces stop being served and the bundle is deleted. Any tables it created in your database are left alone.";
|
|
596
|
+
readonly confirmPrompt: "Type {key} to confirm";
|
|
597
|
+
readonly confirmCancel: "Cancel";
|
|
598
|
+
readonly confirmClose: "Close";
|
|
599
|
+
readonly stagedTitle: "Uploaded but not installed";
|
|
600
|
+
readonly stagedHint: "Discard one you decided against, or upload the same key again to replace it.";
|
|
601
|
+
readonly discard: "Discard";
|
|
602
|
+
readonly installedAt: "installed {when}";
|
|
352
603
|
};
|
|
353
|
-
readonly
|
|
354
|
-
readonly
|
|
355
|
-
readonly
|
|
356
|
-
readonly
|
|
604
|
+
readonly browse: {
|
|
605
|
+
readonly title: "Apps you can install";
|
|
606
|
+
readonly subtitle: "Ready-made apps that came with this build. Installing one creates the tables it needs and serves its screens — nothing happens until you confirm the plan.";
|
|
607
|
+
readonly search: "Search apps…";
|
|
608
|
+
readonly clear: "Clear the search";
|
|
609
|
+
readonly all: "All";
|
|
610
|
+
readonly by: "by {publisher}";
|
|
611
|
+
readonly install: "Install";
|
|
612
|
+
readonly installed: "Installed";
|
|
613
|
+
readonly noMatch: "No apps match that search";
|
|
614
|
+
readonly noMatchBody: "Try a different term, or another category.";
|
|
615
|
+
readonly emptyTitle: "No apps are available to install";
|
|
616
|
+
readonly emptyBody: "Apps shipped with this build appear here. Point ADMINIUM_BUNDLED_APPS at a directory of app bundles, or upload one yourself.";
|
|
617
|
+
readonly unreadable: "This package’s manifest could not be read. It cannot be installed — discard it below.";
|
|
357
618
|
};
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
readonly
|
|
362
|
-
readonly
|
|
363
|
-
readonly
|
|
619
|
+
};
|
|
620
|
+
readonly hub: {
|
|
621
|
+
readonly action: {
|
|
622
|
+
readonly delete: "Delete";
|
|
623
|
+
readonly pause: "Pause";
|
|
624
|
+
readonly pausedHint: "This connection is paused — resume it to reach the database.";
|
|
625
|
+
readonly regional: "Regional settings";
|
|
626
|
+
readonly reintrospect: "Re-introspect";
|
|
627
|
+
readonly reintrospectFile: "Schema-file sources have no live database — re-upload the file instead.";
|
|
628
|
+
readonly remap: "Remap schema";
|
|
629
|
+
readonly rename: "Rename";
|
|
630
|
+
readonly resume: "Resume";
|
|
631
|
+
readonly test: "Test";
|
|
364
632
|
};
|
|
365
|
-
readonly
|
|
366
|
-
readonly
|
|
367
|
-
readonly
|
|
368
|
-
readonly
|
|
633
|
+
readonly card: {
|
|
634
|
+
readonly lastIntrospected: "Last introspected";
|
|
635
|
+
readonly latency: "Latency";
|
|
636
|
+
readonly latencyMs: "{latency, number} ms";
|
|
637
|
+
readonly never: "Never";
|
|
638
|
+
readonly pages: "Pages";
|
|
639
|
+
readonly paused: "Adminium is not connecting to this database. Its pages load again when you resume it.";
|
|
640
|
+
readonly pausedSince: "Paused {when} — Adminium is not connecting to this database. Its pages load again when you resume it.";
|
|
641
|
+
readonly readOnly: "Read-only";
|
|
642
|
+
readonly tables: "Tables";
|
|
643
|
+
readonly timezone: "Timezone";
|
|
644
|
+
readonly timezoneGuessed: "from this server";
|
|
369
645
|
};
|
|
370
|
-
readonly
|
|
371
|
-
|
|
372
|
-
readonly body: "
|
|
373
|
-
readonly
|
|
646
|
+
readonly connectNew: "New connection";
|
|
647
|
+
readonly delete: {
|
|
648
|
+
readonly body: "This deletes “{name}” and its generated pages. Your database itself is never touched.";
|
|
649
|
+
readonly cancel: "Cancel";
|
|
650
|
+
readonly close: "Close";
|
|
651
|
+
readonly confirm: "Delete connection";
|
|
652
|
+
readonly failed: "Could not delete the connection. Try again.";
|
|
653
|
+
readonly prompt: "Type {name} to confirm";
|
|
654
|
+
readonly success: "Connection “{name}” deleted";
|
|
655
|
+
readonly title: "Delete connection";
|
|
374
656
|
};
|
|
375
|
-
readonly
|
|
376
|
-
readonly
|
|
377
|
-
readonly
|
|
378
|
-
readonly
|
|
657
|
+
readonly empty: {
|
|
658
|
+
readonly body: "Connect a database and Adminium generates your admin panel from its schema.";
|
|
659
|
+
readonly cta: "Connect a database";
|
|
660
|
+
readonly title: "No data sources yet";
|
|
379
661
|
};
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
readonly save: "Save provider";
|
|
387
|
-
readonly test: "Test connection";
|
|
388
|
-
readonly testHintDirty: "Save your changes before testing.";
|
|
389
|
-
readonly testing: "Pinging the provider…";
|
|
390
|
-
readonly testError: "Test failed";
|
|
391
|
-
readonly testErrorBody: "Could not reach the provider. Check the key and base URL.";
|
|
392
|
-
readonly testOk: "Connected to {model} in {latency} ms";
|
|
393
|
-
readonly testUnknownModel: "the provider";
|
|
394
|
-
readonly provider: {
|
|
395
|
-
readonly heading: "AI provider";
|
|
396
|
-
readonly subtitle: "Choose how Adminium reaches a model to enrich your schema. Keys are stored encrypted and never shown again.";
|
|
397
|
-
readonly active: "Active";
|
|
398
|
-
readonly anthropic: {
|
|
399
|
-
readonly label: "Anthropic";
|
|
400
|
-
readonly desc: "Claude models via the Anthropic API.";
|
|
401
|
-
};
|
|
402
|
-
readonly openai: {
|
|
403
|
-
readonly label: "OpenAI";
|
|
404
|
-
readonly desc: "GPT models via the OpenAI API.";
|
|
405
|
-
};
|
|
406
|
-
readonly openaiCompatible: {
|
|
407
|
-
readonly label: "OpenAI-compatible";
|
|
408
|
-
readonly desc: "Any endpoint that speaks the OpenAI wire format — Groq, Together, vLLM, LM Studio.";
|
|
409
|
-
};
|
|
410
|
-
readonly ollama: {
|
|
411
|
-
readonly label: "Ollama (local)";
|
|
412
|
-
readonly desc: "Models running locally through Ollama — no key, no cloud.";
|
|
413
|
-
};
|
|
414
|
-
readonly requiresNetwork: "Requires internet & an API key";
|
|
415
|
-
readonly networkDisabledTitle: "Direct AI providers are turned off on this install";
|
|
416
|
-
readonly networkDisabledBody: "This Adminium is configured with no outbound internet access, so it cannot reach a provider API. Use the copy-paste round-trip below — it needs no key and no network.";
|
|
662
|
+
readonly hostedApps: "Hosted apps";
|
|
663
|
+
readonly introspect: {
|
|
664
|
+
readonly failed: "Introspection failed. Try again.";
|
|
665
|
+
readonly masksProposed: "{count, plural, one {# column} other {# columns}} proposed for masking — review in the remap editor.";
|
|
666
|
+
readonly noChanges: "Schema unchanged — no new snapshot.";
|
|
667
|
+
readonly updated: "Schema re-introspected";
|
|
417
668
|
};
|
|
418
|
-
readonly
|
|
419
|
-
readonly
|
|
669
|
+
readonly pause: {
|
|
670
|
+
readonly body: "Adminium stops opening any connection to “{name}”. Its {pages, plural, one {# page} other {# pages}}, scheduled reports and hosted apps stop loading data until you resume it.";
|
|
671
|
+
readonly confirm: "Pause connection";
|
|
672
|
+
readonly keeps: "Nothing is deleted — the connection, its schema and its {pages, plural, one {# page} other {# pages}} are all kept, and one click brings them back.";
|
|
673
|
+
readonly pauseFailed: "Could not pause the connection. Try again.";
|
|
674
|
+
readonly pausedToast: "Connection “{name}” paused";
|
|
675
|
+
readonly resumeFailed: "Could not resume the connection. Try again.";
|
|
676
|
+
readonly resumedToast: "Connection “{name}” resumed";
|
|
677
|
+
readonly title: "Pause this connection?";
|
|
420
678
|
};
|
|
421
|
-
readonly
|
|
422
|
-
readonly
|
|
423
|
-
readonly
|
|
424
|
-
readonly
|
|
425
|
-
readonly
|
|
426
|
-
readonly
|
|
427
|
-
readonly
|
|
428
|
-
readonly
|
|
429
|
-
readonly
|
|
430
|
-
readonly
|
|
431
|
-
readonly
|
|
432
|
-
readonly
|
|
433
|
-
readonly
|
|
434
|
-
readonly
|
|
435
|
-
readonly
|
|
436
|
-
readonly
|
|
437
|
-
readonly
|
|
438
|
-
readonly noKeyBody: "Ollama runs locally, so nothing leaves this machine.";
|
|
679
|
+
readonly regional: {
|
|
680
|
+
readonly currency: "Currency";
|
|
681
|
+
readonly currencyHelper: "Used to format money. Optional — leaving it unset affects formatting only.";
|
|
682
|
+
readonly currencyPlaceholder: "ISO-4217 code";
|
|
683
|
+
readonly failed: "Regional settings could not be saved";
|
|
684
|
+
readonly guessedBody: "Adminium filled it in from the machine it runs on, not from anyone here. Save to confirm it, or pick the zone this business actually keeps.";
|
|
685
|
+
readonly guessedTitle: "This zone came from the server";
|
|
686
|
+
readonly intro: "These describe the business this database belongs to, not the person reading it. Apps served from Adminium read them from here.";
|
|
687
|
+
readonly noMatch: "No matching zone";
|
|
688
|
+
readonly noMatchCurrency: "No matching currency";
|
|
689
|
+
readonly notSet: "Not set";
|
|
690
|
+
readonly save: "Save";
|
|
691
|
+
readonly saved: "Regional settings updated";
|
|
692
|
+
readonly timezone: "Timezone";
|
|
693
|
+
readonly timezoneHelper: "Dates and times render in this zone. Apps hosted by Adminium fall back to UTC without one, and say on screen that they are doing it.";
|
|
694
|
+
readonly timezonePlaceholder: "Region/City";
|
|
695
|
+
readonly title: "Regional settings";
|
|
439
696
|
};
|
|
440
|
-
readonly
|
|
441
|
-
readonly
|
|
442
|
-
readonly
|
|
443
|
-
readonly
|
|
444
|
-
readonly
|
|
445
|
-
readonly
|
|
446
|
-
readonly
|
|
447
|
-
readonly failed: "Failed";
|
|
448
|
-
readonly discarded: "Discarded";
|
|
697
|
+
readonly rename: {
|
|
698
|
+
readonly failed: "The connection could not be renamed";
|
|
699
|
+
readonly helper: "What this database is called throughout Adminium — the card, the sidebar group over its pages, and every picker that offers it. The database itself is not renamed.";
|
|
700
|
+
readonly label: "Name";
|
|
701
|
+
readonly save: "Rename";
|
|
702
|
+
readonly saved: "Connection renamed";
|
|
703
|
+
readonly title: "Rename connection";
|
|
449
704
|
};
|
|
450
|
-
readonly
|
|
451
|
-
readonly
|
|
452
|
-
readonly
|
|
453
|
-
readonly
|
|
454
|
-
readonly
|
|
455
|
-
readonly guarantee1: "The prompt carries only your schema and aggregate stats — never row data by default.";
|
|
456
|
-
readonly guarantee2: "No credentials, instance URL, or identifiers are embedded.";
|
|
457
|
-
readonly guarantee3: "BYO runs make zero network calls.";
|
|
458
|
-
readonly promptVersion: "Prompt {version}";
|
|
459
|
-
readonly schemaVersion: "Schema {version}";
|
|
460
|
-
readonly headingRecommended: "Use your own AI tool — no key needed";
|
|
461
|
-
readonly recommended: "Recommended";
|
|
705
|
+
readonly stats: {
|
|
706
|
+
readonly connections: "Connections";
|
|
707
|
+
readonly healthy: "Healthy";
|
|
708
|
+
readonly pages: "Generated pages";
|
|
709
|
+
readonly tables: "Tables included";
|
|
462
710
|
};
|
|
463
|
-
readonly
|
|
464
|
-
readonly
|
|
465
|
-
readonly
|
|
466
|
-
readonly
|
|
467
|
-
readonly
|
|
468
|
-
readonly
|
|
469
|
-
readonly colStatus: "Status";
|
|
470
|
-
readonly colChunks: "Chunks";
|
|
471
|
-
readonly openReview: "Open review for the run from {date}";
|
|
472
|
-
readonly connection: "Connection";
|
|
473
|
-
readonly empty: "No enrichment runs yet. Enrich a schema from the connect wizard to see history here.";
|
|
474
|
-
readonly errorTitle: "Could not load runs";
|
|
475
|
-
readonly errorBody: "Refresh the page to try again.";
|
|
476
|
-
readonly noConnections: "Connect a database first — enrichment runs are recorded per connection.";
|
|
477
|
-
readonly byo: "BYO";
|
|
478
|
-
readonly directPath: "Direct";
|
|
711
|
+
readonly status: {
|
|
712
|
+
readonly connected: "Connected";
|
|
713
|
+
readonly error: "Error";
|
|
714
|
+
readonly paused: "Paused";
|
|
715
|
+
readonly testing: "Testing…";
|
|
716
|
+
readonly unconfigured: "Draft";
|
|
479
717
|
};
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
readonly
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
readonly sectionsLegend: "What should the AI decide?";
|
|
486
|
-
readonly localesLegend: "Translate labels into";
|
|
487
|
-
readonly localeLocked: "(required)";
|
|
488
|
-
readonly samplingTitle: "Include sample values";
|
|
489
|
-
readonly samplingHint: "Includes up to 20 real values per non-PII column in the prompt.";
|
|
490
|
-
readonly samplingPreviewTitle: "What leaves this machine";
|
|
491
|
-
readonly samplingPreviewBody: "Up to 20 most-common values per non-PII column, plus min/max for numeric and date columns. PII-flagged columns are never sampled. Everything else stays aggregate-only. Review the exact prompt before copying (BYO) — nothing is sent without your action.";
|
|
492
|
-
readonly noSections: "Select at least one decision group to enrich.";
|
|
493
|
-
readonly generatePrompt: "Generate prompt";
|
|
494
|
-
readonly startProvider: "Start enrichment";
|
|
495
|
-
readonly startOver: "Start over";
|
|
496
|
-
readonly copied: "Copied";
|
|
497
|
-
readonly createFailed: "Could not build the enrichment prompt — retry.";
|
|
498
|
-
readonly createFailedTitle: "Could not start";
|
|
499
|
-
readonly providerFallback: "your AI provider";
|
|
500
|
-
readonly fileTitle: "AI enrichment needs a live database";
|
|
501
|
-
readonly fileBody: "Schema-file sources have no snapshot to enrich yet. Connect a live database to use AI enrichment, or continue — the heuristic baseline still generates a complete app.";
|
|
502
|
-
readonly section: {
|
|
503
|
-
readonly labels: "Labels & descriptions";
|
|
504
|
-
readonly groups: "Navigation groups";
|
|
505
|
-
readonly enums: "Enum semantics";
|
|
506
|
-
readonly relations: "Relations";
|
|
507
|
-
readonly keys: "Key columns";
|
|
508
|
-
readonly templates: "Page templates";
|
|
509
|
-
readonly widgets: "Dashboard widgets";
|
|
510
|
-
readonly pii: "PII & masking";
|
|
511
|
-
readonly icons: "Icons";
|
|
512
|
-
readonly microcopy: "Micro-copy";
|
|
718
|
+
readonly subtitle: "{healthy, number} of {total, plural, one {# connection} other {# connections}} healthy";
|
|
719
|
+
readonly subtitlePaused: "{healthy, number} of {total, plural, one {# connection} other {# connections}} healthy · {paused, number} paused";
|
|
720
|
+
readonly test: {
|
|
721
|
+
readonly failed: "Connection test failed";
|
|
722
|
+
readonly ok: "Connection healthy · {latency, number} ms";
|
|
513
723
|
};
|
|
514
|
-
readonly
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
readonly
|
|
519
|
-
readonly
|
|
520
|
-
readonly networkDisabled: "This Adminium has no outbound internet access, so it cannot reach a provider API. Use the copy-paste round-trip instead — same prompt, same review.";
|
|
724
|
+
readonly title: "Data connections";
|
|
725
|
+
};
|
|
726
|
+
readonly intent: {
|
|
727
|
+
readonly analytics: {
|
|
728
|
+
readonly description: "Dashboards, charts and read-only grids. No forms, no writes — every role capped at Viewer.";
|
|
729
|
+
readonly title: "Read-only analytics";
|
|
521
730
|
};
|
|
522
|
-
readonly
|
|
523
|
-
readonly
|
|
524
|
-
readonly
|
|
525
|
-
readonly guidance: "Run this in any AI tool — Claude Code, ChatGPT, anything. Paste the JSON it returns below.";
|
|
526
|
-
readonly promptLabel: "Enrichment prompt";
|
|
527
|
-
readonly promptLabelN: "Enrichment prompt {index} of {total}";
|
|
528
|
-
readonly tokenChip: "≈ {tokens} tokens";
|
|
529
|
-
readonly copyPrompt: "Copy prompt";
|
|
530
|
-
readonly copyPromptDone: "Prompt copied";
|
|
531
|
-
readonly download: "Download .md";
|
|
532
|
-
readonly chunkTabs: "Prompt chunks";
|
|
533
|
-
readonly chunkTab: "Prompt {index}";
|
|
534
|
-
readonly chunkValid: "Chunk {index} validated";
|
|
535
|
-
readonly pasteLabel: "Paste the JSON response";
|
|
536
|
-
readonly pastePlaceholder: "Paste the JSON response here…";
|
|
537
|
-
readonly validate: "Validate";
|
|
538
|
-
readonly valid: "Response validated";
|
|
539
|
-
readonly mergedTitle: "All {count} chunks validated and merged";
|
|
540
|
-
readonly mergedTitleSingle: "Response validated";
|
|
541
|
-
readonly mergedBody: "Suggestions are ready to review against the heuristic baseline.";
|
|
542
|
-
readonly errorsTitle: "Validation found {count} issues";
|
|
543
|
-
readonly copyErrors: "Copy errors for your AI tool";
|
|
544
|
-
readonly copyErrorsDone: "Errors copied";
|
|
545
|
-
readonly copyErrorsHint: "Paste this back into your AI tool to get a corrected response.";
|
|
546
|
-
readonly droppedItems: "{count} suggestions were dropped during validation — review shows the rest.";
|
|
547
|
-
readonly pendingTitle: "Validate every prompt to continue";
|
|
548
|
-
readonly pendingBody: "Paste the JSON response above and validate it to continue to review.";
|
|
549
|
-
readonly pendingBodyChunked: "Each chunk must validate before the suggestions merge. Paste and validate every prompt above.";
|
|
550
|
-
readonly requestFailed: "Could not reach the server to validate — retry.";
|
|
551
|
-
readonly continueReview: "Continue to review";
|
|
552
|
-
readonly wholeDocument: "whole document";
|
|
553
|
-
readonly cardTitleRecommended: "Copy a prompt to my own AI tool — recommended";
|
|
731
|
+
readonly crud: {
|
|
732
|
+
readonly description: "One editing page per table plus search and import/export — a minimal home, no dashboards.";
|
|
733
|
+
readonly title: "CRUD tables";
|
|
554
734
|
};
|
|
555
|
-
readonly
|
|
556
|
-
readonly
|
|
557
|
-
readonly
|
|
558
|
-
readonly building: "Building prompt…";
|
|
559
|
-
readonly logLabel: "Enrichment log";
|
|
560
|
-
readonly cancel: "Cancel";
|
|
561
|
-
readonly back: "Back to options";
|
|
562
|
-
readonly retry: "Retry";
|
|
563
|
-
readonly done: "Enrichment complete — review the suggestions.";
|
|
564
|
-
readonly continueReview: "Continue to review";
|
|
565
|
-
readonly failed: "The provider run failed. Check your AI settings and retry.";
|
|
566
|
-
readonly jobFailed: "The enrichment run did not finish.";
|
|
567
|
-
readonly startFailed: "Could not start the run — retry.";
|
|
568
|
-
readonly errorTitle: "Enrichment failed";
|
|
735
|
+
readonly fullAdmin: {
|
|
736
|
+
readonly description: "Dashboards, CRUD pages, search, imports and exports — everything your schema supports.";
|
|
737
|
+
readonly title: "Full admin panel";
|
|
569
738
|
};
|
|
570
|
-
readonly
|
|
571
|
-
|
|
572
|
-
readonly description: "
|
|
573
|
-
readonly
|
|
574
|
-
readonly confirmBody: "The generated app will use the heuristic labels, groups and dashboards. Continue to generate — you can run AI enrichment any time from Settings → AI.";
|
|
739
|
+
readonly subtitle: "The intent shapes which pages get generated. You can change it later — changing it proposes a regeneration, never a silent rewrite.";
|
|
740
|
+
readonly support: {
|
|
741
|
+
readonly description: "Queues, ticket and customer detail pages first. Deletes off by default. (Queue templates land in M7 — the v1 page set matches Full admin.)";
|
|
742
|
+
readonly title: "Support console";
|
|
575
743
|
};
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
readonly unavailableTitle: "Review screen not available";
|
|
579
|
-
readonly unavailableBody: "This build does not include the enrichment review screen yet (06-T14). It lands with the diff-and-apply flow.";
|
|
744
|
+
readonly title: "What do you need?";
|
|
745
|
+
readonly trust: "We read your schema only — never your row data during setup.";
|
|
580
746
|
};
|
|
581
747
|
readonly llmRuns: {
|
|
582
748
|
readonly review: {
|
|
583
|
-
readonly
|
|
584
|
-
readonly
|
|
585
|
-
readonly
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
readonly
|
|
589
|
-
readonly
|
|
590
|
-
readonly
|
|
591
|
-
readonly
|
|
592
|
-
readonly new: "{n} new";
|
|
593
|
-
readonly rejects: "{n} rejects";
|
|
594
|
-
readonly countsAria: "Suggestion counts";
|
|
749
|
+
readonly applied: {
|
|
750
|
+
readonly body: "The accepted suggestions below are read-only.";
|
|
751
|
+
readonly title: "This run has been applied";
|
|
752
|
+
};
|
|
753
|
+
readonly apply: {
|
|
754
|
+
readonly confirm: "Apply changes";
|
|
755
|
+
readonly empty: "Nothing selected to apply.";
|
|
756
|
+
readonly subtitle: "These changes are written in one transaction and can be undone.";
|
|
757
|
+
readonly title: "Apply {n} suggestions";
|
|
595
758
|
};
|
|
759
|
+
readonly applyFailed: "Nothing was applied";
|
|
760
|
+
readonly applyUnknown: "The server did not say why.";
|
|
596
761
|
readonly bulk: {
|
|
597
|
-
readonly thresholdLabel: "Confidence threshold";
|
|
598
|
-
readonly thresholdAria: "Accept-all confidence threshold";
|
|
599
762
|
readonly acceptAll: "Accept all ≥ {pct}%";
|
|
600
763
|
readonly clear: "Clear selection";
|
|
764
|
+
readonly thresholdAria: "Accept-all confidence threshold";
|
|
765
|
+
readonly thresholdLabel: "Confidence threshold";
|
|
601
766
|
};
|
|
602
|
-
readonly
|
|
603
|
-
readonly
|
|
604
|
-
readonly
|
|
767
|
+
readonly cat: {
|
|
768
|
+
readonly copy: "micro-copy";
|
|
769
|
+
readonly dashboard: "dashboard";
|
|
770
|
+
readonly enum: "enum";
|
|
771
|
+
readonly group: "navigation group";
|
|
772
|
+
readonly key: "key columns";
|
|
773
|
+
readonly label: "label";
|
|
774
|
+
readonly pii: "PII";
|
|
775
|
+
readonly relation: "relation";
|
|
776
|
+
readonly template: "page template";
|
|
777
|
+
readonly widget: "widget";
|
|
778
|
+
};
|
|
779
|
+
readonly empty: {
|
|
780
|
+
readonly body: "This run produced no suggestions to review.";
|
|
781
|
+
readonly title: "No suggestions";
|
|
782
|
+
};
|
|
783
|
+
readonly error: {
|
|
784
|
+
readonly title: "Could not load this run";
|
|
785
|
+
};
|
|
786
|
+
readonly footer: {
|
|
787
|
+
readonly apply: "Apply {n} accepted suggestions";
|
|
788
|
+
readonly count: "{n} suggestions selected";
|
|
789
|
+
readonly failed: "Apply failed";
|
|
605
790
|
};
|
|
606
791
|
readonly group: {
|
|
792
|
+
readonly dashboards: "Dashboards & widgets";
|
|
793
|
+
readonly enums: "Enum semantics";
|
|
794
|
+
readonly icons: "Icons";
|
|
795
|
+
readonly keys: "Key columns";
|
|
607
796
|
readonly labels: "Labels & translations";
|
|
797
|
+
readonly microcopy: "Micro-copy";
|
|
608
798
|
readonly navigation: "Navigation & domains";
|
|
609
|
-
readonly
|
|
799
|
+
readonly pii: "PII & masking";
|
|
610
800
|
readonly relations: "Relations";
|
|
611
|
-
readonly keys: "Key columns";
|
|
612
801
|
readonly templates: "Page templates";
|
|
613
|
-
readonly dashboards: "Dashboards & widgets";
|
|
614
|
-
readonly pii: "PII & masking";
|
|
615
|
-
readonly icons: "Icons";
|
|
616
|
-
readonly microcopy: "Micro-copy";
|
|
617
802
|
};
|
|
618
|
-
readonly
|
|
619
|
-
readonly agree: "
|
|
620
|
-
readonly
|
|
621
|
-
readonly
|
|
622
|
-
readonly
|
|
623
|
-
readonly
|
|
624
|
-
readonly
|
|
803
|
+
readonly header: {
|
|
804
|
+
readonly agree: "{n} agree";
|
|
805
|
+
readonly byo: "BYO";
|
|
806
|
+
readonly conflict: "{n} conflict";
|
|
807
|
+
readonly countsAria: "Suggestion counts";
|
|
808
|
+
readonly model: "Model";
|
|
809
|
+
readonly new: "{n} new";
|
|
810
|
+
readonly pathByo: "Copy-paste";
|
|
811
|
+
readonly pathDirect: "Direct API";
|
|
812
|
+
readonly rejects: "{n} rejects";
|
|
813
|
+
readonly snapshot: "Snapshot";
|
|
814
|
+
readonly title: "Review AI suggestions";
|
|
815
|
+
};
|
|
816
|
+
readonly notReady: {
|
|
817
|
+
readonly body: "A run must be validated before its suggestions can be reviewed. Generate or paste a response first.";
|
|
818
|
+
readonly title: "This run has no suggestions to review yet";
|
|
625
819
|
};
|
|
626
820
|
readonly row: {
|
|
627
821
|
readonly acceptAria: "Accept {noun} suggestion for {target}";
|
|
822
|
+
readonly confidenceAria: "Confidence {pct}%";
|
|
823
|
+
readonly hideTranslations: "Hide translations";
|
|
628
824
|
readonly keptEdited: "kept — edited by you";
|
|
825
|
+
readonly noAi: "No AI suggestion";
|
|
629
826
|
readonly rejectsCallout: "The AI rejects a heuristic decision — confirm before accepting.";
|
|
630
827
|
readonly showTranslations: "Show translations";
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
readonly
|
|
828
|
+
};
|
|
829
|
+
readonly section: {
|
|
830
|
+
readonly acceptedCount: "{n} accepted";
|
|
831
|
+
readonly selectAllAria: "Select all in {group}";
|
|
832
|
+
};
|
|
833
|
+
readonly status: {
|
|
834
|
+
readonly agree: "Agrees";
|
|
835
|
+
readonly conflict: "Conflict";
|
|
836
|
+
readonly heuristicOnly: "Heuristic only";
|
|
837
|
+
readonly locked: "Locked";
|
|
838
|
+
readonly new: "New";
|
|
839
|
+
readonly rejects: "Rejects heuristic";
|
|
840
|
+
};
|
|
841
|
+
readonly toast: {
|
|
842
|
+
readonly applied: "Applied {n} suggestions";
|
|
843
|
+
readonly appliedPartial: "Applied {n} suggestions (some skipped)";
|
|
844
|
+
readonly applyFailed: "Could not apply suggestions";
|
|
845
|
+
readonly undoFailed: "Could not undo this change";
|
|
634
846
|
};
|
|
635
847
|
readonly value: {
|
|
636
|
-
readonly none: "No value";
|
|
637
848
|
readonly absent: "None";
|
|
638
849
|
readonly dash: "—";
|
|
850
|
+
readonly description: "Description";
|
|
639
851
|
readonly display: "Display";
|
|
852
|
+
readonly enumCategory: "Category";
|
|
853
|
+
readonly enumWorkflow: "Workflow";
|
|
854
|
+
readonly guidance: "Empty-state guidance";
|
|
855
|
+
readonly headline: "Empty-state headline";
|
|
640
856
|
readonly key: "Key";
|
|
857
|
+
readonly label: "Label";
|
|
858
|
+
readonly none: "No value";
|
|
859
|
+
readonly notPii: "Not PII";
|
|
641
860
|
readonly rank: "rank {n}";
|
|
642
861
|
readonly span: "span {n}";
|
|
862
|
+
readonly subtitle: "Page subtitle";
|
|
643
863
|
readonly tableCount: "{n} tables";
|
|
644
864
|
readonly widgetCount: "{n} widgets";
|
|
645
|
-
readonly enumWorkflow: "Workflow";
|
|
646
|
-
readonly enumCategory: "Category";
|
|
647
|
-
readonly notPii: "Not PII";
|
|
648
|
-
readonly label: "Label";
|
|
649
|
-
readonly description: "Description";
|
|
650
|
-
readonly subtitle: "Page subtitle";
|
|
651
|
-
readonly headline: "Empty-state headline";
|
|
652
|
-
readonly guidance: "Empty-state guidance";
|
|
653
865
|
};
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
866
|
+
};
|
|
867
|
+
};
|
|
868
|
+
readonly meta: {
|
|
869
|
+
readonly move: {
|
|
870
|
+
readonly copying: "Moving Adminium’s tables…";
|
|
871
|
+
readonly 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.";
|
|
872
|
+
readonly failed: "Could not move Adminium’s tables — retry.";
|
|
873
|
+
readonly restarting: "Restarting…";
|
|
874
|
+
readonly restartingBody: "The copy is done. Adminium is restarting onto the new database — this page will continue by itself in a few seconds.";
|
|
875
|
+
readonly 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.";
|
|
876
|
+
readonly title: "Moving Adminium’s tables";
|
|
877
|
+
};
|
|
878
|
+
readonly sameDb: {
|
|
879
|
+
readonly description: "adminium_* tables are created beside your source tables. Simplest setup — needs a role with write and CREATE TABLE privileges.";
|
|
880
|
+
readonly disabledFile: "A schema file has no live database — choose a separate database for Adminium’s own tables.";
|
|
881
|
+
readonly disabledNoDdl: "This role cannot run DDL — Adminium migrations need CREATE TABLE. Choose a separate database for Adminium’s own tables.";
|
|
882
|
+
readonly disabledReadOnly: "Your role is read-only — Adminium never writes to this database. Choose a separate database for Adminium’s own tables.";
|
|
883
|
+
readonly title: "Same database";
|
|
884
|
+
};
|
|
885
|
+
readonly separate: {
|
|
886
|
+
readonly description: "Adminium keeps its tables in a different database. Your source stays untouched — required for read-only sources.";
|
|
887
|
+
readonly dsn: "Meta database connection string";
|
|
888
|
+
readonly errorTitle: "Meta store not compatible";
|
|
889
|
+
readonly helper: "Needs write + DDL privileges — Adminium runs its own migrations there.";
|
|
890
|
+
readonly insufficient: "This role cannot host the meta store — Adminium needs write and CREATE TABLE privileges there.";
|
|
891
|
+
readonly ok: "Compatible — write ✓ · DDL ✓";
|
|
892
|
+
readonly test: "Test connection";
|
|
893
|
+
readonly title: "Separate database";
|
|
894
|
+
};
|
|
895
|
+
readonly subtitle: "Pages, roles, audit log and settings live in adminium_-prefixed tables — never mixed into your data.";
|
|
896
|
+
readonly testFailed: "Connection failed.";
|
|
897
|
+
readonly title: "Where should Adminium keep its own tables?";
|
|
898
|
+
readonly v1Note: {
|
|
899
|
+
readonly 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).";
|
|
900
|
+
readonly title: "About this install";
|
|
901
|
+
};
|
|
902
|
+
readonly willMove: {
|
|
903
|
+
readonly 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.";
|
|
904
|
+
readonly title: "This will move Adminium’s tables";
|
|
905
|
+
};
|
|
906
|
+
};
|
|
907
|
+
readonly pages: {
|
|
908
|
+
readonly action: {
|
|
909
|
+
readonly delete: "Delete page";
|
|
910
|
+
readonly duplicate: "Duplicate";
|
|
911
|
+
readonly edit: "Edit page";
|
|
912
|
+
readonly hide: "Hide from sidebar";
|
|
913
|
+
readonly show: "Show in sidebar";
|
|
914
|
+
};
|
|
915
|
+
readonly attachments: {
|
|
916
|
+
readonly accept: "Accepted file types";
|
|
917
|
+
readonly acceptHint: "Choosing none accepts everything this workspace allows. A choice here can only narrow that list, never widen it.";
|
|
918
|
+
readonly column: {
|
|
919
|
+
readonly adoptHint: "This table already has that column, so nothing is created — it is used as it is.";
|
|
920
|
+
readonly bound: "Files are stored in this table’s {column} column.";
|
|
921
|
+
readonly boundHint: "Turning attachments off later unbinds this page. The column and the files in it are left alone.";
|
|
922
|
+
readonly confirm: "Run it";
|
|
923
|
+
readonly create: "Create the column";
|
|
924
|
+
readonly createHint: "Adminium adds one text column to this table. You will see the exact statement before anything runs.";
|
|
925
|
+
readonly createdHint: "The column exists now. Save this page to finish wiring it up.";
|
|
926
|
+
readonly failed: "That did not work";
|
|
927
|
+
readonly invalid: "A column name must start with a letter and use only lowercase letters, digits and underscores.";
|
|
928
|
+
readonly label: "Column that holds the files";
|
|
929
|
+
readonly required: "Give the column a name.";
|
|
930
|
+
readonly tooLong: "That name is too long for a column.";
|
|
931
|
+
readonly use: "Use this column";
|
|
932
|
+
readonly wrongType: "This table already has a column with that name, and it cannot hold a file reference. Pick another name.";
|
|
659
933
|
};
|
|
660
|
-
readonly
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
934
|
+
readonly destination: "Where the files go";
|
|
935
|
+
readonly destinationDefault: "The default destination";
|
|
936
|
+
readonly destinationHint: "Leave this on the default unless this table’s files belong somewhere else.";
|
|
937
|
+
readonly destinationIsDefault: "{name} (the default)";
|
|
938
|
+
readonly destinationLocal: "This server’s disk";
|
|
939
|
+
readonly enable: "Allow attachments on this table’s records";
|
|
940
|
+
readonly enableHint: "Files are linked on Adminium’s side, so this table needs no new column — it works on a read-only connection, and on a table you would rather not alter.";
|
|
941
|
+
readonly enableHintColumn: "Files are stored in one column on this table, so they appear in the New and Edit dialogs as well as on each record.";
|
|
942
|
+
readonly enableHintSidecar: "Files are linked on Adminium’s side instead. They appear on each record’s page, not in the New dialog.";
|
|
943
|
+
readonly maxBytes: "Largest file (MB)";
|
|
944
|
+
readonly maxBytesHint: "Leave empty to follow the workspace limit. A number here can only lower it.";
|
|
945
|
+
readonly maxCount: "Most files per record";
|
|
946
|
+
readonly maxCountHint: "Leave empty to accept as many as a record needs.";
|
|
947
|
+
readonly sidecar: {
|
|
948
|
+
readonly noPrivilege: "This connection's role cannot alter tables, so Adminium cannot add a column to it.";
|
|
949
|
+
readonly readOnlyIntent: "This connection is set up for read-only analytics, so Adminium cannot add a column to it.";
|
|
950
|
+
readonly readOnlyRole: "This connection signs in with a read-only role, so Adminium cannot add a column to it.";
|
|
951
|
+
readonly schemaFile: "This connection was created from a schema file, so Adminium cannot add a column to it.";
|
|
664
952
|
};
|
|
665
|
-
readonly
|
|
666
|
-
readonly
|
|
667
|
-
readonly
|
|
668
|
-
readonly applyFailed: "Could not apply suggestions";
|
|
669
|
-
readonly undoFailed: "Could not undo this change";
|
|
953
|
+
readonly type: {
|
|
954
|
+
readonly office: "Office documents";
|
|
955
|
+
readonly text: "Plain text";
|
|
670
956
|
};
|
|
671
|
-
|
|
672
|
-
|
|
957
|
+
};
|
|
958
|
+
readonly columns: {
|
|
959
|
+
readonly addFromLinked: "From linked tables";
|
|
960
|
+
readonly addFromTable: "From {table}";
|
|
961
|
+
readonly addLinkedFrom: "Tables that link here";
|
|
962
|
+
readonly addLinkedFromHelp: "Count the rows that point at each record, or add up one of their numbers.";
|
|
963
|
+
readonly addLinkedHelp: "Show a value from the table a link column points to.";
|
|
964
|
+
readonly addNoMatches: "No columns match “{query}”.";
|
|
965
|
+
readonly addOpen: "Add column";
|
|
966
|
+
readonly addSearch: "Search columns…";
|
|
967
|
+
readonly addTitle: "Add a column";
|
|
968
|
+
readonly addVia: "via {column}";
|
|
969
|
+
readonly avatar: "Avatar";
|
|
970
|
+
readonly avatarToggle: "Show a monogram beside {name}";
|
|
971
|
+
readonly countBadge: "Count";
|
|
972
|
+
readonly dragHandle: "Reorder {name}";
|
|
973
|
+
readonly empty: "No columns yet — add them below.";
|
|
974
|
+
readonly file: {
|
|
975
|
+
readonly acceptHelp: "Leave every type off to accept whatever this workspace accepts. Choosing types can only narrow that list — a column can never accept a type the workspace refuses.";
|
|
976
|
+
readonly acceptLabel: "Accepted types";
|
|
977
|
+
readonly badge: "File";
|
|
978
|
+
readonly destinationDefault: "The default destination";
|
|
979
|
+
readonly destinationHelp: "Where the bytes uploaded through this column are kept.";
|
|
980
|
+
readonly destinationLabel: "Destination";
|
|
981
|
+
readonly inlineHelp: "Only images are drawn in the cell. Everything else stays a chip with its name and size, however this is set.";
|
|
982
|
+
readonly inlineLabel: "Show it in the table";
|
|
983
|
+
readonly maxCountHelp: "Leave empty to accept as many as a record needs.";
|
|
984
|
+
readonly maxCountLabel: "Most files per record";
|
|
985
|
+
readonly maxCountToggle: "Most files on one {name}";
|
|
986
|
+
readonly maxHelp: "Leave empty to use the workspace limit. A column can only ask for less.";
|
|
987
|
+
readonly maxLabel: "Largest file (MB)";
|
|
988
|
+
readonly maxToggle: "Largest file accepted by {name}, in MB";
|
|
989
|
+
readonly multipleHelp: "The column stores a list of files instead of one. Existing single values keep working — they read as a list of one.";
|
|
990
|
+
readonly multipleLabel: "Hold more than one file";
|
|
991
|
+
readonly ref: {
|
|
992
|
+
readonly id: "Adminium's file id";
|
|
993
|
+
readonly key: "The key in the destination";
|
|
994
|
+
readonly url: "A link to the file";
|
|
995
|
+
};
|
|
996
|
+
readonly refHelp: "What is written into this column when a file is uploaded. Values already stored keep working — this only changes the next one.";
|
|
997
|
+
readonly refLabel: "Stored value";
|
|
998
|
+
readonly refTooNarrow: "This column is too short to hold that value. Pick one it can hold, or widen the column in the database.";
|
|
999
|
+
readonly refWidth: "{shape} — needs {needs} characters, this column holds {holds}";
|
|
1000
|
+
readonly switch: "File";
|
|
1001
|
+
readonly switchToggle: "{name} stores a file";
|
|
1002
|
+
readonly type: {
|
|
1003
|
+
readonly csv: "CSV";
|
|
1004
|
+
readonly gif: "GIF";
|
|
1005
|
+
readonly heic: "HEIC";
|
|
1006
|
+
readonly jpeg: "JPEG";
|
|
1007
|
+
readonly json: "JSON";
|
|
1008
|
+
readonly markdown: "Markdown";
|
|
1009
|
+
readonly mp3: "MP3 audio";
|
|
1010
|
+
readonly mp4: "MP4 video";
|
|
1011
|
+
readonly office: "Office documents";
|
|
1012
|
+
readonly ogg: "Ogg";
|
|
1013
|
+
readonly pdf: "PDF";
|
|
1014
|
+
readonly png: "PNG";
|
|
1015
|
+
readonly svg: "SVG";
|
|
1016
|
+
readonly text: "Plain text";
|
|
1017
|
+
readonly wav: "WAV audio";
|
|
1018
|
+
readonly webm: "WebM";
|
|
1019
|
+
readonly webp: "WebP";
|
|
1020
|
+
readonly zip: "ZIP";
|
|
1021
|
+
};
|
|
673
1022
|
};
|
|
674
|
-
readonly
|
|
675
|
-
readonly
|
|
676
|
-
readonly
|
|
1023
|
+
readonly fold: {
|
|
1024
|
+
readonly avg: "Average";
|
|
1025
|
+
readonly max: "Max";
|
|
1026
|
+
readonly min: "Min";
|
|
1027
|
+
readonly sum: "Sum";
|
|
677
1028
|
};
|
|
678
|
-
readonly
|
|
679
|
-
|
|
680
|
-
|
|
1029
|
+
readonly foldAdd: "Add";
|
|
1030
|
+
readonly foldLabel: "Aggregate";
|
|
1031
|
+
readonly followColumn: "Follow {name}";
|
|
1032
|
+
readonly header: "Header for {name}";
|
|
1033
|
+
readonly help: "Drag to reorder columns, rename their headers, and choose which are shown in the table.";
|
|
1034
|
+
readonly lookupBack: "Back";
|
|
1035
|
+
readonly lookupBadge: "Linked";
|
|
1036
|
+
readonly lookupBroken: "That link no longer resolves";
|
|
1037
|
+
readonly lookupBrokenBody: "The schema changed while you were browsing. Start the link again.";
|
|
1038
|
+
readonly lookupBrowse: "Pick what to show from {table}";
|
|
1039
|
+
readonly mask: "Mask";
|
|
1040
|
+
readonly maskHelp: "Mask hides a value behind a reveal control for readers allowed to see it. Whether the data leaves the database at all is set on the connection, not here.";
|
|
1041
|
+
readonly maskToggle: "Hide {name} behind a reveal control";
|
|
1042
|
+
readonly masked: "Masked";
|
|
1043
|
+
readonly none: {
|
|
1044
|
+
readonly body: "Columns are read from the table when the page is generated. Bind this page to a table and regenerate to fill them in.";
|
|
1045
|
+
readonly title: "This page has no columns yet";
|
|
681
1046
|
};
|
|
682
|
-
readonly
|
|
683
|
-
|
|
684
|
-
|
|
1047
|
+
readonly pk: "Key";
|
|
1048
|
+
readonly remove: "Remove {name}";
|
|
1049
|
+
readonly schemaUnavailable: "Database columns could not be listed, so columns cannot be added back here.";
|
|
1050
|
+
readonly shown: "Shown";
|
|
1051
|
+
readonly toggle: "Show {name} in the table";
|
|
1052
|
+
};
|
|
1053
|
+
readonly create: {
|
|
1054
|
+
readonly failed: "The page could not be created";
|
|
1055
|
+
readonly submit: "Create page";
|
|
1056
|
+
readonly subtitle: "Pick what this page shows and how it looks.";
|
|
1057
|
+
readonly title: "New page";
|
|
1058
|
+
};
|
|
1059
|
+
readonly createButton: "New page";
|
|
1060
|
+
readonly delete: {
|
|
1061
|
+
readonly body: "This cannot be undone. Saved views and personal layouts on this page are deleted for everyone.";
|
|
1062
|
+
readonly 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.";
|
|
1063
|
+
readonly confirm: "Delete page";
|
|
1064
|
+
readonly prompt: "Type {slug} to confirm";
|
|
1065
|
+
readonly title: "Delete this page?";
|
|
1066
|
+
};
|
|
1067
|
+
readonly derived: {
|
|
1068
|
+
readonly add: "Add column";
|
|
1069
|
+
readonly atLeast: "is at least";
|
|
1070
|
+
readonly cancel: "Cancel";
|
|
1071
|
+
readonly emptyBody: "Summarize a linked table in the Columns card first — the rules here are built from those numbers.";
|
|
1072
|
+
readonly emptyTitle: "No computed numbers yet";
|
|
1073
|
+
readonly fieldBadge: "Computed";
|
|
1074
|
+
readonly foldBadge: "Fold";
|
|
1075
|
+
readonly help: "Work out numbers from the summaries above and this record’s own columns. They are calculated when the page loads and cannot be sorted.";
|
|
1076
|
+
readonly label: "Column header";
|
|
1077
|
+
readonly minus: "minus";
|
|
1078
|
+
readonly numberHelp: "Numbers are plain decimals — 500 or 12.50, never 1,000 or 5e3.";
|
|
1079
|
+
readonly operandA: "Number";
|
|
1080
|
+
readonly operandB: "Number";
|
|
1081
|
+
readonly operator: "Operator";
|
|
1082
|
+
readonly otherwise: "otherwise";
|
|
1083
|
+
readonly percentOf: "per cent from this record";
|
|
1084
|
+
readonly plus: "plus";
|
|
1085
|
+
readonly preset: {
|
|
1086
|
+
readonly combine: "Add or subtract two numbers";
|
|
1087
|
+
readonly percent: "Percentage of a number";
|
|
1088
|
+
readonly rule: "Rule with a threshold";
|
|
685
1089
|
};
|
|
686
|
-
readonly
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
1090
|
+
readonly previewHelp: "Sample values, calculated by the same code the page uses.";
|
|
1091
|
+
readonly previewTitle: "Preview";
|
|
1092
|
+
readonly remove: "Remove {name}";
|
|
1093
|
+
readonly thenShow: "then show";
|
|
1094
|
+
};
|
|
1095
|
+
readonly duplicate: {
|
|
1096
|
+
readonly failed: "The page could not be duplicated";
|
|
1097
|
+
readonly submit: "Duplicate";
|
|
1098
|
+
readonly title: "Duplicate page";
|
|
1099
|
+
};
|
|
1100
|
+
readonly editor: {
|
|
1101
|
+
readonly appearance: "Appearance";
|
|
1102
|
+
readonly attachments: "Attachments";
|
|
1103
|
+
readonly columns: "Columns";
|
|
1104
|
+
readonly contentInvalid: "This page’s configuration is not readable";
|
|
1105
|
+
readonly contentInvalidBody: "It was written by a newer version, or it is malformed. Regenerate the page or delete it.";
|
|
1106
|
+
readonly contentUnavailable: "Page contents could not be loaded";
|
|
1107
|
+
readonly contentUnavailableBody: "The details above can still be saved.";
|
|
1108
|
+
readonly data: "Data";
|
|
1109
|
+
readonly derived: "Derived numbers";
|
|
1110
|
+
readonly details: "Details";
|
|
1111
|
+
readonly generated: {
|
|
1112
|
+
readonly body: "Your changes survive regeneration. Deleting only lasts until the next run recreates it.";
|
|
1113
|
+
readonly title: "This page was generated from your schema";
|
|
697
1114
|
};
|
|
1115
|
+
readonly itemsPending: "Save the change above first — the contents are rebuilt from it.";
|
|
1116
|
+
readonly missing: "That page no longer exists";
|
|
1117
|
+
readonly missingBody: "It may have been deleted, or removed by a regeneration run.";
|
|
1118
|
+
readonly notBindable: "This template is not bound to one table";
|
|
1119
|
+
readonly notBindableBody: "Its contents are built widget by widget instead. Open the page and use Edit to add them.";
|
|
1120
|
+
readonly openPage: "Open page";
|
|
1121
|
+
readonly recompose: "This page will be rebuilt";
|
|
1122
|
+
readonly recomposeBody: "Saving rebuilds the contents. Column and widget edits here are lost.";
|
|
1123
|
+
readonly save: "Save changes";
|
|
1124
|
+
readonly saveFailed: "Changes could not be saved";
|
|
1125
|
+
readonly schemaFailed: "Tables could not be listed";
|
|
1126
|
+
readonly schemaFailedBody: "This connection may not have been analysed yet. Run introspection from Studio → Data connections.";
|
|
1127
|
+
readonly title: "Edit page";
|
|
698
1128
|
};
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
readonly
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
readonly
|
|
713
|
-
readonly
|
|
714
|
-
readonly
|
|
715
|
-
readonly
|
|
716
|
-
readonly
|
|
717
|
-
readonly
|
|
718
|
-
readonly
|
|
1129
|
+
readonly empty: {
|
|
1130
|
+
readonly body: "Connect a database to generate pages automatically, or create one by hand.";
|
|
1131
|
+
readonly title: "No pages yet";
|
|
1132
|
+
};
|
|
1133
|
+
readonly field: {
|
|
1134
|
+
readonly connection: "Data source";
|
|
1135
|
+
readonly connectionNone: "None";
|
|
1136
|
+
readonly group: "Sidebar group";
|
|
1137
|
+
readonly groupHint: "Which section of the sidebar it appears in.";
|
|
1138
|
+
readonly icon: "Icon";
|
|
1139
|
+
readonly iconHint: "Shown beside the page name in the sidebar.";
|
|
1140
|
+
readonly iconPick: "Choose the page icon";
|
|
1141
|
+
readonly newRowLabel: "Add button";
|
|
1142
|
+
readonly newRowLabelHint: "What the button that adds a record says. Leave empty to use the default, which is translated.";
|
|
1143
|
+
readonly padding: "Page padding";
|
|
1144
|
+
readonly slug: "Page address";
|
|
1145
|
+
readonly slugHint: "Lowercase letters, numbers and dashes. Just the last part — the rest of the address is added for you.";
|
|
1146
|
+
readonly slugTaken: "Another page already uses this address.";
|
|
1147
|
+
readonly slugWarning: "Changing the address breaks existing links and bookmarks to this page.";
|
|
1148
|
+
readonly table: "Table";
|
|
1149
|
+
readonly tableCreateHint: "The table this page reads. You can bind it later.";
|
|
1150
|
+
readonly tableNeedsConnection: "Pick a data source first.";
|
|
1151
|
+
readonly tableNone: "Not bound";
|
|
1152
|
+
readonly template: "Template";
|
|
1153
|
+
readonly templateHint: "Decides what the page can hold. You can change it later.";
|
|
1154
|
+
readonly title: "Title";
|
|
1155
|
+
readonly titleHint: "Shown in the sidebar and the page header.";
|
|
1156
|
+
readonly visible: "Show in sidebar";
|
|
1157
|
+
readonly visibleHint: "A hidden page stays reachable at its URL for anyone who has the link.";
|
|
1158
|
+
readonly width: "Content width";
|
|
1159
|
+
readonly widthHint: "How wide the page’s content column may grow on a large screen.";
|
|
1160
|
+
};
|
|
1161
|
+
readonly icon: {
|
|
1162
|
+
readonly noMatches: "No icons match that search.";
|
|
1163
|
+
readonly none: "Choose an icon";
|
|
1164
|
+
readonly search: "Search icons";
|
|
1165
|
+
};
|
|
1166
|
+
readonly list: {
|
|
1167
|
+
readonly count: "{count, plural, one {# page} other {# pages}}";
|
|
1168
|
+
readonly title: "Pages";
|
|
1169
|
+
};
|
|
1170
|
+
readonly loadFailed: {
|
|
1171
|
+
readonly body: "Managing pages needs the “Manage pages” permission. Ask an administrator to grant it to one of your roles.";
|
|
1172
|
+
readonly title: "Pages could not be loaded";
|
|
1173
|
+
};
|
|
1174
|
+
readonly origin: {
|
|
1175
|
+
readonly generated: "Generated";
|
|
1176
|
+
readonly llm: "Assistant";
|
|
1177
|
+
readonly manifest: "Add-on";
|
|
1178
|
+
readonly system: "System";
|
|
1179
|
+
readonly user: "Custom";
|
|
719
1180
|
};
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
readonly
|
|
726
|
-
readonly
|
|
727
|
-
readonly disabledReadOnly: "Your role is read-only — Adminium never writes to this database. Choose a separate database for Adminium’s own tables.";
|
|
728
|
-
readonly disabledNoDdl: "This role cannot run DDL — Adminium migrations need CREATE TABLE. Choose a separate database for Adminium’s own tables.";
|
|
729
|
-
readonly disabledFile: "A schema file has no live database — choose a separate database for Adminium’s own tables.";
|
|
1181
|
+
readonly padding: {
|
|
1182
|
+
readonly custom: "Custom…";
|
|
1183
|
+
readonly default: "Default for this template";
|
|
1184
|
+
readonly none: "None";
|
|
1185
|
+
readonly standard: "Standard (28 × 24)";
|
|
1186
|
+
readonly x: "Sides (px)";
|
|
1187
|
+
readonly y: "Top and bottom (px)";
|
|
730
1188
|
};
|
|
731
|
-
readonly
|
|
732
|
-
readonly
|
|
733
|
-
readonly
|
|
734
|
-
readonly dsn: "Meta database connection string";
|
|
735
|
-
readonly helper: "Needs write + DDL privileges — Adminium runs its own migrations there.";
|
|
736
|
-
readonly test: "Test connection";
|
|
737
|
-
readonly ok: "Compatible — write ✓ · DDL ✓";
|
|
738
|
-
readonly insufficient: "This role cannot host the meta store — Adminium needs write and CREATE TABLE privileges there.";
|
|
739
|
-
readonly errorTitle: "Meta store not compatible";
|
|
1189
|
+
readonly preview: {
|
|
1190
|
+
readonly note: "An illustration of the layout, not your data.";
|
|
1191
|
+
readonly untitled: "Untitled page";
|
|
740
1192
|
};
|
|
741
|
-
readonly
|
|
742
|
-
|
|
743
|
-
readonly title: "About this install";
|
|
744
|
-
readonly 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).";
|
|
1193
|
+
readonly row: {
|
|
1194
|
+
readonly menu: "Actions for {title}";
|
|
745
1195
|
};
|
|
746
|
-
readonly
|
|
747
|
-
readonly
|
|
748
|
-
readonly
|
|
749
|
-
readonly
|
|
750
|
-
readonly
|
|
751
|
-
readonly
|
|
752
|
-
readonly
|
|
753
|
-
readonly
|
|
1196
|
+
readonly sidebar: {
|
|
1197
|
+
readonly discard: "Discard";
|
|
1198
|
+
readonly emptyGroup: "No pages in this group.";
|
|
1199
|
+
readonly help: "Reorder pages within a group, or move one to another group. Changes apply to every user.";
|
|
1200
|
+
readonly moveDown: "Move {title} down";
|
|
1201
|
+
readonly moveTo: "Move {title} to a group";
|
|
1202
|
+
readonly moveUp: "Move {title} up";
|
|
1203
|
+
readonly save: "Save order";
|
|
1204
|
+
readonly saveFailed: "The new order could not be saved";
|
|
1205
|
+
readonly ungrouped: {
|
|
1206
|
+
readonly body: "These pages work at their URL but appear nowhere in the sidebar. Open each one and pick a group.";
|
|
1207
|
+
readonly title: "Some pages are in no sidebar group";
|
|
1208
|
+
};
|
|
754
1209
|
};
|
|
755
|
-
readonly
|
|
756
|
-
readonly
|
|
757
|
-
readonly
|
|
1210
|
+
readonly status: {
|
|
1211
|
+
readonly hidden: "Hidden";
|
|
1212
|
+
readonly live: "Live";
|
|
1213
|
+
};
|
|
1214
|
+
readonly subtitle: "Add, edit and organise the pages of your app, and the order they appear in the sidebar.";
|
|
1215
|
+
readonly tab: {
|
|
1216
|
+
readonly pages: "All pages";
|
|
1217
|
+
readonly sidebar: "Sidebar order";
|
|
1218
|
+
};
|
|
1219
|
+
readonly title: "Pages";
|
|
1220
|
+
readonly width: {
|
|
1221
|
+
readonly content: "Content (900px)";
|
|
1222
|
+
readonly dash: "Dashboard (1320px)";
|
|
1223
|
+
readonly default: "Default for this template";
|
|
1224
|
+
readonly full: "Full width (no limit)";
|
|
1225
|
+
readonly narrow: "Narrow (720px)";
|
|
1226
|
+
readonly page: "Page (1080px)";
|
|
1227
|
+
readonly wide: "Wide (1800px)";
|
|
758
1228
|
};
|
|
759
1229
|
};
|
|
760
|
-
readonly
|
|
761
|
-
readonly
|
|
762
|
-
readonly
|
|
763
|
-
readonly
|
|
764
|
-
readonly
|
|
765
|
-
readonly
|
|
766
|
-
readonly
|
|
1230
|
+
readonly publicApi: {
|
|
1231
|
+
readonly cancel: "Cancel";
|
|
1232
|
+
readonly close: "Close";
|
|
1233
|
+
readonly error: "Something went wrong";
|
|
1234
|
+
readonly keys: {
|
|
1235
|
+
readonly appHint: "The app’s customer surface then serves this key itself — rotating it needs no rebuild.";
|
|
1236
|
+
readonly appLabel: "Bind to a hosted app surface (optional)";
|
|
1237
|
+
readonly appNone: "Not bound";
|
|
1238
|
+
readonly create: "Create key";
|
|
1239
|
+
readonly emptyBody: "Create a scope first, then mint a key for it.";
|
|
1240
|
+
readonly emptyTitle: "No keys yet";
|
|
1241
|
+
readonly formLabel: "Create a key";
|
|
1242
|
+
readonly nameLabel: "Name";
|
|
1243
|
+
readonly reveal: "Show key";
|
|
1244
|
+
readonly revoke: "Revoke";
|
|
1245
|
+
readonly rotate: "Rotate";
|
|
1246
|
+
readonly scopeIsAuthBody: "A key can reach exactly what its scope lists and nothing else. It does not use roles or table permissions, and it cannot read anything through the rest of the API.";
|
|
1247
|
+
readonly scopeIsAuthTitle: "The scope is the only permission";
|
|
1248
|
+
readonly scopeLabel: "Scope";
|
|
1249
|
+
readonly scopePlaceholder: "Choose a scope";
|
|
1250
|
+
readonly subtitle: "These go in your page’s JavaScript, so anyone can read them. That is expected — a key can only ever do what its scope allows.";
|
|
1251
|
+
readonly title: "Keys";
|
|
767
1252
|
};
|
|
768
|
-
readonly
|
|
769
|
-
readonly
|
|
770
|
-
readonly
|
|
1253
|
+
readonly notRegistered: {
|
|
1254
|
+
readonly body: "Set ADMINIUM_PUBLIC_API_ORIGINS to the exact origins allowed to call it, then restart. Until then these routes are not served at all.";
|
|
1255
|
+
readonly title: "Not enabled on this server";
|
|
771
1256
|
};
|
|
772
|
-
readonly
|
|
773
|
-
readonly
|
|
774
|
-
readonly description: "One editing page per table plus search and import/export — a minimal home, no dashboards.";
|
|
1257
|
+
readonly origins: {
|
|
1258
|
+
readonly label: "Origins allowed to call it";
|
|
775
1259
|
};
|
|
776
|
-
readonly
|
|
777
|
-
readonly
|
|
778
|
-
readonly
|
|
1260
|
+
readonly scopes: {
|
|
1261
|
+
readonly connectionLabel: "Connection ID";
|
|
1262
|
+
readonly create: "Create scope";
|
|
1263
|
+
readonly delete: "Delete";
|
|
1264
|
+
readonly deleteBody: "Any page using a key bound to this scope stops loading data. Keys are not deleted — revoke them first if that is what you meant.";
|
|
1265
|
+
readonly deleteConfirm: "Delete scope";
|
|
1266
|
+
readonly deletePrompt: "Type the scope name to confirm";
|
|
1267
|
+
readonly deleteTitle: "Delete this scope";
|
|
1268
|
+
readonly documentHint: "Compiled against your schema when you save. Every column a caller can reach is listed here and nowhere else. A default may be '{'\"$generate\": \"uuid\"'}' or '{'\"$generate\": \"now\"'}' — the server fills those in on create, so a visitor can add a row without choosing its id.";
|
|
1269
|
+
readonly documentLabel: "Scope document";
|
|
1270
|
+
readonly emptyBody: "Create one below. It is checked against your live schema before it is saved.";
|
|
1271
|
+
readonly emptyTitle: "No scopes yet";
|
|
1272
|
+
readonly formLabel: "Create a scope";
|
|
1273
|
+
readonly issuesTitle: "This scope did not compile";
|
|
1274
|
+
readonly keyCount: "{count, plural, =0 {no keys} one {# key} other {# keys}}";
|
|
1275
|
+
readonly nameLabel: "Name";
|
|
1276
|
+
readonly subtitle: "A scope is the whole of what a key may reach — the tables, the exact columns, and a filter the caller can narrow but never remove.";
|
|
1277
|
+
readonly title: "Scopes";
|
|
779
1278
|
};
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
readonly subtitle: "
|
|
784
|
-
readonly
|
|
785
|
-
readonly
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
readonly classifying: "Classifying schema…";
|
|
789
|
-
readonly composing: "Composing templates…";
|
|
790
|
-
readonly writing: "Writing pages…";
|
|
791
|
-
readonly done: "{pages} pages generated across {groups} nav groups";
|
|
1279
|
+
readonly status: {
|
|
1280
|
+
readonly heading: "Status";
|
|
1281
|
+
};
|
|
1282
|
+
readonly subtitle: "Let your own customer- or staff-facing pages read this database, through a scope you define.";
|
|
1283
|
+
readonly title: "Public API";
|
|
1284
|
+
readonly toggle: {
|
|
1285
|
+
readonly hint: "Turning this off stops every public request immediately. Nothing is deleted — keys, scopes and data all survive.";
|
|
1286
|
+
readonly label: "Serve the public API";
|
|
792
1287
|
};
|
|
793
|
-
readonly successTitle: "Your dashboard is ready";
|
|
794
|
-
readonly successBody: "{pages} pages across {groups} navigation groups — generated from your schema, editable in Studio.";
|
|
795
|
-
readonly errorTitle: "Generation failed";
|
|
796
|
-
readonly failed: "Generation failed — retry, or re-run introspection first.";
|
|
797
|
-
readonly fileTitle: "Schema file parsed — generation needs a live database";
|
|
798
|
-
readonly fileBody: "Your schema parsed cleanly and the preview above is real. Generating a running app straight from a schema file (with placeholder rows) is not available yet — connect a live database to generate today.";
|
|
799
1288
|
};
|
|
800
1289
|
readonly remap: {
|
|
1290
|
+
readonly badge: {
|
|
1291
|
+
readonly fk: "FK";
|
|
1292
|
+
readonly masked: "Masked";
|
|
1293
|
+
readonly pii: "PII";
|
|
1294
|
+
readonly pk: "PK";
|
|
1295
|
+
readonly unique: "UNIQUE";
|
|
1296
|
+
};
|
|
801
1297
|
readonly column: {
|
|
802
|
-
readonly nullable: "nullable";
|
|
803
|
-
readonly labelOverride: "Display label";
|
|
804
|
-
readonly labelHelper: "Inferred: {name}";
|
|
805
|
-
readonly logicalType: "Logical type";
|
|
806
|
-
readonly logicalTypeHelper: "Inferred: {type} (from {dbType}) — mapped by the adapter; not overridable in v1.";
|
|
807
|
-
readonly semantic: "Semantic type";
|
|
808
|
-
readonly unclassified: "Not classified yet.";
|
|
809
|
-
readonly semanticHelper: "Classifier: {tag} · {confidence}% confidence · source: {source}";
|
|
810
|
-
readonly semanticInferred: "inferred: {tag}";
|
|
811
1298
|
readonly currency: "Currency";
|
|
812
1299
|
readonly currencyHelper: "ISO 4217 code applied to money formatting.";
|
|
813
|
-
readonly pii: "Mask by default";
|
|
814
|
-
readonly piiHelper: "Masked values render redacted; unmasking requires the data.unmask_pii permission and is audit-logged.";
|
|
815
1300
|
readonly enum: "Enum semantics";
|
|
816
|
-
readonly enumKind: "Enum kind";
|
|
817
|
-
readonly enumWorkflow: "Workflow";
|
|
818
1301
|
readonly enumCategory: "Category";
|
|
1302
|
+
readonly enumHelper: "Workflow enums drive status pills and board columns; tones map values onto the semantic tint scale.";
|
|
1303
|
+
readonly enumKind: "Enum kind";
|
|
819
1304
|
readonly enumLabelFor: "Label for {value}";
|
|
820
|
-
readonly enumToneFor: "Tone for {value}";
|
|
821
1305
|
readonly enumToneAuto: "auto";
|
|
822
|
-
readonly
|
|
1306
|
+
readonly enumToneFor: "Tone for {value}";
|
|
1307
|
+
readonly enumWorkflow: "Workflow";
|
|
1308
|
+
readonly labelHelper: "Inferred: {name}";
|
|
1309
|
+
readonly labelOverride: "Display label";
|
|
1310
|
+
readonly logicalType: "Logical type";
|
|
1311
|
+
readonly logicalTypeHelper: "Inferred: {type} (from {dbType}) — mapped by the adapter; not overridable in v1.";
|
|
1312
|
+
readonly nullable: "nullable";
|
|
1313
|
+
readonly pii: "Mask by default";
|
|
1314
|
+
readonly piiHelper: "Masked values render redacted; unmasking requires the data.unmask_pii permission and is audit-logged.";
|
|
1315
|
+
readonly semantic: "Semantic type";
|
|
1316
|
+
readonly semanticHelper: "Classifier: {tag} · {confidence}% confidence · source: {source}";
|
|
1317
|
+
readonly semanticInferred: "inferred: {tag}";
|
|
1318
|
+
readonly unclassified: "Not classified yet.";
|
|
823
1319
|
};
|
|
824
1320
|
readonly diff: {
|
|
825
|
-
readonly one: "1 change";
|
|
826
1321
|
readonly count: "{count} changes";
|
|
827
|
-
readonly
|
|
828
|
-
readonly revertOne: "Revert {change}";
|
|
1322
|
+
readonly one: "1 change";
|
|
829
1323
|
readonly regenerate: "Regenerate pages";
|
|
830
1324
|
readonly revertAll: "Revert all";
|
|
1325
|
+
readonly revertOne: "Revert {change}";
|
|
831
1326
|
readonly save: "Save overrides";
|
|
1327
|
+
readonly saved: "Overrides saved.";
|
|
832
1328
|
};
|
|
833
|
-
readonly
|
|
834
|
-
readonly
|
|
835
|
-
readonly
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
readonly
|
|
841
|
-
readonly
|
|
842
|
-
readonly
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
readonly
|
|
847
|
-
readonly
|
|
848
|
-
readonly
|
|
849
|
-
readonly
|
|
850
|
-
readonly rows: "Row estimate";
|
|
851
|
-
readonly shapeHelper: "Classification is recomputed on every introspection; overrides layer on top and survive regeneration.";
|
|
1329
|
+
readonly empty: {
|
|
1330
|
+
readonly description: "Select something in the schema tree to remap its label, type, relations or masking.";
|
|
1331
|
+
readonly title: "Pick a table or column";
|
|
1332
|
+
};
|
|
1333
|
+
readonly inspector: "Inspector";
|
|
1334
|
+
readonly loadFailed: "Could not load the schema for this connection.";
|
|
1335
|
+
readonly mode: {
|
|
1336
|
+
readonly design: "Design";
|
|
1337
|
+
readonly diagram: "Diagram";
|
|
1338
|
+
readonly remap: "Labels & relations";
|
|
1339
|
+
};
|
|
1340
|
+
readonly modeLabel: "Editor mode";
|
|
1341
|
+
readonly noDesign: {
|
|
1342
|
+
readonly noPrivilege: "This connection's role cannot create or alter tables. Grant it schema privileges, or connect a role that has them.";
|
|
1343
|
+
readonly readOnlyIntent: "This connection was set up for read-only analytics. Change its intent in Settings to edit its schema.";
|
|
1344
|
+
readonly readOnlyRole: "This connection signs in with a read-only role, so Adminium cannot change its schema.";
|
|
1345
|
+
readonly schemaFile: "This connection was created from a schema file, so there is no database to change. Labels and relations still work.";
|
|
852
1346
|
};
|
|
853
1347
|
readonly relations: {
|
|
854
|
-
readonly declared: "Declared foreign keys";
|
|
855
|
-
readonly noneDeclared: "No declared foreign keys touch this table.";
|
|
856
|
-
readonly inferred: "Inferred relations";
|
|
857
|
-
readonly noneInferred: "Nothing inferred for this table.";
|
|
858
|
-
readonly confidence: "inferred · {pct}%";
|
|
859
|
-
readonly accepted: "Accepted";
|
|
860
|
-
readonly suppressed: "Suppressed";
|
|
861
1348
|
readonly accept: "Accept";
|
|
862
|
-
readonly
|
|
863
|
-
readonly overrides: "Override relations (applied)";
|
|
864
|
-
readonly overrideBadge: "override";
|
|
1349
|
+
readonly accepted: "Accepted";
|
|
865
1350
|
readonly add: "Add virtual relation";
|
|
1351
|
+
readonly addButton: "Add relation";
|
|
1352
|
+
readonly cardinality: "Cardinality";
|
|
1353
|
+
readonly confidence: "inferred · {pct}%";
|
|
1354
|
+
readonly declared: "Declared foreign keys";
|
|
866
1355
|
readonly fromColumn: "From column";
|
|
867
|
-
readonly noColumns: "No matching column";
|
|
868
1356
|
readonly fromPlaceholder: "customer_id";
|
|
869
|
-
readonly
|
|
1357
|
+
readonly inferred: "Inferred relations";
|
|
1358
|
+
readonly noColumns: "No matching column";
|
|
870
1359
|
readonly noTables: "No matching table";
|
|
1360
|
+
readonly noneDeclared: "No declared foreign keys touch this table.";
|
|
1361
|
+
readonly noneInferred: "Nothing inferred for this table.";
|
|
1362
|
+
readonly overrideBadge: "override";
|
|
1363
|
+
readonly overrides: "Override relations (applied)";
|
|
1364
|
+
readonly suppress: "Suppress";
|
|
1365
|
+
readonly suppressed: "Suppressed";
|
|
871
1366
|
readonly toColumn: "To column";
|
|
872
|
-
readonly
|
|
873
|
-
readonly addButton: "Add relation";
|
|
874
|
-
};
|
|
875
|
-
readonly toast: {
|
|
876
|
-
readonly saved: "Schema overrides saved";
|
|
877
|
-
readonly savedDetail: "The applied schema below reflects your changes.";
|
|
878
|
-
readonly regenerated: "{created} created · {updated} updated · {unchanged} unchanged";
|
|
879
|
-
readonly regeneratedDetail: "Pages you edited by hand are preserved — only pages with an untouched generated_hash were regenerated in place.";
|
|
880
|
-
readonly regenerateFailed: "Regeneration failed";
|
|
1367
|
+
readonly toTable: "To table";
|
|
881
1368
|
};
|
|
882
|
-
readonly title: "Schema remap";
|
|
883
|
-
readonly subtitle: "{tables} tables · {applied} overrides applied";
|
|
884
1369
|
readonly saveFailed: "Save failed: {message}";
|
|
885
|
-
readonly
|
|
886
|
-
readonly
|
|
887
|
-
|
|
888
|
-
readonly
|
|
889
|
-
readonly
|
|
1370
|
+
readonly subtitle: "{tables} tables · {applied} overrides applied";
|
|
1371
|
+
readonly table: {
|
|
1372
|
+
readonly hierarchy: "Hierarchy";
|
|
1373
|
+
readonly icon: "Icon";
|
|
1374
|
+
readonly iconPicker: "Table icon";
|
|
1375
|
+
readonly include: "Include in generated app";
|
|
1376
|
+
readonly includeHelper: "Excluded tables get no pages and disappear from nav.";
|
|
1377
|
+
readonly kind: "Kind";
|
|
1378
|
+
readonly labelHelper: "Inferred: {name}";
|
|
1379
|
+
readonly labelOverride: "Display label";
|
|
1380
|
+
readonly navGroup: "Nav group";
|
|
1381
|
+
readonly navGroupHelper: "Nav placement is decided by the generator — a table.navGroup override is not in the v1 vocabulary.";
|
|
1382
|
+
readonly polymorphic: "Polymorphic pairs";
|
|
1383
|
+
readonly role: "Role";
|
|
1384
|
+
readonly rows: "Row estimate";
|
|
1385
|
+
readonly selfFk: "Self-reference via {column}";
|
|
1386
|
+
readonly shape: "Table shape (classified)";
|
|
1387
|
+
readonly shapeHelper: "Classification is recomputed on every introspection; overrides layer on top and survive regeneration.";
|
|
1388
|
+
readonly system: "System";
|
|
1389
|
+
readonly unclassified: "Not classified";
|
|
890
1390
|
};
|
|
891
1391
|
readonly tabs: {
|
|
892
1392
|
readonly details: "Details";
|
|
893
1393
|
readonly relations: "Relations";
|
|
894
1394
|
};
|
|
1395
|
+
readonly title: "Schema";
|
|
1396
|
+
readonly toast: {
|
|
1397
|
+
readonly regenerateFailed: "Regeneration failed";
|
|
1398
|
+
readonly regenerated: "{created} created · {updated} updated · {unchanged} unchanged";
|
|
1399
|
+
readonly regeneratedDetail: "Pages you edited by hand are preserved — only pages with an untouched generated_hash were regenerated in place.";
|
|
1400
|
+
readonly saved: "Schema overrides saved";
|
|
1401
|
+
readonly savedDetail: "The applied schema below reflects your changes.";
|
|
1402
|
+
};
|
|
895
1403
|
readonly tree: {
|
|
1404
|
+
readonly collapse: "Collapse table";
|
|
1405
|
+
readonly excluded: "Excluded";
|
|
1406
|
+
readonly expand: "Expand table";
|
|
896
1407
|
readonly label: "Schema";
|
|
1408
|
+
readonly noMatches: "No tables match your search.";
|
|
897
1409
|
readonly search: "Search tables and columns";
|
|
898
1410
|
readonly searchPlaceholder: "Search tables…";
|
|
899
|
-
readonly noMatches: "No tables match your search.";
|
|
900
|
-
readonly collapse: "Collapse table";
|
|
901
|
-
readonly expand: "Expand table";
|
|
902
1411
|
readonly unsaved: "Unsaved change";
|
|
903
|
-
readonly excluded: "Excluded";
|
|
904
|
-
};
|
|
905
|
-
readonly badge: {
|
|
906
|
-
readonly pk: "PK";
|
|
907
|
-
readonly fk: "FK";
|
|
908
|
-
readonly unique: "UNIQUE";
|
|
909
|
-
readonly pii: "PII";
|
|
910
|
-
readonly masked: "Masked";
|
|
911
1412
|
};
|
|
912
|
-
readonly unavailableTitle: "Schema remap editor not available";
|
|
913
1413
|
readonly unavailableBody: "This build does not include the remap editor yet (09-T12). Re-run generation after it lands to remap labels, types and relations.";
|
|
1414
|
+
readonly unavailableTitle: "Schema remap editor not available";
|
|
914
1415
|
};
|
|
915
|
-
readonly
|
|
916
|
-
readonly
|
|
917
|
-
readonly
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
readonly
|
|
927
|
-
readonly
|
|
928
|
-
readonly
|
|
929
|
-
readonly
|
|
930
|
-
readonly
|
|
931
|
-
readonly
|
|
932
|
-
readonly
|
|
933
|
-
readonly
|
|
934
|
-
readonly
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
readonly close: "Close";
|
|
938
|
-
readonly title: "Public API";
|
|
939
|
-
readonly subtitle: "Let your own customer- or staff-facing pages read this database, through a scope you define.";
|
|
940
|
-
readonly notRegistered: {
|
|
941
|
-
readonly title: "Not enabled on this server";
|
|
942
|
-
readonly body: "Set ADMINIUM_PUBLIC_API_ORIGINS to the exact origins allowed to call it, then restart. Until then these routes are not served at all.";
|
|
943
|
-
};
|
|
944
|
-
readonly toggle: {
|
|
945
|
-
readonly label: "Serve the public API";
|
|
946
|
-
readonly hint: "Turning this off stops every public request immediately. Nothing is deleted — keys, scopes and data all survive.";
|
|
947
|
-
};
|
|
948
|
-
readonly origins: {
|
|
949
|
-
readonly label: "Origins allowed to call it";
|
|
1416
|
+
readonly review: {
|
|
1417
|
+
readonly unavailableBody: "This build does not include the enrichment review screen yet (06-T14). It lands with the diff-and-apply flow.";
|
|
1418
|
+
readonly unavailableTitle: "Review screen not available";
|
|
1419
|
+
};
|
|
1420
|
+
readonly settings: {
|
|
1421
|
+
readonly globalDefaultsNav: "Global defaults";
|
|
1422
|
+
readonly title: "Settings";
|
|
1423
|
+
readonly workspaceSection: "Workspace";
|
|
1424
|
+
};
|
|
1425
|
+
readonly settingsAi: {
|
|
1426
|
+
readonly byo: {
|
|
1427
|
+
readonly body: "Studio can generate a self-contained prompt from your schema. Run it in Claude Code, ChatGPT, or any tool you like, then paste the JSON it returns back into the connect wizard. Same validation, same review, same result as the direct path.";
|
|
1428
|
+
readonly guarantee1: "The prompt carries only your schema and aggregate stats — never row data by default.";
|
|
1429
|
+
readonly guarantee2: "No credentials, instance URL, or identifiers are embedded.";
|
|
1430
|
+
readonly guarantee3: "BYO runs make zero network calls.";
|
|
1431
|
+
readonly guaranteeTitle: "Telemetry-free guarantee";
|
|
1432
|
+
readonly heading: "No key? Use your own AI tool";
|
|
1433
|
+
readonly headingRecommended: "Use your own AI tool — no key needed";
|
|
1434
|
+
readonly promptVersion: "Prompt {version}";
|
|
1435
|
+
readonly recommended: "Recommended";
|
|
1436
|
+
readonly schemaVersion: "Schema {version}";
|
|
1437
|
+
readonly subtitle: "The copy-paste round-trip — nothing leaves this machine.";
|
|
950
1438
|
};
|
|
951
|
-
readonly
|
|
952
|
-
readonly
|
|
953
|
-
readonly subtitle: "These go in your page’s JavaScript, so anyone can read them. That is expected — a key can only ever do what its scope allows.";
|
|
954
|
-
readonly emptyTitle: "No keys yet";
|
|
955
|
-
readonly emptyBody: "Create a scope first, then mint a key for it.";
|
|
956
|
-
readonly reveal: "Show key";
|
|
957
|
-
readonly rotate: "Rotate";
|
|
958
|
-
readonly revoke: "Revoke";
|
|
959
|
-
readonly nameLabel: "Name";
|
|
960
|
-
readonly scopeLabel: "Scope";
|
|
961
|
-
readonly scopePlaceholder: "Choose a scope";
|
|
962
|
-
readonly create: "Create key";
|
|
963
|
-
readonly formLabel: "Create a key";
|
|
964
|
-
readonly scopeIsAuthTitle: "The scope is the only permission";
|
|
965
|
-
readonly scopeIsAuthBody: "A key can reach exactly what its scope lists and nothing else. It does not use roles or table permissions, and it cannot read anything through the rest of the API.";
|
|
966
|
-
readonly appLabel: "Bind to a hosted app surface (optional)";
|
|
967
|
-
readonly appHint: "The app’s customer surface then serves this key itself — rotating it needs no rebuild.";
|
|
968
|
-
readonly appNone: "Not bound";
|
|
1439
|
+
readonly configure: {
|
|
1440
|
+
readonly heading: "Configure {provider}";
|
|
969
1441
|
};
|
|
970
|
-
readonly
|
|
971
|
-
readonly
|
|
1442
|
+
readonly field: {
|
|
1443
|
+
readonly baseUrl: "Base URL";
|
|
1444
|
+
readonly baseUrlHelper: "The endpoint root that serves /chat/completions.";
|
|
1445
|
+
readonly baseUrlOptional: "Leave as-is unless Ollama runs on another host.";
|
|
1446
|
+
readonly key: "API key";
|
|
1447
|
+
readonly keyMask: "sk-…{last4}";
|
|
1448
|
+
readonly keyOptional: "Optional — some endpoints need no key.";
|
|
1449
|
+
readonly keyReplace: "Replace key";
|
|
1450
|
+
readonly keyStored: "Stored encrypted. Replace it to use a different key.";
|
|
1451
|
+
readonly keyWriteOnly: "Write-only: once saved it is never shown again.";
|
|
1452
|
+
readonly model: "Model";
|
|
1453
|
+
readonly modelFreeText: "Enter the exact model id your endpoint serves.";
|
|
1454
|
+
readonly modelLive: "Loaded live from the provider.";
|
|
1455
|
+
readonly modelLoading: "Loading…";
|
|
1456
|
+
readonly modelPlaceholder: "Select a model…";
|
|
1457
|
+
readonly modelStatic: "A known-good list; type a custom id after saving to refresh it.";
|
|
1458
|
+
readonly noKeyBody: "Ollama runs locally, so nothing leaves this machine.";
|
|
1459
|
+
readonly noKeyTitle: "No API key needed";
|
|
972
1460
|
};
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
readonly
|
|
982
|
-
readonly
|
|
983
|
-
readonly
|
|
984
|
-
readonly
|
|
985
|
-
readonly
|
|
986
|
-
readonly
|
|
987
|
-
readonly
|
|
988
|
-
readonly
|
|
989
|
-
readonly placementLabel: "Placement";
|
|
990
|
-
readonly placementInternal: "In the sidebar (blended)";
|
|
991
|
-
readonly placementExternal: "External (own URL only)";
|
|
992
|
-
readonly connectionLabel: "Reads";
|
|
993
|
-
readonly connectionUnset: "Whichever is serving";
|
|
1461
|
+
readonly history: {
|
|
1462
|
+
readonly byo: "BYO";
|
|
1463
|
+
readonly colChunks: "Chunks";
|
|
1464
|
+
readonly colDate: "Date";
|
|
1465
|
+
readonly colSource: "Source";
|
|
1466
|
+
readonly colStatus: "Status";
|
|
1467
|
+
readonly connection: "Connection";
|
|
1468
|
+
readonly directPath: "Direct";
|
|
1469
|
+
readonly empty: "No enrichment runs yet. Enrich a schema from the connect wizard to see history here.";
|
|
1470
|
+
readonly errorBody: "Refresh the page to try again.";
|
|
1471
|
+
readonly errorTitle: "Could not load runs";
|
|
1472
|
+
readonly heading: "Run history";
|
|
1473
|
+
readonly noConnections: "Connect a database first — enrichment runs are recorded per connection.";
|
|
1474
|
+
readonly openReview: "Open review for the run from {date}";
|
|
1475
|
+
readonly subtitle: "Past enrichment runs. Open one to review its suggestions.";
|
|
1476
|
+
readonly tableLabel: "Enrichment runs";
|
|
994
1477
|
};
|
|
995
|
-
readonly
|
|
996
|
-
readonly
|
|
997
|
-
readonly
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
readonly
|
|
1002
|
-
readonly
|
|
1003
|
-
readonly
|
|
1004
|
-
readonly
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
readonly
|
|
1478
|
+
readonly provider: {
|
|
1479
|
+
readonly active: "Active";
|
|
1480
|
+
readonly anthropic: {
|
|
1481
|
+
readonly desc: "Claude models via the Anthropic API.";
|
|
1482
|
+
readonly label: "Anthropic";
|
|
1483
|
+
};
|
|
1484
|
+
readonly heading: "AI provider";
|
|
1485
|
+
readonly networkDisabledBody: "This Adminium is configured with no outbound internet access, so it cannot reach a provider API. Use the copy-paste round-trip below — it needs no key and no network.";
|
|
1486
|
+
readonly networkDisabledTitle: "Direct AI providers are turned off on this install";
|
|
1487
|
+
readonly ollama: {
|
|
1488
|
+
readonly desc: "Models running locally through Ollama — no key, no cloud.";
|
|
1489
|
+
readonly label: "Ollama (local)";
|
|
1490
|
+
};
|
|
1491
|
+
readonly openai: {
|
|
1492
|
+
readonly desc: "GPT models via the OpenAI API.";
|
|
1493
|
+
readonly label: "OpenAI";
|
|
1494
|
+
};
|
|
1495
|
+
readonly openaiCompatible: {
|
|
1496
|
+
readonly desc: "Any endpoint that speaks the OpenAI wire format — Groq, Together, vLLM, LM Studio.";
|
|
1497
|
+
readonly label: "OpenAI-compatible";
|
|
1498
|
+
};
|
|
1499
|
+
readonly requiresNetwork: "Requires internet & an API key";
|
|
1500
|
+
readonly subtitle: "Choose how Adminium reaches a model to enrich your schema. Keys are stored encrypted and never shown again.";
|
|
1009
1501
|
};
|
|
1010
|
-
readonly
|
|
1011
|
-
readonly
|
|
1012
|
-
readonly
|
|
1013
|
-
readonly
|
|
1014
|
-
readonly
|
|
1015
|
-
readonly
|
|
1016
|
-
readonly
|
|
1017
|
-
readonly
|
|
1018
|
-
readonly
|
|
1019
|
-
readonly empty: "No extra instances.";
|
|
1020
|
-
readonly failed: "Instances were not saved";
|
|
1502
|
+
readonly runStatus: {
|
|
1503
|
+
readonly applied: "Applied";
|
|
1504
|
+
readonly awaitingResponse: "Awaiting response";
|
|
1505
|
+
readonly discarded: "Discarded";
|
|
1506
|
+
readonly draft: "Draft";
|
|
1507
|
+
readonly failed: "Failed";
|
|
1508
|
+
readonly partiallyApplied: "Partially applied";
|
|
1509
|
+
readonly running: "Running";
|
|
1510
|
+
readonly validated: "Validated";
|
|
1021
1511
|
};
|
|
1512
|
+
readonly save: "Save provider";
|
|
1513
|
+
readonly saveFailed: "Could not save the AI provider. Try again.";
|
|
1514
|
+
readonly saved: "AI provider saved";
|
|
1515
|
+
readonly subtitle: "Connect a model to let Adminium suggest labels, groups, relations and more — always reviewed as a diff before anything applies.";
|
|
1516
|
+
readonly test: "Test connection";
|
|
1517
|
+
readonly testError: "Test failed";
|
|
1518
|
+
readonly testErrorBody: "Could not reach the provider. Check the key and base URL.";
|
|
1519
|
+
readonly testHintDirty: "Save your changes before testing.";
|
|
1520
|
+
readonly testOk: "Connected to {model} in {latency} ms";
|
|
1521
|
+
readonly testUnknownModel: "the provider";
|
|
1522
|
+
readonly testing: "Pinging the provider…";
|
|
1523
|
+
readonly title: "AI enrichment";
|
|
1022
1524
|
};
|
|
1023
|
-
readonly
|
|
1024
|
-
readonly
|
|
1025
|
-
readonly
|
|
1026
|
-
readonly
|
|
1027
|
-
readonly
|
|
1028
|
-
readonly willCreate: "This will create tables in your database";
|
|
1029
|
-
readonly willCreateBody: "Installing creates these tables. Uninstalling later leaves them, and their data, alone.";
|
|
1030
|
-
readonly noData: "This add-on reads and writes no tables of its own.";
|
|
1031
|
-
readonly reuse: "This add-on will use tables you already have:";
|
|
1525
|
+
readonly settingsHub: {
|
|
1526
|
+
readonly addOnsCard: {
|
|
1527
|
+
readonly body: "Browse, install and connect add-ons — extra blocks, data packs and integrations — or upload one yourself.";
|
|
1528
|
+
readonly cta: "Open add-ons";
|
|
1529
|
+
readonly heading: "Add-ons";
|
|
1032
1530
|
};
|
|
1033
|
-
readonly
|
|
1034
|
-
readonly
|
|
1035
|
-
readonly
|
|
1036
|
-
readonly
|
|
1037
|
-
readonly loading: "Working out what this would do…";
|
|
1038
|
-
readonly hosts: "Attach to";
|
|
1039
|
-
readonly cancel: "Cancel";
|
|
1040
|
-
readonly confirm: "Install";
|
|
1531
|
+
readonly aiCard: {
|
|
1532
|
+
readonly body: "Configure an AI provider (or the copy-paste round-trip) to enrich labels, groups and relations.";
|
|
1533
|
+
readonly cta: "Open AI settings";
|
|
1534
|
+
readonly heading: "AI enrichment";
|
|
1041
1535
|
};
|
|
1042
|
-
readonly
|
|
1043
|
-
readonly
|
|
1044
|
-
readonly
|
|
1536
|
+
readonly danger: {
|
|
1537
|
+
readonly deleteCta: "Delete connection";
|
|
1538
|
+
readonly deleteDesc: "Deletes the connection and its generated pages. Your database is not touched. Cannot be undone.";
|
|
1539
|
+
readonly empty: "Nothing to delete — no connections yet.";
|
|
1540
|
+
readonly heading: "Danger zone";
|
|
1541
|
+
readonly subtitle: "Irreversible actions.";
|
|
1045
1542
|
};
|
|
1046
|
-
readonly
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
readonly title: "Available";
|
|
1051
|
-
readonly online: "Includes add-ons from the online catalogue. Checking for newer versions is a separate action.";
|
|
1052
|
-
readonly offline: "Showing the add-ons that came with this build. Browsing online is switched off, and nothing here has contacted the internet.";
|
|
1053
|
-
readonly refresh: "Check for newer";
|
|
1054
|
-
readonly emptyTitle: "No add-ons available";
|
|
1055
|
-
readonly emptyBody: "This build shipped none, and the online catalogue is off.";
|
|
1056
|
-
readonly bundled: "Included";
|
|
1057
|
-
readonly upgrade: "v{version} available";
|
|
1058
|
-
readonly download: "Download";
|
|
1059
|
-
readonly install: "Install";
|
|
1060
|
-
readonly discard: "Discard";
|
|
1061
|
-
readonly upgradeAction: "Upgrade";
|
|
1062
|
-
readonly toggle: "Browse the online catalogue";
|
|
1543
|
+
readonly defaultsCard: {
|
|
1544
|
+
readonly body: "Workspace-wide theme, accent, density and language live under Global defaults.";
|
|
1545
|
+
readonly cta: "Open global defaults";
|
|
1546
|
+
readonly heading: "Appearance & language defaults";
|
|
1063
1547
|
};
|
|
1064
|
-
readonly
|
|
1065
|
-
readonly
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
readonly
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1548
|
+
readonly email: {
|
|
1549
|
+
readonly attachmentCap: {
|
|
1550
|
+
readonly error: "Between {min, number} and {max, number} MB.";
|
|
1551
|
+
readonly helper: "The most one message may carry in attachments.";
|
|
1552
|
+
readonly label: "Attachment limit (MB)";
|
|
1553
|
+
};
|
|
1554
|
+
readonly from: {
|
|
1555
|
+
readonly error: "Enter an email address.";
|
|
1556
|
+
readonly helper: "A bare address, or a display name in front of one.";
|
|
1557
|
+
readonly label: "From address";
|
|
1558
|
+
};
|
|
1559
|
+
readonly heading: "Email (SMTP)";
|
|
1560
|
+
readonly host: {
|
|
1561
|
+
readonly error: "A bare hostname or IP address — no scheme, port or credentials.";
|
|
1562
|
+
readonly label: "SMTP host";
|
|
1563
|
+
};
|
|
1564
|
+
readonly pass: {
|
|
1565
|
+
readonly error: "This username needs a password.";
|
|
1566
|
+
readonly helper: "Stored encrypted and never shown again. Leave blank to keep the current one.";
|
|
1567
|
+
readonly label: "Password";
|
|
1568
|
+
};
|
|
1569
|
+
readonly port: {
|
|
1570
|
+
readonly error: "Between {min, number} and {max, number}.";
|
|
1571
|
+
readonly label: "Port";
|
|
1572
|
+
};
|
|
1573
|
+
readonly remove: "Remove mail server";
|
|
1574
|
+
readonly review: {
|
|
1575
|
+
readonly password: "Replaced";
|
|
1576
|
+
readonly removed: "Removed";
|
|
1577
|
+
};
|
|
1578
|
+
readonly secure: {
|
|
1579
|
+
readonly helper: "On for port 465. Off starts in cleartext and upgrades with STARTTLS, which is what port 587 expects.";
|
|
1580
|
+
readonly label: "Implicit TLS";
|
|
1581
|
+
};
|
|
1582
|
+
readonly senders: {
|
|
1583
|
+
readonly add: "Add sender";
|
|
1584
|
+
readonly address: "Address";
|
|
1585
|
+
readonly error: "Enter an email address.";
|
|
1586
|
+
readonly heading: "Senders";
|
|
1587
|
+
readonly helper: "Addresses an email may be sent from. The SMTP From address is always available.";
|
|
1588
|
+
readonly implicit: "SMTP From address";
|
|
1589
|
+
readonly name: "Display name";
|
|
1590
|
+
readonly remove: "Remove sender";
|
|
1591
|
+
readonly review: "Senders";
|
|
1592
|
+
};
|
|
1593
|
+
readonly unconfigured: "No mail server is set, so Adminium cannot send password resets, user invites or scheduled reports.";
|
|
1594
|
+
readonly user: {
|
|
1595
|
+
readonly helper: "Leave empty for a relay that does not authenticate.";
|
|
1596
|
+
readonly label: "Username";
|
|
1597
|
+
};
|
|
1075
1598
|
};
|
|
1076
|
-
readonly
|
|
1077
|
-
readonly
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
readonly
|
|
1083
|
-
readonly
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1599
|
+
readonly identity: {
|
|
1600
|
+
readonly appName: {
|
|
1601
|
+
readonly error: "Enter a name of at most 60 characters.";
|
|
1602
|
+
readonly helper: "Shown in the sidebar, browser title, and emails.";
|
|
1603
|
+
readonly label: "Application name";
|
|
1604
|
+
};
|
|
1605
|
+
readonly heading: "Workspace identity";
|
|
1606
|
+
readonly logo: {
|
|
1607
|
+
readonly badType: "Choose a PNG, JPEG, WebP, GIF or SVG image.";
|
|
1608
|
+
readonly drop: "Drop an image here";
|
|
1609
|
+
readonly helper: "PNG, JPEG, WebP, GIF or SVG, up to 1 MB. Replaces the built-in mark everywhere.";
|
|
1610
|
+
readonly label: "Logo";
|
|
1611
|
+
readonly remove: "Remove";
|
|
1612
|
+
readonly removed: "Logo removed";
|
|
1613
|
+
readonly replace: "Replace logo";
|
|
1614
|
+
readonly tooLarge: "That image is larger than 1 MB.";
|
|
1615
|
+
readonly undo: "Undo";
|
|
1616
|
+
readonly upload: "Upload logo";
|
|
1617
|
+
readonly uploaded: "Logo updated";
|
|
1618
|
+
};
|
|
1619
|
+
readonly showVersion: {
|
|
1620
|
+
readonly helper: "The build number beside the logo. Off hides which version you run.";
|
|
1621
|
+
readonly label: "Version in the sidebar";
|
|
1622
|
+
};
|
|
1088
1623
|
};
|
|
1089
|
-
readonly
|
|
1090
|
-
|
|
1091
|
-
readonly
|
|
1092
|
-
readonly
|
|
1093
|
-
readonly failed: "The download did not finish. Nothing was installed.";
|
|
1624
|
+
readonly pagesCard: {
|
|
1625
|
+
readonly body: "Add, edit and delete pages, change what each one shows, and reorder the sidebar.";
|
|
1626
|
+
readonly cta: "Manage pages";
|
|
1627
|
+
readonly heading: "Pages";
|
|
1094
1628
|
};
|
|
1095
|
-
readonly
|
|
1096
|
-
readonly
|
|
1097
|
-
readonly
|
|
1629
|
+
readonly publicApiCard: {
|
|
1630
|
+
readonly body: "Let your own customer- or staff-facing pages read this database, through a scope you define.";
|
|
1631
|
+
readonly cta: "Open public API";
|
|
1632
|
+
readonly heading: "Public API";
|
|
1098
1633
|
};
|
|
1099
|
-
readonly
|
|
1100
|
-
readonly
|
|
1101
|
-
readonly
|
|
1102
|
-
readonly
|
|
1103
|
-
readonly
|
|
1104
|
-
readonly
|
|
1105
|
-
readonly
|
|
1106
|
-
readonly
|
|
1107
|
-
readonly
|
|
1634
|
+
readonly review: {
|
|
1635
|
+
readonly cancel: "Cancel";
|
|
1636
|
+
readonly change: "{before} → {after}";
|
|
1637
|
+
readonly close: "Close";
|
|
1638
|
+
readonly confirm: "Save changes";
|
|
1639
|
+
readonly hidden: "Hidden";
|
|
1640
|
+
readonly off: "Off";
|
|
1641
|
+
readonly on: "On";
|
|
1642
|
+
readonly shown: "Shown";
|
|
1643
|
+
readonly subtitle: "Review your changes before saving.";
|
|
1644
|
+
readonly title: "Save workspace settings";
|
|
1108
1645
|
};
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
readonly
|
|
1112
|
-
readonly
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1646
|
+
readonly save: "Save changes";
|
|
1647
|
+
readonly saveFailed: "Could not save workspace settings. Try again.";
|
|
1648
|
+
readonly saved: "Workspace settings updated";
|
|
1649
|
+
readonly security: {
|
|
1650
|
+
readonly allowSignup: {
|
|
1651
|
+
readonly desc: "Anyone can create an account — off keeps this workspace invite-only.";
|
|
1652
|
+
readonly label: "Allow self-signup";
|
|
1653
|
+
};
|
|
1654
|
+
readonly heading: "Security";
|
|
1655
|
+
readonly passwordMin: {
|
|
1656
|
+
readonly error: "Between {min, number} and {max, number} characters.";
|
|
1657
|
+
readonly label: "Minimum password length";
|
|
1658
|
+
};
|
|
1659
|
+
readonly require2fa: {
|
|
1660
|
+
readonly desc: "Every member must enable 2FA to sign in.";
|
|
1661
|
+
readonly label: "Require two-factor auth";
|
|
1662
|
+
readonly note: "Advisory, not a barrier: members without 2FA are sent to set it up and can no longer turn it off, but their sign-in is never blocked, and API keys are unaffected.";
|
|
1663
|
+
};
|
|
1664
|
+
readonly sessionTtl: {
|
|
1665
|
+
readonly error: "Between {min, number} and {max, number} hours.";
|
|
1666
|
+
readonly label: "Session lifetime (hours)";
|
|
1667
|
+
};
|
|
1117
1668
|
};
|
|
1118
|
-
readonly
|
|
1119
|
-
readonly
|
|
1120
|
-
readonly
|
|
1669
|
+
readonly storageCard: {
|
|
1670
|
+
readonly body: "Choose where uploaded files, exports and other stored bytes live — this server, a bucket, or your own server.";
|
|
1671
|
+
readonly cta: "Open storage";
|
|
1672
|
+
readonly heading: "Storage";
|
|
1121
1673
|
};
|
|
1122
|
-
readonly
|
|
1123
|
-
|
|
1124
|
-
|
|
1674
|
+
readonly subtitle: "Identity, security and destructive actions for this workspace.";
|
|
1675
|
+
readonly superAdminOnly: "Only a super admin can change workspace identity and security settings.";
|
|
1676
|
+
readonly superAdminOnlyTitle: "Super admin required";
|
|
1677
|
+
readonly title: "Workspace settings";
|
|
1678
|
+
readonly translationsCard: {
|
|
1679
|
+
readonly body: "Reword anything in Adminium, choose which languages people can pick, and add your own.";
|
|
1680
|
+
readonly cta: "Open translations";
|
|
1681
|
+
readonly heading: "Languages & translations";
|
|
1125
1682
|
};
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1683
|
+
};
|
|
1684
|
+
readonly source: {
|
|
1685
|
+
readonly dsn: {
|
|
1686
|
+
readonly helper: "postgres://user:password@host:5432/database — mysql:// and sqlite: work too.";
|
|
1687
|
+
readonly incomplete: "Add host and database, e.g. postgres://user@host:5432/db";
|
|
1688
|
+
readonly invalidScheme: "Unrecognized scheme — expected postgres://, mysql://, mariadb:// or sqlite:";
|
|
1689
|
+
readonly label: "Connection string";
|
|
1690
|
+
readonly quickFill: "Quick fill:";
|
|
1129
1691
|
};
|
|
1130
|
-
readonly
|
|
1131
|
-
readonly
|
|
1132
|
-
readonly
|
|
1692
|
+
readonly engine: {
|
|
1693
|
+
readonly label: "Database engine";
|
|
1694
|
+
readonly mysql: "MySQL / MariaDB";
|
|
1695
|
+
readonly postgres: "PostgreSQL";
|
|
1696
|
+
readonly sqlite: "SQLite";
|
|
1133
1697
|
};
|
|
1134
|
-
readonly
|
|
1135
|
-
readonly
|
|
1136
|
-
readonly
|
|
1137
|
-
readonly
|
|
1138
|
-
readonly
|
|
1139
|
-
readonly
|
|
1698
|
+
readonly fields: {
|
|
1699
|
+
readonly database: "Database";
|
|
1700
|
+
readonly host: "Host";
|
|
1701
|
+
readonly password: "Password";
|
|
1702
|
+
readonly port: "Port";
|
|
1703
|
+
readonly preview: "Connection string preview:";
|
|
1704
|
+
readonly ssl: "SSL mode";
|
|
1705
|
+
readonly user: "User";
|
|
1140
1706
|
};
|
|
1141
|
-
readonly
|
|
1142
|
-
readonly
|
|
1707
|
+
readonly file: {
|
|
1708
|
+
readonly columns: "columns";
|
|
1709
|
+
readonly detectedAs: "Detected: {format}";
|
|
1710
|
+
readonly dropHint: "SQL DDL / pg_dump, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django models, Adminium JSON";
|
|
1711
|
+
readonly dropTitle: "Drop your schema file here, or browse";
|
|
1712
|
+
readonly errorTitle: "Could not parse the file";
|
|
1713
|
+
readonly moreWarnings: "+{count} more warnings — the full list appears in the analyze step.";
|
|
1714
|
+
readonly parseFailed: "We could not parse that file. If auto-detect guessed wrong, pick the format explicitly and retry.";
|
|
1715
|
+
readonly parsing: "Reading uploaded schema file…";
|
|
1716
|
+
readonly pitch: "No database connection required — we parse your schema file and build the same dashboards.";
|
|
1717
|
+
readonly requestFailed: "Upload failed — check your connection and try again.";
|
|
1718
|
+
readonly tables: "tables";
|
|
1719
|
+
readonly unsupported: "That format is not recognized — SQL DDL, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django models and Adminium JSON are supported. Pick one explicitly and retry.";
|
|
1720
|
+
readonly warnings: "warnings";
|
|
1143
1721
|
};
|
|
1144
|
-
readonly
|
|
1145
|
-
readonly
|
|
1146
|
-
readonly
|
|
1147
|
-
readonly
|
|
1148
|
-
readonly
|
|
1149
|
-
readonly
|
|
1722
|
+
readonly format: {
|
|
1723
|
+
readonly auto: "Auto-detect";
|
|
1724
|
+
readonly django: "Django models.py";
|
|
1725
|
+
readonly drizzle: "Drizzle ORM";
|
|
1726
|
+
readonly helper: "Leave on auto-detect unless the detection gets it wrong.";
|
|
1727
|
+
readonly json: "Adminium JSON";
|
|
1728
|
+
readonly label: "Schema format";
|
|
1729
|
+
readonly prisma: "Prisma schema";
|
|
1730
|
+
readonly rails: "Rails schema.rb";
|
|
1731
|
+
readonly sequelize: "Sequelize models";
|
|
1732
|
+
readonly sql: "SQL DDL / pg_dump";
|
|
1733
|
+
readonly typeorm: "TypeORM entities";
|
|
1150
1734
|
};
|
|
1151
|
-
readonly
|
|
1152
|
-
readonly
|
|
1153
|
-
readonly
|
|
1154
|
-
readonly
|
|
1155
|
-
readonly subtitle: "Pick what this page shows and how it looks.";
|
|
1735
|
+
readonly mode: {
|
|
1736
|
+
readonly dsn: "Connection string";
|
|
1737
|
+
readonly fields: "Individual fields";
|
|
1738
|
+
readonly file: "Schema file";
|
|
1156
1739
|
};
|
|
1157
|
-
readonly
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1740
|
+
readonly modeLabel: "Source input mode";
|
|
1741
|
+
readonly name: "Connection name";
|
|
1742
|
+
readonly namePlaceholder: "Production Postgres";
|
|
1743
|
+
readonly readOnlyRole: {
|
|
1744
|
+
readonly body: "During setup Adminium reads schema metadata only — never your rows. We recommend a dedicated user with SELECT-only grants; you can decide where Adminium keeps its own tables in the meta-storage step.";
|
|
1745
|
+
readonly title: "Use a read-only role";
|
|
1746
|
+
};
|
|
1747
|
+
readonly sqlite: {
|
|
1748
|
+
readonly file: "Database file path";
|
|
1749
|
+
readonly helper: "SQLite is a file, not a server — give the absolute path on the machine running Adminium.";
|
|
1161
1750
|
};
|
|
1751
|
+
readonly subtitle: "Point Adminium at a database and we'll generate an admin dashboard from its schema.";
|
|
1752
|
+
readonly title: "Connect your database";
|
|
1753
|
+
};
|
|
1754
|
+
readonly storage: {
|
|
1755
|
+
readonly actionFailed: "That did not work";
|
|
1756
|
+
readonly add: "Add a destination";
|
|
1757
|
+
readonly availableOnDisk: "{size} available on this disk";
|
|
1758
|
+
readonly default: "Default";
|
|
1759
|
+
readonly defaultBlockedByDisabled: "A disabled destination cannot be the default. Enable it first.";
|
|
1162
1760
|
readonly delete: {
|
|
1163
|
-
readonly
|
|
1164
|
-
readonly
|
|
1165
|
-
readonly
|
|
1166
|
-
readonly
|
|
1167
|
-
readonly
|
|
1761
|
+
readonly blockedBody: "{name} still holds {count, plural, one {# file} other {# files}}. Move them to another destination first, then delete it.";
|
|
1762
|
+
readonly blockedTitle: "This destination still holds files";
|
|
1763
|
+
readonly body: "Adminium forgets {name} and its credential. Nothing stored in it is touched — the bucket or server itself is yours, and files still recorded against it will refuse the delete.";
|
|
1764
|
+
readonly confirm: "Delete destination";
|
|
1765
|
+
readonly title: "Delete this destination";
|
|
1766
|
+
};
|
|
1767
|
+
readonly deleteButton: "Delete";
|
|
1768
|
+
readonly disable: "Disable";
|
|
1769
|
+
readonly disabled: "Disabled";
|
|
1770
|
+
readonly driver: {
|
|
1771
|
+
readonly local: "A path on this machine";
|
|
1772
|
+
readonly s3: "S3-compatible bucket";
|
|
1773
|
+
readonly webdav: "WebDAV server";
|
|
1774
|
+
};
|
|
1775
|
+
readonly edit: "Edit";
|
|
1776
|
+
readonly editor: {
|
|
1777
|
+
readonly createTitle: "Add a destination";
|
|
1778
|
+
readonly editTitle: "Edit destination";
|
|
1779
|
+
readonly subtitle: "Adminium reads and writes through this destination on your behalf; it is infrastructure you control.";
|
|
1168
1780
|
};
|
|
1781
|
+
readonly enable: "Enable";
|
|
1169
1782
|
readonly field: {
|
|
1170
|
-
readonly
|
|
1171
|
-
readonly
|
|
1172
|
-
readonly
|
|
1173
|
-
readonly
|
|
1174
|
-
readonly
|
|
1175
|
-
readonly
|
|
1176
|
-
readonly
|
|
1177
|
-
readonly
|
|
1178
|
-
readonly
|
|
1179
|
-
readonly
|
|
1180
|
-
readonly
|
|
1181
|
-
readonly
|
|
1182
|
-
readonly
|
|
1183
|
-
readonly
|
|
1184
|
-
readonly
|
|
1185
|
-
readonly
|
|
1186
|
-
readonly
|
|
1187
|
-
readonly
|
|
1188
|
-
readonly
|
|
1189
|
-
readonly
|
|
1190
|
-
readonly
|
|
1191
|
-
readonly
|
|
1192
|
-
readonly
|
|
1193
|
-
readonly
|
|
1783
|
+
readonly accessKeyId: "Access key ID";
|
|
1784
|
+
readonly bucket: "Bucket";
|
|
1785
|
+
readonly driver: "Kind";
|
|
1786
|
+
readonly driverLocked: "Changing the kind of a destination that already holds files would leave those files unreachable.";
|
|
1787
|
+
readonly endpoint: "Endpoint";
|
|
1788
|
+
readonly endpointDerived: "Leave empty for AWS itself — the endpoint follows from the region.";
|
|
1789
|
+
readonly name: "Name";
|
|
1790
|
+
readonly namePlaceholder: "Uploads bucket";
|
|
1791
|
+
readonly password: "Password";
|
|
1792
|
+
readonly pathStyle: "Path-style addressing";
|
|
1793
|
+
readonly pathStyleToggle: "Address the bucket as a path rather than a hostname";
|
|
1794
|
+
readonly prefix: "Prefix";
|
|
1795
|
+
readonly prefixHelper: "A folder inside the destination. Two destinations on one bucket that differ only here share the bucket without sharing a namespace.";
|
|
1796
|
+
readonly preset: "Provider";
|
|
1797
|
+
readonly presetHelper: "Fills in the endpoint, region and addressing style. Anything the provider cannot know about your account is left blank for you to type.";
|
|
1798
|
+
readonly publicBaseUrl: "Public base URL";
|
|
1799
|
+
readonly publicBaseUrlHelper: "Optional. Where these objects are readable without Adminium — a CDN in front of a public bucket. Used only when a column stores a link.";
|
|
1800
|
+
readonly region: "Region";
|
|
1801
|
+
readonly root: "Directory";
|
|
1802
|
+
readonly rootHelper: "An absolute path this server can write to — a mounted volume or a network share. Not the default directory, which is already the first entry in the list.";
|
|
1803
|
+
readonly secretAccessKey: "Secret access key";
|
|
1804
|
+
readonly secretKept: "A key is stored. Leave both fields blank to keep it; fill in both to replace it.";
|
|
1805
|
+
readonly url: "Collection URL";
|
|
1806
|
+
readonly urlHelper: "The collection Adminium writes into, as your server publishes it.";
|
|
1807
|
+
readonly username: "Username";
|
|
1808
|
+
};
|
|
1809
|
+
readonly fileCount: "{count, plural, one {# file} other {# files}}";
|
|
1810
|
+
readonly kind: {
|
|
1811
|
+
readonly archive: "Archived audit batches";
|
|
1812
|
+
readonly branding: "The workspace logo";
|
|
1813
|
+
readonly export: "Export artifacts";
|
|
1814
|
+
readonly import: "Uploaded CSVs and their error reports";
|
|
1815
|
+
readonly schema: "Imported schema files";
|
|
1816
|
+
readonly upload: "Files attached to records";
|
|
1194
1817
|
};
|
|
1195
|
-
readonly
|
|
1196
|
-
readonly
|
|
1197
|
-
readonly
|
|
1198
|
-
readonly saveFailed: "Changes could not be saved";
|
|
1199
|
-
readonly openPage: "Open page";
|
|
1200
|
-
readonly generated: {
|
|
1201
|
-
readonly title: "This page was generated from your schema";
|
|
1202
|
-
readonly body: "Your changes survive regeneration. Deleting only lasts until the next run recreates it.";
|
|
1203
|
-
};
|
|
1204
|
-
readonly contentUnavailable: "Page contents could not be loaded";
|
|
1205
|
-
readonly contentUnavailableBody: "The details above can still be saved.";
|
|
1206
|
-
readonly contentInvalid: "This page’s configuration is not readable";
|
|
1207
|
-
readonly contentInvalidBody: "It was written by a newer version, or it is malformed. Regenerate the page or delete it.";
|
|
1208
|
-
readonly data: "Data";
|
|
1209
|
-
readonly schemaFailed: "Tables could not be listed";
|
|
1210
|
-
readonly schemaFailedBody: "This connection may not have been analysed yet. Run introspection from Studio → Data connections.";
|
|
1211
|
-
readonly notBindable: "This template is not bound to one table";
|
|
1212
|
-
readonly notBindableBody: "Its contents are built widget by widget instead. Open the page and use Edit to add them.";
|
|
1213
|
-
readonly recompose: "This page will be rebuilt";
|
|
1214
|
-
readonly recomposeBody: "Saving rebuilds the contents. Column and widget edits here are lost.";
|
|
1215
|
-
readonly missing: "That page no longer exists";
|
|
1216
|
-
readonly missingBody: "It may have been deleted, or removed by a regeneration run.";
|
|
1217
|
-
readonly details: "Details";
|
|
1218
|
-
readonly itemsPending: "Save the change above first — the contents are rebuilt from it.";
|
|
1219
|
-
readonly columns: "Columns";
|
|
1220
|
-
readonly appearance: "Appearance";
|
|
1818
|
+
readonly list: {
|
|
1819
|
+
readonly subtitle: "New files go to the default destination. Existing files stay where they are until you move them.";
|
|
1820
|
+
readonly title: "Destinations";
|
|
1221
1821
|
};
|
|
1222
|
-
readonly
|
|
1223
|
-
readonly
|
|
1224
|
-
readonly
|
|
1225
|
-
readonly save: "Save order";
|
|
1226
|
-
readonly saveFailed: "The new order could not be saved";
|
|
1227
|
-
readonly emptyGroup: "No pages in this group.";
|
|
1228
|
-
readonly moveUp: "Move {title} up";
|
|
1229
|
-
readonly moveDown: "Move {title} down";
|
|
1230
|
-
readonly moveTo: "Move {title} to a group";
|
|
1231
|
-
readonly ungrouped: {
|
|
1232
|
-
readonly title: "Some pages are in no sidebar group";
|
|
1233
|
-
readonly body: "These pages work at their URL but appear nowhere in the sidebar. Open each one and pick a group.";
|
|
1234
|
-
};
|
|
1822
|
+
readonly loadFailed: {
|
|
1823
|
+
readonly forbidden: "Changing where files are stored needs the “Manage storage” permission. Ask an administrator to grant it to one of your roles.";
|
|
1824
|
+
readonly title: "Destinations could not be loaded";
|
|
1235
1825
|
};
|
|
1236
|
-
readonly
|
|
1237
|
-
|
|
1238
|
-
readonly
|
|
1239
|
-
readonly
|
|
1240
|
-
readonly
|
|
1241
|
-
readonly
|
|
1242
|
-
readonly
|
|
1243
|
-
readonly
|
|
1244
|
-
readonly
|
|
1245
|
-
readonly
|
|
1246
|
-
readonly
|
|
1247
|
-
readonly
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
readonly
|
|
1251
|
-
readonly
|
|
1252
|
-
readonly
|
|
1253
|
-
readonly
|
|
1254
|
-
readonly
|
|
1255
|
-
readonly
|
|
1256
|
-
readonly
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
readonly
|
|
1261
|
-
readonly
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1826
|
+
readonly localDisk: "This server's disk";
|
|
1827
|
+
readonly move: {
|
|
1828
|
+
readonly from: "From";
|
|
1829
|
+
readonly kinds: "Limit to";
|
|
1830
|
+
readonly kindsHelp: "Leave everything unticked to move all of them. Uploads are the files people attach; the rest are artifacts Adminium made.";
|
|
1831
|
+
readonly open: "Move files…";
|
|
1832
|
+
readonly start: "Start the move";
|
|
1833
|
+
readonly startedBody: "It runs in the background as job {jobId} and keeps going if you leave this page. The counts below change as files arrive — reload to see them.";
|
|
1834
|
+
readonly startedTitle: "The move has started";
|
|
1835
|
+
readonly subtitle: "Copies every file from one destination to another and then forgets the old copy. Downloads keep working throughout.";
|
|
1836
|
+
readonly title: "Move files";
|
|
1837
|
+
readonly to: "To";
|
|
1838
|
+
};
|
|
1839
|
+
readonly preset: {
|
|
1840
|
+
readonly aws: "AWS S3";
|
|
1841
|
+
readonly b2: "Backblaze B2";
|
|
1842
|
+
readonly minio: "MinIO or another S3-compatible server";
|
|
1843
|
+
readonly r2: "Cloudflare R2";
|
|
1844
|
+
readonly spaces: "DigitalOcean Spaces";
|
|
1845
|
+
readonly tigris: "Tigris";
|
|
1846
|
+
readonly wasabi: "Wasabi";
|
|
1847
|
+
};
|
|
1848
|
+
readonly save: "Save destination";
|
|
1849
|
+
readonly secret: {
|
|
1850
|
+
readonly partialBody: "Fill in both fields to replace the stored credential, or clear both to keep it. Saving one alone would quietly keep the old one.";
|
|
1851
|
+
readonly partialTitle: "Half a credential is not a credential";
|
|
1852
|
+
};
|
|
1853
|
+
readonly setDefault: "Set as default";
|
|
1854
|
+
readonly status: {
|
|
1855
|
+
readonly error: "Unreachable";
|
|
1856
|
+
readonly ok: "Reachable";
|
|
1857
|
+
readonly untested: "Not tested";
|
|
1268
1858
|
};
|
|
1269
|
-
readonly
|
|
1270
|
-
|
|
1271
|
-
readonly
|
|
1272
|
-
readonly
|
|
1859
|
+
readonly subtitle: "Where this instance keeps uploaded files, exports and other stored bytes.";
|
|
1860
|
+
readonly test: {
|
|
1861
|
+
readonly button: "Test";
|
|
1862
|
+
readonly failed: "Could not reach this destination";
|
|
1863
|
+
readonly ok: "Reached in {ms}ms";
|
|
1864
|
+
readonly unreachable: "The test could not be run";
|
|
1273
1865
|
};
|
|
1274
|
-
readonly
|
|
1275
|
-
|
|
1276
|
-
|
|
1866
|
+
readonly title: "Storage";
|
|
1867
|
+
readonly usedBytes: "{size} used";
|
|
1868
|
+
};
|
|
1869
|
+
readonly tables: {
|
|
1870
|
+
readonly emptyFilter: "No tables match your filter.";
|
|
1871
|
+
readonly highVolume: "high volume";
|
|
1872
|
+
readonly highVolumeNote: "Tables over 100,000 rows start unchecked — ops tables rarely belong in a dashboard.";
|
|
1873
|
+
readonly importNoCounts: "Schema files carry no row counts — the column shows — until a live database is connected.";
|
|
1874
|
+
readonly joinHidden: "{count} join/system tables are pre-hidden — they still power many-to-many relations.";
|
|
1875
|
+
readonly listLabel: "Includable tables";
|
|
1876
|
+
readonly pii: "PII";
|
|
1877
|
+
readonly search: "Filter tables…";
|
|
1878
|
+
readonly subtitle: "Choose which to include. You can change this anytime.";
|
|
1879
|
+
readonly title: "Choose your tables";
|
|
1880
|
+
};
|
|
1881
|
+
readonly test: {
|
|
1882
|
+
readonly errorTitle: "Connection failed";
|
|
1883
|
+
readonly hint: {
|
|
1884
|
+
readonly auth: "Authentication failed — check the user name and password in your DSN.";
|
|
1885
|
+
readonly hostUnreachable: "Host unreachable — check the hostname and port, and that the database accepts connections from this machine (allowlist our IPs).";
|
|
1886
|
+
readonly metaPlacement: "This source cannot host Adminium’s meta tables — continue with a separate meta database.";
|
|
1887
|
+
readonly permission: "The role connected but lacks schema-read privileges — grant USAGE on the schema to your introspection role.";
|
|
1888
|
+
readonly timeout: "The database did not answer in time — check network path and load, then retry.";
|
|
1889
|
+
readonly tls: "TLS negotiation failed — try sslmode=require, or upload the CA certificate your server expects.";
|
|
1890
|
+
readonly unknown: "Connection failed — verify the DSN and retry.";
|
|
1277
1891
|
};
|
|
1278
|
-
readonly
|
|
1279
|
-
readonly
|
|
1280
|
-
readonly
|
|
1281
|
-
readonly
|
|
1282
|
-
readonly
|
|
1283
|
-
readonly
|
|
1284
|
-
readonly
|
|
1892
|
+
readonly log: {
|
|
1893
|
+
readonly connectFailed: "Connection failed.";
|
|
1894
|
+
readonly connected: "Connected ({latency} ms) · read-only introspection";
|
|
1895
|
+
readonly connecting: "Establishing secure connection…";
|
|
1896
|
+
readonly detected: "Detected {tables} tables · {columns} columns";
|
|
1897
|
+
readonly found: "Found {tables} tables · {columns} columns";
|
|
1898
|
+
readonly jobFailed: "Introspection failed.";
|
|
1899
|
+
readonly mapping: "Mapping column types → input widgets";
|
|
1900
|
+
readonly moreWarnings: "+{count} more parser warnings";
|
|
1901
|
+
readonly networkFailed: "Request failed — check your connection and retry.";
|
|
1902
|
+
readonly parsingFile: "Parsing {file}…";
|
|
1903
|
+
readonly piiDone: "PII scan complete — {count} columns masked by default";
|
|
1904
|
+
readonly piiDoneUnknown: "PII scan complete";
|
|
1905
|
+
readonly piiScan: "Scanning for PII columns…";
|
|
1906
|
+
readonly readingFile: "Reading uploaded schema file…";
|
|
1907
|
+
readonly readingSchema: "Reading schema: public";
|
|
1908
|
+
readonly ready: "Ready";
|
|
1909
|
+
readonly relations: "Detecting relations…";
|
|
1285
1910
|
};
|
|
1286
|
-
readonly
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1911
|
+
readonly logLabel: "Introspection log";
|
|
1912
|
+
readonly retry: "Retry";
|
|
1913
|
+
readonly subtitle: "Introspecting tables, columns, and relationships. This takes a few seconds.";
|
|
1914
|
+
readonly title: "Analyzing your schema";
|
|
1915
|
+
readonly trust: "We only read your schema and data. Nothing is modified.";
|
|
1916
|
+
};
|
|
1917
|
+
readonly title: "Studio";
|
|
1918
|
+
readonly wizard: {
|
|
1919
|
+
readonly back: "Back";
|
|
1920
|
+
readonly bridgeAppliedBody: "Handed over from adminium.dev by your browser — it went straight to this machine and was never uploaded. Check it below, then continue.";
|
|
1921
|
+
readonly bridgeAppliedTitle: "Connection string received";
|
|
1922
|
+
readonly bridgeFailedBody: "It has already been used or has expired. Paste your connection string below instead.";
|
|
1923
|
+
readonly bridgeFailedTitle: "That hand-off could not be used";
|
|
1924
|
+
readonly continue: "Continue";
|
|
1925
|
+
readonly persistFailed: "Could not save your table selection — retry.";
|
|
1926
|
+
readonly persistFailedTitle: "Save failed";
|
|
1927
|
+
readonly progress: "Setup progress";
|
|
1928
|
+
readonly step: {
|
|
1929
|
+
readonly enrich: "Enrich";
|
|
1930
|
+
readonly generate: "Generate";
|
|
1931
|
+
readonly intent: "Intent";
|
|
1932
|
+
readonly meta: "Meta storage";
|
|
1933
|
+
readonly source: "Source";
|
|
1934
|
+
readonly tables: "Tables";
|
|
1935
|
+
readonly test: "Analyze";
|
|
1294
1936
|
};
|
|
1937
|
+
readonly title: "New connection";
|
|
1295
1938
|
};
|
|
1296
1939
|
};
|
|
1297
1940
|
export default _default;
|