mivita/resources/lang/fr/abo.php
Kevin 65b867f8ee Abo Einmalprodukte: Phasen 5-7, konfigurierbare Sperrfristen, Lokalisierung & Dashboard
Rechnung/Lieferschein:
- PDF-Gruppierung Abo- vs. Einmal-Artikel (is_abo_addon), rueckwaertskompatibel
- Vorschau-Command sales:preview-invoice (umgeht Test-System-Gate, ohne Rechnungsnummer)

Reminder-Mail (vorbereitet, Cron inaktiv):
- MailAboExecutionReminder + Template, abo:send-execution-reminder, Spalte onetime_reminder_sent_for
- Berater -> Sales Center, Kunde -> Portal; Vorschau abo:preview-reminder
- Datum-Fix: formatDateDB() statt formatDate() (ICU-Format)

Sperrfristen konfigurierbar (Admin-Settings):
- abo-lock-days-change (Liefertag + Abo-Produkte), abo-lock-days-pause-cancel
- Meldungen mit :lock-Platzhalter; Pausieren/Kuendigen vom Change-Lock entkoppelt
- Abo-Produkt-Aenderungen im Lock-Fenster server- + clientseitig eingefroren
- Selbstbedienung: Add-only/Lock nach $view (kein Admin-Bypass), Stale-Cache-Fix beim Mengen-Update

Dashboard:
- Einmalprodukte-Card + Team-Abo-KPI-Card, News-Card responsiv (col-xl-6)

Lokalisierung:
- Sprachdateien en/es/fr vollstaendig mit de synchronisiert (inkl. marketingplan/portal)
- LocalizationSyncTest sichert Key-Gleichheit ab

Tests: AboOneTimeInvoiceGrouping, AboExecutionReminder, AboLockDaysSetting,
AboOnetimeDashboardAndMail, PreviewInvoiceCommand, TeamAboOverview + erweiterte View-Tests

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 13:38:11 +00:00

234 lines
20 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
return [
'abo' => 'Abonnement',
'payment_for_abo' => 'Mode de paiement pour l’abonnement',
'abo_delivery' => 'Abonnement - livraison régulière',
'abo_are_for_me_and_shipped' => 'L’abonnement est pour moi et sera envoyé à mon adresse',
'abo_are_for_customer_and_shipped' => 'L’abonnement est pour un client et sera envoyé au client',
'abo_delivery_to_me' => 'Livraison d’abonnement à moi-même',
'abo_delivery_to_the_customer' => 'Livraison d’abonnement au client',
'every_week' => 'chaque semaine',
'every_weeks' => 'toutes les :num semaines',
'of_month' => 'du mois',
'delivery_intervall' => 'Adapter le jour de livraison',
'abo_order_info_check' => 'À la conclusion de l’abonnement, une livraison régulière est mise en place. Elle est automatiquement expédiée et facturée au jour de livraison choisi.',
'abo_order_info_check_2' => 'La première livraison et facturation a lieu le jour de la création de l’abonnement. Ensuite, l’expédition se fait automatiquement au jour de livraison choisi du mois suivant.',
'abo_order_info_check_3' => 'PayPal et carte de crédit sont disponibles comme modes de paiement. <strong>L’abonnement a une durée minimale de :abo-min-duration mois.</strong> Ensuite, il peut être mis en pause, modifié ou résilié à tout moment.',
'abo_order_info_checkbox' => 'Oui, j’ai compris les conditions de l’abonnement !',
'abo_order_info_checkbox_required' => 'Veuillez confirmer les conditions de l’abonnement pour continuer.',
'abo_infos' => 'Infos abonnement',
'abo_delivery_infos' => 'Infos livraison abonnement',
'abo_start_date' => 'Début de l’abonnement',
'abo_delivery_intervall' => 'Jour de livraison de l’abonnement',
'abo_first_execution_date' => 'Première exécution',
'abo_next_execution_date' => 'Prochaine exécution',
'delivery_day' => 'Adapter le jour de livraison',
'abo_settings' => 'Paramètres abonnement',
'add_new_abo' => 'Créer un nouvel abonnement',
'abo_edit' => 'Modifier l’abonnement',
'abo_details' => 'Détails de l’abonnement',
'abo_is_active' => 'L’abonnement est actif',
'abo_copy_active' => 'Si l’abonnement n’est pas actif, aucune exécution automatique n’a lieu.',
'abo_copy_next_date' => 'Le prochain jour d’exécution peut être fixé au plus tôt au lendemain.',
'abo_copy_abo_interval' => 'L’adaptation du jour de livraison de l’abonnement impacte la prochaine date d’exécution si l’abonnement est actif.',
'admin_abo_copy_next_date' => 'Les admins peuvent définir directement la prochaine date d’exécution via le mois et le jour de livraison.',
'error_abo_interval' => 'L’intervalle d’abonnement est incorrect',
'error_abo_interval_in_the_past' => 'L’abonnement n’a pas encore été exécuté ce mois-ci. Un changement vers un jour passé ferait sauter le mois en cours.',
'warning_next_date_soon' => 'Remarque : la prochaine exécution de l’abonnement est déjà dans :days jours (:date).',
'warning_next_date_soon_select' => 'Remarque : la prochaine exécution de l’abonnement est déjà dans :placeholder_days jours (:placeholder_date).',
'warning_next_date_info' => 'La prochaine exécution de l’abonnement est dans :days jours, le :date.',
'info_next_execution_select' => 'Prochaine exécution : dans :placeholder_days jours, le :placeholder_date.',
'error_change_locked' => 'Les modifications ne sont plus possibles. La prochaine exécution est dans :days jours. Les modifications doivent être effectuées au moins :lock jours avant.',
'error_abo_interval_too_soon' => 'Le jour de livraison choisi n’est qu’à :days jours. Veuillez choisir un jour de livraison situé au moins :lock jours dans le futur.',
'error_cancel_locked' => 'Une résiliation n’est plus possible. La prochaine exécution est dans :days jours. Les résiliations doivent être effectuées au moins :lock jours avant.',
'error_pause_locked' => 'L’abonnement ne peut plus être mis en pause. La prochaine exécution est dans :days jours. La pause doit être effectuée au moins :lock jours avant.',
'error_next_date' => 'La date de la prochaine exécution est incorrecte',
'checkout_mail_abo_hl' => 'Votre abonnement / livraison régulière.',
'checkout_mail_abo_start' => 'Votre abonnement a été créé avec succès avec les paramètres suivants :',
'checkout_mail_abo_info' => 'Vous trouverez les paramètres de votre abonnement dans votre compte sous "Mes abonnements" et pourrez également les y modifier.',
'abo_new' => 'nouveau',
'abo_okay' => 'ok',
'abo_hold' => 'en pause',
'abo_cancel' => 'annulé',
'abo_finish' => 'terminé',
'abo_inactive' => 'inactif',
'abo_grace' => 'geste commercial',
'abo_info' => 'Informations abonnement',
'info_min_duration_reached' => 'Votre abonnement pourra être modifié, complété, mis en pause ou résilié au plus tôt à partir du :date.',
'info_min_duration_orders_left' => 'L’abonnement ne pourra être modifié, complété, mis en pause ou résilié qu’après encore :count exécutions.',
'pros_hl' => 'Les avantages d’un abonnement',
'pros_list' => ' <li><b>Conclusion d’abonnement pour conseillers et clients :</b> Chaque conseiller ou client peut conclure un abonnement exécuté à un jour fixe du mois afin de garantir une livraison régulière et planifiable.</li>
<li><b>Livraison mensuelle :</b> Une nouvelle livraison est envoyée directement à votre porte une fois par mois.</li>
<li><b>Adaptable avec flexibilité :</b> L’abonnement peut être adapté individuellement, p. ex. en termes de produits, quantités ou dates de livraison.</li>
<li><b>Large choix de produits :</b> Différents produits peuvent être inclus dans l’abonnement.</li>
<li><b>Durée :</b> L’abonnement a une durée minimale de <strong>:abo-min-duration mois</strong>, puis il peut être mis en pause ou résilié.</li>
<li><b>Avantage prix :</b> Les produits d’abonnement bénéficient souvent de remises ou offres spéciales.</li>
<li><b>Démarrer maintenant :</b> Choisissez vos produits, adaptez l’abonnement à vos besoins, payez la première commande et activez ainsi votre abonnement pour les prochaines livraisons.</li>',
'abo_pros' => 'Avantages abonnement',
'abo_order_hl' => 'Composition de l’abonnement',
'abo_order_info_2' => 'Vous pouvez adapter les produits de votre abonnement à tout moment ; lors de la prochaine exécution, vos produits composés vous seront envoyés.',
'abo_order_info_block' => 'Vous pouvez adapter la composition de votre abonnement après la durée minimale de <strong>:abo-min-duration mois</strong>.',
'abo_order_info_block_team' => 'La composition de l’abonnement pour un membre de l’équipe ne peut être adaptée que par lui-même.',
'abo_order_info_block_customer' => 'Vous pouvez à tout moment ajouter de nouveaux produits à l’abonnement de votre client. La suppression de produits n’est possible qu’après la durée minimale de <strong>:abo-min-duration mois</strong>.',
'abo_order_info_add_only' => 'Vous pouvez à tout moment ajouter de nouveaux produits à votre abonnement. La suppression de produits n’est possible qu’après la durée minimale de <strong>:abo-min-duration mois</strong>.',
'error_add_only_no_remove' => 'La suppression de produits n’est pas possible pendant la durée minimale.',
'confirm_add_title' => 'Confirmer l’ajout du produit',
'confirm_add_title_normal' => 'Ajouter le produit à l’abonnement',
'confirm_increase_title' => 'Augmenter la quantité de l’abonnement',
'confirm_add_warning' => 'Pendant la durée minimale, les produits ajoutés ne peuvent pas être retirés. Veuillez vérifier soigneusement votre sélection.',
'confirm_add_warning_normal' => 'Voulez-vous vraiment ajouter ce produit à votre abonnement ?',
'confirm_add_info' => 'Vous êtes sur le point d’ajouter cet article à votre abonnement en cours. Cela modifie le montant de paiement récurrent.',
'confirm_increase_info' => 'Vous êtes sur le point d’augmenter la quantité de cet article dans votre abonnement en cours. Cela modifie le montant de paiement récurrent.',
'confirm_article_details' => 'Détails de l’article',
'confirm_additional_costs' => 'Coûts supplémentaires',
'confirm_new_total' => 'Nouveau total de l’abonnement',
'confirm_per_delivery' => 'par livraison',
'confirm_legal_notice' => 'La modification prendra effet lors de la prochaine livraison le :nextBillingDate. Nos :agb et le :withdrawal s’appliquent.',
'confirm_terms_link' => 'conditions générales',
'confirm_withdrawal_link' => 'droit de rétractation',
'confirm_next_delivery_unknown' => 'prochaine date de livraison',
'confirm_add_cancel' => 'Annuler',
'confirm_add_ok' => 'Mettre à jour avec obligation de paiement',
'add_product' => 'Ajouter le produit',
'product_prices_career_level_info' => 'Les prix produits sont affichés et calculés selon votre niveau de carrière <strong>:user_level_name</strong> moins <strong>:user_level_margin %</strong> de marge.',
'product_prices_career_level_cpay_info' => 'Les prix produits sont affichés comme prix de vente client ; après finalisation du paiement client, vous recevez votre commission selon votre niveau de carrière <strong>:user_level_name</strong>, commission <strong>:user_level_margin %</strong>.',
'error_email_has_abo' => 'Un abonnement existe déjà pour l’adresse e-mail :email.',
'abo_assigned' => 'Abonnement actif',
'base' => 'Base',
'upgrade' => 'Upgrade',
'abo_type_info' => 'Remarque : chaque abonnement se compose au minimum d’un produit de base :base ! <br>Les produits upgrade :upgrade sont optionnels et peuvent être ajoutés à volonté.<br> <strong>L’abonnement a une durée minimale de <strong>:abo-min-duration mois</strong>, puis il peut être mis en pause ou résilié.</strong>',
'abo_type_info_base' => 'L’abonnement nécessite au moins un produit de base :base !',
'need_basis_product' => 'Vous devez avoir au moins un produit de base dans votre abonnement. Veuillez d’abord ajouter un nouveau produit de base puis supprimer l’ancien !',
'abo_item_not_found' => 'Position d’abonnement introuvable',
'product_not_found' => 'Produit introuvable',
'onetime_window_closed' => "La période pour ajouter des produits ponctuels n'est pas ouverte actuellement.",
'onetime_product_not_allowed' => 'Ce produit ne peut pas être ajouté comme article ponctuel.',
'onetime_action_required' => "Aucune action n'a été indiquée.",
'onetime_action_invalid' => 'Action invalide.',
'onetime_qty_required' => 'Veuillez indiquer une quantité valide.',
'onetime_card_hl' => 'Ajouter des produits ponctuels à votre prochaine livraison',
'onetime_card_info' => 'Ajoutez une seule fois des produits de l\'assortiment habituel à votre prochaine livraison d\'abonnement. Vous économisez ainsi des frais de port supplémentaires et recevez tout dans un seul colis.',
'onetime_important_hl' => 'Important :',
'onetime_coverage_hint' => 'Le montant supplémentaire sera débité facilement avec le montant habituel de votre abonnement lors de la prochaine exécution.',
'onetime_reset_hint' => 'Les produits ponctuels sont ajoutés uniquement à votre prochaine livraison puis supprimés automatiquement de l\'abonnement.',
'add_onetime_product' => 'Ajouter un produit ponctuel',
'onetime_subtotal' => 'Sous-total produits ponctuels',
'onetime_confirmed_subtotal' => 'Sous-total confirmé (sera expédié)',
'onetime_pending_subtotal' => 'À confirmer (non contraignant)',
'onetime_new_total' => 'Nouveau total après confirmation',
'onetime_status_confirmed' => 'Confirmé',
'onetime_status_pending' => 'À confirmer',
'onetime_pending_hint' => 'Les produits déjà confirmés seront expédiés avec votre prochaine livraison, que vous confirmiez ou non ces nouveaux produits.',
'onetime_next_delivery_total' => 'Montant total de la prochaine livraison (abonnement + ponctuel)',
'onetime_legal_notice' => 'Les produits ajoutés seront expédiés une seule fois le :nextBillingDate. Nos :agb et le :withdrawal s’appliquent.',
'onetime_discard_changes' => 'Annuler les modifications',
'onetime_confirm_paid' => 'Mettre à jour avec obligation de paiement',
'onetime_confirm_success' => 'Les produits ponctuels ont été réservés avec succès pour votre prochaine livraison.',
'abo_subtotal' => 'Sous-total produits d\'abonnement',
'abo_next_delivery_total' => 'Montant total de la prochaine livraison',
'onetime_empty' => 'Aucun produit ponctuel ajouté pour le moment.',
'onetime_badge' => 'Ponctuel',
'combined_summary_hl' => 'Total de la prochaine livraison',
'create_abo' => 'Créer un abonnement',
'info' => 'Info',
'data' => 'Données',
'check' => 'Vérifier',
'choose' => 'Sélectionner',
'order' => 'commander',
'basis_product' => 'Produit de base',
'upgrade_products' => 'Produits upgrade',
'base_product' => 'Produit de base',
'upgrade_product' => 'Produit upgrade',
'my_address' => 'Mon adresse',
'my_address_check' => 'Vérifier mon adresse',
'my_address_check_info' => 'Veuillez vérifier votre adresse afin de garantir que la marchandise sera envoyée à la bonne adresse.',
'edit' => 'modifier',
'confirm_and_next' => 'confirmer et continuer',
'understood_and_next' => 'compris et continuer',
'change_my_data_empty' => 'Vous n’avez pas encore enregistré d’adresse de facturation et de livraison. Sans celles-ci, vous ne pouvez pas créer d’abonnement ; veuillez les créer.',
'abo_error_basis_product' => 'Erreur : veuillez sélectionner au moins un produit de base.',
'cancel_abo' => 'Résilier l’abonnement',
'confirm_cancel' => 'Voulez-vous vraiment résilier l’abonnement ?',
'retry_payment' => 'Relancer le paiement',
'retry_payment_confirm_title' => 'Veuillez confirmer consciemment',
'retry_payment_confirm_copy' => 'La tentative de paiement démarre immédiatement et peut déclencher un débit PayPal ou carte de crédit. À exécuter uniquement si la cause a été vérifiée.',
'retry_payment_confirm_button' => 'Réessayer le paiement maintenant',
'retry_only_hold' => 'La nouvelle tentative de paiement n’est possible que pour les abonnements en pause.',
'retry_only_active' => 'La nouvelle tentative de paiement n’est possible que pour les abonnements actifs.',
'retry_already_paid_today' => 'Un paiement réussi a déjà été enregistré aujourd’hui pour cet abonnement.',
'retry_error_shopping_user' => 'Le Shopping-User n’a pas pu être créé pour la nouvelle tentative de paiement.',
'retry_error_order' => 'La commande n’a pas pu être créée pour la nouvelle tentative de paiement.',
'retry_success' => 'La nouvelle tentative de paiement a réussi. Commande #:order créée.',
'retry_failed' => 'La nouvelle tentative de paiement a échoué. Commande #:order créée. Erreur : :error',
'retry_exception' => 'La nouvelle tentative de paiement n’a pas pu être finalisée : :error',
'team_subscriptions' => 'Abonnements équipe',
'team_customer_abos' => 'Abonnements clients de l’équipe',
'team_total' => 'Total',
'team_line' => 'Niveau :line',
'filter_period' => 'Période :',
'team_total_abos' => 'Abonnements totaux de l’équipe',
'team_own_abos' => 'Abonnements propres',
'team_members_with_abo' => 'Avec abonnement propre',
'team_by_level' => 'Abonnements par niveau',
'new_this_month' => 'nouveaux ce mois-ci',
'with_own_abo' => 'Avec abonnement propre',
'consultants' => 'Conseillers',
'level' => 'Niveau',
'own_abo' => 'Abonnement propre',
'customer_abos_count' => 'Abonnements clients',
'career_level' => 'Niveau de carrière',
'of' => 'sur',
'yes' => 'Oui',
'no' => 'Non',
'shop_1000' => 'Boutiques 1000 points',
'next_execution' => 'Prochaine exécution',
'executions_count' => 'Exécutions',
'abo_count_points' => 'Points',
'no_own_abo' => 'Aucun abonnement propre.',
'no_customer_abos' => 'Aucun abonnement client.',
'team_growth' => 'Croissance des abonnements (nouveaux par mois)',
'month' => 'Mois',
'new_own_abos' => 'Nouveaux abonnements propres',
'new_customer_abos' => 'Nouveaux abonnements clients',
'new_total' => 'Nouveaux au total',
'filter' => 'Filtrer',
'reset' => 'Réinitialiser',
'filter_added_period' => 'Ajouté durant la période :',
'chart_monthly_abos' => 'Abonnements par mois',
'chart_active_abos' => 'Abonnements actifs',
'chart_abos_label' => 'Abonnements',
'abo_count' => 'Nombre d’abonnements',
'customer_privacy_info' => 'Pour des raisons de protection des données, aucune donnée personnelle client n’est affichée.',
'every_month_on' => 'mensuellement le :day.',
'back' => 'retour',
// Statut / paiement en attente / traité en externe (synchronisé avec de/abo.php)
'abo_extern_done' => 'traité en externe',
'error_user_has_initiated_abo' => 'Un abonnement a déjà été créé pour vous ou son paiement est encore en cours. Veuillez vérifier le statut sous « Mes abonnements ».',
'pending_payment_waiting_title' => 'Abonnement créé - paiement pas encore confirmé',
'pending_payment_waiting_copy' => 'Le paiement a été finalisé. Nous attendons encore le statut de paiement du prestataire de paiement. Tant qu’aucun statut n’est reçu, cette entrée ne peut pas être supprimée.',
'pending_payment_processing_title' => 'Abonnement créé - paiement en cours de traitement',
'pending_payment_processing_copy' => 'Le prestataire de paiement a déjà fourni un statut. Veuillez attendre la confirmation finale du paiement.',
'pending_payment_failed_title' => 'Échec du paiement',
'pending_payment_failed_copy' => 'Le paiement de cet abonnement n’a pas pu être finalisé. Vous pouvez supprimer cette entrée puis recréer l’abonnement.',
'pending_delete_button' => 'Supprimer l’entrée',
'pending_delete_success' => 'L’entrée d’abonnement non confirmée a été supprimée.',
'pending_delete_not_allowed' => 'Cette entrée d’abonnement ne peut pas encore être supprimée, car le paiement n’a pas encore définitivement échoué.',
'payment_link_sent_title' => 'Lien de paiement d’abonnement envoyé',
'payment_link_sent_copy' => 'Le lien de paiement a été envoyé au client. Tant qu’aucun paiement n’a été lancé, cette entrée peut être supprimée.',
'payment_link_processing_copy' => 'Le client a lancé le paiement. Nous attendons le statut de paiement final du prestataire de paiement. Dans cet état, l’entrée ne peut pas être supprimée.',
'payment_link_failed_copy' => 'Le paiement lié à ce lien de paiement d’abonnement a échoué ou a été annulé. Vous pouvez supprimer l’entrée puis créer un nouveau lien de paiement.',
'payment_link_delete_success' => 'Le lien de paiement d’abonnement a été supprimé.',
'payment_link_delete_not_allowed' => 'Ce lien de paiement ne peut actuellement pas être supprimé, car le paiement est déjà en cours ou finalisé.',
'extern_done' => 'Traité en externe',
'extern_done_confirm_title' => 'Marquer la commande comme traitée en externe',
'extern_done_confirm_copy' => 'La commande sera marquée comme livrée et facturée en dehors du système. AUCUNE facture ni AUCUN bon de livraison ne sera généré, le statut reste impayé. Les points de l’abonnement seront crédités et le blocage de l’abonnement sera levé, afin qu’il reprenne normalement à la prochaine échéance.',
'extern_done_confirm_button' => 'Marquer comme traité',
'extern_done_only_abo' => 'Cette action n’est possible que pour les commandes d’abonnement.',
'extern_done_no_order' => 'Aucune commande d’abonnement en attente pouvant être traitée n’a été trouvée.',
'extern_done_already' => 'Cette commande a déjà été marquée comme traitée en externe.',
'extern_done_already_paid' => 'Cette commande est déjà payée et ne peut pas être traitée en externe.',
'extern_done_success' => 'La commande a été marquée comme traitée en externe. Points crédités, blocage levé.',
'extern_done_error' => 'La commande n’a pas pu être marquée comme traitée : :error',
];