@antelopejs/dms-saas 0.0.1
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/LICENSE +190 -0
- package/README.md +658 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.js +20 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/oauth-entry.d.ts +5 -0
- package/dist/auth/oauth-entry.js +10 -0
- package/dist/auth/oauth-entry.js.map +1 -0
- package/dist/auth/plan-permissions-resolver.d.ts +1 -0
- package/dist/auth/plan-permissions-resolver.js +44 -0
- package/dist/auth/plan-permissions-resolver.js.map +1 -0
- package/dist/auth/subscription-access-gate.d.ts +8 -0
- package/dist/auth/subscription-access-gate.js +38 -0
- package/dist/auth/subscription-access-gate.js.map +1 -0
- package/dist/automation/index.d.ts +44 -0
- package/dist/automation/index.js +209 -0
- package/dist/automation/index.js.map +1 -0
- package/dist/billing-state/index.d.ts +5 -0
- package/dist/billing-state/index.js +58 -0
- package/dist/billing-state/index.js.map +1 -0
- package/dist/billing-state/recovery.d.ts +22 -0
- package/dist/billing-state/recovery.js +81 -0
- package/dist/billing-state/recovery.js.map +1 -0
- package/dist/config/dev-mode.d.ts +3 -0
- package/dist/config/dev-mode.js +27 -0
- package/dist/config/dev-mode.js.map +1 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.js +19 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/runtime.d.ts +6 -0
- package/dist/config/runtime.js +54 -0
- package/dist/config/runtime.js.map +1 -0
- package/dist/crons/auto-suspend-past-due.d.ts +2 -0
- package/dist/crons/auto-suspend-past-due.js +43 -0
- package/dist/crons/auto-suspend-past-due.js.map +1 -0
- package/dist/crons/cleanup-stripe-webhook-events.d.ts +2 -0
- package/dist/crons/cleanup-stripe-webhook-events.js +27 -0
- package/dist/crons/cleanup-stripe-webhook-events.js.map +1 -0
- package/dist/crons/expire-free-workspaces.d.ts +2 -0
- package/dist/crons/expire-free-workspaces.js +36 -0
- package/dist/crons/expire-free-workspaces.js.map +1 -0
- package/dist/crons/hard-delete-cancelled.d.ts +2 -0
- package/dist/crons/hard-delete-cancelled.js +55 -0
- package/dist/crons/hard-delete-cancelled.js.map +1 -0
- package/dist/crons/index.d.ts +8 -0
- package/dist/crons/index.js +25 -0
- package/dist/crons/index.js.map +1 -0
- package/dist/crons/notify-free-workspaces-ending-soon.d.ts +2 -0
- package/dist/crons/notify-free-workspaces-ending-soon.js +69 -0
- package/dist/crons/notify-free-workspaces-ending-soon.js.map +1 -0
- package/dist/crons/recompute-billing-state.d.ts +2 -0
- package/dist/crons/recompute-billing-state.js +19 -0
- package/dist/crons/recompute-billing-state.js.map +1 -0
- package/dist/crons/recompute-segments.d.ts +2 -0
- package/dist/crons/recompute-segments.js +19 -0
- package/dist/crons/recompute-segments.js.map +1 -0
- package/dist/crons/reconcile-workspace-lifecycle.d.ts +2 -0
- package/dist/crons/reconcile-workspace-lifecycle.js +19 -0
- package/dist/crons/reconcile-workspace-lifecycle.js.map +1 -0
- package/dist/crons/register.d.ts +2 -0
- package/dist/crons/register.js +24 -0
- package/dist/crons/register.js.map +1 -0
- package/dist/crons/subscription-notifications.d.ts +2 -0
- package/dist/crons/subscription-notifications.js +55 -0
- package/dist/crons/subscription-notifications.js.map +1 -0
- package/dist/data-api/index.d.ts +2 -0
- package/dist/data-api/index.js +19 -0
- package/dist/data-api/index.js.map +1 -0
- package/dist/data-api/platformOwner/admin-user-invoices.d.ts +27 -0
- package/dist/data-api/platformOwner/admin-user-invoices.js +158 -0
- package/dist/data-api/platformOwner/admin-user-invoices.js.map +1 -0
- package/dist/data-api/platformOwner/admin-user-workspaces.d.ts +22 -0
- package/dist/data-api/platformOwner/admin-user-workspaces.js +97 -0
- package/dist/data-api/platformOwner/admin-user-workspaces.js.map +1 -0
- package/dist/data-api/platformOwner/credit-notes.d.ts +24 -0
- package/dist/data-api/platformOwner/credit-notes.js +133 -0
- package/dist/data-api/platformOwner/credit-notes.js.map +1 -0
- package/dist/data-api/platformOwner/features.d.ts +30 -0
- package/dist/data-api/platformOwner/features.js +141 -0
- package/dist/data-api/platformOwner/features.js.map +1 -0
- package/dist/data-api/platformOwner/hidden-filter.d.ts +1 -0
- package/dist/data-api/platformOwner/hidden-filter.js +18 -0
- package/dist/data-api/platformOwner/hidden-filter.js.map +1 -0
- package/dist/data-api/platformOwner/index.d.ts +12 -0
- package/dist/data-api/platformOwner/index.js +29 -0
- package/dist/data-api/platformOwner/index.js.map +1 -0
- package/dist/data-api/platformOwner/invoice-options.d.ts +7 -0
- package/dist/data-api/platformOwner/invoice-options.js +14 -0
- package/dist/data-api/platformOwner/invoice-options.js.map +1 -0
- package/dist/data-api/platformOwner/invoices.d.ts +26 -0
- package/dist/data-api/platformOwner/invoices.js +147 -0
- package/dist/data-api/platformOwner/invoices.js.map +1 -0
- package/dist/data-api/platformOwner/members.d.ts +24 -0
- package/dist/data-api/platformOwner/members.js +125 -0
- package/dist/data-api/platformOwner/members.js.map +1 -0
- package/dist/data-api/platformOwner/plan-migrations.d.ts +24 -0
- package/dist/data-api/platformOwner/plan-migrations.js +138 -0
- package/dist/data-api/platformOwner/plan-migrations.js.map +1 -0
- package/dist/data-api/platformOwner/plans.d.ts +30 -0
- package/dist/data-api/platformOwner/plans.js +228 -0
- package/dist/data-api/platformOwner/plans.js.map +1 -0
- package/dist/data-api/platformOwner/segments.d.ts +29 -0
- package/dist/data-api/platformOwner/segments.js +223 -0
- package/dist/data-api/platformOwner/segments.js.map +1 -0
- package/dist/data-api/platformOwner/support.d.ts +58 -0
- package/dist/data-api/platformOwner/support.js +111 -0
- package/dist/data-api/platformOwner/support.js.map +1 -0
- package/dist/data-api/platformOwner/users.d.ts +22 -0
- package/dist/data-api/platformOwner/users.js +128 -0
- package/dist/data-api/platformOwner/users.js.map +1 -0
- package/dist/data-api/platformOwner/workspaces.d.ts +22 -0
- package/dist/data-api/platformOwner/workspaces.js +153 -0
- package/dist/data-api/platformOwner/workspaces.js.map +1 -0
- package/dist/data-api/support-fields.d.ts +49 -0
- package/dist/data-api/support-fields.js +166 -0
- package/dist/data-api/support-fields.js.map +1 -0
- package/dist/data-api/support-routes.d.ts +10 -0
- package/dist/data-api/support-routes.js +71 -0
- package/dist/data-api/support-routes.js.map +1 -0
- package/dist/data-api/tenant/index.d.ts +2 -0
- package/dist/data-api/tenant/index.js +19 -0
- package/dist/data-api/tenant/index.js.map +1 -0
- package/dist/data-api/tenant/support.d.ts +39 -0
- package/dist/data-api/tenant/support.js +53 -0
- package/dist/data-api/tenant/support.js.map +1 -0
- package/dist/data-api/tenant/tenant-invoices.d.ts +37 -0
- package/dist/data-api/tenant/tenant-invoices.js +242 -0
- package/dist/data-api/tenant/tenant-invoices.js.map +1 -0
- package/dist/db/index.d.ts +1 -0
- package/dist/db/index.js +18 -0
- package/dist/db/index.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.js +20 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/register.d.ts +1 -0
- package/dist/hooks/register.js +57 -0
- package/dist/hooks/register.js.map +1 -0
- package/dist/hooks/tenant-export.d.ts +2 -0
- package/dist/hooks/tenant-export.js +64 -0
- package/dist/hooks/tenant-export.js.map +1 -0
- package/dist/hooks/tenant-provisioning.d.ts +3 -0
- package/dist/hooks/tenant-provisioning.js +12 -0
- package/dist/hooks/tenant-provisioning.js.map +1 -0
- package/dist/implementations/dms-saas/billing.d.ts +2 -0
- package/dist/implementations/dms-saas/billing.js +49 -0
- package/dist/implementations/dms-saas/billing.js.map +1 -0
- package/dist/implementations/dms-saas/invoice-line-items.d.ts +11 -0
- package/dist/implementations/dms-saas/invoice-line-items.js +24 -0
- package/dist/implementations/dms-saas/invoice-line-items.js.map +1 -0
- package/dist/implementations/dms-saas/pages.d.ts +3 -0
- package/dist/implementations/dms-saas/pages.js +12 -0
- package/dist/implementations/dms-saas/pages.js.map +1 -0
- package/dist/implementations/dms-saas/workspace-lifecycle.d.ts +2 -0
- package/dist/implementations/dms-saas/workspace-lifecycle.js +23 -0
- package/dist/implementations/dms-saas/workspace-lifecycle.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +107 -0
- package/dist/index.js.map +1 -0
- package/dist/invoice-line-items/billing-window.d.ts +3 -0
- package/dist/invoice-line-items/billing-window.js +19 -0
- package/dist/invoice-line-items/billing-window.js.map +1 -0
- package/dist/invoice-line-items/index.d.ts +1 -0
- package/dist/invoice-line-items/index.js +18 -0
- package/dist/invoice-line-items/index.js.map +1 -0
- package/dist/invoice-line-items/injection.d.ts +2 -0
- package/dist/invoice-line-items/injection.js +171 -0
- package/dist/invoice-line-items/injection.js.map +1 -0
- package/dist/notifications/index.d.ts +2 -0
- package/dist/notifications/index.js +19 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/notifications/recipients.d.ts +14 -0
- package/dist/notifications/recipients.js +87 -0
- package/dist/notifications/recipients.js.map +1 -0
- package/dist/notifications/subjects.d.ts +21 -0
- package/dist/notifications/subjects.js +121 -0
- package/dist/notifications/subjects.js.map +1 -0
- package/dist/operator-actions/commands.d.ts +41 -0
- package/dist/operator-actions/commands.js +233 -0
- package/dist/operator-actions/commands.js.map +1 -0
- package/dist/operator-actions/db/index.d.ts +4 -0
- package/dist/operator-actions/db/index.js +21 -0
- package/dist/operator-actions/db/index.js.map +1 -0
- package/dist/operator-actions/db/lifecycle-delivery.model.d.ts +29 -0
- package/dist/operator-actions/db/lifecycle-delivery.model.js +85 -0
- package/dist/operator-actions/db/lifecycle-delivery.model.js.map +1 -0
- package/dist/operator-actions/db/lifecycle-delivery.table.d.ts +26 -0
- package/dist/operator-actions/db/lifecycle-delivery.table.js +107 -0
- package/dist/operator-actions/db/lifecycle-delivery.table.js.map +1 -0
- package/dist/operator-actions/db/operator-action.model.d.ts +33 -0
- package/dist/operator-actions/db/operator-action.model.js +63 -0
- package/dist/operator-actions/db/operator-action.model.js.map +1 -0
- package/dist/operator-actions/db/operator-action.table.d.ts +21 -0
- package/dist/operator-actions/db/operator-action.table.js +95 -0
- package/dist/operator-actions/db/operator-action.table.js.map +1 -0
- package/dist/operator-actions/index.d.ts +3 -0
- package/dist/operator-actions/index.js +20 -0
- package/dist/operator-actions/index.js.map +1 -0
- package/dist/operator-actions/journal.d.ts +22 -0
- package/dist/operator-actions/journal.js +183 -0
- package/dist/operator-actions/journal.js.map +1 -0
- package/dist/operator-actions/lifecycle-consumers.d.ts +12 -0
- package/dist/operator-actions/lifecycle-consumers.js +28 -0
- package/dist/operator-actions/lifecycle-consumers.js.map +1 -0
- package/dist/operator-actions/lifecycle-outbox.d.ts +19 -0
- package/dist/operator-actions/lifecycle-outbox.js +229 -0
- package/dist/operator-actions/lifecycle-outbox.js.map +1 -0
- package/dist/operator-actions/types.d.ts +11 -0
- package/dist/operator-actions/types.js +3 -0
- package/dist/operator-actions/types.js.map +1 -0
- package/dist/pages/definitions.d.ts +1 -0
- package/dist/pages/definitions.js +18 -0
- package/dist/pages/definitions.js.map +1 -0
- package/dist/pages/index.d.ts +4 -0
- package/dist/pages/index.js +21 -0
- package/dist/pages/index.js.map +1 -0
- package/dist/pages/module.d.ts +5 -0
- package/dist/pages/module.js +15 -0
- package/dist/pages/module.js.map +1 -0
- package/dist/pages/platform/categories.d.ts +6 -0
- package/dist/pages/platform/categories.js +48 -0
- package/dist/pages/platform/categories.js.map +1 -0
- package/dist/pages/platform/credit-notes.d.ts +9 -0
- package/dist/pages/platform/credit-notes.js +40 -0
- package/dist/pages/platform/credit-notes.js.map +1 -0
- package/dist/pages/platform/dashboard.d.ts +10 -0
- package/dist/pages/platform/dashboard.js +95 -0
- package/dist/pages/platform/dashboard.js.map +1 -0
- package/dist/pages/platform/features.d.ts +9 -0
- package/dist/pages/platform/features.js +42 -0
- package/dist/pages/platform/features.js.map +1 -0
- package/dist/pages/platform/index.d.ts +15 -0
- package/dist/pages/platform/index.js +32 -0
- package/dist/pages/platform/index.js.map +1 -0
- package/dist/pages/platform/invoices.d.ts +9 -0
- package/dist/pages/platform/invoices.js +63 -0
- package/dist/pages/platform/invoices.js.map +1 -0
- package/dist/pages/platform/plans/edit.d.ts +17 -0
- package/dist/pages/platform/plans/edit.js +213 -0
- package/dist/pages/platform/plans/edit.js.map +1 -0
- package/dist/pages/platform/plans/index.d.ts +9 -0
- package/dist/pages/platform/plans/index.js +99 -0
- package/dist/pages/platform/plans/index.js.map +1 -0
- package/dist/pages/platform/plans/migrations.d.ts +9 -0
- package/dist/pages/platform/plans/migrations.js +38 -0
- package/dist/pages/platform/plans/migrations.js.map +1 -0
- package/dist/pages/platform/segments/index.d.ts +9 -0
- package/dist/pages/platform/segments/index.js +59 -0
- package/dist/pages/platform/segments/index.js.map +1 -0
- package/dist/pages/platform/settings.d.ts +9 -0
- package/dist/pages/platform/settings.js +147 -0
- package/dist/pages/platform/settings.js.map +1 -0
- package/dist/pages/platform/support.d.ts +9 -0
- package/dist/pages/platform/support.js +29 -0
- package/dist/pages/platform/support.js.map +1 -0
- package/dist/pages/platform/users/detail.d.ts +9 -0
- package/dist/pages/platform/users/detail.js +78 -0
- package/dist/pages/platform/users/detail.js.map +1 -0
- package/dist/pages/platform/users/index.d.ts +9 -0
- package/dist/pages/platform/users/index.js +77 -0
- package/dist/pages/platform/users/index.js.map +1 -0
- package/dist/pages/platform/workspaces/detail.d.ts +9 -0
- package/dist/pages/platform/workspaces/detail.js +120 -0
- package/dist/pages/platform/workspaces/detail.js.map +1 -0
- package/dist/pages/platform/workspaces/index.d.ts +35 -0
- package/dist/pages/platform/workspaces/index.js +300 -0
- package/dist/pages/platform/workspaces/index.js.map +1 -0
- package/dist/pages/public/auth/index.d.ts +1 -0
- package/dist/pages/public/auth/index.js +18 -0
- package/dist/pages/public/auth/index.js.map +1 -0
- package/dist/pages/public/auth/no-workspace.d.ts +9 -0
- package/dist/pages/public/auth/no-workspace.js +26 -0
- package/dist/pages/public/auth/no-workspace.js.map +1 -0
- package/dist/pages/public/index.d.ts +3 -0
- package/dist/pages/public/index.js +20 -0
- package/dist/pages/public/index.js.map +1 -0
- package/dist/pages/public/legal/index.d.ts +3 -0
- package/dist/pages/public/legal/index.js +20 -0
- package/dist/pages/public/legal/index.js.map +1 -0
- package/dist/pages/public/legal/privacy-policy.d.ts +9 -0
- package/dist/pages/public/legal/privacy-policy.js +29 -0
- package/dist/pages/public/legal/privacy-policy.js.map +1 -0
- package/dist/pages/public/legal/terms-and-conditions.d.ts +9 -0
- package/dist/pages/public/legal/terms-and-conditions.js +29 -0
- package/dist/pages/public/legal/terms-and-conditions.js.map +1 -0
- package/dist/pages/public/legal/terms-of-use.d.ts +9 -0
- package/dist/pages/public/legal/terms-of-use.js +29 -0
- package/dist/pages/public/legal/terms-of-use.js.map +1 -0
- package/dist/pages/public/register.d.ts +9 -0
- package/dist/pages/public/register.js +29 -0
- package/dist/pages/public/register.js.map +1 -0
- package/dist/pages/public/screens.d.ts +3 -0
- package/dist/pages/public/screens.js +50 -0
- package/dist/pages/public/screens.js.map +1 -0
- package/dist/pages/tenant/billing.d.ts +15 -0
- package/dist/pages/tenant/billing.js +87 -0
- package/dist/pages/tenant/billing.js.map +1 -0
- package/dist/pages/tenant/data-export.d.ts +10 -0
- package/dist/pages/tenant/data-export.js +32 -0
- package/dist/pages/tenant/data-export.js.map +1 -0
- package/dist/pages/tenant/general.d.ts +10 -0
- package/dist/pages/tenant/general.js +33 -0
- package/dist/pages/tenant/general.js.map +1 -0
- package/dist/pages/tenant/index.d.ts +6 -0
- package/dist/pages/tenant/index.js +23 -0
- package/dist/pages/tenant/index.js.map +1 -0
- package/dist/pages/tenant/members-seat-quota.d.ts +3 -0
- package/dist/pages/tenant/members-seat-quota.js +25 -0
- package/dist/pages/tenant/members-seat-quota.js.map +1 -0
- package/dist/pages/tenant/support.d.ts +9 -0
- package/dist/pages/tenant/support.js +27 -0
- package/dist/pages/tenant/support.js.map +1 -0
- package/dist/pages/tenant/workspace-suspended.d.ts +9 -0
- package/dist/pages/tenant/workspace-suspended.js +26 -0
- package/dist/pages/tenant/workspace-suspended.js.map +1 -0
- package/dist/plan-changes/deferred.d.ts +18 -0
- package/dist/plan-changes/deferred.js +225 -0
- package/dist/plan-changes/deferred.js.map +1 -0
- package/dist/plan-changes/index.d.ts +1 -0
- package/dist/plan-changes/index.js +18 -0
- package/dist/plan-changes/index.js.map +1 -0
- package/dist/plans/index.d.ts +4 -0
- package/dist/plans/index.js +21 -0
- package/dist/plans/index.js.map +1 -0
- package/dist/plans/seat-capacity.d.ts +9 -0
- package/dist/plans/seat-capacity.js +38 -0
- package/dist/plans/seat-capacity.js.map +1 -0
- package/dist/plans/seat-hooks.d.ts +1 -0
- package/dist/plans/seat-hooks.js +80 -0
- package/dist/plans/seat-hooks.js.map +1 -0
- package/dist/plans/seat-sync.d.ts +10 -0
- package/dist/plans/seat-sync.js +23 -0
- package/dist/plans/seat-sync.js.map +1 -0
- package/dist/routes/index.d.ts +3 -0
- package/dist/routes/index.js +20 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/platformOwner/billing-settings.d.ts +20 -0
- package/dist/routes/platformOwner/billing-settings.js +98 -0
- package/dist/routes/platformOwner/billing-settings.js.map +1 -0
- package/dist/routes/platformOwner/credit-notes-issue.d.ts +16 -0
- package/dist/routes/platformOwner/credit-notes-issue.js +56 -0
- package/dist/routes/platformOwner/credit-notes-issue.js.map +1 -0
- package/dist/routes/platformOwner/dashboard.d.ts +62 -0
- package/dist/routes/platformOwner/dashboard.js +310 -0
- package/dist/routes/platformOwner/dashboard.js.map +1 -0
- package/dist/routes/platformOwner/index.d.ts +12 -0
- package/dist/routes/platformOwner/index.js +29 -0
- package/dist/routes/platformOwner/index.js.map +1 -0
- package/dist/routes/platformOwner/plan-deletion.d.ts +30 -0
- package/dist/routes/platformOwner/plan-deletion.js +156 -0
- package/dist/routes/platformOwner/plan-deletion.js.map +1 -0
- package/dist/routes/platformOwner/plans.d.ts +99 -0
- package/dist/routes/platformOwner/plans.js +376 -0
- package/dist/routes/platformOwner/plans.js.map +1 -0
- package/dist/routes/platformOwner/platform-notes.d.ts +36 -0
- package/dist/routes/platformOwner/platform-notes.js +149 -0
- package/dist/routes/platformOwner/platform-notes.js.map +1 -0
- package/dist/routes/platformOwner/platform-owners.d.ts +12 -0
- package/dist/routes/platformOwner/platform-owners.js +77 -0
- package/dist/routes/platformOwner/platform-owners.js.map +1 -0
- package/dist/routes/platformOwner/segments.d.ts +24 -0
- package/dist/routes/platformOwner/segments.js +174 -0
- package/dist/routes/platformOwner/segments.js.map +1 -0
- package/dist/routes/platformOwner/support.d.ts +21 -0
- package/dist/routes/platformOwner/support.js +180 -0
- package/dist/routes/platformOwner/support.js.map +1 -0
- package/dist/routes/platformOwner/users-detail.d.ts +26 -0
- package/dist/routes/platformOwner/users-detail.js +82 -0
- package/dist/routes/platformOwner/users-detail.js.map +1 -0
- package/dist/routes/platformOwner/workspace-operator-actions.d.ts +34 -0
- package/dist/routes/platformOwner/workspace-operator-actions.js +183 -0
- package/dist/routes/platformOwner/workspace-operator-actions.js.map +1 -0
- package/dist/routes/platformOwner/workspaces-admin.d.ts +27 -0
- package/dist/routes/platformOwner/workspaces-admin.js +140 -0
- package/dist/routes/platformOwner/workspaces-admin.js.map +1 -0
- package/dist/routes/public/index.d.ts +3 -0
- package/dist/routes/public/index.js +20 -0
- package/dist/routes/public/index.js.map +1 -0
- package/dist/routes/public/legal-documents.d.ts +15 -0
- package/dist/routes/public/legal-documents.js +72 -0
- package/dist/routes/public/legal-documents.js.map +1 -0
- package/dist/routes/public/register.d.ts +48 -0
- package/dist/routes/public/register.js +193 -0
- package/dist/routes/public/register.js.map +1 -0
- package/dist/routes/public/webhooks/index.d.ts +1 -0
- package/dist/routes/public/webhooks/index.js +18 -0
- package/dist/routes/public/webhooks/index.js.map +1 -0
- package/dist/routes/public/webhooks/stripe.d.ts +7 -0
- package/dist/routes/public/webhooks/stripe.js +41 -0
- package/dist/routes/public/webhooks/stripe.js.map +1 -0
- package/dist/routes/tenant/billing-portal.d.ts +31 -0
- package/dist/routes/tenant/billing-portal.js +117 -0
- package/dist/routes/tenant/billing-portal.js.map +1 -0
- package/dist/routes/tenant/billing-self-refund.d.ts +18 -0
- package/dist/routes/tenant/billing-self-refund.js +199 -0
- package/dist/routes/tenant/billing-self-refund.js.map +1 -0
- package/dist/routes/tenant/data-export.d.ts +16 -0
- package/dist/routes/tenant/data-export.js +102 -0
- package/dist/routes/tenant/data-export.js.map +1 -0
- package/dist/routes/tenant/index.d.ts +9 -0
- package/dist/routes/tenant/index.js +26 -0
- package/dist/routes/tenant/index.js.map +1 -0
- package/dist/routes/tenant/support.d.ts +27 -0
- package/dist/routes/tenant/support.js +185 -0
- package/dist/routes/tenant/support.js.map +1 -0
- package/dist/routes/tenant/tenant-billing.d.ts +26 -0
- package/dist/routes/tenant/tenant-billing.js +148 -0
- package/dist/routes/tenant/tenant-billing.js.map +1 -0
- package/dist/routes/tenant/tenant-plan-ops.d.ts +57 -0
- package/dist/routes/tenant/tenant-plan-ops.js +244 -0
- package/dist/routes/tenant/tenant-plan-ops.js.map +1 -0
- package/dist/routes/tenant/tenant-plan.d.ts +19 -0
- package/dist/routes/tenant/tenant-plan.js +172 -0
- package/dist/routes/tenant/tenant-plan.js.map +1 -0
- package/dist/routes/tenant/tenant-seats.d.ts +17 -0
- package/dist/routes/tenant/tenant-seats.js +58 -0
- package/dist/routes/tenant/tenant-seats.js.map +1 -0
- package/dist/routes/tenant/workspaces.d.ts +78 -0
- package/dist/routes/tenant/workspaces.js +301 -0
- package/dist/routes/tenant/workspaces.js.map +1 -0
- package/dist/stripe/client.d.ts +6 -0
- package/dist/stripe/client.js +44 -0
- package/dist/stripe/client.js.map +1 -0
- package/dist/stripe/customer-balance.d.ts +12 -0
- package/dist/stripe/customer-balance.js +16 -0
- package/dist/stripe/customer-balance.js.map +1 -0
- package/dist/stripe/customer-billing.d.ts +33 -0
- package/dist/stripe/customer-billing.js +140 -0
- package/dist/stripe/customer-billing.js.map +1 -0
- package/dist/stripe/index.d.ts +11 -0
- package/dist/stripe/index.js +28 -0
- package/dist/stripe/index.js.map +1 -0
- package/dist/stripe/plan-schedule.d.ts +9 -0
- package/dist/stripe/plan-schedule.js +83 -0
- package/dist/stripe/plan-schedule.js.map +1 -0
- package/dist/stripe/proration.d.ts +2 -0
- package/dist/stripe/proration.js +19 -0
- package/dist/stripe/proration.js.map +1 -0
- package/dist/stripe/sync-plan.d.ts +2 -0
- package/dist/stripe/sync-plan.js +66 -0
- package/dist/stripe/sync-plan.js.map +1 -0
- package/dist/stripe/webhook-checkout.d.ts +3 -0
- package/dist/stripe/webhook-checkout.js +157 -0
- package/dist/stripe/webhook-checkout.js.map +1 -0
- package/dist/stripe/webhook-credit-notes.d.ts +3 -0
- package/dist/stripe/webhook-credit-notes.js +192 -0
- package/dist/stripe/webhook-credit-notes.js.map +1 -0
- package/dist/stripe/webhook-dispatch.d.ts +2 -0
- package/dist/stripe/webhook-dispatch.js +45 -0
- package/dist/stripe/webhook-dispatch.js.map +1 -0
- package/dist/stripe/webhook-handlers.d.ts +11 -0
- package/dist/stripe/webhook-handlers.js +318 -0
- package/dist/stripe/webhook-handlers.js.map +1 -0
- package/dist/stripe/webhook-shared.d.ts +28 -0
- package/dist/stripe/webhook-shared.js +126 -0
- package/dist/stripe/webhook-shared.js.map +1 -0
- package/dist/stripe/workspace-checkout.d.ts +29 -0
- package/dist/stripe/workspace-checkout.js +106 -0
- package/dist/stripe/workspace-checkout.js.map +1 -0
- package/dist/support/admissions.d.ts +36 -0
- package/dist/support/admissions.js +136 -0
- package/dist/support/admissions.js.map +1 -0
- package/dist/support/attachments.d.ts +12 -0
- package/dist/support/attachments.js +56 -0
- package/dist/support/attachments.js.map +1 -0
- package/dist/support/config.d.ts +19 -0
- package/dist/support/config.js +75 -0
- package/dist/support/config.js.map +1 -0
- package/dist/support/index.d.ts +6 -0
- package/dist/support/index.js +23 -0
- package/dist/support/index.js.map +1 -0
- package/dist/support/operations.d.ts +51 -0
- package/dist/support/operations.js +109 -0
- package/dist/support/operations.js.map +1 -0
- package/dist/support/plans.d.ts +6 -0
- package/dist/support/plans.js +130 -0
- package/dist/support/plans.js.map +1 -0
- package/dist/support/publications.d.ts +8 -0
- package/dist/support/publications.js +106 -0
- package/dist/support/publications.js.map +1 -0
- package/dist/support/recovery.d.ts +7 -0
- package/dist/support/recovery.js +43 -0
- package/dist/support/recovery.js.map +1 -0
- package/dist/support/service.d.ts +51 -0
- package/dist/support/service.js +143 -0
- package/dist/support/service.js.map +1 -0
- package/dist/support/transitions.d.ts +4 -0
- package/dist/support/transitions.js +29 -0
- package/dist/support/transitions.js.map +1 -0
- package/dist/support/uploads.d.ts +39 -0
- package/dist/support/uploads.js +115 -0
- package/dist/support/uploads.js.map +1 -0
- package/dist/support/validation.d.ts +15 -0
- package/dist/support/validation.js +54 -0
- package/dist/support/validation.js.map +1 -0
- package/dist/types/config.d.ts +16 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/billing-document-type.d.ts +3 -0
- package/dist/utils/billing-document-type.js +18 -0
- package/dist/utils/billing-document-type.js.map +1 -0
- package/dist/utils/billing-period-type.d.ts +3 -0
- package/dist/utils/billing-period-type.js +18 -0
- package/dist/utils/billing-period-type.js.map +1 -0
- package/dist/utils/email-hash.d.ts +1 -0
- package/dist/utils/email-hash.js +8 -0
- package/dist/utils/email-hash.js.map +1 -0
- package/dist/utils/export-dataset-stream.d.ts +19 -0
- package/dist/utils/export-dataset-stream.js +40 -0
- package/dist/utils/export-dataset-stream.js.map +1 -0
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.js +32 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/invoice-lines-type.d.ts +27 -0
- package/dist/utils/invoice-lines-type.js +34 -0
- package/dist/utils/invoice-lines-type.js.map +1 -0
- package/dist/utils/money-cents-type.d.ts +3 -0
- package/dist/utils/money-cents-type.js +18 -0
- package/dist/utils/money-cents-type.js.map +1 -0
- package/dist/utils/pagination.d.ts +22 -0
- package/dist/utils/pagination.js +35 -0
- package/dist/utils/pagination.js.map +1 -0
- package/dist/utils/parse-future-date.d.ts +1 -0
- package/dist/utils/parse-future-date.js +15 -0
- package/dist/utils/parse-future-date.js.map +1 -0
- package/dist/utils/row-instance.d.ts +1 -0
- package/dist/utils/row-instance.js +8 -0
- package/dist/utils/row-instance.js.map +1 -0
- package/dist/utils/segment-conditions-type.d.ts +33 -0
- package/dist/utils/segment-conditions-type.js +86 -0
- package/dist/utils/segment-conditions-type.js.map +1 -0
- package/dist/utils/segment-evaluator.d.ts +3 -0
- package/dist/utils/segment-evaluator.js +117 -0
- package/dist/utils/segment-evaluator.js.map +1 -0
- package/dist/utils/segment-fields.d.ts +19 -0
- package/dist/utils/segment-fields.js +212 -0
- package/dist/utils/segment-fields.js.map +1 -0
- package/dist/utils/segment-matching.d.ts +56 -0
- package/dist/utils/segment-matching.js +200 -0
- package/dist/utils/segment-matching.js.map +1 -0
- package/dist/utils/segment-name-cache.d.ts +2 -0
- package/dist/utils/segment-name-cache.js +22 -0
- package/dist/utils/segment-name-cache.js.map +1 -0
- package/dist/utils/time.d.ts +3 -0
- package/dist/utils/time.js +10 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/workers/index.d.ts +1 -0
- package/dist/workers/index.js +18 -0
- package/dist/workers/index.js.map +1 -0
- package/dist/workers/plan-migration.d.ts +4 -0
- package/dist/workers/plan-migration.js +206 -0
- package/dist/workers/plan-migration.js.map +1 -0
- package/dist/workspaces/billing-profile.d.ts +3 -0
- package/dist/workspaces/billing-profile.js +55 -0
- package/dist/workspaces/billing-profile.js.map +1 -0
- package/dist/workspaces/complimentary.d.ts +7 -0
- package/dist/workspaces/complimentary.js +47 -0
- package/dist/workspaces/complimentary.js.map +1 -0
- package/dist/workspaces/db/card-capacity.model.d.ts +30 -0
- package/dist/workspaces/db/card-capacity.model.js +98 -0
- package/dist/workspaces/db/card-capacity.model.js.map +1 -0
- package/dist/workspaces/db/card-capacity.table.d.ts +11 -0
- package/dist/workspaces/db/card-capacity.table.js +34 -0
- package/dist/workspaces/db/card-capacity.table.js.map +1 -0
- package/dist/workspaces/db/provisioning-attempt.model.d.ts +24 -0
- package/dist/workspaces/db/provisioning-attempt.model.js +33 -0
- package/dist/workspaces/db/provisioning-attempt.model.js.map +1 -0
- package/dist/workspaces/db/provisioning-attempt.table.d.ts +18 -0
- package/dist/workspaces/db/provisioning-attempt.table.js +77 -0
- package/dist/workspaces/db/provisioning-attempt.table.js.map +1 -0
- package/dist/workspaces/db/trial-identity.model.d.ts +25 -0
- package/dist/workspaces/db/trial-identity.model.js +62 -0
- package/dist/workspaces/db/trial-identity.model.js.map +1 -0
- package/dist/workspaces/db/trial-identity.table.d.ts +7 -0
- package/dist/workspaces/db/trial-identity.table.js +34 -0
- package/dist/workspaces/db/trial-identity.table.js.map +1 -0
- package/dist/workspaces/deletion.d.ts +8 -0
- package/dist/workspaces/deletion.js +75 -0
- package/dist/workspaces/deletion.js.map +1 -0
- package/dist/workspaces/free-workspace-guard.d.ts +11 -0
- package/dist/workspaces/free-workspace-guard.js +96 -0
- package/dist/workspaces/free-workspace-guard.js.map +1 -0
- package/dist/workspaces/index.d.ts +6 -0
- package/dist/workspaces/index.js +23 -0
- package/dist/workspaces/index.js.map +1 -0
- package/dist/workspaces/provisioning-rollback.d.ts +2 -0
- package/dist/workspaces/provisioning-rollback.js +78 -0
- package/dist/workspaces/provisioning-rollback.js.map +1 -0
- package/dist/workspaces/provisioning-state.d.ts +6 -0
- package/dist/workspaces/provisioning-state.js +91 -0
- package/dist/workspaces/provisioning-state.js.map +1 -0
- package/dist/workspaces/provisioning.d.ts +49 -0
- package/dist/workspaces/provisioning.js +263 -0
- package/dist/workspaces/provisioning.js.map +1 -0
- package/dist/workspaces/registration-extras.d.ts +1 -0
- package/dist/workspaces/registration-extras.js +50 -0
- package/dist/workspaces/registration-extras.js.map +1 -0
- package/dist/workspaces/suspension.d.ts +13 -0
- package/dist/workspaces/suspension.js +124 -0
- package/dist/workspaces/suspension.js.map +1 -0
- package/frontend-vue/.editorconfig +12 -0
- package/frontend-vue/.prettierrc +11 -0
- package/frontend-vue/app/build/.gitkeep +0 -0
- package/frontend-vue/app/components/CardGrid.vue +77 -0
- package/frontend-vue/app/components/CustomerPortalButton.vue +45 -0
- package/frontend-vue/app/components/DataExport.vue +300 -0
- package/frontend-vue/app/components/DeletePlanModal.vue +223 -0
- package/frontend-vue/app/components/FreeAccessBanner.vue +70 -0
- package/frontend-vue/app/components/InvoiceLines.vue +57 -0
- package/frontend-vue/app/components/IssueCreditNoteModal.vue +128 -0
- package/frontend-vue/app/components/LegalLayout.vue +63 -0
- package/frontend-vue/app/components/LoadFailure.vue +25 -0
- package/frontend-vue/app/components/PastDueAlert.vue +96 -0
- package/frontend-vue/app/components/PaymentMethodCard.vue +86 -0
- package/frontend-vue/app/components/PlanCard.vue +294 -0
- package/frontend-vue/app/components/PlanCardPublic.vue +59 -0
- package/frontend-vue/app/components/PlanCardsDisplay.vue +127 -0
- package/frontend-vue/app/components/PlanComparisonModal.vue +213 -0
- package/frontend-vue/app/components/PlanInheritancePicker.vue +329 -0
- package/frontend-vue/app/components/PlatformNotes.vue +281 -0
- package/frontend-vue/app/components/PlatformSupport.vue +461 -0
- package/frontend-vue/app/components/RecentActivity.vue +72 -0
- package/frontend-vue/app/components/RefundButton.vue +126 -0
- package/frontend-vue/app/components/Register.vue +174 -0
- package/frontend-vue/app/components/RegistrationClosed.vue +15 -0
- package/frontend-vue/app/components/SeatQuotaBanner.vue +78 -0
- package/frontend-vue/app/components/SegmentConditionsBuilder.vue +176 -0
- package/frontend-vue/app/components/SegmentConditionsGroup.vue +494 -0
- package/frontend-vue/app/components/SupportAttachmentUpload.vue +140 -0
- package/frontend-vue/app/components/SupportThreadHistory.vue +139 -0
- package/frontend-vue/app/components/TenantBillingForm.vue +208 -0
- package/frontend-vue/app/components/TenantPlanCard.vue +223 -0
- package/frontend-vue/app/components/TenantSupport.vue +415 -0
- package/frontend-vue/app/components/UserSummaryCard.vue +166 -0
- package/frontend-vue/app/components/WorkspaceBillingInfo.vue +68 -0
- package/frontend-vue/app/components/WorkspaceCompAccessButton.vue +198 -0
- package/frontend-vue/app/components/WorkspaceCreateModal.vue +256 -0
- package/frontend-vue/app/components/WorkspaceDangerZone.vue +146 -0
- package/frontend-vue/app/components/WorkspaceDetailHeader.vue +24 -0
- package/frontend-vue/app/components/WorkspaceIdentity.vue +99 -0
- package/frontend-vue/app/components/WorkspaceJoinButton.vue +50 -0
- package/frontend-vue/app/components/WorkspaceOperatorActions.vue +340 -0
- package/frontend-vue/app/components/WorkspaceSummaryCard.vue +161 -0
- package/frontend-vue/app/components/WorkspaceSuspendButton.vue +167 -0
- package/frontend-vue/app/components/WorkspaceSuspended.vue +164 -0
- package/frontend-vue/app/components/WorkspaceSwitcherWidget.vue +247 -0
- package/frontend-vue/app/composables/useApiErrorMessage.ts +35 -0
- package/frontend-vue/app/composables/useBillingCountries.ts +54 -0
- package/frontend-vue/app/composables/useBillingDocumentType.ts +7 -0
- package/frontend-vue/app/composables/useBillingStatus.ts +39 -0
- package/frontend-vue/app/composables/useCurrentWorkspace.ts +43 -0
- package/frontend-vue/app/composables/useDetailRefresh.ts +17 -0
- package/frontend-vue/app/composables/useExportHistory.ts +143 -0
- package/frontend-vue/app/composables/useInvoiceLines.ts +22 -0
- package/frontend-vue/app/composables/useMoneyFormat.ts +49 -0
- package/frontend-vue/app/composables/useMyWorkspaces.ts +47 -0
- package/frontend-vue/app/composables/usePlanFeatureFormat.ts +60 -0
- package/frontend-vue/app/composables/usePlanIntervalLabel.ts +30 -0
- package/frontend-vue/app/composables/useSaasRegistration.ts +522 -0
- package/frontend-vue/app/composables/useSeatQuota.ts +18 -0
- package/frontend-vue/app/composables/useSharedRequest.ts +54 -0
- package/frontend-vue/app/composables/useStripePaymentElement.ts +74 -0
- package/frontend-vue/app/composables/useSubscriptionAccess.ts +12 -0
- package/frontend-vue/app/composables/useSupportRequest.ts +74 -0
- package/frontend-vue/app/composables/useTenantPlan.ts +95 -0
- package/frontend-vue/app/composables/useTenantSwitch.ts +22 -0
- package/frontend-vue/app/composables/useWorkspaceAccessCache.ts +25 -0
- package/frontend-vue/app/custom-pages/auth/no-workspace.vue +495 -0
- package/frontend-vue/app/middleware/workspace-suspended.global.ts +56 -0
- package/frontend-vue/app/plugins/auth-links.ts +24 -0
- package/frontend-vue/app/plugins/billing-data-types.ts +62 -0
- package/frontend-vue/app/plugins/footer-links.ts +36 -0
- package/frontend-vue/app/plugins/plan-cards-display.client.ts +16 -0
- package/frontend-vue/app/plugins/segment-conditions-data-type.client.ts +122 -0
- package/frontend-vue/app/plugins/sidebar-widgets.ts +13 -0
- package/frontend-vue/app/types/support.ts +123 -0
- package/frontend-vue/dms.frontend.ts +68 -0
- package/frontend-vue/eslint.config.mjs +13 -0
- package/frontend-vue/i18n/locales/saas-en-GB.json +1285 -0
- package/frontend-vue/i18n/locales/saas-fr-FR.json +1285 -0
- package/frontend-vue/package.json +27 -0
- package/frontend-vue/pnpm-lock.yaml +4948 -0
- package/frontend-vue/pnpm-workspace.yaml +2 -0
- package/frontend-vue/server/routes/auth/finalize-workspace.post.ts +61 -0
- package/package.json +91 -0
|
@@ -0,0 +1,1285 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"cancel": "Cancel",
|
|
4
|
+
"load_more": "Load more"
|
|
5
|
+
},
|
|
6
|
+
"saas": {
|
|
7
|
+
"admission": {
|
|
8
|
+
"title": "Registration is closed",
|
|
9
|
+
"description": "New accounts are available by invitation only. If you received an invitation, use the link in your email.",
|
|
10
|
+
"login": "Sign in",
|
|
11
|
+
"complimentary_reduction": "Complimentary access (100%)",
|
|
12
|
+
"total": "Total",
|
|
13
|
+
"plan_managed": "Your plan is managed by an administrator during complimentary access."
|
|
14
|
+
},
|
|
15
|
+
"menu": {
|
|
16
|
+
"overview": "Overview",
|
|
17
|
+
"customers": "Customers",
|
|
18
|
+
"catalog": "Catalogue",
|
|
19
|
+
"billing": "Billing",
|
|
20
|
+
"support": "Support",
|
|
21
|
+
"configuration": "Configuration"
|
|
22
|
+
},
|
|
23
|
+
"errors": {
|
|
24
|
+
"registration_closed": "Registration is closed. Please use your invitation link or sign in.",
|
|
25
|
+
"plan": {
|
|
26
|
+
"complimentary_locked": "Your plan is managed by an administrator during complimentary access.",
|
|
27
|
+
"paid_recovery_required": "Choose a paid plan to resume access.",
|
|
28
|
+
"not_found": "Plan not found",
|
|
29
|
+
"source_not_found": "Source plan not found",
|
|
30
|
+
"target_not_found": "Target plan not found",
|
|
31
|
+
"target_must_be_active": "Target plan must be active",
|
|
32
|
+
"creation_failed": "Plan creation failed",
|
|
33
|
+
"invalid": "Invalid plan",
|
|
34
|
+
"not_available": "Plan not available",
|
|
35
|
+
"not_available_for_customer_type": "Plan not available for this customer type",
|
|
36
|
+
"not_synced_with_stripe": "Plan not synced with Stripe",
|
|
37
|
+
"has_workspaces": "This plan has active workspaces. Migrate them before deletion.",
|
|
38
|
+
"customer_type_unknown": "Billing information is incomplete: set the customer type first",
|
|
39
|
+
"downgrade_exceeds_seat_limit": "This plan allows fewer members than the workspace currently has",
|
|
40
|
+
"inheritance_cycle": "Plan inheritance would create a cycle",
|
|
41
|
+
"inheritance_parent_missing": "Parent plan not found",
|
|
42
|
+
"invalid_interval": "Plan billing interval must be monthly or yearly",
|
|
43
|
+
"no_stripe_price": "Plan has no Stripe price",
|
|
44
|
+
"seat_limit_reached": "The plan's member limit has been reached",
|
|
45
|
+
"no_pending_change": "No scheduled plan change to cancel",
|
|
46
|
+
"unpaid_invoice_blocks_downgrade": "An invoice is unpaid. Settle it before changing to a cheaper plan."
|
|
47
|
+
},
|
|
48
|
+
"workspace": {
|
|
49
|
+
"not_found": "Workspace not found",
|
|
50
|
+
"no_stripe_customer": "Workspace has no Stripe customer",
|
|
51
|
+
"no_active_subscription": "Workspace has no active subscription",
|
|
52
|
+
"access_blocked": "Access to this workspace is restricted by its subscription status",
|
|
53
|
+
"already_suspended": "Workspace is already suspended",
|
|
54
|
+
"not_suspended": "Workspace is not suspended",
|
|
55
|
+
"free_limit_reached": "This card has already reached the free workspace limit.",
|
|
56
|
+
"creation_in_progress": "Another workspace is already being created with this card. Please wait a moment and try again.",
|
|
57
|
+
"name_required": "The workspace name is required.",
|
|
58
|
+
"payment_method_required": "A card is required.",
|
|
59
|
+
"is_cancelled": "This workspace is cancelled."
|
|
60
|
+
},
|
|
61
|
+
"operator": {
|
|
62
|
+
"external_effect_failed": "The result could not be confirmed. Verify the workspace and billing state before submitting another operation.",
|
|
63
|
+
"invalid_operation_id": "The operation identifier is invalid.",
|
|
64
|
+
"idempotency_mismatch": "This operation identifier was already used with different values.",
|
|
65
|
+
"operation_in_progress": "This operation is already in progress.",
|
|
66
|
+
"tenant_busy": "Another operator action is running for this workspace. Try again shortly.",
|
|
67
|
+
"stripe_subscription_required": "A Stripe-backed subscription is required.",
|
|
68
|
+
"plan_already_applied": "This plan is already applied.",
|
|
69
|
+
"paid_plan_required": "Select a paid plan synchronized with Stripe.",
|
|
70
|
+
"upgrade_only": "Only immediate upgrades are allowed here.",
|
|
71
|
+
"invalid_credit_amount": "Enter a positive credit amount in cents.",
|
|
72
|
+
"invalid_credit_reason": "Enter a reason of up to 500 characters.",
|
|
73
|
+
"target_plan_required": "Select a target plan.",
|
|
74
|
+
"reconciliation_required": "The original Stripe credit result is uncertain and can no longer be retried safely. Reconcile it in Stripe before taking another action."
|
|
75
|
+
},
|
|
76
|
+
"lifecycle": {
|
|
77
|
+
"consumer_failed": "A required workspace service did not accept the lifecycle change.",
|
|
78
|
+
"delivery_in_progress": "The lifecycle change is already being delivered."
|
|
79
|
+
},
|
|
80
|
+
"user": {
|
|
81
|
+
"not_found": "User not found",
|
|
82
|
+
"email_in_use": "Email already in use",
|
|
83
|
+
"already_has_workspace": "You already have a workspace. Refresh the page and try again."
|
|
84
|
+
},
|
|
85
|
+
"invoice": {
|
|
86
|
+
"not_found": "Invoice not found",
|
|
87
|
+
"invalid_amount": "Invalid amount",
|
|
88
|
+
"no_paid_found": "No paid invoice found"
|
|
89
|
+
},
|
|
90
|
+
"refund": {
|
|
91
|
+
"not_enabled": "Money-back guarantee not enabled",
|
|
92
|
+
"window_expired": "Refund window expired",
|
|
93
|
+
"not_eligible": "Refund not available",
|
|
94
|
+
"already_processed": "Refund already processed"
|
|
95
|
+
},
|
|
96
|
+
"billing": {
|
|
97
|
+
"country_required": "Billing country is required",
|
|
98
|
+
"info_not_found": "Billing information not found",
|
|
99
|
+
"invalid_return_url": "Invalid return URL"
|
|
100
|
+
},
|
|
101
|
+
"migration": {
|
|
102
|
+
"already_pending": "A migration is already pending for this plan"
|
|
103
|
+
},
|
|
104
|
+
"platform_owner": {
|
|
105
|
+
"already_owner": "User is already a platform owner",
|
|
106
|
+
"not_owner": "User is not a platform owner",
|
|
107
|
+
"cannot_demote_self": "Cannot demote yourself",
|
|
108
|
+
"cannot_demote_last_owner": "Cannot demote the last platform owner"
|
|
109
|
+
},
|
|
110
|
+
"webhook": {
|
|
111
|
+
"invalid_signature": "Invalid webhook signature"
|
|
112
|
+
},
|
|
113
|
+
"support": {
|
|
114
|
+
"priority_not_available": "This priority is not included in your plan",
|
|
115
|
+
"invalid_message": "Enter a message of up to 10,000 characters",
|
|
116
|
+
"too_many_attachments": "A message can contain up to 5 attachments",
|
|
117
|
+
"invalid_attachments": "The attachments are invalid",
|
|
118
|
+
"invalid_attachment": "The attachment is invalid",
|
|
119
|
+
"invalid_subject": "Enter a subject of up to 200 characters",
|
|
120
|
+
"invalid_category": "Select a valid category",
|
|
121
|
+
"invalid_priority": "Select a valid priority",
|
|
122
|
+
"invalid_status": "Select a valid status",
|
|
123
|
+
"invalid_pagination": "Use positive whole numbers for page and page size",
|
|
124
|
+
"invalid_status_transition": "This ticket status transition is not allowed",
|
|
125
|
+
"closed_ticket_reply": "Reopen the closed ticket before replying",
|
|
126
|
+
"invalid_assignee": "Assign the ticket to a platform owner",
|
|
127
|
+
"platform_attachments_not_available": "Platform replies cannot add attachments",
|
|
128
|
+
"tenant_busy": "Another support update is in progress. Try again.",
|
|
129
|
+
"invalid_request_id": "A stable support request ID is required",
|
|
130
|
+
"request_reused": "This request ID belongs to different content. Retry the original request.",
|
|
131
|
+
"operation_pending": "This support request is pending. Retry with the same content.",
|
|
132
|
+
"operation_unknown": "The support result is not yet confirmed. Retry with the same content.",
|
|
133
|
+
"projection_pending": "The support history is being recovered. Retry shortly.",
|
|
134
|
+
"attachment_pending": "Attachment admission is pending. Retry the same request.",
|
|
135
|
+
"attachment_already_admitted": "This upload already belongs to another request. Upload the file again.",
|
|
136
|
+
"storage_unavailable": "Support uploads are not configured. Contact the platform administrator.",
|
|
137
|
+
"invalid_cursor": "Invalid support recovery cursor",
|
|
138
|
+
"ticket_not_found": "Support ticket not found",
|
|
139
|
+
"message_not_found": "Support message not found",
|
|
140
|
+
"attachment_not_found": "Attachment not found"
|
|
141
|
+
},
|
|
142
|
+
"platform_notes": {
|
|
143
|
+
"invalid_target": "Invalid target type",
|
|
144
|
+
"target_not_found": "Target not found",
|
|
145
|
+
"invalid_content": "Note is empty or too long",
|
|
146
|
+
"not_found": "Note not found",
|
|
147
|
+
"forbidden": "You cannot delete this note",
|
|
148
|
+
"creation_failed": "Note creation failed"
|
|
149
|
+
},
|
|
150
|
+
"segments": {
|
|
151
|
+
"not_found": "Segment not found",
|
|
152
|
+
"invalid_logical": "Invalid logical operator",
|
|
153
|
+
"invalid_conditions": "Invalid conditions",
|
|
154
|
+
"invalid_operator": "Operator not allowed for this field",
|
|
155
|
+
"invalid_value": "Invalid value for this operator",
|
|
156
|
+
"unknown_field": "Unknown field",
|
|
157
|
+
"conditions_too_deep": "Conditions nested too deeply",
|
|
158
|
+
"invalid_role": "Invalid membership role",
|
|
159
|
+
"invalid_quantifier": "Invalid quantifier"
|
|
160
|
+
},
|
|
161
|
+
"stripe": {
|
|
162
|
+
"subscription_no_item": "Stripe subscription has no billable item"
|
|
163
|
+
},
|
|
164
|
+
"registration": {
|
|
165
|
+
"extras_invalid": "The additional registration fields are not in a supported format",
|
|
166
|
+
"extras_too_large": "The additional registration fields are too large",
|
|
167
|
+
"extras_too_complex": "The additional registration fields have too many entries"
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"dashboard": {
|
|
171
|
+
"title": "Dashboard",
|
|
172
|
+
"description": "Key metrics across all workspaces: MRR, workspaces, active subscriptions and revenue.",
|
|
173
|
+
"top_plans": "Top plans",
|
|
174
|
+
"chart_revenue": "Revenue (last 12 months)",
|
|
175
|
+
"subscriptions_title": "Subscriptions",
|
|
176
|
+
"subscriptions_description": "By status",
|
|
177
|
+
"recent_activity": "Recent activity",
|
|
178
|
+
"activity": {
|
|
179
|
+
"workspace_created": "Workspace created",
|
|
180
|
+
"invoice_paid": "Invoice paid",
|
|
181
|
+
"empty": "No recent activity"
|
|
182
|
+
},
|
|
183
|
+
"kpi": {
|
|
184
|
+
"workspaces": "Workspaces",
|
|
185
|
+
"mrr": "Monthly recurring revenue",
|
|
186
|
+
"active_subscriptions": "Active subscriptions",
|
|
187
|
+
"invoices_open": "Open invoices"
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
"auth": {
|
|
191
|
+
"login": {
|
|
192
|
+
"create_account": "Don't have an account? Sign up"
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"register": {
|
|
196
|
+
"title": "Sign up",
|
|
197
|
+
"page_description": "Create an account, pick a plan and provision your first workspace.",
|
|
198
|
+
"submit": "Sign up and pay",
|
|
199
|
+
"choose_plan": "Choose a plan",
|
|
200
|
+
"field": {
|
|
201
|
+
"email": "Email",
|
|
202
|
+
"password": "Password",
|
|
203
|
+
"full_name": "Full name",
|
|
204
|
+
"workspace_name": "Workspace name",
|
|
205
|
+
"company_name": "Company name",
|
|
206
|
+
"vat_number": "VAT number",
|
|
207
|
+
"country": "Country",
|
|
208
|
+
"address_line1": "Address",
|
|
209
|
+
"postal_code": "Postal code",
|
|
210
|
+
"city": "City",
|
|
211
|
+
"card": "Card"
|
|
212
|
+
},
|
|
213
|
+
"billing_address": "Billing address",
|
|
214
|
+
"customer_type": {
|
|
215
|
+
"label": "Customer type",
|
|
216
|
+
"individual": "Individual",
|
|
217
|
+
"business": "Business"
|
|
218
|
+
},
|
|
219
|
+
"error": {
|
|
220
|
+
"no_plan": "Please select a plan",
|
|
221
|
+
"no_payment": "Payment method required",
|
|
222
|
+
"no_country": "Please select your billing country",
|
|
223
|
+
"legal_required": "You must accept the terms and conditions and privacy policy",
|
|
224
|
+
"failed": "Registration failed",
|
|
225
|
+
"load": "Could not load the registration options"
|
|
226
|
+
},
|
|
227
|
+
"legal_acceptance": "I accept the {terms_and_conditions} and the {privacy_policy}",
|
|
228
|
+
"price": "{price}/{interval}",
|
|
229
|
+
"interval": {
|
|
230
|
+
"month": "month",
|
|
231
|
+
"year": "year"
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
"no_workspace": {
|
|
235
|
+
"title": "Set up your first workspace",
|
|
236
|
+
"subtitle": "You're signed in, but you don't belong to any workspace yet. Pick a plan and create one to get started.",
|
|
237
|
+
"logout": "Sign out",
|
|
238
|
+
"submit": "Create workspace and pay",
|
|
239
|
+
"submitting": "Creating your workspace…",
|
|
240
|
+
"section": {
|
|
241
|
+
"details": "Workspace details",
|
|
242
|
+
"details_hint": "This is the workspace name your team will see.",
|
|
243
|
+
"plan": "Choose a plan",
|
|
244
|
+
"plan_hint": "You can switch later from the billing settings.",
|
|
245
|
+
"payment": "Payment method",
|
|
246
|
+
"payment_hint": "Saved securely via Stripe."
|
|
247
|
+
},
|
|
248
|
+
"error": {
|
|
249
|
+
"missing_token": "Your assignment session is missing or expired",
|
|
250
|
+
"relogin": "Please sign in again to continue."
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
"oauth_registration": {
|
|
254
|
+
"entry_note": "Signing up with a provider still asks for a plan and a card on the next step.",
|
|
255
|
+
"identity": {
|
|
256
|
+
"provider": "Signed in with {provider} as {email}",
|
|
257
|
+
"password": "Signed in as {email}",
|
|
258
|
+
"hint": "This account will own the workspace and its subscription."
|
|
259
|
+
},
|
|
260
|
+
"error": {
|
|
261
|
+
"entry_failed": "We could not confirm the account you signed in with",
|
|
262
|
+
"entry_action": "Go to sign-in"
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
"legal": {
|
|
266
|
+
"terms_of_use": "Terms of use",
|
|
267
|
+
"terms_of_use_page_description": "Public terms of use shown to visitors and required during signup.",
|
|
268
|
+
"terms_and_conditions": "Terms and conditions",
|
|
269
|
+
"terms_and_conditions_page_description": "Public terms and conditions shown to visitors and required during signup.",
|
|
270
|
+
"privacy_policy": "Privacy policy",
|
|
271
|
+
"privacy_policy_page_description": "Public privacy policy shown to visitors and required during signup.",
|
|
272
|
+
"no_content_title": "Content unavailable",
|
|
273
|
+
"no_content_message": "This document has not been published yet."
|
|
274
|
+
},
|
|
275
|
+
"module": {
|
|
276
|
+
"title": "SaaS",
|
|
277
|
+
"description": "Plans, workspaces, billing and customer lifecycle."
|
|
278
|
+
},
|
|
279
|
+
"plans": {
|
|
280
|
+
"title": "Plans",
|
|
281
|
+
"description": "Subscription plans, pricing, features and trial settings.",
|
|
282
|
+
"create": "Create plan",
|
|
283
|
+
"caption": "Subscription plans, pricing, features and trial settings.",
|
|
284
|
+
"column": {
|
|
285
|
+
"workspaces": "Workspaces"
|
|
286
|
+
},
|
|
287
|
+
"display": {
|
|
288
|
+
"cards": "Cards"
|
|
289
|
+
},
|
|
290
|
+
"new_title": "New plan",
|
|
291
|
+
"new_description": "Create a new subscription plan. Stripe product and price are synced after creation.",
|
|
292
|
+
"edit_title": "Edit plan",
|
|
293
|
+
"edit_description": "Update an existing plan. Pricing changes are propagated to Stripe.",
|
|
294
|
+
"reorder_failed": "Failed to reorder plans.",
|
|
295
|
+
"choose": "Choose this plan",
|
|
296
|
+
"trial_days": "{days} days free trial",
|
|
297
|
+
"delete": {
|
|
298
|
+
"action_title": "Delete plan",
|
|
299
|
+
"success": "Plan deleted.",
|
|
300
|
+
"migration_title": "Migrate workspaces from {name}?",
|
|
301
|
+
"migration_started": "Migration requested. The source plan is retained.",
|
|
302
|
+
"migrate_intro": "{count} workspaces currently use this plan. Migration covers only the captured workspace list; later arrivals are excluded. The source plan is retained, even when migration completes. Retiring it later requires a separate procedure that stops all writers.",
|
|
303
|
+
"target_label": "Migrate workspaces to",
|
|
304
|
+
"target_placeholder": "Select a target plan",
|
|
305
|
+
"notify_members": "Notify affected members",
|
|
306
|
+
"computing_diff": "Computing impact…",
|
|
307
|
+
"affected_count": "{count} workspaces will be affected",
|
|
308
|
+
"permissions_removed": "Permissions that will be removed",
|
|
309
|
+
"confirm": "Start snapshot migration",
|
|
310
|
+
"failed": "Plan deletion failed",
|
|
311
|
+
"no_target": "Please select a target plan",
|
|
312
|
+
"simple_title": "Delete plan {name}?",
|
|
313
|
+
"simple_warning": "No workspaces are affected. This action cannot be undone.",
|
|
314
|
+
"simple_confirm": "Delete"
|
|
315
|
+
},
|
|
316
|
+
"deactivate": {
|
|
317
|
+
"title": "Deactivate plan {name}?",
|
|
318
|
+
"warning": "{count} workspaces will remain on this plan until manually migrated.",
|
|
319
|
+
"public_removal": "The plan disappears from the public catalogue and can no longer be subscribed to.",
|
|
320
|
+
"confirm": "Deactivate"
|
|
321
|
+
},
|
|
322
|
+
"action": {
|
|
323
|
+
"delete": "Delete",
|
|
324
|
+
"edit": "Edit"
|
|
325
|
+
},
|
|
326
|
+
"migrations": {
|
|
327
|
+
"title": "Plan migrations",
|
|
328
|
+
"description": "Ongoing and historical plan migrations.",
|
|
329
|
+
"caption": "Plan migration jobs",
|
|
330
|
+
"column": {
|
|
331
|
+
"from": "From",
|
|
332
|
+
"to": "To",
|
|
333
|
+
"status": "Status",
|
|
334
|
+
"processed": "Processed",
|
|
335
|
+
"total": "Total",
|
|
336
|
+
"created_at": "Created",
|
|
337
|
+
"completed_at": "Completed"
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
"inheritance": {
|
|
341
|
+
"toggle": "Inherit permissions and features from another plan",
|
|
342
|
+
"select_plan": "Select source plan",
|
|
343
|
+
"loading": "Loading permissions and features…",
|
|
344
|
+
"snapshot_hint": "The parent plan's permissions and features are copied (snapshot) when saving.",
|
|
345
|
+
"no_features": "No features defined.",
|
|
346
|
+
"inherited": "Inherited",
|
|
347
|
+
"permissions_tooltip": "Permissions granted by this plan. Inheriting copies those of the parent plan as a starting point.",
|
|
348
|
+
"features_tooltip": "Feature values for this plan. Toggle on/off or set the quantity per feature."
|
|
349
|
+
},
|
|
350
|
+
"field": {
|
|
351
|
+
"name": "Name",
|
|
352
|
+
"description": "Description",
|
|
353
|
+
"audience": "Audience",
|
|
354
|
+
"price": "Price (excl. tax)",
|
|
355
|
+
"currency": "Currency",
|
|
356
|
+
"interval": "Interval",
|
|
357
|
+
"billing_mode": "Billing mode",
|
|
358
|
+
"trial_days": "Trial days",
|
|
359
|
+
"permissions": "Permissions",
|
|
360
|
+
"features": "Features",
|
|
361
|
+
"border_color": "Border color",
|
|
362
|
+
"border_label": "Border label",
|
|
363
|
+
"order": "Display order",
|
|
364
|
+
"is_active": "Active",
|
|
365
|
+
"inheritance": "Permissions and features",
|
|
366
|
+
"inheritance_description": "Set the plan's permissions and features, optionally inherited from a parent plan.",
|
|
367
|
+
"max_members": "Maximum members",
|
|
368
|
+
"max_members_description": "Set -1 for unlimited members.",
|
|
369
|
+
"is_public": "Public",
|
|
370
|
+
"is_public_description": "Visible on the registration and plan selection pages.",
|
|
371
|
+
"is_deleted": "Deleted",
|
|
372
|
+
"order_description": "Lower = shown first.",
|
|
373
|
+
"name_description": "Commercial name of the plan shown to customers.",
|
|
374
|
+
"description_description": "Pitch shown on public pages and the plan card.",
|
|
375
|
+
"audience_description": "Who this plan is offered to (everyone, individuals, businesses).",
|
|
376
|
+
"price_description": "Base price excluding tax for the selected billing period.",
|
|
377
|
+
"currency_description": "Currency used for pricing and billing.",
|
|
378
|
+
"interval_description": "Recurring billing frequency (monthly or yearly).",
|
|
379
|
+
"billing_mode_description": "Flat-rate billing or per-user (seat) billing.",
|
|
380
|
+
"trial_days_description": "Number of free trial days before the first charge (0 = none).",
|
|
381
|
+
"is_active_description": "If disabled, the plan stays visible to admins but cannot be subscribed to.",
|
|
382
|
+
"border_color_description": "Accent color used for the highlight badge and ring on the card.",
|
|
383
|
+
"border_label_description": "Text of the floating badge shown at the top of the card (e.g. Popular, Recommended)."
|
|
384
|
+
},
|
|
385
|
+
"audience": {
|
|
386
|
+
"any": "Anyone",
|
|
387
|
+
"individual": "Individuals only",
|
|
388
|
+
"business": "Businesses only"
|
|
389
|
+
},
|
|
390
|
+
"billing_mode": {
|
|
391
|
+
"flat": "Flat rate",
|
|
392
|
+
"seat": "Per seat"
|
|
393
|
+
},
|
|
394
|
+
"interval": {
|
|
395
|
+
"month": "Monthly",
|
|
396
|
+
"year": "Yearly"
|
|
397
|
+
},
|
|
398
|
+
"cycle": {
|
|
399
|
+
"month": "month",
|
|
400
|
+
"year": "year"
|
|
401
|
+
},
|
|
402
|
+
"card": {
|
|
403
|
+
"members": "{count} members max",
|
|
404
|
+
"members_unlimited": "Unlimited members",
|
|
405
|
+
"subscriptions": "{count} active subscriptions"
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
"workspaces": {
|
|
409
|
+
"admin": {
|
|
410
|
+
"suspend": "Suspend",
|
|
411
|
+
"unsuspend": "Reactivate",
|
|
412
|
+
"suspended": "Workspace suspended",
|
|
413
|
+
"unsuspended": "Workspace reactivated",
|
|
414
|
+
"action_error": "Workspace action failed",
|
|
415
|
+
"confirm_suspend": {
|
|
416
|
+
"title": "Suspend this workspace",
|
|
417
|
+
"description_with_pause": "The workspace will be blocked for its users and Stripe billing paused. Confirm?",
|
|
418
|
+
"description_local": "The workspace will be blocked for its users (no Stripe subscription to pause). Confirm?"
|
|
419
|
+
},
|
|
420
|
+
"confirm_unsuspend": {
|
|
421
|
+
"title": "Reactivate this workspace",
|
|
422
|
+
"description": "Access will be restored and Stripe billing will resume. Confirm?"
|
|
423
|
+
},
|
|
424
|
+
"comp": {
|
|
425
|
+
"title": "Complimentary access",
|
|
426
|
+
"grant": "Grant free access",
|
|
427
|
+
"update": "Update free access",
|
|
428
|
+
"modal_title": "Grant complimentary access",
|
|
429
|
+
"modal_description": "Switches the workspace to free access on the selected plan. Any active Stripe subscription will be cancelled.",
|
|
430
|
+
"plan": "Plan",
|
|
431
|
+
"free_until": "Expires on (optional)",
|
|
432
|
+
"free_until_hint": "Leave empty for unlimited access. On expiry, the workspace moves to past_due then gets suspended.",
|
|
433
|
+
"hint_members_preserved": "Existing members are kept even if they exceed the new plan's limit.",
|
|
434
|
+
"hint_will_unsuspend": "The workspace is currently suspended: this action will also reactivate it.",
|
|
435
|
+
"submit": "Apply",
|
|
436
|
+
"success": "Complimentary access granted",
|
|
437
|
+
"error": "Failed to grant complimentary access"
|
|
438
|
+
},
|
|
439
|
+
"create": {
|
|
440
|
+
"button": "Create workspace",
|
|
441
|
+
"title": "Create workspace",
|
|
442
|
+
"description": "Provision a new workspace and assign its owner.",
|
|
443
|
+
"success": "Workspace created.",
|
|
444
|
+
"error": {
|
|
445
|
+
"name": "Name is required.",
|
|
446
|
+
"plan": "Plan is required.",
|
|
447
|
+
"owner_email": "Owner email is required.",
|
|
448
|
+
"free_until_past": "The expiration date must be in the future."
|
|
449
|
+
},
|
|
450
|
+
"field": {
|
|
451
|
+
"name": "Workspace name",
|
|
452
|
+
"plan": "Plan",
|
|
453
|
+
"plan_description": "Initial subscription plan for the workspace.",
|
|
454
|
+
"owner_email": "Owner email",
|
|
455
|
+
"owner_email_description": "If the email matches an existing user, they are added as owner. Otherwise an invite is sent.",
|
|
456
|
+
"name_description": "Internal workspace name (can be renamed later).",
|
|
457
|
+
"free_workspace": "Free workspace",
|
|
458
|
+
"free_workspace_description": "No Stripe billing. Untick to open a Stripe Checkout session the owner must complete.",
|
|
459
|
+
"free_until": "Free until",
|
|
460
|
+
"free_until_description": "Optional. Date when the comp expires. Leave empty for indefinite. After that date the workspace is flagged past_due and access is blocked until a paid plan is picked."
|
|
461
|
+
},
|
|
462
|
+
"placeholder": {
|
|
463
|
+
"name": "Acme Corp",
|
|
464
|
+
"plan": "Select a plan",
|
|
465
|
+
"owner_email": "owner{'@'}example.com"
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
},
|
|
469
|
+
"operator": {
|
|
470
|
+
"title": "Owner operations",
|
|
471
|
+
"description": "Immediate Stripe billing actions for this workspace.",
|
|
472
|
+
"upgrade": {
|
|
473
|
+
"button": "Immediate upgrade",
|
|
474
|
+
"title": "Upgrade subscription now",
|
|
475
|
+
"plan_label": "Eligible target plan",
|
|
476
|
+
"confirm": "Change {current} to {target} at {price}. Stripe will prorate this immediately.",
|
|
477
|
+
"success": "Subscription upgraded.",
|
|
478
|
+
"unavailable": "No eligible immediate upgrade is available for this workspace."
|
|
479
|
+
},
|
|
480
|
+
"credit": {
|
|
481
|
+
"button": "Grant Stripe credit",
|
|
482
|
+
"title": "Grant customer-balance credit",
|
|
483
|
+
"amount_label": "Amount in cents",
|
|
484
|
+
"reason_label": "Reason",
|
|
485
|
+
"confirm": "Grant {amount} of Stripe customer credit for: {reason}",
|
|
486
|
+
"available": "Available Stripe credit: {amount}",
|
|
487
|
+
"success": "Customer credit granted.",
|
|
488
|
+
"unavailable": "This workspace has no Stripe customer balance."
|
|
489
|
+
},
|
|
490
|
+
"confirm": {
|
|
491
|
+
"title": "Confirm submitted values",
|
|
492
|
+
"submit": "Confirm operation"
|
|
493
|
+
},
|
|
494
|
+
"error": {
|
|
495
|
+
"load": "Unable to load owner operations.",
|
|
496
|
+
"action": "The operation could not be completed."
|
|
497
|
+
}
|
|
498
|
+
},
|
|
499
|
+
"title": "Workspaces",
|
|
500
|
+
"description": "All customer workspaces and their subscriptions.",
|
|
501
|
+
"caption": "All workspaces",
|
|
502
|
+
"detail": "Workspace detail",
|
|
503
|
+
"detail_description": "Subscription, billing info and ownership details for a single workspace.",
|
|
504
|
+
"switcher_title": "Switch workspace",
|
|
505
|
+
"current_label": "Workspace",
|
|
506
|
+
"none": "No workspace",
|
|
507
|
+
"select": "Select a workspace",
|
|
508
|
+
"no_results": "No matching workspace",
|
|
509
|
+
"switch_error": "Failed to switch workspace",
|
|
510
|
+
"billing_section": "Billing",
|
|
511
|
+
"column": {
|
|
512
|
+
"name": "Name",
|
|
513
|
+
"status": "Status",
|
|
514
|
+
"plan": "Plan",
|
|
515
|
+
"stripe_customer": "Stripe customer",
|
|
516
|
+
"created_at": "Created",
|
|
517
|
+
"company_name": "Company name",
|
|
518
|
+
"customer_type": "Customer type",
|
|
519
|
+
"vat_number": "VAT number",
|
|
520
|
+
"owner": "Owner"
|
|
521
|
+
},
|
|
522
|
+
"status": {
|
|
523
|
+
"active": "Active",
|
|
524
|
+
"trialing": "Trial",
|
|
525
|
+
"past_due": "Past due",
|
|
526
|
+
"suspended": "Suspended",
|
|
527
|
+
"cancelled": "Cancelled",
|
|
528
|
+
"pending_payment": "Pending payment"
|
|
529
|
+
},
|
|
530
|
+
"join": {
|
|
531
|
+
"button": "Join as member",
|
|
532
|
+
"success": "You joined this workspace.",
|
|
533
|
+
"error": "Could not join this workspace.",
|
|
534
|
+
"already_member": "You are already a member of this workspace."
|
|
535
|
+
},
|
|
536
|
+
"kpi": {
|
|
537
|
+
"workspaces": "Workspaces",
|
|
538
|
+
"active": "Active",
|
|
539
|
+
"free": "Free / comped",
|
|
540
|
+
"past_due": "Past due"
|
|
541
|
+
},
|
|
542
|
+
"billing_state": {
|
|
543
|
+
"free": "Free",
|
|
544
|
+
"active": "Active",
|
|
545
|
+
"trialing": "Trialing",
|
|
546
|
+
"past_due": "Past due",
|
|
547
|
+
"suspended": "Suspended",
|
|
548
|
+
"cancelled": "Cancelled",
|
|
549
|
+
"pending_payment": "Pending payment"
|
|
550
|
+
},
|
|
551
|
+
"summary": {
|
|
552
|
+
"title": "Workspace summary",
|
|
553
|
+
"members": "{count} member(s)",
|
|
554
|
+
"per_month": "/mo"
|
|
555
|
+
},
|
|
556
|
+
"tabs": {
|
|
557
|
+
"invoices": "Invoices",
|
|
558
|
+
"credit_notes": "Credit notes",
|
|
559
|
+
"members": "Members"
|
|
560
|
+
},
|
|
561
|
+
"create": {
|
|
562
|
+
"button": "Create workspace",
|
|
563
|
+
"title": "Create a workspace",
|
|
564
|
+
"field": {
|
|
565
|
+
"name": "Workspace name",
|
|
566
|
+
"plan": "Plan"
|
|
567
|
+
},
|
|
568
|
+
"error": {
|
|
569
|
+
"name": "Name is required.",
|
|
570
|
+
"plan": "Plan is required."
|
|
571
|
+
},
|
|
572
|
+
"placeholder": {
|
|
573
|
+
"name": "Acme Corp"
|
|
574
|
+
},
|
|
575
|
+
"self_serve": {
|
|
576
|
+
"description": "An isolated space with its own projects, team and billing.",
|
|
577
|
+
"plan_hint": "(changeable at any time)",
|
|
578
|
+
"price": "{price}/{interval}",
|
|
579
|
+
"interval": {
|
|
580
|
+
"month": "month",
|
|
581
|
+
"year": "year"
|
|
582
|
+
},
|
|
583
|
+
"card": "Card",
|
|
584
|
+
"submit": "Create",
|
|
585
|
+
"free_taken": "Free workspace limit reached for this card — already used by “{workspace}”.",
|
|
586
|
+
"free_unavailable": "Free workspace limit reached for this card.",
|
|
587
|
+
"error": {
|
|
588
|
+
"load": "Could not load the creation options.",
|
|
589
|
+
"failed": "Could not create the workspace.",
|
|
590
|
+
"card": "Could not initialise card payment."
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
},
|
|
595
|
+
"users": {
|
|
596
|
+
"title": "Users",
|
|
597
|
+
"description": "All platform users and their workspace memberships.",
|
|
598
|
+
"caption": "All users",
|
|
599
|
+
"detail": "User detail",
|
|
600
|
+
"detail_description": "User profile, workspace memberships and pending invites.",
|
|
601
|
+
"platform_owner_badge": "Platform owner",
|
|
602
|
+
"workspace_owner_badge": "Owner",
|
|
603
|
+
"workspaces_section": "Workspaces",
|
|
604
|
+
"column": {
|
|
605
|
+
"email": "Email",
|
|
606
|
+
"name": "Name",
|
|
607
|
+
"platform_owner": "Platform owner",
|
|
608
|
+
"created_at": "Created",
|
|
609
|
+
"segments": "Segments"
|
|
610
|
+
},
|
|
611
|
+
"summary": {
|
|
612
|
+
"title": "User profile",
|
|
613
|
+
"workspaces": "{count} workspace(s) · {owned} owned, {member} member"
|
|
614
|
+
},
|
|
615
|
+
"tabs": {
|
|
616
|
+
"workspaces": "Workspaces",
|
|
617
|
+
"invoices": "Billing"
|
|
618
|
+
},
|
|
619
|
+
"invoices_section": "Billing across their workspaces",
|
|
620
|
+
"info": {
|
|
621
|
+
"language": "Language",
|
|
622
|
+
"last_active": "Last active",
|
|
623
|
+
"two_factor": "2FA enabled",
|
|
624
|
+
"email_verified": "Email verified",
|
|
625
|
+
"email_not_verified": "Email not verified",
|
|
626
|
+
"segments": "Segments"
|
|
627
|
+
}
|
|
628
|
+
},
|
|
629
|
+
"platform_owners": {
|
|
630
|
+
"actions": {
|
|
631
|
+
"promote": "Promote to owner",
|
|
632
|
+
"demote": "Demote"
|
|
633
|
+
},
|
|
634
|
+
"confirm_promote": {
|
|
635
|
+
"title": "Promote to platform owner",
|
|
636
|
+
"description": "This user will gain full admin access across all workspaces. Confirm?"
|
|
637
|
+
},
|
|
638
|
+
"confirm_demote": {
|
|
639
|
+
"title": "Demote this platform owner",
|
|
640
|
+
"description": "This user will lose all platform admin rights. Confirm?"
|
|
641
|
+
},
|
|
642
|
+
"promoted": "User promoted to platform owner",
|
|
643
|
+
"demoted": "Platform owner demoted"
|
|
644
|
+
},
|
|
645
|
+
"invoices": {
|
|
646
|
+
"title": "Invoices",
|
|
647
|
+
"description": "Invoices issued via Stripe across all workspaces.",
|
|
648
|
+
"caption": "All invoices",
|
|
649
|
+
"column": {
|
|
650
|
+
"number": "Number",
|
|
651
|
+
"type": "Type",
|
|
652
|
+
"parent_invoice": "Related invoice",
|
|
653
|
+
"credit_note_reason": "Credit note reason",
|
|
654
|
+
"credit_note_type": "Credit note mode",
|
|
655
|
+
"memo": "Memo",
|
|
656
|
+
"voided_at": "Voided at",
|
|
657
|
+
"workspace": "Workspace",
|
|
658
|
+
"amount": "Amount",
|
|
659
|
+
"status": "Status",
|
|
660
|
+
"issued_at": "Issued at",
|
|
661
|
+
"period": "Period",
|
|
662
|
+
"subtotal": "Subtotal",
|
|
663
|
+
"tax": "Tax",
|
|
664
|
+
"total": "Total",
|
|
665
|
+
"lines": "Line items"
|
|
666
|
+
},
|
|
667
|
+
"actions": {
|
|
668
|
+
"download_pdf": "Download PDF",
|
|
669
|
+
"open_on_stripe": "Open on Stripe",
|
|
670
|
+
"issue_credit_note": "Issue credit note"
|
|
671
|
+
},
|
|
672
|
+
"type": {
|
|
673
|
+
"invoice": "Invoice",
|
|
674
|
+
"credit_note": "Credit note"
|
|
675
|
+
},
|
|
676
|
+
"lines": {
|
|
677
|
+
"empty": "No line item."
|
|
678
|
+
}
|
|
679
|
+
},
|
|
680
|
+
"credit_notes": {
|
|
681
|
+
"title": "Credit notes",
|
|
682
|
+
"description": "Credit notes and Stripe refunds issued to customers.",
|
|
683
|
+
"caption": "All credit notes",
|
|
684
|
+
"column": {
|
|
685
|
+
"number": "Number",
|
|
686
|
+
"workspace": "Workspace",
|
|
687
|
+
"amount": "Amount",
|
|
688
|
+
"type": "Type",
|
|
689
|
+
"status": "Status",
|
|
690
|
+
"issued_at": "Issued at"
|
|
691
|
+
},
|
|
692
|
+
"modal": {
|
|
693
|
+
"title": "Issue a credit note",
|
|
694
|
+
"description": "Invoice {number} (max refundable: {max}). Enter an amount in cents, pick a mode and provide a reason.",
|
|
695
|
+
"amount": "Amount (cents)",
|
|
696
|
+
"mode_label": "Mode",
|
|
697
|
+
"mode": {
|
|
698
|
+
"credit_to_balance": "Credit to balance",
|
|
699
|
+
"refund": "Refund"
|
|
700
|
+
},
|
|
701
|
+
"reason": "Reason",
|
|
702
|
+
"submit": "Issue",
|
|
703
|
+
"success": "Credit note issued",
|
|
704
|
+
"error": "Failed to issue credit note"
|
|
705
|
+
}
|
|
706
|
+
},
|
|
707
|
+
"segments": {
|
|
708
|
+
"title": "Segments",
|
|
709
|
+
"description": "User segments built from rule-based conditions.",
|
|
710
|
+
"caption": "All segments",
|
|
711
|
+
"column": {
|
|
712
|
+
"name": "Name",
|
|
713
|
+
"description": "Description",
|
|
714
|
+
"estimated_count": "Matches",
|
|
715
|
+
"last_evaluated_at": "Last evaluated",
|
|
716
|
+
"name_description": "Segment name shown in lists and filters.",
|
|
717
|
+
"description_description": "Optional description of what this segment represents."
|
|
718
|
+
},
|
|
719
|
+
"field": {
|
|
720
|
+
"conditions": "Conditions",
|
|
721
|
+
"conditions_description": "Rules that determine which users belong to this segment."
|
|
722
|
+
},
|
|
723
|
+
"placeholder": {
|
|
724
|
+
"name": "Segment name"
|
|
725
|
+
},
|
|
726
|
+
"actions": {
|
|
727
|
+
"export_owners": "Export users (CSV)"
|
|
728
|
+
},
|
|
729
|
+
"conditions": {
|
|
730
|
+
"and": "AND",
|
|
731
|
+
"or": "OR",
|
|
732
|
+
"add": "Add condition",
|
|
733
|
+
"add_group": "Add group",
|
|
734
|
+
"logical_label": "Logical",
|
|
735
|
+
"add_workspace_ref": "Add a workspace condition",
|
|
736
|
+
"workspace_ref_label": "User's workspaces"
|
|
737
|
+
},
|
|
738
|
+
"operators": {
|
|
739
|
+
"eq": "Equals",
|
|
740
|
+
"neq": "Not equals",
|
|
741
|
+
"gt": "Greater than",
|
|
742
|
+
"gte": "Greater or equal",
|
|
743
|
+
"lt": "Less than",
|
|
744
|
+
"lte": "Less or equal",
|
|
745
|
+
"contains": "Contains",
|
|
746
|
+
"in": "In",
|
|
747
|
+
"nin": "Not in"
|
|
748
|
+
},
|
|
749
|
+
"boolean": {
|
|
750
|
+
"true": "Yes",
|
|
751
|
+
"false": "No"
|
|
752
|
+
},
|
|
753
|
+
"units": {
|
|
754
|
+
"days": "days",
|
|
755
|
+
"count": "units"
|
|
756
|
+
},
|
|
757
|
+
"fields": {
|
|
758
|
+
"name": {
|
|
759
|
+
"label": "Workspace name",
|
|
760
|
+
"description": "Display name of the workspace."
|
|
761
|
+
},
|
|
762
|
+
"created_at": {
|
|
763
|
+
"label": "Created at",
|
|
764
|
+
"description": "Date the workspace was created."
|
|
765
|
+
},
|
|
766
|
+
"age_in_days": {
|
|
767
|
+
"label": "Age (days)",
|
|
768
|
+
"description": "Number of days since the workspace was created."
|
|
769
|
+
},
|
|
770
|
+
"plan_id": {
|
|
771
|
+
"label": "Plan",
|
|
772
|
+
"description": "Plan the workspace is subscribed to."
|
|
773
|
+
},
|
|
774
|
+
"mrr": {
|
|
775
|
+
"label": "MRR",
|
|
776
|
+
"description": "Monthly recurring revenue of the workspace."
|
|
777
|
+
},
|
|
778
|
+
"is_paying": {
|
|
779
|
+
"label": "Paying",
|
|
780
|
+
"description": "Workspace generates MRR > 0."
|
|
781
|
+
},
|
|
782
|
+
"status": {
|
|
783
|
+
"label": "Subscription status",
|
|
784
|
+
"description": "Subscription status of the workspace."
|
|
785
|
+
},
|
|
786
|
+
"has_stripe_customer": {
|
|
787
|
+
"label": "Stripe customer",
|
|
788
|
+
"description": "Workspace has a Stripe customer id."
|
|
789
|
+
},
|
|
790
|
+
"is_on_trial": {
|
|
791
|
+
"label": "On trial",
|
|
792
|
+
"description": "Workspace is in trial period."
|
|
793
|
+
},
|
|
794
|
+
"customer_type": {
|
|
795
|
+
"label": "Customer type",
|
|
796
|
+
"description": "Individual or business."
|
|
797
|
+
},
|
|
798
|
+
"members_count": {
|
|
799
|
+
"label": "Members count",
|
|
800
|
+
"description": "Total number of members."
|
|
801
|
+
},
|
|
802
|
+
"total_revenue": {
|
|
803
|
+
"label": "Total revenue",
|
|
804
|
+
"description": "Sum of paid invoices."
|
|
805
|
+
},
|
|
806
|
+
"days_since_last_invoice": {
|
|
807
|
+
"label": "Days since last invoice",
|
|
808
|
+
"description": "Days elapsed since the most recent invoice."
|
|
809
|
+
},
|
|
810
|
+
"user_email": {
|
|
811
|
+
"label": "Email",
|
|
812
|
+
"description": "The user's email address."
|
|
813
|
+
},
|
|
814
|
+
"user_name": {
|
|
815
|
+
"label": "Name",
|
|
816
|
+
"description": "The user's display name."
|
|
817
|
+
},
|
|
818
|
+
"user_language": {
|
|
819
|
+
"label": "Language",
|
|
820
|
+
"description": "The user's language code (e.g. fr, en)."
|
|
821
|
+
},
|
|
822
|
+
"user_created_at": {
|
|
823
|
+
"label": "Sign-up date",
|
|
824
|
+
"description": "Date the user signed up."
|
|
825
|
+
},
|
|
826
|
+
"user_age_in_days": {
|
|
827
|
+
"label": "Account age (days)",
|
|
828
|
+
"description": "Number of days since the user signed up."
|
|
829
|
+
},
|
|
830
|
+
"user_is_validated": {
|
|
831
|
+
"label": "Email verified",
|
|
832
|
+
"description": "The user has verified their email address."
|
|
833
|
+
},
|
|
834
|
+
"days_since_last_active": {
|
|
835
|
+
"label": "Days since last active",
|
|
836
|
+
"description": "Number of days since the user's last active session."
|
|
837
|
+
},
|
|
838
|
+
"workspaces_count": {
|
|
839
|
+
"label": "Workspace count",
|
|
840
|
+
"description": "Number of workspaces the user is a member of."
|
|
841
|
+
},
|
|
842
|
+
"is_owner_of_any_workspace": {
|
|
843
|
+
"label": "Owns a workspace",
|
|
844
|
+
"description": "The user owns at least one workspace."
|
|
845
|
+
}
|
|
846
|
+
},
|
|
847
|
+
"export": {
|
|
848
|
+
"title": "Segment export",
|
|
849
|
+
"preparing": "Preparing the download…",
|
|
850
|
+
"done_message": "The CSV file has been downloaded.",
|
|
851
|
+
"success_title": "Export downloaded",
|
|
852
|
+
"error_title": "Export failed"
|
|
853
|
+
},
|
|
854
|
+
"role": {
|
|
855
|
+
"any": "Any role in",
|
|
856
|
+
"owner": "Owner of"
|
|
857
|
+
},
|
|
858
|
+
"quantifier": {
|
|
859
|
+
"any": "At least one workspace",
|
|
860
|
+
"all": "All workspaces"
|
|
861
|
+
}
|
|
862
|
+
},
|
|
863
|
+
"settings": {
|
|
864
|
+
"title": "Settings",
|
|
865
|
+
"description": "Billing rules, refund policy and legal documents.",
|
|
866
|
+
"tabs": {
|
|
867
|
+
"billing": "Billing",
|
|
868
|
+
"refund": "Refund policy",
|
|
869
|
+
"legal": "Legal documents"
|
|
870
|
+
},
|
|
871
|
+
"billing": {
|
|
872
|
+
"auto_suspend_enabled": "Auto-suspend past-due workspaces",
|
|
873
|
+
"auto_suspend_enabled_desc": "Automatically suspend workspaces whose subscription is past_due.",
|
|
874
|
+
"auto_suspend_delay_days": "Auto-suspend delay (days)",
|
|
875
|
+
"auto_suspend_delay_days_desc": "Grace period before a past_due subscription is suspended.",
|
|
876
|
+
"data_retention_days": "Data retention (days)",
|
|
877
|
+
"data_retention_days_desc": "How long cancelled workspace data is kept before hard delete.",
|
|
878
|
+
"stripe_tax_code": "Stripe tax code (product)",
|
|
879
|
+
"stripe_tax_code_desc": "Stripe tax category code applied to products on sync (e.g. txcd_10000000). Required for automatic VAT calculation. Re-sync plans to apply it.",
|
|
880
|
+
"max_free_workspaces_per_card": "Free workspaces per card",
|
|
881
|
+
"max_free_workspaces_per_card_desc": "How many workspaces on a free plan a single card may back."
|
|
882
|
+
},
|
|
883
|
+
"refund": {
|
|
884
|
+
"money_back_guarantee": "Money-back guarantee",
|
|
885
|
+
"money_back_guarantee_desc": "Allow workspace owners to request a self-service refund within the window.",
|
|
886
|
+
"money_back_window_days": "Refund window (days)",
|
|
887
|
+
"money_back_window_days_desc": "Number of days after the first paid invoice during which a refund can be requested.",
|
|
888
|
+
"money_back_mode": "Money-back refund mode",
|
|
889
|
+
"money_back_mode_desc": "Applies only to voluntary money-back-guarantee requests: full refunds the entire amount, prorated only the unused portion.",
|
|
890
|
+
"mode": {
|
|
891
|
+
"full": "Full",
|
|
892
|
+
"prorated": "Prorated"
|
|
893
|
+
},
|
|
894
|
+
"auto_prorata_on_cancel": "Auto-prorata on mid-cycle cancellation",
|
|
895
|
+
"auto_prorata_on_cancel_desc": "Separate from the money-back guarantee above: when a workspace cancels mid-cycle without a manual request, automatically refund the unused (prorated) portion."
|
|
896
|
+
},
|
|
897
|
+
"legal": {
|
|
898
|
+
"terms_of_use_desc": "Public Terms of use, served at /terms-of-use. Rich text.",
|
|
899
|
+
"terms_and_conditions_desc": "Public Terms and conditions, served at /terms-and-conditions. Rich text.",
|
|
900
|
+
"privacy_policy_desc": "Public Privacy policy, served at /privacy-policy. Rich text."
|
|
901
|
+
}
|
|
902
|
+
},
|
|
903
|
+
"workspace": {
|
|
904
|
+
"settings": {
|
|
905
|
+
"title": "Workspace settings"
|
|
906
|
+
},
|
|
907
|
+
"seats": {
|
|
908
|
+
"title": "Seats",
|
|
909
|
+
"badge_unlimited": "{occupied} / unlimited",
|
|
910
|
+
"description": "Members and pending invites each take a seat: {members} member(s), {invites} pending invite(s).",
|
|
911
|
+
"limit_reached_owner": "Your plan's seat limit is reached. Upgrade to add more members.",
|
|
912
|
+
"limit_reached_member": "Your plan's seat limit is reached. Ask a workspace owner to upgrade the plan.",
|
|
913
|
+
"upgrade": "Upgrade",
|
|
914
|
+
"load_failed": "Seat usage could not be loaded"
|
|
915
|
+
},
|
|
916
|
+
"free_access": {
|
|
917
|
+
"banner_title": "Complimentary access",
|
|
918
|
+
"banner_description": "Your free access expires on {date}. Pick a paid plan before then to keep access.",
|
|
919
|
+
"expired_title": "Complimentary access expired",
|
|
920
|
+
"expired_description": "The free access granted to your workspace has expired. Pick a paid plan to restore access.",
|
|
921
|
+
"indefinite_title": "Complimentary access",
|
|
922
|
+
"indefinite_description": "Your workspace is on a complimentary plan with no expiration."
|
|
923
|
+
},
|
|
924
|
+
"billing": {
|
|
925
|
+
"title": "Billing",
|
|
926
|
+
"description": "Manage your plan, subscription, payment method and invoices.",
|
|
927
|
+
"manage": "Manage billing",
|
|
928
|
+
"invoices_caption": "Your invoices",
|
|
929
|
+
"info_title": "Billing information",
|
|
930
|
+
"info_description": "Update your billing details and VAT number.",
|
|
931
|
+
"info_save": "Save",
|
|
932
|
+
"info_saved": "Billing information updated",
|
|
933
|
+
"info_save_error": "Failed to update billing information",
|
|
934
|
+
"refund": {
|
|
935
|
+
"title": "Money-back guarantee",
|
|
936
|
+
"description": "You are still within the refund window. Requesting a refund will return {amount} and cancel your subscription.",
|
|
937
|
+
"button": "Request refund",
|
|
938
|
+
"confirm_title": "Confirm refund",
|
|
939
|
+
"confirm_message": "You will be refunded {amount} and your subscription will be cancelled immediately. This cannot be undone.",
|
|
940
|
+
"confirm_action": "Confirm refund",
|
|
941
|
+
"success": "Refund issued and subscription cancelled.",
|
|
942
|
+
"error": "Failed to request refund"
|
|
943
|
+
},
|
|
944
|
+
"past_due": {
|
|
945
|
+
"title": "Action required",
|
|
946
|
+
"badge": "payment failed",
|
|
947
|
+
"suspended_title": "Workspace suspended",
|
|
948
|
+
"suspended_badge": "unpaid invoice",
|
|
949
|
+
"summary": "Invoice {invoice} of {amount} is unpaid.",
|
|
950
|
+
"summary_with_date": "Invoice {invoice} of {amount} could not be charged on {date}.",
|
|
951
|
+
"next_retry": "Stripe retries automatically on {date}.",
|
|
952
|
+
"suspend_warning": "Without settlement the workspace is suspended on {date} — data and volumes are preserved.",
|
|
953
|
+
"suspended_summary": "Invoice {invoice} of {amount} is still unpaid. Settling it restores access immediately.",
|
|
954
|
+
"settle": "Settle on Stripe",
|
|
955
|
+
"load_failed": "Could not check the billing status of this workspace."
|
|
956
|
+
},
|
|
957
|
+
"payment_method": {
|
|
958
|
+
"title": "Payment method",
|
|
959
|
+
"active": "active",
|
|
960
|
+
"needs_update": "needs updating",
|
|
961
|
+
"missing": "no card",
|
|
962
|
+
"declined": "declined",
|
|
963
|
+
"default": "default",
|
|
964
|
+
"expires": "exp. {date}",
|
|
965
|
+
"none": "No card on file.",
|
|
966
|
+
"portal_hint": "Card changes, receipts and history all happen in the Stripe portal; the card is never stored on our side."
|
|
967
|
+
},
|
|
968
|
+
"billing_email": {
|
|
969
|
+
"label": "Billing e-mail",
|
|
970
|
+
"hint": "Receives invoices and payment reminders, synced to the Stripe customer."
|
|
971
|
+
},
|
|
972
|
+
"vat": {
|
|
973
|
+
"verified": "verified (VIES)",
|
|
974
|
+
"pending": "verification in progress",
|
|
975
|
+
"unverified": "not verified"
|
|
976
|
+
}
|
|
977
|
+
},
|
|
978
|
+
"plan": {
|
|
979
|
+
"current": "Current plan",
|
|
980
|
+
"none": "No plan",
|
|
981
|
+
"change": "Change plan",
|
|
982
|
+
"go_paid": "Upgrade to a paid plan",
|
|
983
|
+
"blocked_hint": "Plan changes resume once the unpaid invoice is settled.",
|
|
984
|
+
"next_renewal": "Next renewal on {date}.",
|
|
985
|
+
"unlimited": "unlimited",
|
|
986
|
+
"pending_downgrade": "Downgrade to {plan} at next cycle",
|
|
987
|
+
"pending_downgrade_on": "Downgrade to {plan} on {date}",
|
|
988
|
+
"cancel_downgrade": "Cancel downgrade",
|
|
989
|
+
"downgrade_cancelled": "Scheduled downgrade cancelled.",
|
|
990
|
+
"change_applied": "Plan changed.",
|
|
991
|
+
"change_scheduled": "Downgrade scheduled for the end of the current cycle.",
|
|
992
|
+
"change_error": "Failed to change plan",
|
|
993
|
+
"interval": {
|
|
994
|
+
"month": "month",
|
|
995
|
+
"year": "year"
|
|
996
|
+
},
|
|
997
|
+
"comparison": {
|
|
998
|
+
"title": "Change plan",
|
|
999
|
+
"subtitle": "Currently on {plan}. Upgrades apply immediately and are prorated; downgrades take effect at the next cycle.",
|
|
1000
|
+
"subtitle_no_plan": "Upgrades apply immediately and are prorated; downgrades take effect at the next cycle.",
|
|
1001
|
+
"current": "current",
|
|
1002
|
+
"scheduled": "scheduled",
|
|
1003
|
+
"choose": "Choose",
|
|
1004
|
+
"show_detail": "See full detail",
|
|
1005
|
+
"hide_detail": "Hide detail",
|
|
1006
|
+
"footer": "The plan price is prepaid usage credit at public rates, deducted from your consumption by the minute. It does not carry over. Beyond it the same rate applies — never a cliff."
|
|
1007
|
+
}
|
|
1008
|
+
},
|
|
1009
|
+
"data_export": {
|
|
1010
|
+
"title": "Data export",
|
|
1011
|
+
"description": "Download a copy of your workspace data.",
|
|
1012
|
+
"intro": "Request a complete copy of the data associated with this workspace. The archive is built in the background and a download link is e-mailed to you; the link and the archive both expire on the date shown in the history below. Provided in compliance with your right to data portability (GDPR article 20).",
|
|
1013
|
+
"download": "Request an export",
|
|
1014
|
+
"error_title": "Export failed",
|
|
1015
|
+
"success_title": "Export ready",
|
|
1016
|
+
"success_message": "Your data has been exported. A download link has also been e-mailed to you.",
|
|
1017
|
+
"history": {
|
|
1018
|
+
"title": "Previous exports",
|
|
1019
|
+
"empty": "You have not requested any export for this workspace yet.",
|
|
1020
|
+
"scope": "Workspace data",
|
|
1021
|
+
"download": "Download",
|
|
1022
|
+
"expires_at": "Available until {date}",
|
|
1023
|
+
"expired": "Link expired",
|
|
1024
|
+
"status_pending": "In progress",
|
|
1025
|
+
"status_completed": "Ready",
|
|
1026
|
+
"status_partial": "Incomplete",
|
|
1027
|
+
"status_failed": "Failed",
|
|
1028
|
+
"error_load": "Previous exports could not be loaded.",
|
|
1029
|
+
"error_download": "This export could not be downloaded.",
|
|
1030
|
+
"error_expired": "This export is no longer available — its download link has expired. Request a new one.",
|
|
1031
|
+
"previous": "Previous",
|
|
1032
|
+
"next": "Next",
|
|
1033
|
+
"page": "Page {page}"
|
|
1034
|
+
}
|
|
1035
|
+
},
|
|
1036
|
+
"general": {
|
|
1037
|
+
"title": "General",
|
|
1038
|
+
"description": "The workspace name and its deletion.",
|
|
1039
|
+
"identity_title": "Workspace",
|
|
1040
|
+
"identity_intro": "Your workspace identity.",
|
|
1041
|
+
"name": "Workspace name",
|
|
1042
|
+
"name_hint": "Visible to every member.",
|
|
1043
|
+
"reset": "Reset",
|
|
1044
|
+
"save": "Save changes",
|
|
1045
|
+
"renamed": "Workspace renamed.",
|
|
1046
|
+
"danger_zone_title": "Danger zone",
|
|
1047
|
+
"delete_intro": "Deletes the workspace: projects, services and data are destroyed after a {days}-day retention period. A data export is still possible before then.",
|
|
1048
|
+
"delete_action": "Delete workspace",
|
|
1049
|
+
"delete_warning": "“{name}” — access is revoked immediately and data is destroyed after {days} days. Invoices stay archived (legal requirement).",
|
|
1050
|
+
"delete_confirm_label": "Type the workspace name to confirm",
|
|
1051
|
+
"delete_submit": "Delete permanently",
|
|
1052
|
+
"cancel": "Cancel",
|
|
1053
|
+
"error": {
|
|
1054
|
+
"load": "Could not load the workspace.",
|
|
1055
|
+
"rename": "Could not rename the workspace.",
|
|
1056
|
+
"delete": "Could not delete the workspace."
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1059
|
+
},
|
|
1060
|
+
"features": {
|
|
1061
|
+
"title": "Features",
|
|
1062
|
+
"description": "Feature flags exposed to plans and consumed by workspaces.",
|
|
1063
|
+
"caption": "All features",
|
|
1064
|
+
"column": {
|
|
1065
|
+
"display_name": "Display name",
|
|
1066
|
+
"description": "Description",
|
|
1067
|
+
"value_type": "Value type",
|
|
1068
|
+
"display_name_description": "Label shown to administrators and customers.",
|
|
1069
|
+
"description_description": "Detailed description of what the feature does.",
|
|
1070
|
+
"value_type_description": "Type of value carried by the feature (boolean, number, string).",
|
|
1071
|
+
"tooltip": "Tooltip",
|
|
1072
|
+
"tooltip_description": "Short hint shown next to the feature in the plan comparison table.",
|
|
1073
|
+
"unit": "Unit",
|
|
1074
|
+
"unit_description": "Suffix appended to numeric values, for example GB or h/month.",
|
|
1075
|
+
"is_detail_row": "Detail row",
|
|
1076
|
+
"is_detail_row_description": "Hidden behind the comparison table's see-full-detail toggle.",
|
|
1077
|
+
"order": "Order",
|
|
1078
|
+
"order_description": "Row position in the plan comparison table."
|
|
1079
|
+
},
|
|
1080
|
+
"placeholder": {
|
|
1081
|
+
"display_name": "Display name",
|
|
1082
|
+
"tooltip": "Deducted from your usage by the minute",
|
|
1083
|
+
"unit": "GB"
|
|
1084
|
+
}
|
|
1085
|
+
},
|
|
1086
|
+
"common": {
|
|
1087
|
+
"yes": "Yes",
|
|
1088
|
+
"no": "No",
|
|
1089
|
+
"load_failed": "Failed to load this section.",
|
|
1090
|
+
"retry": "Retry"
|
|
1091
|
+
},
|
|
1092
|
+
"notes": {
|
|
1093
|
+
"title": "Internal notes",
|
|
1094
|
+
"placeholder": "Write an internal note…",
|
|
1095
|
+
"add": "Add",
|
|
1096
|
+
"delete": "Delete",
|
|
1097
|
+
"delete_confirm": {
|
|
1098
|
+
"title": "Delete this note?",
|
|
1099
|
+
"description": "This note will be permanently removed.",
|
|
1100
|
+
"confirm": "Delete"
|
|
1101
|
+
},
|
|
1102
|
+
"empty": "No notes yet.",
|
|
1103
|
+
"error": {
|
|
1104
|
+
"load": "Unable to load notes",
|
|
1105
|
+
"create": "Unable to add the note",
|
|
1106
|
+
"delete": "Unable to delete the note"
|
|
1107
|
+
}
|
|
1108
|
+
},
|
|
1109
|
+
"support": {
|
|
1110
|
+
"tenant": {
|
|
1111
|
+
"title": "Support",
|
|
1112
|
+
"description": "Open and follow support requests for this workspace",
|
|
1113
|
+
"new": "New ticket",
|
|
1114
|
+
"create": "Open ticket",
|
|
1115
|
+
"created": "Support ticket opened",
|
|
1116
|
+
"empty": "No support tickets yet",
|
|
1117
|
+
"select": "Select a ticket to read its conversation"
|
|
1118
|
+
},
|
|
1119
|
+
"platform": {
|
|
1120
|
+
"title": "Support inbox",
|
|
1121
|
+
"description": "Handle support requests across all workspaces",
|
|
1122
|
+
"empty": "No tickets match these filters",
|
|
1123
|
+
"select": "Select a ticket from the inbox",
|
|
1124
|
+
"assignee": "Assignee",
|
|
1125
|
+
"unassigned": "Unassigned"
|
|
1126
|
+
},
|
|
1127
|
+
"subject": "Subject",
|
|
1128
|
+
"message": "Message",
|
|
1129
|
+
"attachments": "Attachments",
|
|
1130
|
+
"attachment": "Attachment {number}",
|
|
1131
|
+
"remove_attachment": "Remove attachment",
|
|
1132
|
+
"reply_placeholder": "Write a reply…",
|
|
1133
|
+
"send": "Send reply",
|
|
1134
|
+
"conversation": "Conversation",
|
|
1135
|
+
"pagination": {
|
|
1136
|
+
"latest_page": "Latest messages",
|
|
1137
|
+
"older_messages": "Choose a later page for older messages"
|
|
1138
|
+
},
|
|
1139
|
+
"history": {
|
|
1140
|
+
"title": "Ticket history",
|
|
1141
|
+
"empty": "No ticket changes yet",
|
|
1142
|
+
"status_changed": "{actor} changed the status from {previous} to {next}",
|
|
1143
|
+
"assignment_changed": "{actor} changed the assignee from {previous} to {next}"
|
|
1144
|
+
},
|
|
1145
|
+
"category": {
|
|
1146
|
+
"label": "Category",
|
|
1147
|
+
"question": "Question",
|
|
1148
|
+
"incident": "Incident",
|
|
1149
|
+
"billing": "Billing",
|
|
1150
|
+
"feature_request": "Feature request"
|
|
1151
|
+
},
|
|
1152
|
+
"priority": {
|
|
1153
|
+
"label": "Priority",
|
|
1154
|
+
"low": "Low",
|
|
1155
|
+
"normal": "Normal",
|
|
1156
|
+
"high": "High",
|
|
1157
|
+
"urgent": "Urgent"
|
|
1158
|
+
},
|
|
1159
|
+
"status": {
|
|
1160
|
+
"open": "Open",
|
|
1161
|
+
"in_progress": "In progress",
|
|
1162
|
+
"waiting_customer": "Waiting for customer",
|
|
1163
|
+
"resolved": "Resolved",
|
|
1164
|
+
"closed": "Closed"
|
|
1165
|
+
},
|
|
1166
|
+
"author": {
|
|
1167
|
+
"tenant": "Workspace",
|
|
1168
|
+
"platform": "Support team"
|
|
1169
|
+
},
|
|
1170
|
+
"filters": {
|
|
1171
|
+
"status": "Status",
|
|
1172
|
+
"priority": "Priority",
|
|
1173
|
+
"all_statuses": "All statuses",
|
|
1174
|
+
"all_priorities": "All priorities",
|
|
1175
|
+
"apply": "Apply filters"
|
|
1176
|
+
},
|
|
1177
|
+
"sla": {
|
|
1178
|
+
"community": {
|
|
1179
|
+
"title": "Community support",
|
|
1180
|
+
"description": "Community assistance without a guaranteed response time."
|
|
1181
|
+
},
|
|
1182
|
+
"email": {
|
|
1183
|
+
"title": "Email support",
|
|
1184
|
+
"description": "Target first response within 2 business days."
|
|
1185
|
+
},
|
|
1186
|
+
"priority": {
|
|
1187
|
+
"title": "Priority support",
|
|
1188
|
+
"description": "Target first response within 8 business hours."
|
|
1189
|
+
},
|
|
1190
|
+
"dedicated": {
|
|
1191
|
+
"title": "Dedicated support",
|
|
1192
|
+
"description": "Target first response within 2 hours."
|
|
1193
|
+
}
|
|
1194
|
+
},
|
|
1195
|
+
"error": {
|
|
1196
|
+
"load": "Could not load support",
|
|
1197
|
+
"create": "Could not open the ticket",
|
|
1198
|
+
"reply": "Could not send the reply",
|
|
1199
|
+
"update": "Could not update the ticket",
|
|
1200
|
+
"upload": "Could not upload the attachment. Select the file to try again.",
|
|
1201
|
+
"attachment": "Could not open the attachment"
|
|
1202
|
+
}
|
|
1203
|
+
},
|
|
1204
|
+
"notifications": {
|
|
1205
|
+
"subjects": {
|
|
1206
|
+
"plan_migrated": "Plan migrated",
|
|
1207
|
+
"trial_ending_soon": "Trial ending soon",
|
|
1208
|
+
"trial_ended_blocked": "Trial ended",
|
|
1209
|
+
"payment_failed": "Payment failed",
|
|
1210
|
+
"workspace_suspended": "Workspace suspended",
|
|
1211
|
+
"subscription_cancelled": "Subscription cancelled",
|
|
1212
|
+
"credit_note_issued": "Credit note issued",
|
|
1213
|
+
"refund_processed": "Refund processed",
|
|
1214
|
+
"platform_owner_added": "Platform owner added",
|
|
1215
|
+
"platform_owner_removed": "Platform owner removed",
|
|
1216
|
+
"free_workspace_expired": "Complimentary access expired",
|
|
1217
|
+
"free_workspace_ending_soon": "Complimentary access ending soon",
|
|
1218
|
+
"workspace_reactivated": "Workspace reactivated",
|
|
1219
|
+
"complimentary_access_granted": "Complimentary access granted",
|
|
1220
|
+
"automation": "Automation",
|
|
1221
|
+
"seat_overage": "Plan seat overage",
|
|
1222
|
+
"support_new_message": "New support message",
|
|
1223
|
+
"support_status_changed": "Support ticket status changed"
|
|
1224
|
+
},
|
|
1225
|
+
"payload": {
|
|
1226
|
+
"workspace_suspended_admin": {
|
|
1227
|
+
"title": "Workspace suspended",
|
|
1228
|
+
"description": "Your workspace has been suspended by the platform team."
|
|
1229
|
+
},
|
|
1230
|
+
"workspace_reactivated": {
|
|
1231
|
+
"title": "Workspace reactivated",
|
|
1232
|
+
"description": "Your workspace has been reactivated by the platform team."
|
|
1233
|
+
},
|
|
1234
|
+
"complimentary_access_granted": {
|
|
1235
|
+
"title": "Complimentary access granted",
|
|
1236
|
+
"description": "Your workspace now has complimentary access."
|
|
1237
|
+
},
|
|
1238
|
+
"seat_overage": {
|
|
1239
|
+
"title": "Members above plan limit",
|
|
1240
|
+
"description": "Your new plan allows fewer members than your workspace currently has. Existing members keep their access, but you cannot add new ones until you are back under the limit or upgrade."
|
|
1241
|
+
},
|
|
1242
|
+
"workspace_deletion_requested": {
|
|
1243
|
+
"title": "Workspace deletion requested",
|
|
1244
|
+
"description": "Access is revoked and data will be destroyed at the end of the retention period."
|
|
1245
|
+
},
|
|
1246
|
+
"support_new_ticket": {
|
|
1247
|
+
"title": "New support ticket"
|
|
1248
|
+
},
|
|
1249
|
+
"support_tenant_reply": {
|
|
1250
|
+
"title": "New customer reply",
|
|
1251
|
+
"description": "A customer added a message to a support ticket."
|
|
1252
|
+
},
|
|
1253
|
+
"support_platform_reply": {
|
|
1254
|
+
"title": "Support replied to your ticket",
|
|
1255
|
+
"description": "The support team added a message to your ticket."
|
|
1256
|
+
},
|
|
1257
|
+
"support_status_changed": {
|
|
1258
|
+
"title": "Your support ticket status changed"
|
|
1259
|
+
}
|
|
1260
|
+
},
|
|
1261
|
+
"category": {
|
|
1262
|
+
"label": "SaaS",
|
|
1263
|
+
"description": "Billing, subscription and workspace notifications"
|
|
1264
|
+
}
|
|
1265
|
+
},
|
|
1266
|
+
"workspace_suspended": {
|
|
1267
|
+
"title": "Workspace access restricted",
|
|
1268
|
+
"description": "This workspace's subscription is blocking access",
|
|
1269
|
+
"status": {
|
|
1270
|
+
"pending_payment": "This workspace is waiting for its first payment. Access is restricted until the payment is completed.",
|
|
1271
|
+
"suspended": "This workspace has been suspended because of a billing issue. Access is restricted until the situation is resolved.",
|
|
1272
|
+
"cancelled": "This workspace's subscription has been cancelled. Access is restricted.",
|
|
1273
|
+
"default": "This workspace's subscription is blocking access. Access is restricted until the situation is resolved."
|
|
1274
|
+
},
|
|
1275
|
+
"unpaid_invoice": "Invoice {invoice} of {amount} could not be charged despite several attempts. The apps are asleep — data, volumes and configuration are fully preserved. Settling it restores access immediately.",
|
|
1276
|
+
"retention_note": "Without settlement, data is kept for the retention period and then deleted — an export stays possible through support.",
|
|
1277
|
+
"contact_owner": "Please contact the workspace owner to restore access.",
|
|
1278
|
+
"settle": "Settle the invoice",
|
|
1279
|
+
"open_billing": "View billing",
|
|
1280
|
+
"recheck": "Check again",
|
|
1281
|
+
"logout": "Back to login",
|
|
1282
|
+
"load_error": "Could not check the workspace status. Please try again."
|
|
1283
|
+
}
|
|
1284
|
+
}
|
|
1285
|
+
}
|