@antelopejs/dms-mailing 0.3.3 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +232 -22
- package/dist/automation/email-event-trigger.js +2 -2
- package/dist/automation/email-event-trigger.js.map +1 -1
- package/dist/automation/send-template-action.js +2 -2
- package/dist/automation/send-template-action.js.map +1 -1
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +10 -1
- package/dist/constants.js +15 -3
- package/dist/constants.js.map +1 -1
- package/dist/crons/attention.d.ts +3 -0
- package/dist/crons/attention.js +19 -0
- package/dist/crons/attention.js.map +1 -0
- package/dist/crons/index.d.ts +2 -0
- package/dist/crons/index.js +2 -0
- package/dist/crons/index.js.map +1 -1
- package/dist/crons/jobs.d.ts +12 -0
- package/dist/crons/jobs.js +27 -0
- package/dist/crons/jobs.js.map +1 -0
- package/dist/crons/retention.d.ts +2 -4
- package/dist/crons/retention.js +7 -22
- package/dist/crons/retention.js.map +1 -1
- package/dist/data/displays.d.ts +5 -0
- package/dist/data/displays.js +23 -0
- package/dist/data/displays.js.map +1 -0
- package/dist/data/index.d.ts +1 -0
- package/dist/data/index.js +1 -0
- package/dist/data/index.js.map +1 -1
- package/dist/data/locale-fallback.d.ts +3 -0
- package/dist/data/locale-fallback.js +20 -0
- package/dist/data/locale-fallback.js.map +1 -0
- package/dist/data/read-only-routes.d.ts +7 -0
- package/dist/data/read-only-routes.js +13 -0
- package/dist/data/read-only-routes.js.map +1 -0
- package/dist/data/sends-table.d.ts +19 -5
- package/dist/data/sends-table.js +185 -17
- package/dist/data/sends-table.js.map +1 -1
- package/dist/data/suppressions-table.d.ts +24 -0
- package/dist/data/suppressions-table.js +120 -0
- package/dist/data/suppressions-table.js.map +1 -0
- package/dist/data/templates-table.d.ts +20 -2
- package/dist/data/templates-table.js +188 -31
- package/dist/data/templates-table.js.map +1 -1
- package/dist/data-types/categories-type.d.ts +11 -13
- package/dist/data-types/categories-type.js +3 -3
- package/dist/data-types/categories-type.js.map +1 -1
- package/dist/data-types/category-type.js +1 -1
- package/dist/data-types/category-type.js.map +1 -1
- package/dist/db/models/index.d.ts +3 -0
- package/dist/db/models/index.js +3 -0
- package/dist/db/models/index.js.map +1 -1
- package/dist/db/models/sends.model.d.ts +12 -1
- package/dist/db/models/sends.model.js +64 -0
- package/dist/db/models/sends.model.js.map +1 -1
- package/dist/db/models/settings.model.d.ts +0 -1
- package/dist/db/models/settings.model.js +0 -7
- package/dist/db/models/settings.model.js.map +1 -1
- package/dist/db/models/suppressions.model.d.ts +28 -0
- package/dist/db/models/suppressions.model.js +46 -0
- package/dist/db/models/suppressions.model.js.map +1 -0
- package/dist/db/models/template-versions.model.d.ts +24 -0
- package/dist/db/models/template-versions.model.js +17 -0
- package/dist/db/models/template-versions.model.js.map +1 -0
- package/dist/db/models/templates.model.d.ts +2 -0
- package/dist/db/models/templates.model.js +3 -0
- package/dist/db/models/templates.model.js.map +1 -1
- package/dist/db/models/webhook-status.model.d.ts +24 -0
- package/dist/db/models/webhook-status.model.js +21 -0
- package/dist/db/models/webhook-status.model.js.map +1 -0
- package/dist/db/tables/index.d.ts +3 -0
- package/dist/db/tables/index.js +3 -0
- package/dist/db/tables/index.js.map +1 -1
- package/dist/db/tables/send-events.table.d.ts +2 -2
- package/dist/db/tables/send-events.table.js.map +1 -1
- package/dist/db/tables/sends.table.d.ts +10 -2
- package/dist/db/tables/sends.table.js +34 -1
- package/dist/db/tables/sends.table.js.map +1 -1
- package/dist/db/tables/suppressions.table.d.ts +12 -0
- package/dist/db/tables/suppressions.table.js +53 -0
- package/dist/db/tables/suppressions.table.js.map +1 -0
- package/dist/db/tables/template-versions.table.d.ts +13 -0
- package/dist/db/tables/template-versions.table.js +59 -0
- package/dist/db/tables/template-versions.table.js.map +1 -0
- package/dist/db/tables/templates.table.d.ts +11 -0
- package/dist/db/tables/templates.table.js +45 -0
- package/dist/db/tables/templates.table.js.map +1 -1
- package/dist/db/tables/webhook-status.table.d.ts +14 -0
- package/dist/db/tables/webhook-status.table.js +58 -0
- package/dist/db/tables/webhook-status.table.js.map +1 -0
- package/dist/engine/changes.d.ts +12 -0
- package/dist/engine/changes.js +107 -0
- package/dist/engine/changes.js.map +1 -0
- package/dist/engine/conditions.js +0 -2
- package/dist/engine/conditions.js.map +1 -1
- package/dist/engine/coverage.d.ts +1 -0
- package/dist/engine/coverage.js +6 -2
- package/dist/engine/coverage.js.map +1 -1
- package/dist/engine/fallback-html.d.ts +1 -1
- package/dist/engine/fallback-html.js +51 -34
- package/dist/engine/fallback-html.js.map +1 -1
- package/dist/engine/index.d.ts +3 -0
- package/dist/engine/index.js +3 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/plain-text.d.ts +3 -0
- package/dist/engine/plain-text.js +60 -0
- package/dist/engine/plain-text.js.map +1 -0
- package/dist/engine/resolve.d.ts +2 -1
- package/dist/engine/resolve.js +17 -9
- package/dist/engine/resolve.js.map +1 -1
- package/dist/engine/system-variables.d.ts +10 -0
- package/dist/engine/system-variables.js +70 -0
- package/dist/engine/system-variables.js.map +1 -0
- package/dist/engine/tokens.d.ts +2 -1
- package/dist/engine/tokens.js +6 -2
- package/dist/engine/tokens.js.map +1 -1
- package/dist/hooks/tenant-export.js +13 -1
- package/dist/hooks/tenant-export.js.map +1 -1
- package/dist/implementations/dms-mailing/index.d.ts +1 -1
- package/dist/implementations/dms-mailing/index.js +2 -2
- package/dist/implementations/dms-mailing/index.js.map +1 -1
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/pages/editor.js +9 -2
- package/dist/pages/editor.js.map +1 -1
- package/dist/pages/index.d.ts +1 -0
- package/dist/pages/index.js +1 -0
- package/dist/pages/index.js.map +1 -1
- package/dist/pages/module.d.ts +2 -0
- package/dist/pages/module.js +26 -2
- package/dist/pages/module.js.map +1 -1
- package/dist/pages/overview.d.ts +2 -6
- package/dist/pages/overview.js +109 -52
- package/dist/pages/overview.js.map +1 -1
- package/dist/pages/sends.d.ts +3 -4
- package/dist/pages/sends.js +197 -60
- package/dist/pages/sends.js.map +1 -1
- package/dist/pages/settings/form.js +114 -53
- package/dist/pages/settings/form.js.map +1 -1
- package/dist/pages/settings/page.d.ts +0 -1
- package/dist/pages/settings/page.js +8 -11
- package/dist/pages/settings/page.js.map +1 -1
- package/dist/pages/suppressions.d.ts +9 -0
- package/dist/pages/suppressions.js +151 -0
- package/dist/pages/suppressions.js.map +1 -0
- package/dist/pages/templates.d.ts +0 -1
- package/dist/pages/templates.js +114 -40
- package/dist/pages/templates.js.map +1 -1
- package/dist/permissions.js +2 -2
- package/dist/permissions.js.map +1 -1
- package/dist/quick-actions.js +7 -4
- package/dist/quick-actions.js.map +1 -1
- package/dist/routes/events.d.ts +8 -5
- package/dist/routes/events.js +55 -24
- package/dist/routes/events.js.map +1 -1
- package/dist/routes/index.d.ts +2 -0
- package/dist/routes/index.js +2 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/metrics.d.ts +60 -23
- package/dist/routes/metrics.js +231 -83
- package/dist/routes/metrics.js.map +1 -1
- package/dist/routes/period.d.ts +2 -1
- package/dist/routes/period.js +9 -3
- package/dist/routes/period.js.map +1 -1
- package/dist/routes/sends.d.ts +49 -8
- package/dist/routes/sends.js +239 -24
- package/dist/routes/sends.js.map +1 -1
- package/dist/routes/settings.d.ts +44 -5
- package/dist/routes/settings.js +190 -15
- package/dist/routes/settings.js.map +1 -1
- package/dist/routes/suppressions.d.ts +16 -0
- package/dist/routes/suppressions.js +92 -0
- package/dist/routes/suppressions.js.map +1 -0
- package/dist/routes/template-versions.d.ts +28 -0
- package/dist/routes/template-versions.js +87 -0
- package/dist/routes/template-versions.js.map +1 -0
- package/dist/routes/templates.d.ts +60 -6
- package/dist/routes/templates.js +204 -35
- package/dist/routes/templates.js.map +1 -1
- package/dist/services/attention.d.ts +19 -6
- package/dist/services/attention.js +177 -12
- package/dist/services/attention.js.map +1 -1
- package/dist/services/catalog.d.ts +3 -0
- package/dist/services/catalog.js +25 -0
- package/dist/services/catalog.js.map +1 -0
- package/dist/services/categories.d.ts +8 -32
- package/dist/services/categories.js +14 -25
- package/dist/services/categories.js.map +1 -1
- package/dist/services/checked-send.d.ts +9 -0
- package/dist/services/checked-send.js +54 -0
- package/dist/services/checked-send.js.map +1 -0
- package/dist/services/events.d.ts +5 -0
- package/dist/services/events.js +102 -9
- package/dist/services/events.js.map +1 -1
- package/dist/services/metrics.d.ts +17 -6
- package/dist/services/metrics.js +57 -18
- package/dist/services/metrics.js.map +1 -1
- package/dist/services/notify.d.ts +18 -10
- package/dist/services/notify.js +82 -37
- package/dist/services/notify.js.map +1 -1
- package/dist/services/provider-banner.d.ts +14 -0
- package/dist/services/provider-banner.js +115 -0
- package/dist/services/provider-banner.js.map +1 -0
- package/dist/services/render.js.map +1 -1
- package/dist/services/send-stat-items.d.ts +7 -0
- package/dist/services/send-stat-items.js +127 -0
- package/dist/services/send-stat-items.js.map +1 -0
- package/dist/services/send-stats.d.ts +23 -0
- package/dist/services/send-stats.js +63 -0
- package/dist/services/send-stats.js.map +1 -0
- package/dist/services/send.d.ts +18 -3
- package/dist/services/send.js +81 -17
- package/dist/services/send.js.map +1 -1
- package/dist/services/settings.d.ts +5 -0
- package/dist/services/settings.js +28 -7
- package/dist/services/settings.js.map +1 -1
- package/dist/services/starters.d.ts +15 -0
- package/dist/services/starters.js +264 -0
- package/dist/services/starters.js.map +1 -0
- package/dist/services/suppressions.d.ts +20 -0
- package/dist/services/suppressions.js +53 -0
- package/dist/services/suppressions.js.map +1 -0
- package/dist/services/template-attention.d.ts +4 -0
- package/dist/services/template-attention.js +43 -0
- package/dist/services/template-attention.js.map +1 -0
- package/dist/services/template-stats.d.ts +27 -0
- package/dist/services/template-stats.js +59 -0
- package/dist/services/template-stats.js.map +1 -0
- package/dist/services/templates.d.ts +31 -4
- package/dist/services/templates.js +240 -21
- package/dist/services/templates.js.map +1 -1
- package/dist/services/webhook-status.d.ts +27 -0
- package/dist/services/webhook-status.js +134 -0
- package/dist/services/webhook-status.js.map +1 -0
- package/dist/types/blocks.d.ts +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/sends.d.ts +10 -1
- package/dist/types/sends.js +35 -2
- package/dist/types/sends.js.map +1 -1
- package/dist/types/suppressions.d.ts +9 -0
- package/dist/types/suppressions.js +10 -0
- package/dist/types/suppressions.js.map +1 -0
- package/dist/types/webhook.d.ts +17 -0
- package/dist/types/webhook.js +3 -0
- package/dist/types/webhook.js.map +1 -0
- package/dist/validation/settings.schema.d.ts +144 -9
- package/dist/validation/settings.schema.js +113 -16
- package/dist/validation/settings.schema.js.map +1 -1
- package/dist/validation/templates.schema.d.ts +137 -10
- package/dist/validation/templates.schema.js +28 -2
- package/dist/validation/templates.schema.js.map +1 -1
- package/frontend-vue/app/build/components/FormFieldRow.vue +90 -0
- package/frontend-vue/app/build/components/FormRows.vue +26 -0
- package/frontend-vue/app/build/components/RequiredLegend.vue +11 -0
- package/frontend-vue/app/components/CategoriesInput.vue +323 -77
- package/frontend-vue/app/components/CategoryInput.vue +13 -14
- package/frontend-vue/app/components/CategoryLabel.vue +34 -0
- package/frontend-vue/app/components/DuplicateModal.vue +201 -0
- package/frontend-vue/app/components/Editor.vue +55 -20
- package/frontend-vue/app/components/FixAddressModal.vue +133 -0
- package/frontend-vue/app/components/FunnelCard.vue +146 -43
- package/frontend-vue/app/components/LocaleSelect.vue +98 -0
- package/frontend-vue/app/components/NewTemplateModal.vue +388 -102
- package/frontend-vue/app/components/NewTemplateSourceTile.vue +70 -0
- package/frontend-vue/app/components/OverviewGate.vue +220 -0
- package/frontend-vue/app/components/PageHeader.vue +98 -0
- package/frontend-vue/app/components/RealSendModal.vue +555 -0
- package/frontend-vue/app/components/RecipientsField.vue +41 -0
- package/frontend-vue/app/components/RenderingModal.vue +189 -0
- package/frontend-vue/app/components/RetentionInput.vue +212 -0
- package/frontend-vue/app/components/SendDrawer.vue +542 -209
- package/frontend-vue/app/components/StarterGallery.vue +153 -0
- package/frontend-vue/app/components/SystemVariables.vue +63 -0
- package/frontend-vue/app/components/TemplateCard.vue +218 -57
- package/frontend-vue/app/components/TemplateDrawer.vue +785 -274
- package/frontend-vue/app/components/TemplateGallery.vue +312 -56
- package/frontend-vue/app/components/TemplatePreviewFrame.vue +112 -22
- package/frontend-vue/app/components/TestSendModal.vue +266 -95
- package/frontend-vue/app/components/TokenText.vue +61 -10
- package/frontend-vue/app/components/VariablePath.vue +20 -0
- package/frontend-vue/app/components/VersionHistory.vue +196 -0
- package/frontend-vue/app/components/VersionPreview.vue +164 -0
- package/frontend-vue/app/components/WebhookStatus.vue +130 -0
- package/frontend-vue/app/components/blocks/Button.vue +1 -1
- package/frontend-vue/app/components/blocks/Code.vue +1 -1
- package/frontend-vue/app/components/blocks/Footer.vue +56 -7
- package/frontend-vue/app/components/blocks/Heading.vue +1 -1
- package/frontend-vue/app/components/blocks/Hero.vue +13 -7
- package/frontend-vue/app/components/blocks/List.vue +50 -6
- package/frontend-vue/app/components/blocks/Paragraph.vue +1 -1
- package/frontend-vue/app/components/blocks/Total.vue +3 -3
- package/frontend-vue/app/components/editor/EditorAutocompleteMenu.vue +50 -0
- package/frontend-vue/app/components/editor/EditorBlock.vue +37 -90
- package/frontend-vue/app/components/editor/EditorBlockFields.vue +140 -0
- package/frontend-vue/app/components/editor/EditorBlockInspector.vue +92 -0
- package/frontend-vue/app/components/editor/EditorBlockList.vue +32 -25
- package/frontend-vue/app/components/editor/EditorBlockPicker.vue +58 -0
- package/frontend-vue/app/components/editor/EditorBlockTools.vue +71 -0
- package/frontend-vue/app/components/editor/EditorCanvas.vue +105 -70
- package/frontend-vue/app/components/editor/EditorCompare.vue +211 -0
- package/frontend-vue/app/components/editor/EditorConditionFields.vue +56 -46
- package/frontend-vue/app/components/editor/EditorConditionInspector.vue +54 -0
- package/frontend-vue/app/components/editor/EditorEnvelope.vue +77 -0
- package/frontend-vue/app/components/editor/EditorIfBlock.vue +36 -86
- package/frontend-vue/app/components/editor/EditorInsertPoint.vue +64 -0
- package/frontend-vue/app/components/editor/EditorInspector.vue +80 -0
- package/frontend-vue/app/components/editor/EditorLeftPane.vue +103 -0
- package/frontend-vue/app/components/editor/EditorLifecycle.vue +67 -0
- package/frontend-vue/app/components/editor/EditorLoading.vue +23 -0
- package/frontend-vue/app/components/editor/EditorLocaleSwitch.vue +61 -0
- package/frontend-vue/app/components/editor/EditorMissingLocale.vue +72 -48
- package/frontend-vue/app/components/editor/EditorMissingPolicy.vue +42 -0
- package/frontend-vue/app/components/editor/EditorNotice.vue +127 -0
- package/frontend-vue/app/components/editor/EditorOutline.vue +65 -0
- package/frontend-vue/app/components/editor/EditorPalette.vue +95 -42
- package/frontend-vue/app/components/editor/EditorPaletteGroup.vue +66 -0
- package/frontend-vue/app/components/editor/EditorPublishReview.vue +102 -0
- package/frontend-vue/app/components/editor/EditorSaveState.vue +88 -0
- package/frontend-vue/app/components/editor/EditorShortcutHint.vue +17 -0
- package/frontend-vue/app/components/editor/EditorSimChip.vue +51 -0
- package/frontend-vue/app/components/editor/EditorTemplatePane.vue +131 -0
- package/frontend-vue/app/components/editor/EditorTestDataPane.vue +98 -0
- package/frontend-vue/app/components/editor/EditorTitle.vue +82 -0
- package/frontend-vue/app/components/editor/EditorTokenField.vue +224 -0
- package/frontend-vue/app/components/editor/EditorToolbar.vue +34 -134
- package/frontend-vue/app/components/editor/EditorVariableForm.vue +100 -0
- package/frontend-vue/app/components/editor/EditorVariableRow.vue +87 -0
- package/frontend-vue/app/components/editor/EditorVariablesPane.vue +161 -0
- package/frontend-vue/app/components/editor/EditorViewSwitches.vue +76 -0
- package/frontend-vue/app/components/editor/EditorVisibility.vue +101 -0
- package/frontend-vue/app/components/editor/EditorWorkspace.vue +62 -149
- package/frontend-vue/app/composables/useBlockContext.ts +16 -0
- package/frontend-vue/app/composables/useEditorActions.ts +381 -0
- package/frontend-vue/app/composables/useEditorAnnouncements.ts +51 -0
- package/frontend-vue/app/composables/useEditorContext.ts +30 -23
- package/frontend-vue/app/composables/useEditorSession.ts +299 -0
- package/frontend-vue/app/composables/useEditorShortcuts.ts +81 -0
- package/frontend-vue/app/composables/useLocalizedDefaults.ts +17 -0
- package/frontend-vue/app/composables/useMailingApi.ts +142 -27
- package/frontend-vue/app/composables/useOverviewSetup.ts +13 -0
- package/frontend-vue/app/composables/useReplayToast.ts +72 -0
- package/frontend-vue/app/composables/useTemplateCategories.ts +35 -0
- package/frontend-vue/app/composables/useTemplateDrawer.ts +196 -62
- package/frontend-vue/app/composables/useTemplateEditor.ts +318 -86
- package/frontend-vue/app/emails/EmailMailingTemplate.vue +16 -4
- package/frontend-vue/app/emails/components/MailingBlocks.vue +96 -38
- package/frontend-vue/app/emails/components/MailingTextLines.vue +20 -0
- package/frontend-vue/app/plugins/column-displays.ts +65 -0
- package/frontend-vue/app/plugins/{template-gallery-display.client.ts → template-gallery-display.ts} +1 -1
- package/frontend-vue/app/types/mailing.ts +193 -18
- package/frontend-vue/app/utils/api-error.ts +33 -0
- package/frontend-vue/app/utils/autocomplete.ts +120 -0
- package/frontend-vue/app/utils/blocks/components.ts +10 -10
- package/frontend-vue/app/utils/blocks/dnd.ts +7 -3
- package/frontend-vue/app/utils/blocks/factory.ts +199 -38
- package/frontend-vue/app/utils/blocks/fields.ts +39 -19
- package/frontend-vue/app/utils/blocks/index.ts +1 -0
- package/frontend-vue/app/utils/blocks/outline.ts +91 -0
- package/frontend-vue/app/utils/blocks/tree.ts +114 -2
- package/frontend-vue/app/utils/categories.ts +201 -15
- package/frontend-vue/app/utils/changes.ts +152 -0
- package/frontend-vue/app/utils/conditions.ts +25 -19
- package/frontend-vue/app/utils/editor-checks.ts +266 -0
- package/frontend-vue/app/utils/editor-route.ts +43 -4
- package/frontend-vue/app/utils/funnel.ts +74 -0
- package/frontend-vue/app/utils/gallery.ts +179 -1
- package/frontend-vue/app/utils/history.ts +66 -0
- package/frontend-vue/app/utils/lifecycle.ts +185 -0
- package/frontend-vue/app/utils/locales.ts +107 -2
- package/frontend-vue/app/utils/overview-setup.ts +83 -0
- package/frontend-vue/app/utils/pages.ts +5 -0
- package/frontend-vue/app/utils/paths.ts +51 -15
- package/frontend-vue/app/utils/period.ts +62 -22
- package/frontend-vue/app/utils/problems.ts +181 -0
- package/frontend-vue/app/utils/recipients.ts +49 -0
- package/frontend-vue/app/utils/rendering-title.ts +23 -0
- package/frontend-vue/app/utils/send-actions.ts +207 -0
- package/frontend-vue/app/utils/send-link.ts +28 -0
- package/frontend-vue/app/utils/send-snippet.ts +97 -0
- package/frontend-vue/app/utils/send-stats.ts +24 -0
- package/frontend-vue/app/utils/send-values.ts +156 -0
- package/frontend-vue/app/utils/shortcuts.ts +113 -0
- package/frontend-vue/app/utils/slug.ts +82 -0
- package/frontend-vue/app/utils/starters.ts +23 -0
- package/frontend-vue/app/utils/suppression.ts +112 -0
- package/frontend-vue/app/utils/system-variables.ts +165 -0
- package/frontend-vue/app/utils/template-attention.ts +104 -0
- package/frontend-vue/app/utils/timeline.ts +221 -19
- package/frontend-vue/app/utils/tokens.ts +115 -13
- package/frontend-vue/app/utils/variable-types.ts +23 -0
- package/frontend-vue/app/utils/variables.ts +208 -1
- package/frontend-vue/app/utils/version-history.ts +53 -0
- package/frontend-vue/app/utils/webhook-status.ts +170 -0
- package/frontend-vue/dms.frontend.ts +19 -11
- package/frontend-vue/i18n/locales/mailing-en-GB.json +1173 -161
- package/frontend-vue/i18n/locales/mailing-fr-FR.json +1220 -208
- package/frontend-vue/package.json +4 -1
- package/frontend-vue/pnpm-lock.yaml +46 -161
- package/frontend-vue/tests/api-error.test.ts +27 -0
- package/frontend-vue/tests/autocomplete.test.ts +84 -0
- package/frontend-vue/tests/block-components.test.ts +1 -1
- package/frontend-vue/tests/block-fields.test.ts +12 -2
- package/frontend-vue/tests/blocks-factory.test.ts +46 -0
- package/frontend-vue/tests/blocks-outline.test.ts +102 -0
- package/frontend-vue/tests/blocks-tree.test.ts +28 -1
- package/frontend-vue/tests/categories-input.test.ts +139 -0
- package/frontend-vue/tests/categories.test.ts +148 -15
- package/frontend-vue/tests/changes.test.ts +136 -0
- package/frontend-vue/tests/column-displays.test.ts +73 -0
- package/frontend-vue/tests/conditions.test.ts +49 -19
- package/frontend-vue/tests/dnd.test.ts +10 -0
- package/frontend-vue/tests/editor-block-list.test.ts +24 -2
- package/frontend-vue/tests/editor-checks.test.ts +178 -0
- package/frontend-vue/tests/editor-route.test.ts +37 -9
- package/frontend-vue/tests/editor-session.test.ts +206 -0
- package/frontend-vue/tests/footer-block.test.ts +88 -0
- package/frontend-vue/tests/funnel-card.test.ts +116 -0
- package/frontend-vue/tests/funnel.test.ts +81 -0
- package/frontend-vue/tests/gallery.test.ts +124 -2
- package/frontend-vue/tests/helpers/nuxt-globals.ts +232 -0
- package/frontend-vue/tests/history.test.ts +48 -0
- package/frontend-vue/tests/i18n-editor.test.ts +38 -0
- package/frontend-vue/tests/i18n.test.ts +55 -0
- package/frontend-vue/tests/lifecycle.test.ts +145 -0
- package/frontend-vue/tests/locales.test.ts +60 -0
- package/frontend-vue/tests/localized-defaults.test.ts +54 -0
- package/frontend-vue/tests/new-template-modal.test.ts +210 -0
- package/frontend-vue/tests/overview-gate.test.ts +146 -0
- package/frontend-vue/tests/overview-setup.test.ts +78 -0
- package/frontend-vue/tests/paths.test.ts +23 -0
- package/frontend-vue/tests/period.test.ts +59 -10
- package/frontend-vue/tests/problems.test.ts +153 -0
- package/frontend-vue/tests/recipients.test.ts +47 -0
- package/frontend-vue/tests/rendering-title.test.ts +24 -0
- package/frontend-vue/tests/replay-toast.test.ts +67 -0
- package/frontend-vue/tests/retention-input.test.ts +129 -0
- package/frontend-vue/tests/send-actions.test.ts +128 -0
- package/frontend-vue/tests/send-modals.test.ts +415 -0
- package/frontend-vue/tests/send-snippet.test.ts +51 -0
- package/frontend-vue/tests/send-stats.test.ts +12 -0
- package/frontend-vue/tests/send-values.test.ts +119 -0
- package/frontend-vue/tests/shortcuts.test.ts +75 -0
- package/frontend-vue/tests/slug.test.ts +88 -0
- package/frontend-vue/tests/suppression.test.ts +159 -0
- package/frontend-vue/tests/system-variables.test.ts +133 -0
- package/frontend-vue/tests/template-attention.test.ts +123 -0
- package/frontend-vue/tests/template-drawer.test.ts +449 -0
- package/frontend-vue/tests/template-editor.test.ts +218 -9
- package/frontend-vue/tests/template-gallery-display.test.ts +32 -0
- package/frontend-vue/tests/template-gallery.test.ts +370 -0
- package/frontend-vue/tests/template-overlays.test.ts +125 -0
- package/frontend-vue/tests/timeline.test.ts +175 -20
- package/frontend-vue/tests/tokens.test.ts +79 -1
- package/frontend-vue/tests/variable-path.test.ts +22 -0
- package/frontend-vue/tests/variable-types.test.ts +20 -0
- package/frontend-vue/tests/variables.test.ts +90 -2
- package/frontend-vue/tests/version-history.test.ts +41 -0
- package/frontend-vue/tests/webhook-status.test.ts +108 -0
- package/package.json +11 -9
- package/src/automation/email-event-trigger.ts +3 -3
- package/src/automation/send-template-action.ts +7 -5
- package/src/config.ts +3 -1
- package/src/constants.ts +18 -2
- package/src/crons/attention.ts +21 -0
- package/src/crons/index.ts +2 -0
- package/src/crons/jobs.ts +35 -0
- package/src/crons/retention.ts +7 -22
- package/src/data/displays.ts +18 -0
- package/src/data/index.ts +1 -0
- package/src/data/locale-fallback.ts +26 -0
- package/src/data/read-only-routes.ts +14 -0
- package/src/data/sends-table.ts +204 -19
- package/src/data/suppressions-table.ts +127 -0
- package/src/data/templates-table.ts +295 -63
- package/src/data-types/categories-type.ts +4 -5
- package/src/data-types/category-type.ts +1 -1
- package/src/db/models/index.ts +3 -0
- package/src/db/models/sends.model.ts +102 -1
- package/src/db/models/settings.model.ts +2 -12
- package/src/db/models/suppressions.model.ts +53 -0
- package/src/db/models/template-versions.model.ts +23 -0
- package/src/db/models/templates.model.ts +17 -0
- package/src/db/models/webhook-status.model.ts +25 -0
- package/src/db/tables/index.ts +3 -0
- package/src/db/tables/send-events.table.ts +6 -2
- package/src/db/tables/sends.table.ts +37 -2
- package/src/db/tables/suppressions.table.ts +46 -0
- package/src/db/tables/template-versions.table.ts +44 -0
- package/src/db/tables/templates.table.ts +67 -5
- package/src/db/tables/webhook-status.table.ts +44 -0
- package/src/engine/changes.ts +198 -0
- package/src/engine/conditions.ts +1 -7
- package/src/engine/coverage.ts +7 -2
- package/src/engine/fallback-html.ts +80 -42
- package/src/engine/index.ts +3 -0
- package/src/engine/plain-text.ts +86 -0
- package/src/engine/resolve.ts +49 -15
- package/src/engine/system-variables.ts +124 -0
- package/src/engine/tokens.ts +13 -1
- package/src/hooks/tenant-export.ts +21 -2
- package/src/implementations/dms-mailing/index.ts +1 -1
- package/src/index.ts +29 -13
- package/src/pages/editor.ts +13 -2
- package/src/pages/index.ts +6 -3
- package/src/pages/module.ts +31 -2
- package/src/pages/overview.ts +187 -128
- package/src/pages/sends.ts +271 -112
- package/src/pages/settings/form.ts +144 -54
- package/src/pages/settings/page.ts +9 -17
- package/src/pages/suppressions.ts +157 -0
- package/src/pages/templates.ts +139 -42
- package/src/permissions.ts +6 -4
- package/src/quick-actions.ts +12 -5
- package/src/routes/events.ts +110 -33
- package/src/routes/index.ts +2 -0
- package/src/routes/metrics.ts +348 -98
- package/src/routes/period.ts +23 -6
- package/src/routes/sends.ts +413 -41
- package/src/routes/settings.ts +291 -26
- package/src/routes/suppressions.ts +87 -0
- package/src/routes/template-versions.ts +116 -0
- package/src/routes/templates.ts +334 -48
- package/src/services/attention.ts +283 -30
- package/src/services/catalog.ts +28 -0
- package/src/services/categories.ts +28 -27
- package/src/services/checked-send.ts +123 -0
- package/src/services/events.ts +174 -20
- package/src/services/metrics.ts +137 -28
- package/src/services/notify.ts +126 -44
- package/src/services/provider-banner.ts +165 -0
- package/src/services/render.ts +1 -0
- package/src/services/send-stat-items.ts +160 -0
- package/src/services/send-stats.ts +122 -0
- package/src/services/send.ts +193 -31
- package/src/services/settings.ts +52 -8
- package/src/services/starters.ts +383 -0
- package/src/services/suppressions.ts +116 -0
- package/src/services/template-attention.ts +82 -0
- package/src/services/template-stats.ts +97 -0
- package/src/services/templates.ts +400 -37
- package/src/services/webhook-status.ts +202 -0
- package/src/types/blocks.ts +6 -0
- package/src/types/index.ts +2 -0
- package/src/types/sends.ts +64 -2
- package/src/types/suppressions.ts +27 -0
- package/src/types/webhook.ts +29 -0
- package/src/validation/settings.schema.ts +173 -17
- package/src/validation/templates.schema.ts +53 -1
- package/dist/antelope-modules.d.ts +0 -32
- package/dist/antelope-modules.js +0 -36
- package/dist/antelope-modules.js.map +0 -1
- package/dist/test/antelope.test.d.ts +0 -2
- package/dist/test/antelope.test.js +0 -180
- package/dist/test/antelope.test.js.map +0 -1
- package/dist/test/helpers/http.d.ts +0 -4
- package/dist/test/helpers/http.js +0 -28
- package/dist/test/helpers/http.js.map +0 -1
- package/dist/test/helpers/owner.d.ts +0 -5
- package/dist/test/helpers/owner.js +0 -30
- package/dist/test/helpers/owner.js.map +0 -1
- package/dist/test/integration/events.test.d.ts +0 -1
- package/dist/test/integration/events.test.js +0 -143
- package/dist/test/integration/events.test.js.map +0 -1
- package/dist/test/integration/retention.test.d.ts +0 -1
- package/dist/test/integration/retention.test.js +0 -291
- package/dist/test/integration/retention.test.js.map +0 -1
- package/dist/test/integration/sends.test.d.ts +0 -1
- package/dist/test/integration/sends.test.js +0 -210
- package/dist/test/integration/sends.test.js.map +0 -1
- package/dist/test/integration/settings.test.d.ts +0 -1
- package/dist/test/integration/settings.test.js +0 -137
- package/dist/test/integration/settings.test.js.map +0 -1
- package/dist/test/integration/setup.test.d.ts +0 -1
- package/dist/test/integration/setup.test.js +0 -32
- package/dist/test/integration/setup.test.js.map +0 -1
- package/dist/test/integration/templates.test.d.ts +0 -1
- package/dist/test/integration/templates.test.js +0 -233
- package/dist/test/integration/templates.test.js.map +0 -1
- package/dist/test/integration/tenant-export.test.d.ts +0 -1
- package/dist/test/integration/tenant-export.test.js +0 -85
- package/dist/test/integration/tenant-export.test.js.map +0 -1
- package/dist/test/unit/attention.test.d.ts +0 -1
- package/dist/test/unit/attention.test.js +0 -109
- package/dist/test/unit/attention.test.js.map +0 -1
- package/dist/test/unit/automation.test.d.ts +0 -1
- package/dist/test/unit/automation.test.js +0 -104
- package/dist/test/unit/automation.test.js.map +0 -1
- package/dist/test/unit/categories.test.d.ts +0 -1
- package/dist/test/unit/categories.test.js +0 -38
- package/dist/test/unit/categories.test.js.map +0 -1
- package/dist/test/unit/engine/conditions.test.d.ts +0 -1
- package/dist/test/unit/engine/conditions.test.js +0 -23
- package/dist/test/unit/engine/conditions.test.js.map +0 -1
- package/dist/test/unit/engine/coverage.test.d.ts +0 -1
- package/dist/test/unit/engine/coverage.test.js +0 -106
- package/dist/test/unit/engine/coverage.test.js.map +0 -1
- package/dist/test/unit/engine/fallback-html.test.d.ts +0 -1
- package/dist/test/unit/engine/fallback-html.test.js +0 -78
- package/dist/test/unit/engine/fallback-html.test.js.map +0 -1
- package/dist/test/unit/engine/paths.test.d.ts +0 -1
- package/dist/test/unit/engine/paths.test.js +0 -33
- package/dist/test/unit/engine/paths.test.js.map +0 -1
- package/dist/test/unit/engine/resolve.test.d.ts +0 -1
- package/dist/test/unit/engine/resolve.test.js +0 -157
- package/dist/test/unit/engine/resolve.test.js.map +0 -1
- package/dist/test/unit/engine/tokens.test.d.ts +0 -1
- package/dist/test/unit/engine/tokens.test.js +0 -26
- package/dist/test/unit/engine/tokens.test.js.map +0 -1
- package/dist/test/unit/events.test.d.ts +0 -1
- package/dist/test/unit/events.test.js +0 -13
- package/dist/test/unit/events.test.js.map +0 -1
- package/dist/test/unit/metrics.test.d.ts +0 -1
- package/dist/test/unit/metrics.test.js +0 -108
- package/dist/test/unit/metrics.test.js.map +0 -1
- package/dist/test/unit/notify.test.d.ts +0 -1
- package/dist/test/unit/notify.test.js +0 -49
- package/dist/test/unit/notify.test.js.map +0 -1
- package/dist/test/unit/period.test.d.ts +0 -1
- package/dist/test/unit/period.test.js +0 -61
- package/dist/test/unit/period.test.js.map +0 -1
- package/dist/test/unit/permissions.test.d.ts +0 -1
- package/dist/test/unit/permissions.test.js +0 -27
- package/dist/test/unit/permissions.test.js.map +0 -1
- package/dist/test/unit/provider.test.d.ts +0 -1
- package/dist/test/unit/provider.test.js +0 -47
- package/dist/test/unit/provider.test.js.map +0 -1
- package/dist/test/unit/realtime.test.d.ts +0 -1
- package/dist/test/unit/realtime.test.js +0 -13
- package/dist/test/unit/realtime.test.js.map +0 -1
- package/dist/test/unit/render.test.d.ts +0 -1
- package/dist/test/unit/render.test.js +0 -23
- package/dist/test/unit/render.test.js.map +0 -1
- package/dist/test/unit/retention.test.d.ts +0 -1
- package/dist/test/unit/retention.test.js +0 -66
- package/dist/test/unit/retention.test.js.map +0 -1
- package/dist/test/unit/send-batch.test.d.ts +0 -1
- package/dist/test/unit/send-batch.test.js +0 -46
- package/dist/test/unit/send-batch.test.js.map +0 -1
- package/dist/test/unit/send.test.d.ts +0 -1
- package/dist/test/unit/send.test.js +0 -120
- package/dist/test/unit/send.test.js.map +0 -1
- package/dist/test/unit/smoke.test.d.ts +0 -1
- package/dist/test/unit/smoke.test.js +0 -10
- package/dist/test/unit/smoke.test.js.map +0 -1
- package/dist/test/unit/status.test.d.ts +0 -1
- package/dist/test/unit/status.test.js +0 -16
- package/dist/test/unit/status.test.js.map +0 -1
- package/dist/test/unit/templates.test.d.ts +0 -1
- package/dist/test/unit/templates.test.js +0 -48
- package/dist/test/unit/templates.test.js.map +0 -1
- package/dist/test/unit/tenant-export.test.d.ts +0 -1
- package/dist/test/unit/tenant-export.test.js +0 -59
- package/dist/test/unit/tenant-export.test.js.map +0 -1
- package/dist/test/unit/webhook-secret.test.d.ts +0 -1
- package/dist/test/unit/webhook-secret.test.js +0 -43
- package/dist/test/unit/webhook-secret.test.js.map +0 -1
- package/frontend-vue/app/components/AttentionCard.vue +0 -78
- package/frontend-vue/app/components/HtmlPreviewModal.vue +0 -20
- package/frontend-vue/app/components/ProviderChip.vue +0 -39
- package/frontend-vue/app/components/editor/EditorBlockSettings.vue +0 -186
- package/frontend-vue/app/components/editor/EditorDataPanel.vue +0 -130
- package/frontend-vue/app/components/editor/EditorDraftBar.vue +0 -35
- package/frontend-vue/app/components/editor/EditorRail.vue +0 -58
- package/frontend-vue/app/components/editor/EditorSubjectSettings.vue +0 -37
- package/frontend-vue/app/components/editor/EditorTemplateSettings.vue +0 -87
- package/frontend-vue/app/components/editor/EditorTestSendModal.vue +0 -66
- package/frontend-vue/app/components/editor/EditorVariables.vue +0 -163
- package/frontend-vue/app/composables/useMailingPeriodData.ts +0 -39
- package/src/antelope-modules.ts +0 -48
- package/src/test/antelope.test.ts +0 -190
- package/src/test/helpers/http.ts +0 -23
- package/src/test/helpers/owner.ts +0 -37
- package/src/test/integration/events.test.ts +0 -159
- package/src/test/integration/retention.test.ts +0 -363
- package/src/test/integration/sends.test.ts +0 -233
- package/src/test/integration/settings.test.ts +0 -128
- package/src/test/integration/setup.test.ts +0 -35
- package/src/test/integration/templates.test.ts +0 -272
- package/src/test/integration/tenant-export.test.ts +0 -125
- package/src/test/unit/attention.test.ts +0 -129
- package/src/test/unit/automation.test.ts +0 -130
- package/src/test/unit/categories.test.ts +0 -51
- package/src/test/unit/engine/conditions.test.ts +0 -35
- package/src/test/unit/engine/coverage.test.ts +0 -118
- package/src/test/unit/engine/fallback-html.test.ts +0 -86
- package/src/test/unit/engine/paths.test.ts +0 -39
- package/src/test/unit/engine/resolve.test.ts +0 -176
- package/src/test/unit/engine/tokens.test.ts +0 -26
- package/src/test/unit/events.test.ts +0 -19
- package/src/test/unit/metrics.test.ts +0 -170
- package/src/test/unit/notify.test.ts +0 -71
- package/src/test/unit/period.test.ts +0 -91
- package/src/test/unit/permissions.test.ts +0 -30
- package/src/test/unit/provider.test.ts +0 -57
- package/src/test/unit/realtime.test.ts +0 -11
- package/src/test/unit/render.test.ts +0 -23
- package/src/test/unit/retention.test.ts +0 -91
- package/src/test/unit/send-batch.test.ts +0 -72
- package/src/test/unit/send.test.ts +0 -161
- package/src/test/unit/smoke.test.ts +0 -8
- package/src/test/unit/status.test.ts +0 -14
- package/src/test/unit/templates.test.ts +0 -52
- package/src/test/unit/tenant-export.test.ts +0 -88
- package/src/test/unit/webhook-secret.test.ts +0 -51
|
@@ -1,32 +1,52 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dms_mailing": {
|
|
3
3
|
"attention": {
|
|
4
|
-
"bounces_description": "Adresses invalides — à retirer pour protéger la réputation d'envoi.",
|
|
5
|
-
"bounces_title": "{count} rejets permanents",
|
|
6
|
-
"missing_locales_description": "Templates incomplets — {names}. Les envois retombent sur la langue par défaut.",
|
|
7
|
-
"missing_locales_title": "{count} traductions manquantes",
|
|
8
4
|
"problem_sends": {
|
|
9
|
-
"description": "
|
|
10
|
-
"title": "{count} envoi
|
|
5
|
+
"description": "Rebonds : {bounced} · échecs fournisseur : {failed} · signalements de spam : {spam}",
|
|
6
|
+
"title": "{count} envoi a un problème | {count} envoi a un problème | {count} envois ont un problème",
|
|
7
|
+
"action": "Voir les problèmes",
|
|
8
|
+
"parts": {
|
|
9
|
+
"bounced": "{count} rebond | {count} rebond | {count} rebonds",
|
|
10
|
+
"failed": "{count} échec fournisseur | {count} échec fournisseur | {count} échecs fournisseur",
|
|
11
|
+
"spam": "{count} signalement de spam | {count} signalement de spam | {count} signalements de spam"
|
|
12
|
+
}
|
|
11
13
|
},
|
|
12
14
|
"stale_drafts": {
|
|
13
|
-
"description": "Jamais
|
|
14
|
-
"title": "{count} brouillon
|
|
15
|
+
"description": "Jamais publié, intact depuis plus d’une semaine. | Jamais publié, intact depuis plus d’une semaine. | Jamais publiés, intacts depuis plus d’une semaine.",
|
|
16
|
+
"title": "{count} brouillon laissé de côté | {count} brouillon laissé de côté | {count} brouillons laissés de côté",
|
|
17
|
+
"action": "Publier ou archiver"
|
|
15
18
|
},
|
|
16
|
-
"stale_drafts_description": "Jamais publiés depuis leur dernière modification — publiez-les ou archivez-les.",
|
|
17
|
-
"stale_drafts_title": "{count} brouillons en attente",
|
|
18
19
|
"test_only_window": {
|
|
19
|
-
"description": "Ces chiffres ne comptent que le trafic réel.
|
|
20
|
-
"title": "{count} envois de test exclus"
|
|
20
|
+
"description": "Ces chiffres ne comptent que le trafic réel.",
|
|
21
|
+
"title": "{count} envoi de test exclu | {count} envoi de test exclu | {count} envois de test exclus",
|
|
22
|
+
"action": "Ouvrir le journal"
|
|
21
23
|
},
|
|
22
24
|
"untracked_rates": {
|
|
23
25
|
"title": "Les ouvertures et les clics ne sont pas suivis",
|
|
24
|
-
"description": "{provider} n
|
|
26
|
+
"description": "{provider} n’a remonté ni ouverture ni clic sur la période.",
|
|
27
|
+
"action": "Réglages du webhook"
|
|
25
28
|
},
|
|
26
29
|
"unused_live": {
|
|
27
|
-
"description": "
|
|
28
|
-
"title": "{count}
|
|
29
|
-
|
|
30
|
+
"description": "{names} : vérifiez le slug appelé par votre code.",
|
|
31
|
+
"title": "{count} modèle en ligne inutilisé sur la période | {count} modèle en ligne inutilisé sur la période | {count} modèles en ligne inutilisés sur la période",
|
|
32
|
+
"action": "Vérifier les slugs"
|
|
33
|
+
},
|
|
34
|
+
"missing_locales": {
|
|
35
|
+
"title": "{count} modèle avec une traduction manquante | {count} modèle avec une traduction manquante | {count} modèles avec une traduction manquante",
|
|
36
|
+
"description": "{names} : ces clients reçoivent la langue de repli.",
|
|
37
|
+
"action": "Voir les modèles"
|
|
38
|
+
},
|
|
39
|
+
"untracked_delivery": {
|
|
40
|
+
"title": "La distribution n’est pas mesurée",
|
|
41
|
+
"description": "{provider} ne remonte aucune distribution : les envois restent « envoyés ».",
|
|
42
|
+
"action": "Réglages du webhook"
|
|
43
|
+
},
|
|
44
|
+
"sender_missing": {
|
|
45
|
+
"title": "Aucune adresse d’expéditeur",
|
|
46
|
+
"description": "Les e-mails utilisent l’adresse par défaut du fournisseur.",
|
|
47
|
+
"action": "Définir l’expéditeur"
|
|
48
|
+
},
|
|
49
|
+
"more_names": "{names} et {count} autre | {names} et {count} autre | {names} et {count} autres"
|
|
30
50
|
},
|
|
31
51
|
"blocks": {
|
|
32
52
|
"button": "Bouton",
|
|
@@ -49,20 +69,19 @@
|
|
|
49
69
|
"move_down": "Descendre",
|
|
50
70
|
"move_up": "Monter"
|
|
51
71
|
},
|
|
52
|
-
"
|
|
53
|
-
"back": "Retour aux templates",
|
|
72
|
+
"back": "Retour aux modèles",
|
|
54
73
|
"block_settings": {
|
|
55
74
|
"align": "Alignement",
|
|
56
75
|
"alt": "Texte alternatif",
|
|
57
76
|
"always_show": "Toujours afficher ce bloc",
|
|
58
|
-
"conditional_help": "Le bloc disparaît de l
|
|
77
|
+
"conditional_help": "Le bloc disparaît de l’e-mail quand la règle est fausse.",
|
|
59
78
|
"delete_block": "Supprimer le bloc",
|
|
60
79
|
"href": "Lien",
|
|
61
|
-
"image_url": "URL de l
|
|
62
|
-
"insert_hint": "Tapez {'{{'} ou cliquez une variable ci-dessous pour l
|
|
80
|
+
"image_url": "URL de l’image",
|
|
81
|
+
"insert_hint": "Tapez {'{{'} ou cliquez sur une variable ci-dessous pour l’insérer.",
|
|
63
82
|
"label": "Libellé",
|
|
64
83
|
"label_path": "Chemin du libellé",
|
|
65
|
-
"only_if": "N
|
|
84
|
+
"only_if": "N’afficher que si…",
|
|
66
85
|
"preferences_label": "Libellé des préférences",
|
|
67
86
|
"size": "Taille",
|
|
68
87
|
"source": "Source de la liste",
|
|
@@ -70,273 +89,823 @@
|
|
|
70
89
|
"text": "Texte",
|
|
71
90
|
"unsubscribe_label": "Libellé de désinscription",
|
|
72
91
|
"value": "Valeur affichée",
|
|
73
|
-
"value_path": "Chemin de la valeur"
|
|
92
|
+
"value_path": "Chemin de la valeur",
|
|
93
|
+
"unsubscribe_label_help": "Laissez vide pour retirer le lien. Son URL est l’unsubscribeUrl que votre code passe à l’envoi.",
|
|
94
|
+
"preferences_label_help": "Laissez vide pour retirer le lien. Son URL est la preferencesUrl que votre code passe à l’envoi."
|
|
74
95
|
},
|
|
75
96
|
"condition": {
|
|
76
|
-
"add_else": "Ajouter une branche « sinon »",
|
|
77
|
-
"add_here": "Ajouter dans cette branche",
|
|
78
|
-
"compiled": "Compilé",
|
|
79
97
|
"else": "SINON",
|
|
80
|
-
"eval_false": "faux avec le jeu de test",
|
|
81
|
-
"eval_true": "vrai avec le jeu de test",
|
|
82
98
|
"field": "Champ",
|
|
83
99
|
"hidden": "masqué par la condition",
|
|
84
100
|
"if": "SI",
|
|
85
101
|
"operator": "Opérateur",
|
|
86
|
-
"remove_else": "Retirer la branche « sinon »",
|
|
87
102
|
"simulate_false": "faux",
|
|
88
103
|
"simulate_true": "vrai",
|
|
89
|
-
"value": "Valeur"
|
|
104
|
+
"value": "Valeur",
|
|
105
|
+
"sim_locked": "Évaluée avec les données de test",
|
|
106
|
+
"sim_hint": "Simuler la branche que prend l’e-mail",
|
|
107
|
+
"no_value": "pas de valeur",
|
|
108
|
+
"eval_branch_true": "Avec les données de test : vrai → première branche",
|
|
109
|
+
"eval_branch_false": "Avec les données de test : faux → branche sinon",
|
|
110
|
+
"eval_visibility_true": "Avec les données de test : vrai → affiché",
|
|
111
|
+
"eval_visibility_false": "Avec les données de test : faux → masqué",
|
|
112
|
+
"first_branch_if": "Afficher la première branche si",
|
|
113
|
+
"else_branch": "Branche sinon",
|
|
114
|
+
"else_count": "{count} bloc affiché quand la règle est fausse | {count} bloc affiché quand la règle est fausse | {count} blocs affichés quand la règle est fausse",
|
|
115
|
+
"else_off": "Rien ne s’affiche quand la règle est fausse"
|
|
90
116
|
},
|
|
91
117
|
"data": {
|
|
92
|
-
"
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
"help_off": "Activez « Données de test » dans la barre du haut pour interpoler l'aperçu et évaluer les conditions.",
|
|
97
|
-
"help_valid": "JSON valide — variables interpolées et conditions évaluées pour de vrai.",
|
|
98
|
-
"save": "Enregistrer ce jeu",
|
|
99
|
-
"saved": "Données de test enregistrées",
|
|
100
|
-
"title": "Jeu de données de test",
|
|
101
|
-
"uncovered": "{count} variables non couvertes : {path} est utilisée par le template mais absente du jeu de test.",
|
|
102
|
-
"use": "Utiliser ce jeu de données"
|
|
103
|
-
},
|
|
104
|
-
"description": "Éditeur de blocs d'un template de mailing",
|
|
105
|
-
"desktop": "Desktop",
|
|
106
|
-
"discard": "Abandonner",
|
|
107
|
-
"discard_description": "Toutes les modifications non enregistrées reviennent à la dernière version enregistrée.",
|
|
108
|
-
"discard_title": "Abandonner le brouillon ?",
|
|
118
|
+
"invalid_json_banner": "Les données de test ne sont pas un JSON valide : l’aperçu utilise les dernières données valides."
|
|
119
|
+
},
|
|
120
|
+
"description": "Éditeur de blocs d’un modèle d’e-mail",
|
|
121
|
+
"desktop": "Ordinateur",
|
|
109
122
|
"groups": {
|
|
110
123
|
"conditional": "Affichage conditionnel",
|
|
111
124
|
"content": "Contenu",
|
|
112
125
|
"logic": "Logique",
|
|
113
126
|
"variables": "Variables disponibles"
|
|
114
127
|
},
|
|
115
|
-
"leave_guard": "Ce template a des modifications non enregistrées. Quitter quand même ?",
|
|
116
|
-
"load_error": "Ce modèle n'a pas pu être chargé.",
|
|
117
128
|
"loading": "Chargement du modèle…",
|
|
118
129
|
"missing_locale": {
|
|
119
|
-
"blank": "Partir d
|
|
130
|
+
"blank": "Partir d’une page vide",
|
|
120
131
|
"duplicate": "Dupliquer depuis {fallback}",
|
|
121
|
-
"hint": "Les envois en {locale} retombent sur {fallback}. Dupliquez pour traduire, ou repartez d
|
|
122
|
-
"
|
|
132
|
+
"hint": "Les envois en {locale} retombent sur {fallback}. Dupliquez pour traduire, ou repartez d’une page vide.",
|
|
133
|
+
"title_short": "Pas encore de version {locale}",
|
|
134
|
+
"affected": "{count} destinataire a demandé la version {locale} ces 30 derniers jours et a reçu la version {fallback}. Dupliquez-la pour la traduire, ou partez d’une page vide. | {count} destinataire a demandé la version {locale} ces 30 derniers jours et a reçu la version {fallback}. Dupliquez-la pour la traduire, ou partez d’une page vide. | {count} destinataires ont demandé la version {locale} ces 30 derniers jours et ont reçu la version {fallback}. Dupliquez-la pour la traduire, ou partez d’une page vide.",
|
|
135
|
+
"fallback_is_missing": "Pas de version {locale}, alors que c’est la langue de repli : les envois sans traduction partent en {first}.",
|
|
136
|
+
"no_locale": "Ce modèle n’a encore aucune langue : les envois échouent tant qu’aucune n’est rédigée. Repartez d’une page vide."
|
|
123
137
|
},
|
|
124
138
|
"mobile": "Mobile",
|
|
125
|
-
"open_template_settings": "Réglages du
|
|
139
|
+
"open_template_settings": "Réglages du modèle",
|
|
126
140
|
"operators": {
|
|
127
141
|
"eq": "est égal à",
|
|
128
|
-
"falsy": "est
|
|
142
|
+
"falsy": "est vide",
|
|
129
143
|
"gt": "est supérieur à",
|
|
130
144
|
"lt": "est inférieur à",
|
|
131
145
|
"ne": "est différent de",
|
|
132
|
-
"truthy": "est
|
|
146
|
+
"truthy": "est renseigné"
|
|
133
147
|
},
|
|
134
148
|
"palette": {
|
|
135
|
-
"
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
},
|
|
143
|
-
"publish": "Publier",
|
|
144
|
-
"published": "Modèle publié",
|
|
145
|
-
"save": "Enregistrer",
|
|
146
|
-
"saved": "Enregistré",
|
|
147
|
-
"settings_hint": "Sélectionnez un bloc sur la feuille pour le modifier.",
|
|
148
|
-
"status_hint": "Publier enregistre la date ; archiver empêche l'envoi du template.",
|
|
149
|
-
"still_called": "le code appelle toujours {slug}",
|
|
150
|
-
"subject": "Objet",
|
|
151
|
-
"subject_help": "Les variables non fournies à l'envoi feront échouer l'appel.",
|
|
152
|
-
"tabs": {
|
|
153
|
-
"blocks": "Blocs",
|
|
154
|
-
"data": "Données",
|
|
155
|
-
"settings": "Réglages",
|
|
156
|
-
"template": "Template"
|
|
157
|
-
},
|
|
158
|
-
"test_send": "Envoi de test",
|
|
159
|
-
"test_send_modal": {
|
|
160
|
-
"recipients": "Destinataires",
|
|
161
|
-
"send": "Envoyer",
|
|
162
|
-
"sent": "Test envoyé",
|
|
163
|
-
"title": "Envoi de test"
|
|
149
|
+
"search": "Rechercher un bloc",
|
|
150
|
+
"no_match": "Aucun bloc ne correspond à « {query} ».",
|
|
151
|
+
"help": "Glissez une tuile sur l’e-mail, ou cliquez dessus pour l’ajouter sous le bloc sélectionné. Appuyez sur / sur le canevas pour chercher un bloc.",
|
|
152
|
+
"tiles": {
|
|
153
|
+
"footer": "Pied de page · mention et liens",
|
|
154
|
+
"if": "Condition · si / sinon"
|
|
155
|
+
}
|
|
164
156
|
},
|
|
157
|
+
"preheader": "Pré-en-tête",
|
|
158
|
+
"subject": "Objet",
|
|
165
159
|
"title": "Éditeur",
|
|
166
|
-
"toggle_rail": "Afficher ou masquer le panneau latéral",
|
|
167
|
-
"unsaved": "{count} modifications non enregistrées",
|
|
168
160
|
"variables": {
|
|
169
161
|
"add": "Ajouter",
|
|
170
162
|
"cancel": "Annuler",
|
|
171
163
|
"declare": "Déclarer une variable",
|
|
172
164
|
"empty": "Aucune variable déclarée pour le moment.",
|
|
173
|
-
"insert": "Insérer cette variable",
|
|
174
165
|
"path": "Chemin",
|
|
175
166
|
"required": "Obligatoire",
|
|
176
167
|
"type": "Type",
|
|
177
|
-
"unused": "inutilisée"
|
|
168
|
+
"unused": "inutilisée",
|
|
169
|
+
"insert_hint": "Cliquez pour insérer au curseur",
|
|
170
|
+
"undeclared": "non déclarée",
|
|
171
|
+
"declare_one": "Déclarer",
|
|
172
|
+
"edit": "Modifier cette variable",
|
|
173
|
+
"remove": "Supprimer cette variable",
|
|
174
|
+
"save": "Enregistrer",
|
|
175
|
+
"invalid_path": "Lettres, chiffres, points, _ et [] uniquement, par ex. {suggestion}.",
|
|
176
|
+
"rename_in_blocks": "Remplacer aussi à {count} endroit | Remplacer aussi à {count} endroit | Remplacer aussi à {count} endroits",
|
|
177
|
+
"remove_used_title": "Supprimer {path} ?",
|
|
178
|
+
"remove_used_description": "{count} endroit du modèle l’utilise encore. | {count} endroit du modèle l’utilise encore. | {count} endroits du modèle l’utilisent encore.",
|
|
179
|
+
"draft_hint": "Les déclarations font partie du brouillon : le code qui appelle le modèle les reçoit à la publication.",
|
|
180
|
+
"insert": "Insérer cette variable"
|
|
181
|
+
},
|
|
182
|
+
"states": {
|
|
183
|
+
"back": "Retour aux modèles",
|
|
184
|
+
"retry": "Réessayer",
|
|
185
|
+
"error_title": "Ce modèle n’a pas pu être chargé",
|
|
186
|
+
"error_description": "Il a peut-être été supprimé, ou son contenu est invalide."
|
|
187
|
+
},
|
|
188
|
+
"toolbar": {
|
|
189
|
+
"test": "Tester",
|
|
190
|
+
"test_hint": "Envoyer un test",
|
|
191
|
+
"publish": "Publier les modifications",
|
|
192
|
+
"uncategorised": "Sans catégorie",
|
|
193
|
+
"locale": "Langue",
|
|
194
|
+
"locale_missing": "Absente : remplacée par {fallback}",
|
|
195
|
+
"device": "Appareil",
|
|
196
|
+
"desktop": "Ordinateur · 600 px",
|
|
197
|
+
"mobile": "Mobile · 380 px",
|
|
198
|
+
"mode": "Aperçu",
|
|
199
|
+
"mode_variables": "Variables",
|
|
200
|
+
"mode_data": "Données"
|
|
201
|
+
},
|
|
202
|
+
"save_state": {
|
|
203
|
+
"saving": "Enregistrement…",
|
|
204
|
+
"saved": "Enregistré",
|
|
205
|
+
"unpublished": "{count} modification non publiée | {count} modification non publiée | {count} modifications non publiées",
|
|
206
|
+
"error": "Non enregistré · Réessayer",
|
|
207
|
+
"retry": "Le brouillon n’a pas pu être enregistré. Cliquez pour réessayer.",
|
|
208
|
+
"hint": "Vos modifications sont enregistrées automatiquement en brouillon.",
|
|
209
|
+
"undo": "Annuler",
|
|
210
|
+
"redo": "Rétablir",
|
|
211
|
+
"saved_toast": "Brouillon enregistré"
|
|
212
|
+
},
|
|
213
|
+
"notice": {
|
|
214
|
+
"live_changes": "Les clients reçoivent toujours la v{version}, publiée le {date} à {time}. Votre modification ne part qu’à la publication. | Les clients reçoivent toujours la v{version}, publiée le {date} à {time}. Votre modification ne part qu’à la publication. | Les clients reçoivent toujours la v{version}, publiée le {date} à {time}. Vos {count} modifications ne partent qu’à la publication.",
|
|
215
|
+
"live_clean": "Les clients reçoivent la v{version}, publiée le {date} à {time}. Vos modifications restent en brouillon jusqu’à la publication.",
|
|
216
|
+
"never_published": "Pas encore publié : rien ne part aux clients avant la publication de la v1.",
|
|
217
|
+
"compare": "Comparer avec la version en ligne",
|
|
218
|
+
"discard": "Abandonner le brouillon",
|
|
219
|
+
"conflict": "Modifié ailleurs : ce brouillon a été enregistré depuis un autre onglet ou par quelqu’un d’autre. Rechargez-le, ou écrasez-le avec votre version.",
|
|
220
|
+
"save_error": "Vos dernières modifications ne sont pas encore enregistrées.",
|
|
221
|
+
"retry": "Réessayer",
|
|
222
|
+
"unpublished": "Dépublié : les appels à {slug} échouent depuis le {date} à {time}."
|
|
223
|
+
},
|
|
224
|
+
"left": {
|
|
225
|
+
"blocks": "Blocs",
|
|
226
|
+
"outline": "Structure",
|
|
227
|
+
"variables": "Variables",
|
|
228
|
+
"shortcut_save": "enregistrer",
|
|
229
|
+
"shortcut_publish": "publier",
|
|
230
|
+
"shortcut_test": "tester",
|
|
231
|
+
"shortcuts": "Raccourcis clavier",
|
|
232
|
+
"shortcut_search": "chercher un bloc",
|
|
233
|
+
"shortcut_delete": "supprimer le bloc",
|
|
234
|
+
"shortcut_duplicate": "dupliquer le bloc",
|
|
235
|
+
"shortcut_undo": "annuler",
|
|
236
|
+
"shortcut_redo": "rétablir",
|
|
237
|
+
"shortcut_escape": "désélectionner · retour aux modèles"
|
|
238
|
+
},
|
|
239
|
+
"outline": {
|
|
240
|
+
"empty": "Aucun bloc pour l’instant. Ajoutez-en un depuis l’onglet Blocs."
|
|
241
|
+
},
|
|
242
|
+
"envelope": {
|
|
243
|
+
"subject": "Objet",
|
|
244
|
+
"preheader": "Pré-en-tête",
|
|
245
|
+
"subject_empty": "Pas encore d’objet",
|
|
246
|
+
"preheader_empty": "Pas de pré-en-tête",
|
|
247
|
+
"subject_length": "Les messageries affichent environ {max} caractères d’un objet."
|
|
248
|
+
},
|
|
249
|
+
"canvas": {
|
|
250
|
+
"add_here": "Ajouter un bloc ici",
|
|
251
|
+
"insert": "Ajouter un bloc ici"
|
|
252
|
+
},
|
|
253
|
+
"inspector": {
|
|
254
|
+
"block": "Bloc",
|
|
255
|
+
"data": "Données de test",
|
|
256
|
+
"template": "Modèle",
|
|
257
|
+
"empty_title": "Aucun bloc sélectionné",
|
|
258
|
+
"empty_description": "Cliquez sur un bloc de l’e-mail pour le modifier ici.",
|
|
259
|
+
"position": "bloc {index} sur {total}",
|
|
260
|
+
"position_branches": "{position} · {then} + {else} blocs",
|
|
261
|
+
"duplicate": "Dupliquer",
|
|
262
|
+
"delete": "Supprimer"
|
|
263
|
+
},
|
|
264
|
+
"autocomplete": {
|
|
265
|
+
"hint": "Tapez {'{{'} pour insérer une variable.",
|
|
266
|
+
"undeclared": "non déclarée",
|
|
267
|
+
"system": "à l’envoi"
|
|
268
|
+
},
|
|
269
|
+
"visibility": {
|
|
270
|
+
"label": "Visibilité",
|
|
271
|
+
"always": "Toujours afficher",
|
|
272
|
+
"only_if": "Seulement si…",
|
|
273
|
+
"help": "Une condition masque le bloc quand sa règle est fausse.",
|
|
274
|
+
"pick_path": "Choisissez une variable",
|
|
275
|
+
"pick_path_help": "La règle est créée dès qu’une variable est choisie. Saisissez un chemin pour en créer une."
|
|
276
|
+
},
|
|
277
|
+
"test_data": {
|
|
278
|
+
"label": "Données de test",
|
|
279
|
+
"invalid": "JSON invalide : corrigez-le pour prévisualiser avec les données et lancer les vérifications.",
|
|
280
|
+
"valid_unsaved": "JSON valide · pas encore enregistré",
|
|
281
|
+
"valid_saved": "JSON valide · enregistré avec le modèle",
|
|
282
|
+
"fix_json": "Corrigez le JSON pour lancer les vérifications.",
|
|
283
|
+
"saved": "Données de test enregistrées",
|
|
284
|
+
"save": "Enregistrer",
|
|
285
|
+
"reset": "Réinitialiser",
|
|
286
|
+
"checks": "Vérifications",
|
|
287
|
+
"policy_link": "Modifier dans les réglages"
|
|
288
|
+
},
|
|
289
|
+
"checks": {
|
|
290
|
+
"undeclared": "{path} n’est pas déclarée : un envoi qui ne la fournit pas part avec un blanc à cet endroit, ou échoue si les envois incomplets sont bloqués.",
|
|
291
|
+
"required_missing": "{path} est obligatoire mais absente des données de test.",
|
|
292
|
+
"required_covered": "{count} variable obligatoire couverte | {count} variable obligatoire couverte | {count} variables obligatoires couvertes",
|
|
293
|
+
"missing": "{path} est utilisée mais absente des données de test.",
|
|
294
|
+
"missing_undeclared": "{path} est utilisée mais absente des données et non déclarée.",
|
|
295
|
+
"condition_true": "La condition {path} est vraie : la première branche s’affiche.",
|
|
296
|
+
"condition_false": "La condition {path} est fausse : la branche sinon s’affiche.",
|
|
297
|
+
"empty_subject": "{locale} : l’objet est vide.",
|
|
298
|
+
"no_blocks": "{locale} : l’e-mail n’a aucun bloc de contenu.",
|
|
299
|
+
"no_footer": "{locale} : l’e-mail n’a pas de pied de page.",
|
|
300
|
+
"many_footers": "{locale} : l’e-mail a plus d’un pied de page.",
|
|
301
|
+
"footer_not_last": "{locale} : le pied de page n’est pas le dernier bloc.",
|
|
302
|
+
"missing_locale": "Pas de version {locale} : ces destinataires reçoivent {fallback}.",
|
|
303
|
+
"invalid_token": "{locale} : {token} n’est pas une variable valide et part tel quel.",
|
|
304
|
+
"token_not_text": "{path} est un objet ou une liste dans les données de test : en texte, il affiche des données brutes.",
|
|
305
|
+
"marketing_no_unsubscribe": "{locale} : un e-mail marketing doit avoir un lien de désinscription dans son pied de page.",
|
|
306
|
+
"system_url_missing": "{path} est obligatoire pour un e-mail marketing : chaque envoi doit la passer, et les données de test n’en ont pas."
|
|
307
|
+
},
|
|
308
|
+
"template_tab": {
|
|
309
|
+
"name": "Nom",
|
|
310
|
+
"slug": "Slug",
|
|
311
|
+
"locked": "verrouillé",
|
|
312
|
+
"slug_help": "Le code envoie ce modèle par son slug : il ne peut pas changer.",
|
|
313
|
+
"category": "Catégorie",
|
|
314
|
+
"no_category": "Aucune catégorie",
|
|
315
|
+
"saved": "Modèle mis à jour",
|
|
316
|
+
"envelope": "Enveloppe · {locale}",
|
|
317
|
+
"subject_help_send": "Avec le réglage actuel, une variable manquante part vide.",
|
|
318
|
+
"subject_help_block": "Avec le réglage actuel, un envoi auquel il manque une variable échoue."
|
|
319
|
+
},
|
|
320
|
+
"lifecycle": {
|
|
321
|
+
"title": "Cycle de vie",
|
|
322
|
+
"status": "Statut",
|
|
323
|
+
"version": "Version",
|
|
324
|
+
"sends": "Envois 30 j",
|
|
325
|
+
"unpublish": "Dépublier",
|
|
326
|
+
"archive": "Archiver…",
|
|
327
|
+
"restore": "Restaurer",
|
|
328
|
+
"unpublish_title": "Dépublier ce modèle ?",
|
|
329
|
+
"archive_title": "Archiver ce modèle ?",
|
|
330
|
+
"refuse_warning": "Les modèles dépubliés ou archivés refusent les envois : le code qui appelle {slug} recevrait une erreur.",
|
|
331
|
+
"unpublish_done": "Modèle dépublié",
|
|
332
|
+
"archive_done": "Modèle archivé",
|
|
333
|
+
"restore_done": "Modèle restauré"
|
|
334
|
+
},
|
|
335
|
+
"publish_review": {
|
|
336
|
+
"title": "Publier {count} modification de {name} ? | Publier {count} modification de {name} ? | Publier {count} modifications de {name} ?",
|
|
337
|
+
"title_first": "Publier {name} ?",
|
|
338
|
+
"description": "Chaque envoi de {slug} utilise la v{next} juste après. La v{version} reste dans l’historique.",
|
|
339
|
+
"description_first": "Le code qui appelle {slug} peut l’envoyer dès la publication de la v{next}.",
|
|
340
|
+
"done": "v{version} publiée",
|
|
341
|
+
"no_changes": "Aucune modification du contenu depuis la v{version}.",
|
|
342
|
+
"checks": "{count} point à vérifier | {count} point à vérifier | {count} points à vérifier",
|
|
343
|
+
"test_first": "Tester d’abord",
|
|
344
|
+
"keep_editing": "Continuer à modifier",
|
|
345
|
+
"confirm": "Publier la v{version}",
|
|
346
|
+
"republish": "Republier la v{version}",
|
|
347
|
+
"title_republish": "Remettre {name} en ligne avec la v{version} ?",
|
|
348
|
+
"description_republish": "Les envois de {slug} fonctionnent de nouveau juste après, avec la v{version}. Aucune nouvelle version n’est créée.",
|
|
349
|
+
"blockers": "{count} problème empêche la publication | {count} problème empêche la publication | {count} problèmes empêchent la publication"
|
|
350
|
+
},
|
|
351
|
+
"discard_dialog": {
|
|
352
|
+
"title": "Abandonner le brouillon ?",
|
|
353
|
+
"description": "Votre modification est perdue et l’éditeur revient à la v{version} en ligne. | Votre modification est perdue et l’éditeur revient à la v{version} en ligne. | Vos {count} modifications sont perdues et l’éditeur revient à la v{version} en ligne.",
|
|
354
|
+
"confirm": "Abandonner {count} modification | Abandonner {count} modification | Abandonner {count} modifications",
|
|
355
|
+
"cancel": "Garder le brouillon"
|
|
356
|
+
},
|
|
357
|
+
"compare": {
|
|
358
|
+
"title": "Comparer avec la version en ligne",
|
|
359
|
+
"description": "Ce que reçoivent les clients aujourd’hui (v{version}) à côté de votre brouillon.",
|
|
360
|
+
"live": "En ligne",
|
|
361
|
+
"draft": "Brouillon",
|
|
362
|
+
"error": "Les aperçus n’ont pas pu être générés.",
|
|
363
|
+
"fallback": "{locale} non publié : les clients reçoivent {fallback}"
|
|
364
|
+
},
|
|
365
|
+
"changes": {
|
|
366
|
+
"locale_added": "Langue ajoutée",
|
|
367
|
+
"locale_removed": "Langue supprimée",
|
|
368
|
+
"subject": "Objet modifié",
|
|
369
|
+
"preheader": "Pré-en-tête modifié",
|
|
370
|
+
"block_added": "Bloc {block} ajouté",
|
|
371
|
+
"block_removed": "Bloc {block} supprimé",
|
|
372
|
+
"block_changed": "Bloc {block} modifié",
|
|
373
|
+
"blocks_reordered": "Blocs réordonnés",
|
|
374
|
+
"variable_added": "Variable {variable} déclarée",
|
|
375
|
+
"variable_removed": "Variable {variable} retirée des déclarations",
|
|
376
|
+
"variable_changed": "Variable {variable} modifiée (type ou obligatoire)"
|
|
377
|
+
},
|
|
378
|
+
"fields": {
|
|
379
|
+
"required": "Obligatoire : l’ancienne valeur est conservée tant que ce champ est vide."
|
|
380
|
+
},
|
|
381
|
+
"undone_in_locale": "Annulé en {locale}",
|
|
382
|
+
"redone_in_locale": "Rétabli en {locale}",
|
|
383
|
+
"block_removed": "{block} supprimé | {block} et {count} bloc interne supprimés | {block} et {count} blocs internes supprimés",
|
|
384
|
+
"conflict": {
|
|
385
|
+
"title": "Modifié ailleurs",
|
|
386
|
+
"reload": "Recharger",
|
|
387
|
+
"overwrite": "Écraser"
|
|
388
|
+
},
|
|
389
|
+
"token_invalid": "Variable invalide : lettres, chiffres, points, _ et [] uniquement.",
|
|
390
|
+
"footer": {
|
|
391
|
+
"empty": "Pied de page vide : ajoutez une mention légale (qui envoie cet e-mail et pourquoi).",
|
|
392
|
+
"url_at_send": "URL fournie à l’envoi ({path})",
|
|
393
|
+
"url_at_send_hint": "Les URL des liens sont fournies à l’envoi"
|
|
178
394
|
}
|
|
179
395
|
},
|
|
180
396
|
"errors": {
|
|
181
|
-
"bad_webhook_secret": "Secret de webhook invalide.",
|
|
182
397
|
"duplicate_slug": "Ce slug est déjà utilisé.",
|
|
183
398
|
"invalid_body": "Le corps de la requête est invalide.",
|
|
184
|
-
"invalid_content": "Le contenu du
|
|
399
|
+
"invalid_content": "Le contenu du modèle est invalide.",
|
|
185
400
|
"invalid_settings": "Les réglages sont invalides.",
|
|
186
|
-
"missing_send_permission": "Vous n
|
|
187
|
-
"missing_variables": "Des variables
|
|
188
|
-
"no_recipient": "L
|
|
189
|
-
"send_not_found": "Cet envoi n
|
|
190
|
-
"slug_immutable": "Le slug d
|
|
191
|
-
"template_not_found": "Ce
|
|
192
|
-
"template_not_live": "Ce
|
|
401
|
+
"missing_send_permission": "Vous n’êtes pas autorisé à envoyer des e-mails.",
|
|
402
|
+
"missing_variables": "Des variables obligatoires manquent à l’envoi.",
|
|
403
|
+
"no_recipient": "L’envoi n’a aucun destinataire.",
|
|
404
|
+
"send_not_found": "Cet envoi n’existe pas.",
|
|
405
|
+
"slug_immutable": "Le slug d’un modèle ne peut plus être modifié après sa création.",
|
|
406
|
+
"template_not_found": "Ce modèle n’existe pas.",
|
|
407
|
+
"template_not_live": "Ce modèle n’est pas en ligne.",
|
|
193
408
|
"unknown_metric": "Métrique inconnue.",
|
|
194
|
-
"version_not_found": "Cette version du
|
|
409
|
+
"version_not_found": "Cette version du modèle n’existe pas.",
|
|
410
|
+
"invalid_transition": "Ce modèle ne peut pas passer à ce statut depuis son statut actuel.",
|
|
411
|
+
"no_replay_after_spam": "Le destinataire a signalé cet e-mail comme spam : il n’est pas renvoyé.",
|
|
412
|
+
"nothing_to_publish": "Ce modèle n’a pas encore de contenu à publier.",
|
|
413
|
+
"replay_needs_new_address": "Cette adresse a rebondi. Envoyez plutôt à une adresse corrigée.",
|
|
414
|
+
"starter_not_found": "Ce modèle de départ n’existe pas.",
|
|
415
|
+
"template_in_use": "Seul un modèle archivé et jamais envoyé peut être supprimé. Archivez-le plutôt.",
|
|
416
|
+
"invalid_template": "Le nom ou le slug du modèle est invalide.",
|
|
417
|
+
"unknown_category": "Cette catégorie n’existe pas.",
|
|
418
|
+
"draft_conflict": "Ce brouillon a été modifié ailleurs depuis que vous l’avez ouvert.",
|
|
419
|
+
"nothing_to_discard": "Rien à abandonner : ce modèle n’a jamais été publié.",
|
|
420
|
+
"empty_subject": "Une langue n’a pas d’objet.",
|
|
421
|
+
"invalid_recipient": "Une des adresses est invalide.",
|
|
422
|
+
"suppressed": {
|
|
423
|
+
"hard_bounce": "Non envoyé : cette adresse a rebondi définitivement et figure dans la liste d’exclusion.",
|
|
424
|
+
"complaint": "Non envoyé : ce destinataire a signalé un e-mail précédent comme spam.",
|
|
425
|
+
"unsubscribe": "Non envoyé : ce destinataire s’est désinscrit.",
|
|
426
|
+
"manual": "Non envoyé : cette adresse a été ajoutée à la main à la liste d’exclusion."
|
|
427
|
+
},
|
|
428
|
+
"template_was_sent": "Ce modèle a déjà été envoyé : le journal des envois affiche encore ses e-mails, il ne peut donc pas être supprimé. Il reste archivé."
|
|
195
429
|
},
|
|
196
430
|
"funnel": {
|
|
197
431
|
"clicked": "Cliqués",
|
|
198
|
-
"delivered": "
|
|
432
|
+
"delivered": "Distribués",
|
|
199
433
|
"opened": "Ouverts",
|
|
200
434
|
"sent": "Envoyés",
|
|
201
|
-
"unsubscribed": "
|
|
435
|
+
"unsubscribed": "Désinscrits"
|
|
202
436
|
},
|
|
203
437
|
"metrics": {
|
|
204
|
-
"bounces": "
|
|
205
|
-
"click_rate": "
|
|
438
|
+
"bounces": "Rebonds",
|
|
439
|
+
"click_rate": "Taux de clic",
|
|
206
440
|
"deliverability": "Délivrabilité",
|
|
207
|
-
"domain_sends": "
|
|
208
|
-
"domains": "
|
|
209
|
-
"
|
|
210
|
-
"open_rate": "Ouverture",
|
|
441
|
+
"domain_sends": "Domaines avec 5 distributions ou plus",
|
|
442
|
+
"domains": "Taux d’ouverture par domaine",
|
|
443
|
+
"open_rate": "Taux d’ouverture",
|
|
211
444
|
"previous": "Période précédente",
|
|
212
|
-
"
|
|
213
|
-
"ranking": "Classement des templates",
|
|
445
|
+
"ranking": "Modèles les plus ouverts",
|
|
214
446
|
"sends": "Envois",
|
|
215
447
|
"unsubscribes": "Désinscriptions",
|
|
216
|
-
"volume": "Volume d
|
|
448
|
+
"volume": "Volume d’envoi",
|
|
449
|
+
"not_tracked": "Non suivi",
|
|
450
|
+
"delivered_count": "{count} distribué | {count} distribué | {count} distribués",
|
|
451
|
+
"template_volume": "{slug} · {count} distribué | {slug} · {count} distribué | {slug} · {count} distribués",
|
|
452
|
+
"ranking_empty": "Pas encore assez d’e-mails distribués pour un classement"
|
|
217
453
|
},
|
|
218
454
|
"notifications": {
|
|
219
|
-
"
|
|
220
|
-
"
|
|
455
|
+
"problems_title": "{count} problème de distribution sur {slug} dans la dernière heure | {count} problème de distribution sur {slug} dans la dernière heure | {count} problèmes de distribution sur {slug} dans la dernière heure",
|
|
456
|
+
"problems_description": "{rate} % de ses envois ont rebondi, échoué ou été signalés comme spam."
|
|
221
457
|
},
|
|
222
458
|
"overview": {
|
|
223
|
-
"
|
|
224
|
-
"
|
|
225
|
-
"
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
459
|
+
"description": "Délivrabilité et engagement de chaque e-mail envoyé par votre espace de travail. Les envois de test ne sont pas comptés.",
|
|
460
|
+
"title": "Vue d’ensemble",
|
|
461
|
+
"groups": {
|
|
462
|
+
"reach": {
|
|
463
|
+
"title": "Portée",
|
|
464
|
+
"description": "Chiffres de la période choisie"
|
|
465
|
+
},
|
|
466
|
+
"engagement": {
|
|
467
|
+
"title": "Engagement",
|
|
468
|
+
"description": "Des e-mails distribués"
|
|
469
|
+
},
|
|
470
|
+
"health": {
|
|
471
|
+
"title": "Santé de la liste",
|
|
472
|
+
"description": "Plus c’est bas, mieux c’est"
|
|
473
|
+
}
|
|
474
|
+
}
|
|
232
475
|
},
|
|
233
476
|
"sends": {
|
|
234
477
|
"cols": {
|
|
235
478
|
"createdAt": "Envoyé le",
|
|
236
479
|
"error": "Erreur",
|
|
237
480
|
"isTest": "Test",
|
|
238
|
-
"latency": "Latence",
|
|
239
481
|
"latencyMs": "Latence",
|
|
240
482
|
"locale": "Langue",
|
|
241
483
|
"recipient": "Destinataire",
|
|
242
|
-
"recipientEmail": "Adresse du destinataire",
|
|
243
484
|
"recipientName": "Nom du destinataire",
|
|
244
485
|
"source": "Source",
|
|
245
486
|
"status": "Statut",
|
|
246
|
-
"
|
|
247
|
-
"
|
|
248
|
-
"
|
|
249
|
-
"
|
|
487
|
+
"templateSlug": "Modèle",
|
|
488
|
+
"stage": "Étape",
|
|
489
|
+
"requestedLocale": "Langue demandée",
|
|
490
|
+
"templateVersion": "Version",
|
|
491
|
+
"id": "ID d’envoi"
|
|
250
492
|
},
|
|
251
493
|
"confirm": {
|
|
252
|
-
"replay_description": "La même version
|
|
253
|
-
"replay_title": "
|
|
494
|
+
"replay_description": "La même version et les mêmes données partent vers {recipientEmail}. C’est un envoi réel.",
|
|
495
|
+
"replay_title": "Renvoyer cet e-mail ?",
|
|
496
|
+
"replay_confirm": "Renvoyer",
|
|
497
|
+
"replay_description_test": "La même version et les mêmes données partent vers {recipientEmail}. Cela reste un envoi de test."
|
|
254
498
|
},
|
|
255
|
-
"description": "Chaque
|
|
499
|
+
"description": "Chaque e-mail envoyé par votre espace de travail : à qui, avec quelles données, et ce que le fournisseur a répondu.",
|
|
256
500
|
"drawer": {
|
|
257
|
-
"invalid_address": "Adresse invalide",
|
|
258
501
|
"latency": "Latence API",
|
|
259
502
|
"locale": "Langue",
|
|
260
|
-
"payload": "
|
|
261
|
-
"replay":
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
503
|
+
"payload": "Données envoyées",
|
|
504
|
+
"replay": {
|
|
505
|
+
"to": "À",
|
|
506
|
+
"template": "Modèle",
|
|
507
|
+
"last_try": "Dernier essai",
|
|
508
|
+
"cancel": "Annuler",
|
|
509
|
+
"draft_warning": "Test de brouillon : c’est le brouillon actuel qui part, il peut différer du premier envoi."
|
|
510
|
+
},
|
|
511
|
+
"template": "Modèle",
|
|
265
512
|
"timeline": "Chronologie",
|
|
266
|
-
"
|
|
267
|
-
"
|
|
513
|
+
"eyebrow": "Envoi · {id}",
|
|
514
|
+
"copy_link": "Copier le lien",
|
|
515
|
+
"link_copied": "Lien copié",
|
|
516
|
+
"address_copied": "Adresse copiée",
|
|
517
|
+
"json_copied": "Données copiées",
|
|
518
|
+
"test": "Test",
|
|
519
|
+
"version": "v{version}",
|
|
520
|
+
"draft_version": "brouillon",
|
|
521
|
+
"fallback_used": "{locale} utilisée : pas de version dans cette langue",
|
|
522
|
+
"as_requested": "Comme demandé",
|
|
523
|
+
"slow_latency": "Le fournisseur a tardé à répondre",
|
|
524
|
+
"latency_hint": "Appel API au fournisseur",
|
|
525
|
+
"pending": "En attente du fournisseur",
|
|
526
|
+
"origin": "Origine",
|
|
527
|
+
"source": "source",
|
|
528
|
+
"copy_json": "Copier le JSON",
|
|
529
|
+
"actions": {
|
|
530
|
+
"rendering": "Voir l’e-mail",
|
|
531
|
+
"fix_address": "Envoyer à une autre adresse",
|
|
532
|
+
"send_again": "Renvoyer…",
|
|
533
|
+
"copy_address": "Copier l’adresse"
|
|
534
|
+
},
|
|
535
|
+
"position": "Envoi {index} sur {total} affichés",
|
|
536
|
+
"replayed_by": "Renvoyé le {date}",
|
|
537
|
+
"replay_of": "Cet envoi répète un envoi précédent",
|
|
538
|
+
"see_send": "Voir l’envoi",
|
|
539
|
+
"send_unavailable": "Impossible d’ouvrir cet envoi",
|
|
540
|
+
"not_handed": "Non transmis au fournisseur"
|
|
541
|
+
},
|
|
542
|
+
"empty": {
|
|
543
|
+
"title": "Aucun e-mail envoyé",
|
|
544
|
+
"description": "Les envois apparaissent ici dès que votre code ou une automatisation appelle un modèle en ligne."
|
|
268
545
|
},
|
|
269
|
-
"empty": "Aucun envoi ne correspond à ce filtre.",
|
|
270
546
|
"status": {
|
|
271
|
-
"bounced": "
|
|
547
|
+
"bounced": "Rebondi",
|
|
272
548
|
"clicked": "Cliqué",
|
|
273
|
-
"delivered": "
|
|
549
|
+
"delivered": "Distribué",
|
|
274
550
|
"failed": "Échec",
|
|
275
551
|
"opened": "Ouvert",
|
|
276
|
-
"queued": "En
|
|
552
|
+
"queued": "En attente",
|
|
277
553
|
"sent": "Envoyé",
|
|
278
554
|
"spam": "Spam",
|
|
279
|
-
"unsubscribed": "Désinscrit"
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
"problems": "Problèmes"
|
|
555
|
+
"unsubscribed": "Désinscrit",
|
|
556
|
+
"resolved": "Résolu",
|
|
557
|
+
"suppressed": "Exclu"
|
|
283
558
|
},
|
|
284
559
|
"timeline": {
|
|
285
|
-
"bounced": "
|
|
560
|
+
"bounced": "Rebond définitif",
|
|
286
561
|
"clicked": "Cliqué",
|
|
287
|
-
"delivered": "
|
|
288
|
-
"failed": "Échec de l
|
|
562
|
+
"delivered": "Distribué",
|
|
563
|
+
"failed": "Échec de l’envoi",
|
|
289
564
|
"opened": "Ouvert",
|
|
290
|
-
"queued": "
|
|
291
|
-
"sent": "
|
|
292
|
-
"spam": "
|
|
293
|
-
"unsubscribed": "
|
|
565
|
+
"queued": "En attente",
|
|
566
|
+
"sent": "Confié au fournisseur",
|
|
567
|
+
"spam": "Signalé comme spam",
|
|
568
|
+
"unsubscribed": "Désinscrit",
|
|
569
|
+
"sent_to": "Confié à {provider}",
|
|
570
|
+
"soft_bounce": "Rebond temporaire",
|
|
571
|
+
"suppressed": "Non envoyé : l’adresse est exclue"
|
|
572
|
+
},
|
|
573
|
+
"title": "Envois",
|
|
574
|
+
"caption": "Journal des envois",
|
|
575
|
+
"search": "Destinataire, slug ou ID d’envoi",
|
|
576
|
+
"test_badge": "TEST",
|
|
577
|
+
"views": {
|
|
578
|
+
"all": "Tous",
|
|
579
|
+
"problem": "Problèmes",
|
|
580
|
+
"in_progress": "En cours",
|
|
581
|
+
"delivered": "Distribués, non ouverts",
|
|
582
|
+
"engaged": "Ouverts ou cliqués",
|
|
583
|
+
"unsubscribed": "Désinscrits",
|
|
584
|
+
"resolved": "Résolus",
|
|
585
|
+
"suppressed": "Exclus"
|
|
586
|
+
},
|
|
587
|
+
"filters": {
|
|
588
|
+
"tests": "Envois de test",
|
|
589
|
+
"template": "Modèle"
|
|
590
|
+
},
|
|
591
|
+
"footer": {
|
|
592
|
+
"count": "aucun envoi | {count} envoi | {count} envois"
|
|
593
|
+
},
|
|
594
|
+
"actions": {
|
|
595
|
+
"details": "Détails",
|
|
596
|
+
"rendering": "Voir l’e-mail",
|
|
597
|
+
"send_again": "Renvoyer…",
|
|
598
|
+
"sent_again": "Renvoyé",
|
|
599
|
+
"suppressed_address": "Voir dans la liste d’exclusion"
|
|
294
600
|
},
|
|
295
|
-
"
|
|
601
|
+
"stats": {
|
|
602
|
+
"label": "Chiffres des envois",
|
|
603
|
+
"sends": "Envois",
|
|
604
|
+
"delivered": "Distribués",
|
|
605
|
+
"problems": "Problèmes",
|
|
606
|
+
"queued": "En attente",
|
|
607
|
+
"latency": "Latence médiane",
|
|
608
|
+
"tests_excluded": "+ {count} test, non compté | + {count} test, non compté | + {count} tests, non comptés",
|
|
609
|
+
"no_tests": "Les envois de test ne sont jamais comptés",
|
|
610
|
+
"delivered_of": "{delivered} sur {sends}",
|
|
611
|
+
"breakdown": {
|
|
612
|
+
"bounced": "{count} rebond | {count} rebond | {count} rebonds",
|
|
613
|
+
"failed": "{count} échec | {count} échec | {count} échecs",
|
|
614
|
+
"spam": "{count} spam | {count} spam | {count} spams"
|
|
615
|
+
},
|
|
616
|
+
"no_problems": "Aucun rebond, échec ni spam",
|
|
617
|
+
"oldest_waiting": "Plus ancien en attente {time}",
|
|
618
|
+
"nothing_waiting": "Rien en attente",
|
|
619
|
+
"latency_detail": "Appel API à {provider}",
|
|
620
|
+
"latency_detail_generic": "Appel API au fournisseur",
|
|
621
|
+
"joined": "{left} · {right}",
|
|
622
|
+
"delta_up": "▲ {delta}",
|
|
623
|
+
"delta_down": "▼ {delta}",
|
|
624
|
+
"rate": "{rate}",
|
|
625
|
+
"latency_ms": "{value} ms",
|
|
626
|
+
"latency_s": "{value} s",
|
|
627
|
+
"not_tracked": "Non suivi par {provider}",
|
|
628
|
+
"period_hint": "La période s’applique aux chiffres ci-dessus ; le journal liste tous les envois conservés."
|
|
629
|
+
},
|
|
630
|
+
"banner": {
|
|
631
|
+
"the_provider": "Le fournisseur",
|
|
632
|
+
"unreachable_title": "{provider} ne répond pas",
|
|
633
|
+
"failures_title": "Les envois vers {provider} échouent",
|
|
634
|
+
"unreachable_description": "Aucun e-mail ne peut partir tant qu’il ne répond pas. Vérifiez les réglages du fournisseur.",
|
|
635
|
+
"missing_title": "Aucun fournisseur connecté",
|
|
636
|
+
"missing_description": "Aucun e-mail ne peut partir tant que l’interface e-mail de l’espace de travail n’a pas de fournisseur.",
|
|
637
|
+
"failures_description": "{count} envoi a échoué dans la dernière heure. Il figure dans Problèmes ; vous pourrez le renvoyer quand {provider} sera de retour. | {count} envoi a échoué dans la dernière heure. Il figure dans Problèmes ; vous pourrez le renvoyer quand {provider} sera de retour. | {count} envois ont échoué dans la dernière heure. Ils figurent dans Problèmes ; vous pourrez les renvoyer quand {provider} sera de retour.",
|
|
638
|
+
"settings": "Réglages du fournisseur",
|
|
639
|
+
"send_again": "Renvoyer les échecs…",
|
|
640
|
+
"replayed": "Les échecs ont été renvoyés",
|
|
641
|
+
"confirm": {
|
|
642
|
+
"title": "Renvoyer {count} e-mail ? | Renvoyer {count} e-mail ? | Renvoyer {count} e-mails ?",
|
|
643
|
+
"description": "La même version et les mêmes données partent aux mêmes destinataires. Ce sont de vrais envois ; les rebonds et signalements de spam n’en font jamais partie. | La même version et les mêmes données partent aux mêmes destinataires. Ce sont de vrais envois ; les rebonds et signalements de spam n’en font jamais partie. | La même version et les mêmes données partent aux mêmes destinataires. Ce sont de vrais envois ; les rebonds et signalements de spam n’en font jamais partie.",
|
|
644
|
+
"confirm": "Renvoyer {count} | Renvoyer {count} | Renvoyer les {count}",
|
|
645
|
+
"cancel": "Annuler",
|
|
646
|
+
"description_capped": "Les {count} premiers des {total} échecs repartent, avec la même version et les mêmes données ; les autres restent dans Problèmes. Ce sont de vrais envois ; les rebonds et signalements de spam n’en font jamais partie.",
|
|
647
|
+
"suppressed": "Laissés de côté : adresse dans la liste d’exclusion"
|
|
648
|
+
},
|
|
649
|
+
"replay_partial": "Certains échecs n’ont pas pu être renvoyés. Ils restent listés dans Problèmes.",
|
|
650
|
+
"replay_skipped": "Les échecs vers des adresses de la liste d’exclusion ont été laissés de côté. Ils restent listés dans Problèmes."
|
|
651
|
+
},
|
|
652
|
+
"empty_log": {
|
|
653
|
+
"title": "Aucun e-mail envoyé pour l’instant",
|
|
654
|
+
"description": "Les envois apparaissent ici dès que votre code ou une automatisation appelle un modèle en ligne.",
|
|
655
|
+
"test_instead": "Envoyer plutôt un test"
|
|
656
|
+
},
|
|
657
|
+
"problems": {
|
|
658
|
+
"address_missing": {
|
|
659
|
+
"title": "Cette adresse n’existe pas",
|
|
660
|
+
"description": "Le serveur de {domain} l’a refusée. Les prochains envois vers elle rebondiront aussi."
|
|
661
|
+
},
|
|
662
|
+
"mailbox_full": {
|
|
663
|
+
"title": "La boîte de réception est pleine",
|
|
664
|
+
"description": "{domain} connaît l’adresse mais n’a plus de place pour elle. Un envoi ultérieur pourra passer."
|
|
665
|
+
},
|
|
666
|
+
"rejected_spam": {
|
|
667
|
+
"title": "Refusé comme spam",
|
|
668
|
+
"description": "Le serveur de {domain} l’a refusé comme courrier indésirable. Vérifiez le contenu et la configuration du domaine expéditeur."
|
|
669
|
+
},
|
|
670
|
+
"spam_report": {
|
|
671
|
+
"title": "Signalé comme spam",
|
|
672
|
+
"description": "Le destinataire a signalé cet e-mail. Son adresse est dans la liste d’exclusion : plus rien ne lui est envoyé."
|
|
673
|
+
},
|
|
674
|
+
"provider_timeout": {
|
|
675
|
+
"title": "{provider} n’a pas répondu à temps",
|
|
676
|
+
"description": "Rien n’a été distribué. Le renvoyer est sans risque.",
|
|
677
|
+
"description_no_advice": "Rien n’a été distribué."
|
|
678
|
+
},
|
|
679
|
+
"provider_unreachable": {
|
|
680
|
+
"title": "{provider} est injoignable",
|
|
681
|
+
"description": "La connexion a été refusée ou le serveur est introuvable : rien n’a été distribué. Le renvoyer est sans risque une fois l’adresse du fournisseur corrigée.",
|
|
682
|
+
"description_no_advice": "La connexion a été refusée ou le serveur est introuvable : rien n’a été distribué."
|
|
683
|
+
},
|
|
684
|
+
"rejected": {
|
|
685
|
+
"title": "Le serveur du destinataire l’a refusé",
|
|
686
|
+
"description": "{domain} l’a refusé : {error}",
|
|
687
|
+
"description_no_reason": "{domain} l’a refusé sans en donner la raison."
|
|
688
|
+
},
|
|
689
|
+
"provider_error": {
|
|
690
|
+
"title": "{provider} n’a pas pu l’envoyer",
|
|
691
|
+
"description": "Rien n’a été distribué : {error}. Le renvoyer est sans risque une fois la cause corrigée.",
|
|
692
|
+
"description_no_reason": "Rien n’a été distribué. Le renvoyer est sans risque une fois la cause corrigée.",
|
|
693
|
+
"description_no_advice": "Rien n’a été distribué : {error}.",
|
|
694
|
+
"description_no_reason_no_advice": "Rien n’a été distribué."
|
|
695
|
+
},
|
|
696
|
+
"unsubscribed": {
|
|
697
|
+
"title": "Le destinataire s’est désinscrit",
|
|
698
|
+
"description": "Son adresse est dans la liste d’exclusion : plus rien ne lui est envoyé."
|
|
699
|
+
}
|
|
700
|
+
},
|
|
701
|
+
"fix_address": {
|
|
702
|
+
"title": "Envoyer à une autre adresse",
|
|
703
|
+
"description": "{email} ne reçoit pas d’e-mail. La même version et les mêmes données partent à l’adresse saisie ; c’est un vrai envoi.",
|
|
704
|
+
"label": "Adresse corrigée",
|
|
705
|
+
"previous": "Adresse qui a rebondi",
|
|
706
|
+
"template": "Modèle",
|
|
707
|
+
"version": "v{version}",
|
|
708
|
+
"draft_version": "brouillon",
|
|
709
|
+
"cancel": "Annuler",
|
|
710
|
+
"submit": "Envoyer à cette adresse",
|
|
711
|
+
"sent": "Envoyé à {email}",
|
|
712
|
+
"errors": {
|
|
713
|
+
"required": "Saisissez l’adresse corrigée.",
|
|
714
|
+
"invalid": "Ce n’est pas une adresse e-mail.",
|
|
715
|
+
"same": "C’est l’adresse qui a rebondi : saisissez-en une autre."
|
|
716
|
+
},
|
|
717
|
+
"description_test": "{email} ne reçoit pas d’e-mail. La même version et les mêmes données partent à l’adresse saisie ; cela reste un envoi de test.",
|
|
718
|
+
"app_reminder": "Mettez aussi l’adresse à jour dans votre application, sinon le prochain e-mail rebondira encore."
|
|
719
|
+
},
|
|
720
|
+
"locale_fallback": "{requested} demandée",
|
|
721
|
+
"open_in_log": "Voir dans le journal"
|
|
296
722
|
},
|
|
297
723
|
"settings": {
|
|
298
724
|
"categories": {
|
|
299
725
|
"add": "Ajouter une catégorie",
|
|
300
|
-
"empty": "Aucune catégorie. Les
|
|
301
|
-
"hint": "Supprimer une catégorie laisse sans catégorie les
|
|
726
|
+
"empty": "Aucune catégorie. Les modèles peuvent rester sans catégorie.",
|
|
727
|
+
"hint": "Supprimer une catégorie laisse sans catégorie les modèles qui l’utilisaient. L’icône est un nom Phosphor, comme i-ph-package.",
|
|
302
728
|
"label": "Nom de la catégorie",
|
|
303
|
-
"remove": "Retirer"
|
|
729
|
+
"remove": "Retirer",
|
|
730
|
+
"usage": "aucun modèle | {count} modèle | {count} modèles",
|
|
731
|
+
"drag": "Glissez, ou utilisez les flèches, pour réordonner",
|
|
732
|
+
"change_icon": "Changer l’icône",
|
|
733
|
+
"pick_icon": "Choisir une icône",
|
|
734
|
+
"remove_used_title": "Retirer « {label} » ?",
|
|
735
|
+
"remove_used_description": "{count} modèle l’utilise. | {count} modèle l’utilise. | {count} modèles l’utilisent.",
|
|
736
|
+
"move_to": "Le déplacer vers | Le déplacer vers | Les déplacer vers",
|
|
737
|
+
"move_none": "Aucune catégorie",
|
|
738
|
+
"reassigned": "{count} modèle a changé de catégorie. | {count} modèle a changé de catégorie. | {count} modèles ont changé de catégorie.",
|
|
739
|
+
"label_required": "Donnez un nom à la catégorie.",
|
|
740
|
+
"label_duplicate": "Cette catégorie existe déjà.",
|
|
741
|
+
"marketing_required": "La catégorie marketing ne peut pas être supprimée : les règles des campagnes en dépendent.",
|
|
742
|
+
"icons": {
|
|
743
|
+
"package": "Colis",
|
|
744
|
+
"lock": "Cadenas",
|
|
745
|
+
"user_circle": "Utilisateur",
|
|
746
|
+
"key": "Clé",
|
|
747
|
+
"file_text": "Document",
|
|
748
|
+
"newspaper": "Journal",
|
|
749
|
+
"sparkle": "Étincelle",
|
|
750
|
+
"textbox": "Champ de formulaire",
|
|
751
|
+
"truck": "Camion",
|
|
752
|
+
"shopping_cart": "Panier",
|
|
753
|
+
"bell": "Cloche",
|
|
754
|
+
"megaphone": "Mégaphone",
|
|
755
|
+
"gift": "Cadeau",
|
|
756
|
+
"users": "Personnes",
|
|
757
|
+
"calendar": "Calendrier",
|
|
758
|
+
"chat_circle": "Bulle de discussion"
|
|
759
|
+
}
|
|
304
760
|
},
|
|
305
|
-
"description": "
|
|
761
|
+
"description": "De qui partent les e-mails, comment les envois sont protégés, combien de temps le journal est gardé et comment les modèles sont rangés.",
|
|
306
762
|
"fields": {
|
|
307
|
-
"blockOnMissingVariables": "Bloquer l
|
|
308
|
-
"categories":
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
"
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
763
|
+
"blockOnMissingVariables": "Bloquer l’envoi si une variable manque",
|
|
764
|
+
"categories": {
|
|
765
|
+
"label": "Catégories",
|
|
766
|
+
"description": "Glissez pour réordonner la galerie."
|
|
767
|
+
},
|
|
768
|
+
"fallbackLocale": {
|
|
769
|
+
"label": "Langue de repli",
|
|
770
|
+
"description": "Envoyée quand un modèle n’a pas de version dans la langue du destinataire."
|
|
771
|
+
},
|
|
772
|
+
"logRetentionDays": {
|
|
773
|
+
"label": "Conserver les envois",
|
|
774
|
+
"description": "Entre 1 jour et 10 ans. Un envoi supprimé ne peut plus être renvoyé."
|
|
775
|
+
},
|
|
776
|
+
"replyTo": {
|
|
777
|
+
"label": "Adresse de réponse",
|
|
778
|
+
"description": "Où vont les réponses. Laissez vide pour utiliser l’expéditeur."
|
|
779
|
+
},
|
|
780
|
+
"senderEmail": {
|
|
781
|
+
"label": "Adresse d’expédition",
|
|
782
|
+
"description": "Doit appartenir à un domaine vérifié chez votre fournisseur. Laissez vide pour utiliser l’adresse par défaut du fournisseur."
|
|
783
|
+
},
|
|
784
|
+
"senderName": {
|
|
785
|
+
"label": "Nom de l’expéditeur",
|
|
786
|
+
"description": "Votre marque, pas une personne : ce nom sert pour chaque modèle."
|
|
787
|
+
},
|
|
788
|
+
"webhookSecret": {
|
|
789
|
+
"label": "Secret du webhook",
|
|
790
|
+
"description": "Envoyé par le fournisseur dans l’en-tête x-mailing-webhook-secret, 32 caractères au minimum. Les événements qui ne l’ont pas sont refusés.",
|
|
791
|
+
"too_short": "Au moins 32 caractères"
|
|
792
|
+
},
|
|
793
|
+
"missingVariables": {
|
|
794
|
+
"label": "Variables manquantes",
|
|
795
|
+
"description": "Quand le code appelle un modèle sans une variable obligatoire.",
|
|
796
|
+
"refuse": "Refuser l’envoi",
|
|
797
|
+
"refuse_hint": "L’appel échoue, rien ne part",
|
|
798
|
+
"send": "Envoyer quand même",
|
|
799
|
+
"send_hint": "Des blancs là où la valeur manque"
|
|
800
|
+
},
|
|
801
|
+
"provider": {
|
|
802
|
+
"label": "Fournisseur",
|
|
803
|
+
"description": "Défini par l’interface e-mail de l’espace de travail."
|
|
804
|
+
},
|
|
805
|
+
"webhookUrl": {
|
|
806
|
+
"label": "URL du webhook",
|
|
807
|
+
"description": "Votre fournisseur, ou le relais qui traduit ses événements, les envoie ici avec le secret ci-dessous. Le README du module décrit le format."
|
|
808
|
+
},
|
|
809
|
+
"webhookStatus": {
|
|
810
|
+
"label": "État du webhook",
|
|
811
|
+
"description": "Le dernier événement reçu et le dernier appel refusé. L’événement de test part du serveur vers l’URL ci-dessus, avec le secret."
|
|
812
|
+
}
|
|
813
|
+
},
|
|
814
|
+
"title": "Réglages",
|
|
815
|
+
"saved": "Réglages enregistrés",
|
|
816
|
+
"sections": {
|
|
817
|
+
"sender": {
|
|
818
|
+
"title": "Expéditeur",
|
|
819
|
+
"description": "Ce que les destinataires voient dans leur boîte. Un modèle ne peut pas le changer."
|
|
820
|
+
},
|
|
821
|
+
"guards": {
|
|
822
|
+
"title": "Garde-fous d’envoi",
|
|
823
|
+
"description": "Ce qui se passe quand un envoi n’est pas tout à fait correct."
|
|
824
|
+
},
|
|
825
|
+
"provider": {
|
|
826
|
+
"title": "Fournisseur et webhook",
|
|
827
|
+
"description": "Le fournisseur achemine les e-mails. Son webhook nous signale les distributions, ouvertures, clics et rebonds."
|
|
828
|
+
},
|
|
829
|
+
"retention": {
|
|
830
|
+
"title": "Conservation du journal",
|
|
831
|
+
"description": "Une tâche quotidienne supprime les envois et leurs événements au-delà de cette durée. Les modèles ne sont jamais supprimés."
|
|
832
|
+
},
|
|
833
|
+
"categories": {
|
|
834
|
+
"title": "Catégories de modèles",
|
|
835
|
+
"description": "Elles rangent la galerie. Retirer une catégorie utilisée demande où déplacer ses modèles."
|
|
836
|
+
}
|
|
837
|
+
},
|
|
838
|
+
"locale": {
|
|
839
|
+
"workspace": "Langues de l’espace de travail : {locales}",
|
|
840
|
+
"placeholder": "Choisissez une langue",
|
|
841
|
+
"not_in_workspace": "Choisissez une des langues de l’espace de travail."
|
|
842
|
+
},
|
|
843
|
+
"retention": {
|
|
844
|
+
"label": "Conserver les envois",
|
|
845
|
+
"days": "{count} jour | {count} jour | {count} jours",
|
|
846
|
+
"one_year": "1 an",
|
|
847
|
+
"custom": "Personnalisé",
|
|
848
|
+
"days_unit": "jours",
|
|
849
|
+
"tonight": "cette nuit",
|
|
850
|
+
"preview": "Prochain passage {when} à {time} · {count} envoi de plus de {duration} sera supprimé. | Prochain passage {when} à {time} · {count} envoi de plus de {duration} sera supprimé. | Prochain passage {when} à {time} · {count} envois de plus de {duration} seront supprimés.",
|
|
851
|
+
"preview_none": "Prochain passage {when} à {time} · aucun envoi n’a encore plus de {duration}.",
|
|
852
|
+
"confirm_title": "Supprimer les anciens envois ?",
|
|
853
|
+
"confirm_description": "{count} envoi de plus de {duration} sera supprimé {when} à {time}. Il ne pourra plus être renvoyé. | {count} envoi de plus de {duration} sera supprimé {when} à {time}. Il ne pourra plus être renvoyé. | {count} envois de plus de {duration} seront supprimés {when} à {time}. Ils ne pourront plus être renvoyés.",
|
|
854
|
+
"confirm_action": "Enregistrer et supprimer"
|
|
855
|
+
},
|
|
856
|
+
"sender_name_ignored": "Le nom d’expéditeur ne sert qu’avec une adresse d’expédition.",
|
|
857
|
+
"webhook_status": {
|
|
858
|
+
"label": "État du webhook",
|
|
859
|
+
"unavailable": "Impossible de lire l’état du webhook.",
|
|
860
|
+
"never_received": "Aucun événement reçu pour l’instant",
|
|
861
|
+
"received": "Dernier événement : {type}, de {provider}",
|
|
862
|
+
"received_unmatched": "Dernier événement : {type}, de {provider}, sans envoi correspondant",
|
|
863
|
+
"received_test": "Dernier événement : l’événement de test",
|
|
864
|
+
"refused": "Dernier appel refusé, de {provider} : {reason}",
|
|
865
|
+
"refusals": {
|
|
866
|
+
"missing_secret": "pas d’en-tête x-mailing-webhook-secret",
|
|
867
|
+
"bad_secret": "secret incorrect (il change à chaque rotation)",
|
|
868
|
+
"invalid_event": "le corps n’est pas un événement d’envoi"
|
|
869
|
+
},
|
|
870
|
+
"send_test": "Envoyer un événement de test",
|
|
871
|
+
"send_test_hint": "Il ne touche aucun envoi.",
|
|
872
|
+
"test": {
|
|
873
|
+
"received": "Événement de test reçu en {duration} ms",
|
|
874
|
+
"refused": "Le webhook a refusé l’événement de test",
|
|
875
|
+
"http_error": "L’URL du webhook a répondu {status}",
|
|
876
|
+
"proxy_hint": "Un proxy devant l’API refuse les appels des fournisseurs : renseignez dans apiBaseUrl du DMS l’adresse publique de l’API.",
|
|
877
|
+
"unreachable": "Impossible de joindre {url}",
|
|
878
|
+
"unreachable_hint": "{error}. Le serveur ne joint pas l’adresse qu’il affiche : vérifiez apiBaseUrl dans la configuration du DMS."
|
|
879
|
+
}
|
|
880
|
+
}
|
|
317
881
|
},
|
|
318
882
|
"templates": {
|
|
319
883
|
"actions": {
|
|
320
884
|
"archive": "Archiver",
|
|
321
|
-
"archived": "
|
|
322
|
-
"create": "Nouveau
|
|
885
|
+
"archived": "Modèle archivé",
|
|
886
|
+
"create": "Nouveau modèle",
|
|
323
887
|
"details": "Détails",
|
|
324
888
|
"duplicate": "Dupliquer",
|
|
325
|
-
"edit": "
|
|
326
|
-
"
|
|
327
|
-
"open_editor": "Ouvrir l'éditeur",
|
|
328
|
-
"publish": "Publier",
|
|
329
|
-
"published": "Template publié",
|
|
330
|
-
"send": "Envoyer",
|
|
889
|
+
"edit": "Modifier",
|
|
890
|
+
"open_editor": "Ouvrir l’éditeur",
|
|
331
891
|
"test_send": "Envoi de test",
|
|
332
|
-
"
|
|
333
|
-
"
|
|
892
|
+
"real_send": "Envoyer à de vrais destinataires",
|
|
893
|
+
"restore": "Restaurer",
|
|
894
|
+
"restored": "Modèle restauré"
|
|
334
895
|
},
|
|
335
896
|
"card": {
|
|
336
897
|
"add_locale": "Ajouter la version {locale} — absente",
|
|
337
898
|
"edit_locale": "Modifier la version {locale}",
|
|
338
|
-
"open": "
|
|
339
|
-
"sends": "envois"
|
|
899
|
+
"open": "ouverture",
|
|
900
|
+
"sends": "envoi | envoi | envois",
|
|
901
|
+
"test": "Tester",
|
|
902
|
+
"draft_changes": "Modifications en brouillon",
|
|
903
|
+
"edited": "Modifié {date}",
|
|
904
|
+
"edited_by": "Modifié {date} par {name}",
|
|
905
|
+
"no_send_since": "Aucun envoi · en ligne depuis le {date}",
|
|
906
|
+
"stale_days": "{days} j",
|
|
907
|
+
"never_sent": "jamais envoyé",
|
|
908
|
+
"no_send_for": "Aucun envoi · en ligne depuis {duration}"
|
|
340
909
|
},
|
|
341
910
|
"cols": {
|
|
342
911
|
"category": "Catégorie",
|
|
@@ -345,54 +914,497 @@
|
|
|
345
914
|
"slug": "Slug",
|
|
346
915
|
"status": "Statut",
|
|
347
916
|
"updatedAt": "Modifié",
|
|
348
|
-
"updatedBy": "Modifié par"
|
|
917
|
+
"updatedBy": "Modifié par",
|
|
918
|
+
"updated_by": "{date} · par {name}",
|
|
919
|
+
"publishedVersion": "Version",
|
|
920
|
+
"isDraftPending": "Modifications non publiées",
|
|
921
|
+
"publishedAt": "Publié"
|
|
349
922
|
},
|
|
350
923
|
"confirm": {
|
|
351
|
-
"archive_description": "Un
|
|
352
|
-
"archive_title": "Archiver ce
|
|
924
|
+
"archive_description": "Un modèle archivé ne peut plus être envoyé. Les versions sont conservées.",
|
|
925
|
+
"archive_title": "Archiver ce modèle ?",
|
|
926
|
+
"delete_title": "Supprimer « {name} » ?",
|
|
927
|
+
"delete_description": "Action irréversible. Le code qui appelle {slug} échouera."
|
|
353
928
|
},
|
|
354
|
-
"description": "
|
|
929
|
+
"description": "Chaque modèle a un slug appelé par votre code, des variables typées et une version par langue. Les modifications restent en brouillon jusqu’à la publication.",
|
|
355
930
|
"display": {
|
|
356
|
-
"gallery": "Grille"
|
|
357
|
-
"table": "Tableau"
|
|
931
|
+
"gallery": "Grille"
|
|
358
932
|
},
|
|
359
933
|
"drawer": {
|
|
360
|
-
"
|
|
361
|
-
"
|
|
362
|
-
"
|
|
363
|
-
"no_variables": "Ce template n'utilise encore aucune variable.",
|
|
364
|
-
"required": "requis",
|
|
365
|
-
"stats_click": "Clics",
|
|
366
|
-
"stats_open": "Ouverture",
|
|
934
|
+
"no_variables": "Ce modèle n’utilise encore aucune variable.",
|
|
935
|
+
"required": "obligatoire",
|
|
936
|
+
"stats_open": "Taux d’ouverture",
|
|
367
937
|
"stats_sends": "Envois",
|
|
368
938
|
"unused": "inutilisée",
|
|
369
|
-
"variables": "Variables"
|
|
939
|
+
"variables": "Variables",
|
|
940
|
+
"eyebrow": "Modèle",
|
|
941
|
+
"previous": "Modèle précédent",
|
|
942
|
+
"next": "Modèle suivant",
|
|
943
|
+
"more": "Plus d’actions",
|
|
944
|
+
"edited": "modifié {date} par {name}",
|
|
945
|
+
"never_published": "jamais publié",
|
|
946
|
+
"tab_preview": "Aperçu",
|
|
947
|
+
"tab_performance": "Performances",
|
|
948
|
+
"subject": "Objet · {subject}",
|
|
949
|
+
"missing_title": "Pas de version {locale}",
|
|
950
|
+
"missing_description": "Les destinataires {locale} reçoivent l’e-mail en {fallback}.",
|
|
951
|
+
"create_short": "Créer {locale}",
|
|
952
|
+
"declared_detected": "Déclarées et détectées",
|
|
953
|
+
"not_declared": "non déclarée",
|
|
954
|
+
"declare": "Déclarer",
|
|
955
|
+
"call_from_code": "L’appeler depuis le code",
|
|
956
|
+
"last_30_days": "30 derniers jours",
|
|
957
|
+
"open_send_log": "Ouvrir dans le journal d’envois",
|
|
958
|
+
"stats_problems": "Problèmes",
|
|
959
|
+
"problems_detail": "À examiner dans le journal d’envois",
|
|
960
|
+
"called_from": "Appelé depuis",
|
|
961
|
+
"no_sources": "Aucun envoi réel ces 30 derniers jours.",
|
|
962
|
+
"unknown_source": "Appelant inconnu",
|
|
963
|
+
"sends_count": "aucun envoi | {count} envoi | {count} envois",
|
|
964
|
+
"fallbacks": "Langues de repli",
|
|
965
|
+
"no_fallbacks": "Chaque destinataire a reçu la langue demandée.",
|
|
966
|
+
"category": "Catégorie",
|
|
967
|
+
"rename": "Renommer",
|
|
968
|
+
"draft_declarations": "Le brouillon modifie ces déclarations",
|
|
969
|
+
"draft_declarations_description": "Vous voyez ici le contrat publié. Les déclarations du brouillon s’appliquent une fois celui-ci publié."
|
|
370
970
|
},
|
|
371
971
|
"empty": {
|
|
372
|
-
"hint": "Aucun template ne correspond à ce filtre.",
|
|
373
972
|
"reset": "Réinitialiser les filtres",
|
|
374
|
-
"
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
"
|
|
378
|
-
"
|
|
379
|
-
"real_hint": "Il atteint les destinataires ci-dessous et compte dans les statistiques. Aucun retour en arrière possible.",
|
|
380
|
-
"real_title": "Ce message part vraiment",
|
|
381
|
-
"send": "Envoyer pour de vrai",
|
|
382
|
-
"title": "Envoyer"
|
|
973
|
+
"no_match_title": "Aucun modèle ne correspond à « {search} »",
|
|
974
|
+
"no_match_description": "La recherche porte sur les noms et les slugs. Essayez un autre mot ou réinitialisez les filtres.",
|
|
975
|
+
"view_title": "Aucun modèle dans cette vue",
|
|
976
|
+
"view_description": "Essayez un autre onglet ou réinitialisez les filtres.",
|
|
977
|
+
"create_named": "Créer « {name} »"
|
|
383
978
|
},
|
|
384
979
|
"start_from": {
|
|
385
980
|
"blank": "Vierge",
|
|
386
|
-
"label": "Partir de"
|
|
981
|
+
"label": "Partir de",
|
|
982
|
+
"blank_hint": "page vide",
|
|
983
|
+
"starter": "modèle de départ"
|
|
387
984
|
},
|
|
388
985
|
"status": {
|
|
389
986
|
"archived": "Archivé",
|
|
390
987
|
"draft": "Brouillon",
|
|
391
|
-
"live": "En ligne"
|
|
988
|
+
"live": "En ligne",
|
|
989
|
+
"unpublished": "Dépublié"
|
|
990
|
+
},
|
|
991
|
+
"title": "Modèles",
|
|
992
|
+
"uncategorised": "Sans catégorie",
|
|
993
|
+
"caption": "Modèles",
|
|
994
|
+
"search": "Chercher un nom ou un slug",
|
|
995
|
+
"tabs": {
|
|
996
|
+
"all": "Tous",
|
|
997
|
+
"live": "En ligne",
|
|
998
|
+
"draft": "Brouillons",
|
|
999
|
+
"archived": "Archivés",
|
|
1000
|
+
"attention": "À revoir"
|
|
1001
|
+
},
|
|
1002
|
+
"filters": {
|
|
1003
|
+
"category": "Catégorie"
|
|
1004
|
+
},
|
|
1005
|
+
"footer": {
|
|
1006
|
+
"count": "aucun modèle | {count} modèle | {count} modèles",
|
|
1007
|
+
"hint": "Ouvrez un modèle pour le modifier · ↵ ouvrir · T envoi de test"
|
|
1008
|
+
},
|
|
1009
|
+
"attention": {
|
|
1010
|
+
"none_title": "Rien à revoir ici",
|
|
1011
|
+
"none_description": "Tous les modèles de cet onglet sont publiés, envoyés et traduits.",
|
|
1012
|
+
"show_all": "Afficher tous les modèles"
|
|
1013
|
+
},
|
|
1014
|
+
"gallery": {
|
|
1015
|
+
"new_tile": "Nouveau modèle",
|
|
1016
|
+
"new_tile_hint": "ou appuyez sur N",
|
|
1017
|
+
"load_more": "Charger plus de modèles"
|
|
1018
|
+
},
|
|
1019
|
+
"starters": {
|
|
1020
|
+
"title": "Commencez par les e-mails dont toute boutique a besoin",
|
|
1021
|
+
"description": "Choisissez un modèle de départ : il arrive en brouillon, avec ses variables déclarées et ses données de test remplies.",
|
|
1022
|
+
"blank": "Modèle vierge"
|
|
1023
|
+
},
|
|
1024
|
+
"slug_errors": {
|
|
1025
|
+
"required": "Donnez un slug au modèle.",
|
|
1026
|
+
"format": "Uniquement des minuscules, des chiffres et des tirets, en commençant par une lettre ou un chiffre.",
|
|
1027
|
+
"too_long": "Le slug doit faire moins de 64 caractères.",
|
|
1028
|
+
"taken": "Un autre modèle utilise déjà ce slug."
|
|
1029
|
+
},
|
|
1030
|
+
"name_errors": {
|
|
1031
|
+
"required": "Donnez un nom au modèle.",
|
|
1032
|
+
"too_long": "Le nom doit faire moins de 120 caractères."
|
|
1033
|
+
},
|
|
1034
|
+
"lifecycle": {
|
|
1035
|
+
"publish": "Publier le brouillon",
|
|
1036
|
+
"publish_title": "Publier « {name} » ?",
|
|
1037
|
+
"publish_description": "Les clients reçoivent cette version dès le prochain envoi. La précédente reste dans l’historique.",
|
|
1038
|
+
"publish_confirm": "Publier",
|
|
1039
|
+
"publish_done": "Modèle publié",
|
|
1040
|
+
"unpublish": "Dépublier",
|
|
1041
|
+
"unpublish_title": "Dépublier « {name} » ?",
|
|
1042
|
+
"unpublish_description": "Il repasse en brouillon. Chaque appel depuis votre code renvoie une erreur jusqu’à sa republication.",
|
|
1043
|
+
"unpublish_confirm": "Dépublier",
|
|
1044
|
+
"unpublish_done": "Modèle dépublié",
|
|
1045
|
+
"archive": "Archiver",
|
|
1046
|
+
"archive_title": "Archiver « {name} » ?",
|
|
1047
|
+
"archive_description": "Un modèle archivé ne peut plus être envoyé. Les appels depuis votre code renvoient une erreur. Les versions sont conservées.",
|
|
1048
|
+
"archive_confirm": "Archiver",
|
|
1049
|
+
"archive_done": "Modèle archivé",
|
|
1050
|
+
"restore": "Restaurer",
|
|
1051
|
+
"restore_done": "Modèle restauré en brouillon"
|
|
1052
|
+
}
|
|
1053
|
+
},
|
|
1054
|
+
"title": "Mailing",
|
|
1055
|
+
"catalog_category": "Communication",
|
|
1056
|
+
"nav": {
|
|
1057
|
+
"mailing": "Mailing",
|
|
1058
|
+
"configure": "Configurer"
|
|
1059
|
+
},
|
|
1060
|
+
"permissions": {
|
|
1061
|
+
"send": {
|
|
1062
|
+
"name": "Envoyer des e-mails et des tests",
|
|
1063
|
+
"description": "Envoyer des e-mails de test, envoyer un modèle à de vrais destinataires et renvoyer un e-mail du journal."
|
|
1064
|
+
},
|
|
1065
|
+
"editor": {
|
|
1066
|
+
"name": "Éditeur de modèle",
|
|
1067
|
+
"description": "Modifier les blocs, les variables et les données de test d’un modèle, publier ou abandonner son brouillon."
|
|
1068
|
+
},
|
|
1069
|
+
"funnel": {
|
|
1070
|
+
"name": "Entonnoir de distribution",
|
|
1071
|
+
"description": "E-mails envoyés, distribués, ouverts et cliqués sur la période."
|
|
1072
|
+
},
|
|
1073
|
+
"overview_gate": {
|
|
1074
|
+
"name": "Tableau de bord Mailing",
|
|
1075
|
+
"description": "Le tableau de bord, ou les étapes de configuration tant que l’espace de travail ne peut pas envoyer."
|
|
1076
|
+
},
|
|
1077
|
+
"page_header": {
|
|
1078
|
+
"name": "Fournisseur et période",
|
|
1079
|
+
"description": "L’état du fournisseur et le choix de période dans l’en-tête de page."
|
|
1080
|
+
},
|
|
1081
|
+
"settings_form": {
|
|
1082
|
+
"name": "Réglages Mailing",
|
|
1083
|
+
"description": "Expéditeur, garde-fous d’envoi, webhook du fournisseur, conservation du journal et catégories de modèles."
|
|
1084
|
+
},
|
|
1085
|
+
"template_drawer": {
|
|
1086
|
+
"name": "Détails du modèle",
|
|
1087
|
+
"description": "Aperçu, variables et performances d’un modèle."
|
|
392
1088
|
},
|
|
393
|
-
"
|
|
394
|
-
|
|
1089
|
+
"test_send": {
|
|
1090
|
+
"name": "Fenêtre d’envoi de test",
|
|
1091
|
+
"description": "Envoyer un modèle à cinq destinataires de test au plus."
|
|
1092
|
+
},
|
|
1093
|
+
"real_send": {
|
|
1094
|
+
"name": "Fenêtre d’envoi réel",
|
|
1095
|
+
"description": "Envoyer un modèle en ligne à cinq vrais destinataires au plus."
|
|
1096
|
+
},
|
|
1097
|
+
"new_template": {
|
|
1098
|
+
"name": "Fenêtre de nouveau modèle",
|
|
1099
|
+
"description": "Créer un modèle depuis une page vierge, un modèle de départ ou un autre modèle."
|
|
1100
|
+
},
|
|
1101
|
+
"send_drawer": {
|
|
1102
|
+
"name": "Détails d’un envoi",
|
|
1103
|
+
"description": "Chronologie, origine et données d’un envoi, avec l’étape suivante dont il a besoin."
|
|
1104
|
+
},
|
|
1105
|
+
"rendering": {
|
|
1106
|
+
"name": "Rendu reçu",
|
|
1107
|
+
"description": "L’e-mail tel que le destinataire l’a reçu."
|
|
1108
|
+
}
|
|
395
1109
|
},
|
|
396
|
-
"
|
|
1110
|
+
"new_template": {
|
|
1111
|
+
"title": "Nouveau modèle",
|
|
1112
|
+
"description": "Le code l’envoie par son slug. Vous pourrez le publier une fois le contenu prêt.",
|
|
1113
|
+
"name_placeholder": "Devis accepté",
|
|
1114
|
+
"slug_auto": "déduit du nom",
|
|
1115
|
+
"slug_help": "Non modifiable ensuite : c’est le slug qu’appelle votre code.",
|
|
1116
|
+
"shortcut": "créer",
|
|
1117
|
+
"submit": "Créer et ouvrir l’éditeur",
|
|
1118
|
+
"slug_from_name_empty": "Ce nom ne donne pas de slug : saisissez-en un.",
|
|
1119
|
+
"search": "Rechercher un modèle",
|
|
1120
|
+
"starters": "Modèles de départ",
|
|
1121
|
+
"existing": "Dupliquer un modèle existant"
|
|
1122
|
+
},
|
|
1123
|
+
"test_send": {
|
|
1124
|
+
"title": "Envoyer un test",
|
|
1125
|
+
"current_draft": "brouillon actuel",
|
|
1126
|
+
"unsaved_draft": "brouillon de l’éditeur",
|
|
1127
|
+
"recipients": "Destinataires",
|
|
1128
|
+
"add_address": "Ajouter une adresse",
|
|
1129
|
+
"recipients_hint": "Entrée ou virgule pour ajouter",
|
|
1130
|
+
"locale": "Langue",
|
|
1131
|
+
"data": "Données",
|
|
1132
|
+
"data_test": "Données de test",
|
|
1133
|
+
"data_none": "Aucune donnée",
|
|
1134
|
+
"info_title": "Les tests restent hors de vos chiffres",
|
|
1135
|
+
"info_description": "L’objet reçoit le préfixe {prefix} et l’envoi est marqué comme test dans le journal.",
|
|
1136
|
+
"shortcut": "envoyer",
|
|
1137
|
+
"submit": "Envoyer un test | Envoyer {count} test | Envoyer {count} tests",
|
|
1138
|
+
"sent": "{count} test envoyé | {count} test envoyé | {count} tests envoyés",
|
|
1139
|
+
"published_version": "version publiée v{version}",
|
|
1140
|
+
"choose_draft": "Brouillon",
|
|
1141
|
+
"choose_published": "Publiée v{version}",
|
|
1142
|
+
"own_suppressed": {
|
|
1143
|
+
"title": "{email} est dans la liste d’exclusion",
|
|
1144
|
+
"description": "{reason}. Le test est parti car c’est votre propre adresse ; les envois réels vers elle ne partent pas."
|
|
1145
|
+
}
|
|
1146
|
+
},
|
|
1147
|
+
"real_send": {
|
|
1148
|
+
"title": "Envoyer à de vrais destinataires",
|
|
1149
|
+
"heading": "Envoyer « {name} » à de vrais destinataires",
|
|
1150
|
+
"warning": "Il arrive dans leur boîte de réception et compte dans les statistiques. Impossible d’annuler.",
|
|
1151
|
+
"recipients_hint": "5 au maximum. Pour une liste, passez par une automatisation.",
|
|
1152
|
+
"from": "De",
|
|
1153
|
+
"subject": "Objet",
|
|
1154
|
+
"version": "Version",
|
|
1155
|
+
"published_on": "publiée {date}",
|
|
1156
|
+
"acknowledge": "Ajoutez d’abord un destinataire | Je comprends que cela envoie un vrai e-mail à {count} personne | Je comprends que cela envoie un vrai e-mail à {count} personnes",
|
|
1157
|
+
"submit": "Envoyer aux destinataires | Envoyer à {count} destinataire | Envoyer à {count} destinataires",
|
|
1158
|
+
"sent": "Envoyé à {count} destinataire | Envoyé à {count} destinataire | Envoyé à {count} destinataires",
|
|
1159
|
+
"refused_title": "« {name} » ne peut pas encore être envoyé",
|
|
1160
|
+
"refused_draft": "C’est un brouillon. Seul un modèle en ligne peut partir vers de vrais destinataires.",
|
|
1161
|
+
"refused_archived": "Il est archivé. Restaurez-le et publiez-le avant de l’envoyer à de vrais destinataires.",
|
|
1162
|
+
"refused_live": "Seul un modèle en ligne peut partir vers de vrais destinataires.",
|
|
1163
|
+
"check_status": "Statut : {status} · modifié {date} par {name}",
|
|
1164
|
+
"check_variables_ok": "Variables déclarées et couvertes par les données de test",
|
|
1165
|
+
"check_variables_warn": "Certaines variables ne sont pas déclarées ou n’ont pas de valeur de test",
|
|
1166
|
+
"check_locales_ok": "Toutes les langues de l’espace de travail existent",
|
|
1167
|
+
"check_locales_warn": "Pas de version {missing}. Ces destinataires recevraient la version {fallback}.",
|
|
1168
|
+
"test_instead": "Envoyer plutôt un test",
|
|
1169
|
+
"review_publish": "Relire et publier",
|
|
1170
|
+
"values_title": "Valeurs pour cet envoi",
|
|
1171
|
+
"missing_required": "Valeurs obligatoires manquantes : {paths}",
|
|
1172
|
+
"no_sender": "Aucun expéditeur défini : les e-mails partent avec l’adresse par défaut du fournisseur.",
|
|
1173
|
+
"settings_link": "Ouvrir les réglages",
|
|
1174
|
+
"list_value": "Liste vide des données de test | {count} élément des données de test | {count} éléments des données de test",
|
|
1175
|
+
"list_missing": "Absente des données de test : ajoutez d’abord la liste",
|
|
1176
|
+
"object_value": "Objet des données de test"
|
|
1177
|
+
},
|
|
1178
|
+
"rendering": {
|
|
1179
|
+
"title": "L’e-mail de cet envoi",
|
|
1180
|
+
"received_by": "Ce que {name} a reçu",
|
|
1181
|
+
"description": "Rendu à partir de la version et des données conservées avec l’envoi ·",
|
|
1182
|
+
"views": {
|
|
1183
|
+
"desktop": "Ordinateur",
|
|
1184
|
+
"mobile": "Mobile",
|
|
1185
|
+
"html": "HTML"
|
|
1186
|
+
},
|
|
1187
|
+
"view_label": "Vue du rendu",
|
|
1188
|
+
"version": "v{version}",
|
|
1189
|
+
"draft_version": "brouillon",
|
|
1190
|
+
"frame_title": "E-mail de l’envoi",
|
|
1191
|
+
"error_title": "Le rendu ne peut pas être affiché",
|
|
1192
|
+
"error_description": "Le modèle de cet envoi a été supprimé, ou sa version n’est plus lisible.",
|
|
1193
|
+
"approximate": "Test de brouillon : rendu avec le brouillon actuel, qui peut différer de l’envoi.",
|
|
1194
|
+
"current_sender": "Expéditeur actuel des réglages",
|
|
1195
|
+
"meant_for": "L’e-mail destiné à {name}"
|
|
1196
|
+
},
|
|
1197
|
+
"period": {
|
|
1198
|
+
"short": {
|
|
1199
|
+
"last_hour": "1 h",
|
|
1200
|
+
"last_24h": "24 h",
|
|
1201
|
+
"today": "1 j",
|
|
1202
|
+
"last_7_days": "7 j",
|
|
1203
|
+
"last_30_days": "30 j",
|
|
1204
|
+
"last_90_days": "90 j"
|
|
1205
|
+
}
|
|
1206
|
+
},
|
|
1207
|
+
"page_header": {
|
|
1208
|
+
"provider_connected": "{name} connecté",
|
|
1209
|
+
"no_provider": "Aucun fournisseur",
|
|
1210
|
+
"provider_hint": "Les distributions, ouvertures, clics et rebonds reviennent du fournisseur par webhook."
|
|
1211
|
+
},
|
|
1212
|
+
"setup": {
|
|
1213
|
+
"title": "Envoyez votre premier e-mail",
|
|
1214
|
+
"description": "Mailing conserve vos modèles, les rend dans chaque langue et journalise chaque envoi. Le fournisseur (Brevo, Postmark, SMTP…) ne fait que transporter le courrier.",
|
|
1215
|
+
"create_template": "Créer un modèle",
|
|
1216
|
+
"how_it_works": "Comment fonctionne l’envoi",
|
|
1217
|
+
"how_it_works_body": "Votre code appelle SendTemplate avec le slug d’un modèle et ses données. Mailing rend la version publiée dans la langue du destinataire, la confie au fournisseur et journalise l’envoi ; le webhook du fournisseur signale ensuite les distributions, ouvertures, clics et rebonds.",
|
|
1218
|
+
"steps": {
|
|
1219
|
+
"provider": {
|
|
1220
|
+
"title": "Connecter un fournisseur",
|
|
1221
|
+
"description": "Se définit dans la configuration Antelope du projet : aucun e-mail ne part avant.",
|
|
1222
|
+
"done": "Fait : un fournisseur est connecté, les e-mails peuvent partir."
|
|
1223
|
+
},
|
|
1224
|
+
"sender": {
|
|
1225
|
+
"title": "Définir l’expéditeur",
|
|
1226
|
+
"description": "Le nom et l’adresse que voient les clients.",
|
|
1227
|
+
"action": "Définir l’expéditeur",
|
|
1228
|
+
"done": "Fait : les clients voient votre nom et votre adresse d’expéditeur."
|
|
1229
|
+
},
|
|
1230
|
+
"publish": {
|
|
1231
|
+
"title": "Publier un modèle",
|
|
1232
|
+
"description": "Votre code envoie la version publiée : un brouillon n’envoie rien.",
|
|
1233
|
+
"action": "Modèles",
|
|
1234
|
+
"done": "Fait : un modèle est en ligne."
|
|
1235
|
+
},
|
|
1236
|
+
"test": {
|
|
1237
|
+
"title": "S’envoyer un test",
|
|
1238
|
+
"description": "Vérifier le rendu dans une vraie boîte de réception avant les clients.",
|
|
1239
|
+
"action": "Modèles",
|
|
1240
|
+
"done": "Fait : un e-mail de test est parti."
|
|
1241
|
+
}
|
|
1242
|
+
},
|
|
1243
|
+
"resume": "Reprendre la configuration",
|
|
1244
|
+
"hide": "Masquer",
|
|
1245
|
+
"error_title": "Impossible de vérifier la configuration",
|
|
1246
|
+
"error_description": "La vue d’ensemble doit savoir si les e-mails peuvent partir. Réessayez dans un instant.",
|
|
1247
|
+
"retry": "Réessayer"
|
|
1248
|
+
},
|
|
1249
|
+
"attention_card": {
|
|
1250
|
+
"title": "À traiter",
|
|
1251
|
+
"empty": {
|
|
1252
|
+
"title": "Rien à traiter",
|
|
1253
|
+
"description": "Aucun envoi en échec sur la période, chaque modèle en ligne a toutes ses langues et a été utilisé."
|
|
1254
|
+
}
|
|
1255
|
+
},
|
|
1256
|
+
"funnel_card": {
|
|
1257
|
+
"title": "Entonnoir · de l’envoi au clic",
|
|
1258
|
+
"kinds": {
|
|
1259
|
+
"all": "Tous",
|
|
1260
|
+
"transactional": "Transactionnels",
|
|
1261
|
+
"marketing": "Marketing"
|
|
1262
|
+
},
|
|
1263
|
+
"kind_label": "Type d’e-mail",
|
|
1264
|
+
"takeaway": "Plus forte baisse : {from} → {to}.",
|
|
1265
|
+
"no_drop": "Rien à comparer pour l’instant : aucun e-mail envoyé sur la période.",
|
|
1266
|
+
"error_title": "Impossible de charger l’entonnoir",
|
|
1267
|
+
"retry": "Réessayer",
|
|
1268
|
+
"untracked": "La distribution n’est pas mesurée : branchez le webhook du fournisseur pour suivre l’entonnoir.",
|
|
1269
|
+
"no_loss": "Aucun e-mail perdu entre les étapes."
|
|
1270
|
+
},
|
|
1271
|
+
"common": {
|
|
1272
|
+
"cancel": "Annuler",
|
|
1273
|
+
"on_date": "le {date}"
|
|
1274
|
+
},
|
|
1275
|
+
"duplicate": {
|
|
1276
|
+
"title": "Dupliquer le modèle",
|
|
1277
|
+
"description": "Copie toutes les langues, les variables et les données de test dans un nouveau brouillon.",
|
|
1278
|
+
"source": "Copie de {name} ·",
|
|
1279
|
+
"copy_name": "{name} (copie)",
|
|
1280
|
+
"submit": "Dupliquer en brouillon"
|
|
1281
|
+
},
|
|
1282
|
+
"system_variables": {
|
|
1283
|
+
"title": "Liens du pied de page · URL passées à l’envoi",
|
|
1284
|
+
"description": "Votre code passe ces URL à chaque envoi. Un lien dont l’URL manque est retiré de l’e-mail.",
|
|
1285
|
+
"required": "Obligatoire pour un e-mail marketing",
|
|
1286
|
+
"at_send": "à l’envoi"
|
|
1287
|
+
},
|
|
1288
|
+
"suppressions": {
|
|
1289
|
+
"title": "Liste d’exclusion",
|
|
1290
|
+
"description": "Les adresses auxquelles plus rien n’est envoyé : rebonds définitifs, plaintes pour spam, désinscriptions et ajouts manuels.",
|
|
1291
|
+
"caption": "Adresses exclues",
|
|
1292
|
+
"search": "Adresse ou note",
|
|
1293
|
+
"views": {
|
|
1294
|
+
"all": "Toutes"
|
|
1295
|
+
},
|
|
1296
|
+
"reasons": {
|
|
1297
|
+
"hard_bounce": "Rebond définitif",
|
|
1298
|
+
"complaint": "Plainte pour spam",
|
|
1299
|
+
"unsubscribe": "Désinscription",
|
|
1300
|
+
"manual": "Ajout manuel"
|
|
1301
|
+
},
|
|
1302
|
+
"cols": {
|
|
1303
|
+
"email": "Adresse",
|
|
1304
|
+
"reason": "Motif",
|
|
1305
|
+
"detail": "Détail",
|
|
1306
|
+
"createdAt": "Depuis",
|
|
1307
|
+
"sendId": "Envoi d’origine"
|
|
1308
|
+
},
|
|
1309
|
+
"footer": {
|
|
1310
|
+
"count": "aucune adresse | {count} adresse | {count} adresses"
|
|
1311
|
+
},
|
|
1312
|
+
"empty": {
|
|
1313
|
+
"title": "Aucune adresse exclue",
|
|
1314
|
+
"description": "Les rebonds définitifs, plaintes pour spam et désinscriptions remontés par le webhook du fournisseur arrivent ici. Vous pouvez aussi ajouter une adresse à la main."
|
|
1315
|
+
},
|
|
1316
|
+
"actions": {
|
|
1317
|
+
"add": "Ajouter une adresse",
|
|
1318
|
+
"added": "Adresse ajoutée à la liste d’exclusion",
|
|
1319
|
+
"reactivate": "Réactiver",
|
|
1320
|
+
"reactivated": "Adresse réactivée : le prochain envoi lui parviendra",
|
|
1321
|
+
"see_send": "Voir l’envoi"
|
|
1322
|
+
},
|
|
1323
|
+
"add": {
|
|
1324
|
+
"title": "Ajouter une adresse à la liste d’exclusion",
|
|
1325
|
+
"description": "Plus rien ne lui est envoyé, quel que soit le modèle, jusqu’à ce qu’elle soit réactivée.",
|
|
1326
|
+
"email": "Adresse",
|
|
1327
|
+
"note": "Note",
|
|
1328
|
+
"note_hint": "Facultatif : la raison, pour qui lira la liste plus tard.",
|
|
1329
|
+
"confirm": "Ajouter à la liste"
|
|
1330
|
+
},
|
|
1331
|
+
"reactivate": {
|
|
1332
|
+
"title": "Réactiver {email} ?",
|
|
1333
|
+
"description": "Le prochain envoi atteindra de nouveau cette adresse. À faire seulement si le destinataire l’a demandé ou si l’adresse a été corrigée.",
|
|
1334
|
+
"confirm": "Réactiver"
|
|
1335
|
+
},
|
|
1336
|
+
"errors": {
|
|
1337
|
+
"invalid": "Saisissez une adresse e-mail valide.",
|
|
1338
|
+
"already": "Cette adresse est déjà dans la liste d’exclusion.",
|
|
1339
|
+
"not_found": "Cette adresse n’est plus dans la liste d’exclusion."
|
|
1340
|
+
},
|
|
1341
|
+
"notice": {
|
|
1342
|
+
"not_sent": {
|
|
1343
|
+
"title": "Non envoyé : cette adresse est dans la liste d’exclusion",
|
|
1344
|
+
"toast_title": "Non envoyé : {email} est dans la liste d’exclusion",
|
|
1345
|
+
"description": "{reason}, depuis le {date}. Réactivez l’adresse pour lui écrire de nouveau.",
|
|
1346
|
+
"reason": "{reason}. Réactivez l’adresse pour lui écrire de nouveau."
|
|
1347
|
+
},
|
|
1348
|
+
"reactivated": {
|
|
1349
|
+
"title": "Non envoyé : l’adresse était exclue à ce moment-là",
|
|
1350
|
+
"description": "Elle a été réactivée depuis : vous pouvez renvoyer cet e-mail."
|
|
1351
|
+
},
|
|
1352
|
+
"on_list": {
|
|
1353
|
+
"title": "Cette adresse ne reçoit plus rien",
|
|
1354
|
+
"description": "Dans la liste d’exclusion depuis le {date} ({reason})."
|
|
1355
|
+
},
|
|
1356
|
+
"open_list": "Liste d’exclusion"
|
|
1357
|
+
}
|
|
1358
|
+
},
|
|
1359
|
+
"history": {
|
|
1360
|
+
"tab": "Historique",
|
|
1361
|
+
"title": "Historique des versions",
|
|
1362
|
+
"intro": "Chaque publication garde une version. Prévisualisez-en une ou restaurez-la comme brouillon : les clients gardent la version en ligne jusqu’à la prochaine publication.",
|
|
1363
|
+
"never_published": "Aucune version pour l’instant : l’historique commence à la première publication.",
|
|
1364
|
+
"empty": "Aucune version publiée pour l’instant.",
|
|
1365
|
+
"version": "Version {version}",
|
|
1366
|
+
"live": "En ligne",
|
|
1367
|
+
"preview": "Aperçu",
|
|
1368
|
+
"preview_title": "Version {version}",
|
|
1369
|
+
"brought": "Ce qu’elle a changé",
|
|
1370
|
+
"declared": "Variables déclarées",
|
|
1371
|
+
"no_variables": "Aucune variable déclarée.",
|
|
1372
|
+
"no_changes": "Aucun changement enregistré",
|
|
1373
|
+
"summary_more": "{changes} et {count} autre | {changes} et {count} autre | {changes} et {count} autres",
|
|
1374
|
+
"close": "Fermer",
|
|
1375
|
+
"restore": "Restaurer la v{version} comme brouillon",
|
|
1376
|
+
"restore_hint": "La restauration remplace le brouillon actuel. Les clients gardent la version en ligne jusqu’à la publication.",
|
|
1377
|
+
"restore_title": "Restaurer la v{version} comme brouillon ?",
|
|
1378
|
+
"restore_description": "Son contenu et ses déclarations de variables remplacent le brouillon actuel. Les envois continuent d’utiliser la v{current} jusqu’à la revue et la publication.",
|
|
1379
|
+
"restored": "v{version} restaurée comme brouillon",
|
|
1380
|
+
"restored_description": "Relisez-la, puis publiez-la pour l’envoyer."
|
|
1381
|
+
},
|
|
1382
|
+
"variable_types": {
|
|
1383
|
+
"string": "Texte court",
|
|
1384
|
+
"text": "Texte long",
|
|
1385
|
+
"number": "Nombre",
|
|
1386
|
+
"money": "Montant",
|
|
1387
|
+
"date": "Date",
|
|
1388
|
+
"url": "Lien",
|
|
1389
|
+
"boolean": "Oui / non",
|
|
1390
|
+
"array": "Liste"
|
|
1391
|
+
},
|
|
1392
|
+
"categories": {
|
|
1393
|
+
"defaults": {
|
|
1394
|
+
"orders": "Commandes",
|
|
1395
|
+
"account": "Compte et accès",
|
|
1396
|
+
"billing": "Facturation",
|
|
1397
|
+
"marketing": "Marketing",
|
|
1398
|
+
"forms": "Formulaires"
|
|
1399
|
+
}
|
|
1400
|
+
},
|
|
1401
|
+
"starters": {
|
|
1402
|
+
"names": {
|
|
1403
|
+
"order-confirmed": "Confirmation de commande",
|
|
1404
|
+
"order-shipped": "Avis d’expédition",
|
|
1405
|
+
"password-reset": "Réinitialisation du mot de passe",
|
|
1406
|
+
"invoice-ready": "Facture disponible"
|
|
1407
|
+
}
|
|
1408
|
+
}
|
|
397
1409
|
}
|
|
398
1410
|
}
|