Presupuestador_web/client/src/locales/fr.json
David Arranz e332fcba52 feat: enhance chapter management and UI interactions in quotes
- Implement drag-and-drop functionality for chapters using the folder icon as the activator, improving accessibility and user experience.
- Refactor chapter deletion dialog to clearly separate options for keeping or deleting chapter contents, with appropriate translations and UI adjustments.
- Update empty state handling for quotes without items, providing clear actions to add content.
- Adjust translations for clarity and consistency across multiple languages.
- Remove unnecessary empty columns in the chapter details table, streamlining the layout.
- Enhance visual styling with borders and spacing adjustments for better chapter delineation.
- Add tests to cover new functionalities and ensure existing features remain intact.
2026-10-19 17:54:52 +02:00

662 lines
26 KiB
JSON
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.

{
"translation": {
"app_update": {
"available": "Une nouvelle version est disponible.",
"load_error": "Une partie de l’application n’a pas pu être chargée. Rechargez pour réessayer.",
"save_first": "Enregistrez les modifications en attente avant de recharger.",
"reload": "Recharger"
},
"common": {
"required": "obligatoire",
"cancel": "Annuler",
"no": "Non",
"yes": "Oui",
"save": "Enregistrer",
"save_close": "Enregistrer et fermer",
"discard": "Abandonner",
"hide": "Masquer",
"back": "Retour",
"upload": "Téléverser",
"continue": "Continuer",
"close": "Fermer",
"more": "Plus",
"pagination": "Pagination",
"breadcrumb": "Fil d’Ariane",
"previous": "Précédent",
"next": "Suivant",
"more_pages": "Plus de pages",
"previous_slide": "Diapositive précédente",
"next_slide": "Diapositive suivante",
"add": "Ajouter",
"submit": "Envoyer",
"download": "Télécharger",
"help": "Aide",
"select_all": "Tout sélectionner",
"select_row": "Sélectionner la ligne",
"sort_asc": "Croissant",
"sort_asc_description": "Ordre croissant. Cliquez pour trier par ordre décroissant.",
"sort_desc": "Décroissant",
"sort_desc_description": "Ordre décroissant. Cliquez pour trier par ordre croissant.",
"sort_none_description": "Aucun tri. Cliquez pour trier par ordre croissant.",
"rows_selected": "{{count}} ligne(s) sélectionnée(s).",
"rows_selected_of_total": "{{count}} ligne(s) sélectionnée(s) sur {{total}}.",
"rows_per_page": "Lignes par page",
"num_page_of_total": "Page {{count}} sur {{total}}",
"go_to_first_page": "Aller à la première page",
"go_to_prev_page": "Aller à la page précédente",
"go_to_next_page": "Aller à la page suivante",
"go_to_last_page": "Aller à la dernière page",
"error": "Erreur",
"actions": "Actions",
"open_menu": "Ouvrir le menu",
"duplicate_row": "Dupliquer",
"duplicate_selected_rows": "Dupliquer",
"duplicate_selected_rows_tooltip": "Dupliquer les lignes sélectionnées",
"append_empty_row": "Ajouter une ligne",
"append_empty_row_tooltip": "Ajouter une ligne vide",
"append_article": "Ajouter un article",
"append_article_tooltip": "Choisir un article du catalogue et l’ajouter",
"append_block": "Ajouter un bloc de texte",
"append_block_tooltip": "Choisir un bloc de texte et l’ajouter",
"move_row": "Déplacer la ligne",
"remove_row": "Supprimer",
"remove_selected_rows": "Supprimer",
"remove_selected_rows_tooltip": "Supprimer les lignes sélectionnées",
"reset_selected_rows": "Désélectionner",
"reset_selected_rows_tooltip": "Désélectionner les lignes sélectionnées",
"insert_row_above": "Insérer une ligne au-dessus",
"insert_row_below": "Insérer une ligne en dessous",
"pick_date": "Choisir une date",
"today": "Aujourd’hui",
"required_field": "Ce champ est obligatoire",
"edit": "Modifier",
"remove": "Supprimer",
"archive": "Archiver",
"duplicate": "Dupliquer",
"disable_preview": "Masquer l’aperçu",
"enable_preview": "Afficher l’aperçu",
"filter": {
"reset_filter": "Réinitialiser le filtre",
"badget_remove_tooltip": "Retirer ce terme du filtre",
"input_placeholder": "Saisissez du texte pour filtrer…",
"button_add_term": "Ajouter un terme au filtre",
"button_add_term_tooltip": "Ajouter un terme au filtre (ou appuyer sur Entrée)",
"help_text": "Appuyez sur Entrée ou cliquez sur le bouton + pour ajouter un terme au filtre. Utilisez plusieurs termes pour élargir la recherche."
},
"company": "Entreprise",
"phone": "Téléphone",
"name": "Nom",
"identifier": "Identifiant",
"confirmation": "Confirmation",
"product_image": "Image du produit"
},
"components": {
"loading_indicator": {
"title": "Chargement…"
},
"loading_overlay": {
"title": "Chargement…",
"subtitle": "Cela peut prendre quelques secondes. Veuillez ne pas fermer cette page."
},
"error_overlay": {
"title": "Une erreur s’est produite",
"go_home": "Aller à l’accueil"
},
"empty_state": {
"title": "C’est très vide ici",
"subtitle": "Commencez par demander le chargement du catalogue",
"button": "Demander le chargement du catalogue"
},
"data_table": {
"columns": "Colonnes",
"no_results": "Aucun résultat trouvé.",
"clear_filters": "Effacer les filtres",
"selected_count": "{{count}} sélectionné(s)"
},
"sortable_data_table": {
"snooze": "Reporter",
"snooze_until": "Reporter jusqu’à",
"later_today": "Plus tard aujourd’hui",
"tomorrow": "Demain",
"this_weekend": "Ce week-end",
"next_week": "La semaine prochaine",
"reply": "Répondre",
"reply_all": "Répondre à tous",
"forward": "Transférer"
}
},
"hooks": {
"use_unsaved_changes_notifier": {
"title": "Des modifications ont été détectées",
"subtitle": "Attention, des modifications ne sont pas enregistrées sur cette page.\nSi vous continuez, vous les perdrez.",
"confirm_text": "Continuer",
"cancel_text": "Ne pas continuer"
}
},
"main_menu": {
"toggle_navigation": "Basculer le menu de navigation",
"settings": "Paramètres",
"catalog": "Catalogue",
"quotes": "Devis",
"search_placeholder": "Rechercher des produits, devis, etc.",
"user": {
"user_menu": "Menu utilisateur",
"my_account": "Mon compte",
"profile": "Profil",
"settings": "Paramètres",
"support": "Assistance",
"logout": "Se déconnecter"
},
"logout_dialog": {
"title": "Se déconnecter",
"description": "Voulez-vous vous déconnecter ?",
"confirm_label": "Se déconnecter",
"cancel_label": "Annuler"
}
},
"login_page": {
"title": "Outil de devis pour distributeurs",
"description": "Saisissez votre adresse e-mail et votre mot de passe pour accéder",
"email_label": "E-mail",
"email_placeholder": "monemail@exemple.com",
"password_label": "Mot de passe",
"forgotten_password": "Mot de passe oublié ?",
"become_dealer": "Vous souhaitez devenir distributeur Uecko ?",
"contact_us": "Contactez-nous",
"login": "Se connecter",
"invalid_credentials": "L’adresse e-mail ou le mot de passe est incorrect.",
"validation": {
"email_required": "L’adresse e-mail est obligatoire.",
"email_invalid": "Saisissez une adresse e-mail valide.",
"password_required": "Le mot de passe est obligatoire.",
"password_min": "Le mot de passe doit contenir au moins {{count}} caractères.",
"password_alphanum": "Le mot de passe ne peut contenir que des lettres et des chiffres."
}
},
"dashboard": {
"welcome": "Bienvenue"
},
"catalog": {
"list": {
"title": "Catalogue d’articles",
"empty_state": {
"subtitle": "Commencez par charger les articles du catalogue"
},
"columns": {
"description": "Description",
"points": "Points",
"retail_price": "Prix public",
"quantity": "Quantité"
}
}
},
"quotes": {
"list": {
"title": "Devis",
"subtitle": "",
"tabs_title": "États",
"select_status": "Sélectionner un état",
"preview_aria": "Afficher l’aperçu du devis",
"empty_state": {
"subtitle": "Commencez par créer un devis"
},
"status_help": {
"title": "Aide sur le statut des devis",
"intro": "Le statut d’un devis indique sa position actuelle dans le processus commercial.",
"possible": "Les statuts possibles sont :",
"outro": "Utilisez ces statuts pour suivre efficacement vos devis et optimiser votre processus de vente. Le statut Archivé permet de conserver l’historique sans interférer avec les devis actifs."
},
"tabs": {
"all": "Tous",
"draft": "Brouillons",
"ready": "Prêts",
"delivered": "Livrés",
"accepted": "Acceptés",
"rejected": "Refusés",
"archived": "Archivés"
},
"columns": {
"date": "Date",
"date_sent": "Envoyé à Uecko",
"reference": "Référence",
"status": "État",
"customer_reference": "Réf. client",
"customer_information": "Client",
"total_price": "Montant total"
},
"resume": {
"title": "Devis",
"tabs": {
"resume": "Résumé",
"preview": "Aperçu"
},
"quote_information": "Informations",
"customer_information": "Client",
"price_information": "Montants",
"select_quote": "Sélectionnez un devis"
}
},
"notifications": {
"created": "Devis créé",
"saved": "Devis enregistré",
"saving": "Enregistrement du devis"
},
"pdf_generation": {
"title": "Génération du PDF",
"error": "Erreur lors de la génération du PDF",
"progress": "Progression : {{percentage}}%",
"elapsed": "Temps écoulé : {{elapsed}} secondes",
"remaining": "Temps restant estimé : {{estimatedTime}} secondes",
"cancel": "Annuler la génération"
},
"create": {
"title": "Nouveau devis",
"form_groups": {
"general": {
"title": "Données générales",
"desc": "Données générales et client auquel le devis est destiné"
},
"status": {
"title": "État",
"desc": "État du devis"
},
"documents": {
"title": "Documents",
"desc": "Ajoutez à votre devis des documents tels que photos, plans, croquis, etc.",
"images": "Images"
}
}
},
"edit": {
"title": "Devis",
"buttons": {
"save_quote": "Enregistrer le devis"
}
},
"duplicate_action": {
"toast_success": "Devis dupliqué"
},
"downloading_dialog": {
"title": "Téléchargement du devis",
"description": "Veuillez patienter pendant la génération et le téléchargement du devis au format PDF…",
"progress": {
"label": "Le téléchargement est {{status}}",
"status_in_progress": "en cours",
"status_stopped": "arrêté"
},
"cancel_button": "Annuler le téléchargement",
"toast_success": "Devis téléchargé",
"error": "Le devis n’a pas pu être téléchargé. Veuillez réessayer."
},
"catalog_picker_dialog": {
"title": "Sélectionner des articles du catalogue",
"description": "Pour compléter votre devis, vous pouvez ajouter des articles du catalogue.",
"toast_article_added": "Article du catalogue ajouté :"
},
"blocks_picker_dialog": {
"title": "Sélectionner des blocs de texte",
"description": "Pour vous aider à compléter le devis, vous pouvez ajouter des blocs de texte prédéfinis de cette liste.",
"toast_article_added": "Bloc de texte ajouté :"
},
"quote_sent_to_editor": {
"trigger_button": "Envoyer à Uecko",
"title": "Envoyer le devis à Uecko",
"description": "Voulez-vous envoyer ce devis à Uecko ? Cette action est irréversible.",
"toast_status_changed": "Devis envoyé à Uecko"
},
"quote_status_editor": {
"trigger_button": "Changer le statut",
"title": "Changer le statut du devis",
"status": {
"draft": {
"title": "Brouillon",
"description": "Le devis est en cours de création."
},
"ready": {
"title": "Prêt",
"description": "Le devis est complet et prêt à être envoyé au client."
},
"delivered": {
"title": "Envoyé",
"description": "Le devis a été envoyé au client et une réponse est attendue."
},
"accepted": {
"title": "Accepté",
"description": "Le client a approuvé le devis."
},
"rejected": {
"title": "Refusé",
"description": "Le client n’a pas accepté le devis."
},
"archived": {
"title": "Archivé",
"description": "Le devis a été conservé pour référence future."
}
},
"submit_button": "Changer le statut",
"toast_status_changed": "Statut du devis modifié : {{newStatus}}"
},
"discount_column": {
"label": "Afficher la colonne de remise",
"description": "Afficher ou masquer la colonne de remise dans les lignes.",
"confirmation": {
"title": "Masquer les remises par ligne",
"description": "Certaines lignes comportent une remise. Masquer la colonne ne supprimera pas ces remises : elles continueront à être prises en compte dans le montant du devis, mais ne seront plus affichées dans les lignes ni dans le PDF.",
"confirm": "Masquer la colonne"
}
},
"additional_currency": {
"title": "Devise supplémentaire",
"description": "Afficher, si nécessaire, le montant total du devis dans une autre devise.",
"enabled": "Afficher dans une autre devise",
"currency": "Devise",
"date": "Date du taux de change",
"rate": "Taux de change (1 EUR = …)",
"refresh": "Actualiser le taux de change",
"total": "Total en {{code}}"
},
"inline_row_actions": {
"delete_confirmation": {
"title": "Supprimer la ligne",
"description": "Voulez-vous vraiment supprimer cette ligne ? Cette action est irréversible.",
"confirm": "Supprimer la ligne"
}
},
"status": {
"draft": "Brouillon",
"ready": "Prêt",
"delivered": "Livré",
"accepted": "Accepté",
"rejected": "Refusé",
"archived": "Archivé"
},
"form_fields": {
"date": {
"label": "Date",
"desc": "Date de ce devis",
"placeholder": ""
},
"reference": {
"label": "Référence",
"desc": "Référence de ce devis",
"placeholder": ""
},
"lang_code": {
"label": "Langue du document",
"desc": "Langue utilisée pour générer le devis au format PDF",
"placeholder": "",
"options": {
"es": "Espagnol",
"en": "Anglais",
"fr": "Français"
}
},
"currency_code": {
"label": "Devise",
"desc": "Devise du devis",
"placeholder": ""
},
"customer_reference": {
"label": "Référence client",
"desc": "Référence client de ce devis",
"placeholder": ""
},
"customer_information": {
"label": "Informations client",
"desc": "Indiquez le nom, l’adresse, le code postal et la ville du client.",
"placeholder": "Nom et prénom\nRue et numéro\nCode postal et ville…"
},
"payment_method": {
"label": "Mode de paiement",
"placeholder": "",
"desc": "Mode de paiement utilisé pour ce devis"
},
"notes": {
"label": "Notes",
"placeholder": "",
"desc": "Notes à inclure dans le devis"
},
"validity": {
"label": "Validité du devis",
"placeholder": "",
"desc": "Validité de ce devis"
},
"subtotal_price": {
"label": "Montant net",
"placeholder": "",
"desc": "Sous-total du devis"
},
"discount": {
"label": "Remise (%)",
"placeholder": "",
"desc": "Pourcentage de remise"
},
"discount_value": {
"label": "Remise ({{value}}%)",
"placeholder": "",
"desc": "Pourcentage de remise"
},
"discount_price": {
"label": "Montant de la remise",
"placeholder": "",
"desc": "Montant de la remise"
},
"before_tax_price": {
"label": "Base imposable",
"placeholder": "",
"desc": "Base imposable"
},
"tax": {
"label": "Taxe (%)",
"placeholder": "",
"desc": "Pourcentage de taxe"
},
"tax_value": {
"label": "{{label}} ({{value}}%)",
"placeholder": "",
"desc": "Pourcentage de taxe"
},
"tax_price": {
"label": "Montant de la taxe",
"placeholder": "",
"desc": "Montant de la taxe"
},
"total_price": {
"label": "Montant total",
"placeholder": "",
"desc": "Montant total"
},
"items": {
"quantity": {
"label": "Quantité",
"placeholder": "",
"desc": ""
},
"description": {
"label": "Description",
"placeholder": "",
"desc": ""
},
"unit_price": {
"label": "Prix unitaire",
"placeholder": "",
"desc": "Prix unitaire de l’article"
},
"subtotal_price": {
"label": "Sous-total",
"placeholder": "",
"desc": ""
},
"discount": {
"label": "Remise (%)",
"placeholder": "",
"desc": "Pourcentage de remise"
},
"total_price": {
"label": "Montant total",
"placeholder": "",
"desc": "Montant total après application de la remise"
}
}
},
"empty_details": {
"title": "Ce devis ne contient encore aucune ligne",
"description": "Ajoutez une ligne vide, choisissez des articles du catalogue ou insérez un bloc de texte."
},
"chapters": {
"add": "Ajouter un chapitre",
"create_description": "La création du premier chapitre regroupe tous les détails existants.",
"description": "Description",
"title": "Titre du chapitre {{number}}",
"title_required": "La description du chapitre est obligatoire.",
"select": "Sélectionner le chapitre {{number}}",
"folder_help": "Faites glisser pour déplacer tout le chapitre. Clic ou Entrée pour replier/déplier ; Espace pour déplacer au clavier.",
"move": "Déplacer le chapitre {{number}}",
"collapse": "Replier le chapitre {{number}}",
"expand": "Déplier le chapitre {{number}}",
"duplicate": "Dupliquer le chapitre {{number}}",
"remove": "Supprimer le chapitre {{number}}",
"subtotal": "Sous-total du chapitre {{number}}. {{description}}",
"empty_title": "Ce chapitre ne contient aucun détail",
"empty": "Ajoutez une ligne, des articles ou un bloc de texte, ou glissez des détails ici.",
"select_details": "Sélectionner les détails du chapitre {{number}}",
"show_amounts": "Montants par ligne en PDF",
"mixed_selection": "Pour déplacer la sélection, sélectionnez uniquement des chapitres ou uniquement des détails.",
"drag_instructions": "Appuyez sur espace pour commencer, utilisez les flèches haut et bas, puis appuyez à nouveau sur espace pour déposer. Échap annule.",
"drag_start": "Déplacement commencé.",
"drag_over": "Destination du déplacement mise à jour.",
"drag_end": "Déplacement terminé.",
"drag_cancel": "Déplacement annulé.",
"delete_chapter_title": "Supprimer le chapitre",
"delete_chapter_description": "Lignes concernées : {{details}}. Choisissez de les conserver ou de les supprimer.",
"delete_details_description": "Lignes sélectionnées : {{details}}. Seules ces lignes seront supprimées ; leurs chapitres seront conservés.",
"keep_details_title": "Conserver les lignes",
"choose_destination": "Sélectionnez un autre chapitre",
"transfer_description": "Le chapitre sera retiré. Ses lignes seront déplacées vers la destination choisie et conserveront leurs montants.",
"transfer_action": "Déplacer les lignes et retirer le chapitre",
"keep_ungroup_description": "C’est le dernier chapitre. En le retirant, ses lignes ne seront plus regroupées et conserveront leurs montants.",
"keep_ungroup_action": "Retirer le chapitre et conserver les lignes",
"delete_all_title": "Supprimer le chapitre et ses lignes",
"delete_all_description": "Le chapitre et toutes ses lignes seront supprimés du devis.",
"delete_title": "Supprimer la sélection",
"delete_description": "La sélection concerne {{chapters}} chapitres et {{details}} détails. Vous pouvez supprimer le contenu ou le conserver en retirant un chapitre.",
"destination": "Chapitre de destination",
"transfer": "Déplacer et conserver les détails",
"ungroup": "Retirer tous les chapitres",
"ungroup_keep": "Retirer les chapitres et conserver les détails",
"delete_content": "Supprimer le contenu sélectionné",
"ungroup_description": "Tous les chapitres seront retirés. Les détails, leurs montants et leur ordre seront conservés."
}
},
"settings": {
"edit": {
"title": "Paramètres",
"tabs": {
"profile": "Paramètres du profil",
"quotes": "Paramètres des devis",
"legal": "Paramètres juridiques"
}
},
"form_fields": {
"language": {
"label": "Langue",
"placeholder": "Sélectionnez une langue",
"desc": "Langue préférée de l’interface",
"options": {
"es": "Espagnol",
"en": "Anglais",
"fr": "Français"
}
},
"logo": {
"label": "Logo",
"desc": "Ce logo apparaîtra dans les propositions exportées au format PDF",
"requirements": "Les fichiers JPG ou PNG sont acceptés.",
"upload": "Téléverser le logo",
"invalid_format": "Seuls les fichiers JPG ou PNG sont acceptés",
"invalid_dimensions": "Les dimensions du logo sont invalides."
},
"contact_information": {
"label": "Informations de contact",
"placeholder": "",
"desc": "Ces coordonnées apparaîtront dans les devis remis à vos clients."
},
"default_tax": {
"label": "Taxe par défaut (%)",
"placeholder": "",
"desc": "Pourcentage de taxe par défaut dans les devis"
},
"default_tax_label": {
"placeholder": "% TVA",
"desc": "Libellé affiché à côté de la taxe"
},
"default_show_line_discount_column": {
"label": "Afficher la colonne de remise par défaut",
"desc": "Les nouveaux devis afficheront initialement la colonne de remise."
},
"default_legal_terms": {
"label": "Clauses juridiques",
"placeholder": "",
"desc": "Texte juridique à inclure dans les nouveaux devis"
},
"default_payment_method": {
"label": "Mode de paiement",
"placeholder": "",
"desc": "Texte utilisé dans les nouveaux devis"
},
"default_notes": {
"label": "Notes",
"placeholder": "",
"desc": "Notes à inclure dans les nouveaux devis"
},
"default_quote_validity": {
"label": "Validité par défaut",
"placeholder": "",
"desc": "Durée de validité du devis"
}
},
"notifications": {
"saved": "Paramètres enregistrés",
"saving": "Enregistrement des paramètres"
}
},
"support": {
"modal": {
"title": "Envoyer une incidence",
"subtitle": "Utilisez ce formulaire pour signaler un problème rencontré pendant l’utilisation de l’application.",
"open": "Ouvrir la fenêtre d’assistance",
"placeholder": "Décrivez l’incidence ici…",
"submit": "Envoyer l’incidence",
"validation": {
"empty": "Vous devez écrire quelque chose avant d’envoyer",
"min": "Le texte est trop court.",
"max": "Le texte est trop long.",
"required": "La description est obligatoire"
},
"notifications": {
"sent_title": "Incident envoyé",
"sent_description": "L’incident a été envoyé correctement",
"error_title": "Erreur d’envoi",
"error_description": "L’incident n’a pas pu être envoyé. Veuillez réessayer."
},
"cancel_confirmation": {
"title": "Voulez-vous annuler ?",
"description": "Vous perdrez les modifications non enregistrées.",
"back": "Retour au formulaire",
"confirm": "Oui, fermer"
}
},
"form_fields": {}
},
"app": {
"title": "Outil de devis Uecko",
"javascript_required": "Vous devez activer JavaScript pour utiliser cette application."
},
"error_page": {
"title": "Page introuvable",
"description": "La page que vous recherchez n’existe pas ou a été déplacée.",
"go_home": "Aller à l’accueil"
}
}
}