<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="fr_FR">
<context>
    <name>AdditionalFilesPage</name>
    <message>
        <location filename="../tabs/picture_tab.py" line="1690"/>
        <source>Additional Files</source>
        <translation>Fichiers Supplémentaires</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1691"/>
        <source>Add additional files and folders to your project</source>
        <translation>Ajoutez des fichiers et dossiers supplémentaires à votre projet</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1698"/>
        <source>Add Files</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1701"/>
        <source>Add Folder</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1711"/>
        <source>Selected Files and Folders:</source>
        <translation>Fichiers et Dossiers Sélectionnés :</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1716"/>
        <source>Remove Selected</source>
        <translation>Supprimer la Sélection</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1727"/>
        <source>Select Additional Files</source>
        <translation>Fichiers Supplémentaires</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1730"/>
        <source>Supported files (*.png *.jpg *.jpeg *.docx *.txt)</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1744"/>
        <source>Select Folder</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>AttachmentsPage</name>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1890"/>
        <source>Step 4: Attachments</source>
        <translation>Étape 4 : Pièces Jointes</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1891"/>
        <source>Add static attachments (optional)</source>
        <translation>Ajouter des pièces jointes statiques (optionnel)</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1900"/>
        <source>Select any files you want to attach to all emails. These will be the same for every recipient. You can add, remove, or modify attachments later.</source>
        <translation>Sélectionnez tous les fichiers que vous souhaitez joindre à tous les emails. Ils seront identiques pour chaque destinataire. Vous pourrez ajouter, supprimer ou modifier les pièces jointes plus tard.</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1906"/>
        <source>Add Files...</source>
        <translation>Ajouter des Fichiers...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1909"/>
        <source>Remove Selected</source>
        <translation>Supprimer la Sélection</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1922"/>
        <source>Selected attachments:</source>
        <translation>Pièces jointes sélectionnées :</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1933"/>
        <source>Select Attachment Files</source>
        <translation>Sélectionner les Fichiers de Pièces Jointes</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1936"/>
        <source>All Files (*)</source>
        <translation>Tous les Fichiers (*)</translation>
    </message>
</context>
<context>
    <name>CampaignTab</name>
    <message>
        <location filename="../tabs/campaign_tab.py" line="48"/>
        <location filename="../tabs/campaign_tab.py" line="1481"/>
        <source>📁 Campaign Folder</source>
        <translation>📁 Dossier de Campagne</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="55"/>
        <location filename="../tabs/campaign_tab.py" line="1456"/>
        <source>Select your campaign folder...</source>
        <translation>Sélectionnez votre dossier de campagne...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="58"/>
        <location filename="../tabs/campaign_tab.py" line="143"/>
        <location filename="../tabs/campaign_tab.py" line="209"/>
        <location filename="../tabs/campaign_tab.py" line="242"/>
        <location filename="../tabs/campaign_tab.py" line="1497"/>
        <location filename="../tabs/campaign_tab.py" line="1509"/>
        <location filename="../tabs/campaign_tab.py" line="1511"/>
        <location filename="../tabs/campaign_tab.py" line="1513"/>
        <source>Browse...</source>
        <translation>Parcourir...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="64"/>
        <location filename="../tabs/campaign_tab.py" line="1499"/>
        <source>Save As...</source>
        <translation>Enregistrer sous...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="70"/>
        <location filename="../tabs/campaign_tab.py" line="1501"/>
        <source>Create New...</source>
        <translation>Créer nouveau...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="87"/>
        <location filename="../tabs/campaign_tab.py" line="1483"/>
        <source>📊 Campaign Status</source>
        <translation>📊 Statut de la Campagne</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="101"/>
        <location filename="../tabs/campaign_tab.py" line="1462"/>
        <source>No campaign loaded</source>
        <translation>Aucune campagne chargée</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="130"/>
        <location filename="../tabs/campaign_tab.py" line="1485"/>
        <source>👥 Recipients Preview</source>
        <translation>👥 Aperçu des Destinataires</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="136"/>
        <location filename="../tabs/campaign_tab.py" line="1503"/>
        <source>Edit Recipients</source>
        <translation>Modifier les Destinataires</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="197"/>
        <location filename="../tabs/campaign_tab.py" line="1487"/>
        <source>📄 Subject Line</source>
        <translation>📄 Ligne d'Objet</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="203"/>
        <location filename="../tabs/campaign_tab.py" line="1505"/>
        <source>Edit Subject</source>
        <translation>Modifier l'Objet</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="223"/>
        <location filename="../tabs/campaign_tab.py" line="1477"/>
        <source>No subject loaded</source>
        <translation>Aucun objet chargé</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="230"/>
        <location filename="../tabs/campaign_tab.py" line="1489"/>
        <source>📝 Message Template</source>
        <translation>📝 Modèle de Message</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="255"/>
        <location filename="../tabs/campaign_tab.py" line="1525"/>
        <source>Message template will appear here...</source>
        <translation>Le modèle de message apparaîtra ici...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="263"/>
        <location filename="../tabs/campaign_tab.py" line="1491"/>
        <source>📎 Attachments</source>
        <translation>📎 Pièces Jointes</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="270"/>
        <location filename="../tabs/campaign_tab.py" line="1515"/>
        <source>Add</source>
        <translation>Ajouter</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="276"/>
        <location filename="../tabs/campaign_tab.py" line="1517"/>
        <source>Open</source>
        <translation>Ouvrir</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="282"/>
        <location filename="../tabs/campaign_tab.py" line="1519"/>
        <source>Delete</source>
        <translation>Supprimer</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="405"/>
        <source>Required file missing: recipients.csv</source>
        <translation>Fichier requis manquant : recipients.csv</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="406"/>
        <source>Required file missing: subject.txt</source>
        <translation>Fichier requis manquant : subject.txt</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="407"/>
        <source>Message file missing: either msg.txt or msg.docx is required</source>
        <translation>Fichier de message manquant : msg.txt ou msg.docx est requis</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="408"/>
        <source>Multiple message files found: only one of msg.txt or msg.docx should exist. Please remove one.</source>
        <translation>Plusieurs fichiers de message trouvés : seul msg.txt ou msg.docx devrait exister. Veuillez en supprimer un.</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="411"/>
        <source>&apos;recipients.csv&apos; exists but is not a file</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="412"/>
        <source>&apos;subject.txt&apos; exists but is not a file</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="413"/>
        <source>&apos;attachments&apos; exists but is not a folder</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="416"/>
        <source>recipients.csv is empty</source>
        <translation>recipients.csv est vide</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="417"/>
        <source>recipients.csv must contain an &apos;email&apos; column</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="418"/>
        <source>CSV must have at least one column when picture generator projects exist</source>
        <translation>Le CSV doit avoir au moins une colonne quand des projets de générateur d'images existent</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="419"/>
        <source>Primary key (first column) cannot be &apos;email&apos; when picture generator projects exist. Please use an ID column as the first column.</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="420"/>
        <source>No valid recipients found in CSV file</source>
        <translation>Aucun destinataire valide trouvé dans le fichier CSV</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="423"/>
        <source>Subject file (subject.txt) is empty</source>
        <translation>Le fichier d'objet (subject.txt) est vide</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="424"/>
        <source>Subject file (subject.txt) must contain only one line. Email subjects cannot be multi-line.</source>
        <translation>Le fichier d'objet (subject.txt) ne doit contenir qu'une seule ligne. Les objets d'email ne peuvent pas être multi-lignes.</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="425"/>
        <source>Subject file (subject.txt) contains line breaks. Only the first non-empty line will be used as the email subject.</source>
        <translation>Le fichier d'objet (subject.txt) contient des sauts de ligne. Seule la première ligne non vide sera utilisée comme objet de l'email.</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="439"/>
        <source>Required file missing: {filename}</source>
        <translation>Fichier requis manquant : {filename}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="445"/>
        <source>&apos;{filename}&apos; exists but is not a file</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="451"/>
        <source>Attachment file not found: {filename}</source>
        <translation>Fichier de pièce jointe introuvable : {filename}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="457"/>
        <source>Cannot read attachment file: {filename}</source>
        <translation>Impossible de lire le fichier de pièce jointe : {filename}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="463"/>
        <source>Potentially blocked file type: {filename} ({ext})</source>
        <translation>Type de fichier potentiellement bloqué : {filename} ({ext})</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="469"/>
        <source>Empty email in data row {row}</source>
        <translation>Email vide dans la ligne de données {row}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="475"/>
        <source>Invalid email &apos;{email}&apos; in data row {row}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="481"/>
        <source>Duplicate email &apos;{email}&apos; found in data rows {row1} and {row2}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="487"/>
        <source>Template reference &apos;{ref}&apos; in {filename} not found in CSV columns</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="684"/>
        <location filename="../tabs/campaign_tab.py" line="1468"/>
        <source>No campaign loaded
Select a campaign folder to view recipients</source>
        <translation>Aucune campagne chargée
Sélectionnez un dossier de campagne pour voir les destinataires</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="877"/>
        <source>Recipients Updated</source>
        <translation>Destinataires Mis à Jour</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="878"/>
        <source>Recipients file successfully replaced with:
{filename}</source>
        <translation>Fichier des destinataires remplacé avec succès par :
{filename}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="886"/>
        <location filename="../tabs/campaign_tab.py" line="922"/>
        <location filename="../tabs/campaign_tab.py" line="974"/>
        <source>Replace Error</source>
        <translation>Erreur de Remplacement</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="887"/>
        <source>Failed to replace recipients file:
{error}</source>
        <translation>Échec du remplacement du fichier des destinataires :
{error}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="913"/>
        <source>Subject Updated</source>
        <translation>Objet Mis à Jour</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="914"/>
        <source>Subject file successfully replaced with:
{filename}</source>
        <translation>Fichier d'objet remplacé avec succès par :
{filename}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="923"/>
        <source>Failed to replace subject file:
{error}</source>
        <translation>Échec du remplacement du fichier d'objet :
{error}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="964"/>
        <source>Message Updated</source>
        <translation>Message Mis à Jour</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="965"/>
        <source>Message file successfully replaced with:
{source}
Saved as: {dest}</source>
        <translation>Fichier de message remplacé avec succès par :
{source}
Enregistré sous : {dest}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="975"/>
        <source>Failed to replace message file:
{error}</source>
        <translation>Échec du remplacement du fichier de message :
{error}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1019"/>
        <location filename="../tabs/campaign_tab.py" line="1475"/>
        <source>No subject.txt file found</source>
        <translation>Aucun fichier subject.txt trouvé</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1094"/>
        <source>Delete Attachments</source>
        <translation>Supprimer les Pièces Jointes</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1095"/>
        <source>Are you sure you want to delete {count} attachment(s)?

{files}</source>
        <translation>Êtes-vous sûr de vouloir supprimer {count} pièce(s) jointe(s) ?

{files}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1102"/>
        <source>Yes</source>
        <translation>Oui</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1103"/>
        <source>No</source>
        <translation>Non</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1123"/>
        <source>Delete Error</source>
        <translation>Erreur de Suppression</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1124"/>
        <source>Failed to delete attachments:
{error}</source>
        <translation>Échec de la suppression des pièces jointes :
{error}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1254"/>
        <source>✅ Campaign: {folder_name}</source>
        <translation>✅ Campagne : {folder_name}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1256"/>
        <source>❌ Campaign: {folder_name} (Has Issues)</source>
        <translation>❌ Campagne : {folder_name} (A des Problèmes)</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1261"/>
        <source>👥 Recipients: {count}</source>
        <translation>👥 Destinataires : {count}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1264"/>
        <source>❌ No recipients.csv found</source>
        <translation>❌ Aucun recipients.csv trouvé</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1268"/>
        <source>✅ Subject template found</source>
        <translation>✅ Modèle d'objet trouvé</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1270"/>
        <source>❌ No subject.txt found</source>
        <translation>❌ Aucun subject.txt trouvé</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1273"/>
        <source>✅ Message template: .docx (formatted)</source>
        <translation>✅ Modèle de message : .docx (formaté)</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1276"/>
        <source>✅ Message template: .txt (plain)</source>
        <translation>✅ Modèle de message : .txt (simple)</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1279"/>
        <source>❌ No message template found</source>
        <translation>❌ Aucun modèle de message trouvé</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1284"/>
        <source>📎 Attachments: {count} files</source>
        <translation>📎 Pièces jointes : {count} fichiers</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1287"/>
        <source>📎 No attachments folder</source>
        <translation>📎 Aucun dossier de pièces jointes</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1289"/>
        <source>No attachments folder found</source>
        <translation>Aucun dossier de pièces jointes trouvé</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1293"/>
        <source>🖼️ Picture projects: {count}</source>
        <translation>🖼️ Projets d'images : {count}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1295"/>
        <source>🖼️ No picture generator</source>
        <translation>🖼️ Aucun générateur d'images</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1390"/>
        <source>📄 DOCX Template Detected

This is a formatted document template (.docx) that contains:
• Rich text formatting (bold, italic, colors)
• Tables and structured content
• Template variables like {{name}}, {{email}}

The actual formatted content would be processed when sending emails.</source>
        <translation>📄 Modèle DOCX Détecté

Ceci est un modèle de document formaté (.docx) qui contient :
• Formatage de texte enrichi (gras, italique, couleurs)
• Tableaux et contenu structuré
• Variables de modèle comme {{name}}, {{email}}

Le contenu formaté réel sera traité lors de l'envoi des emails.</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1493"/>
        <source>🔍 Validation Issues</source>
        <translation>🔍 Problèmes de Validation</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1507"/>
        <source>Edit Message</source>
        <translation>Modifier le Message</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1523"/>
        <source>Enter email subject line...</source>
        <translation>Saisissez la ligne d'objet de l'email...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1531"/>
        <source>✅ No validation issues found</source>
        <translation>✅ Aucun problème de validation trouvé</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1568"/>
        <source>Create New Campaign</source>
        <translation>Créer une Nouvelle Campagne</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1571"/>
        <source>&lt; Back</source>
        <translation>&lt; Retour</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1572"/>
        <source>Next &gt;</source>
        <translation>Suivant &gt;</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1573"/>
        <source>Create Campaign</source>
        <translation>Créer la Campagne</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1574"/>
        <source>Cancel</source>
        <translation>Annuler</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1697"/>
        <source>Step 1: Select Destination</source>
        <translation>Étape 1 : Sélectionner la Destination</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1698"/>
        <source>Choose where to create your new campaign</source>
        <translation>Choisissez où créer votre nouvelle campagne</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1800"/>
        <source>Step 2: Recipients</source>
        <translation>Étape 2 : Destinataires</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1801"/>
        <source>Import your recipient data</source>
        <translation>Importez vos données de destinataires</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1881"/>
        <source>Step 3: Message and Subject</source>
        <translation>Étape 3 : Message et Objet</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1882"/>
        <source>Create your email content</source>
        <translation>Créez le contenu de votre email</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1958"/>
        <source>Step 4: Attachments</source>
        <translation>Étape 4 : Pièces Jointes</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1959"/>
        <source>Add files to include with your emails (optional)</source>
        <translation>Ajouter des fichiers à inclure avec vos emails (optionnel)</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>Select a CSV file containing your recipients. The file should include an 'email' column and any other data you want to personalize your messages with (like name, company, etc.).</source>
        <translation>Sélectionnez un fichier CSV contenant vos destinataires. Le fichier doit inclure une colonne 'email' et toutes autres données que vous souhaitez utiliser pour personnaliser vos messages (comme nom, entreprise, etc.).</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>'recipients.csv' exists but is not a file</source>
        <translation>'recipients.csv' existe mais n'est pas un fichier</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>'subject.txt' exists but is not a file</source>
        <translation>'subject.txt' existe mais n'est pas un fichier</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>'attachments' exists but is not a folder</source>
        <translation>'attachments' existe mais n'est pas un dossier</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>recipients.csv must contain an 'email' column</source>
        <translation>recipients.csv doit contenir une colonne 'email'</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>Primary key (first column) cannot be 'email' when picture generator projects exist. Please use an ID column as the first column.</source>
        <translation>La clé primaire (première colonne) ne peut pas être 'email' quand des projets de générateur d'images existent. Veuillez utiliser une colonne ID comme première colonne.</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>'{filename}' exists but is not a file</source>
        <translation>'{filename}' existe mais n'est pas un fichier</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>Invalid email '{email}' in data row {row}</source>
        <translation>Email invalide '{email}' dans la ligne de données {row}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>Duplicate email '{email}' found in data rows {row1} and {row2}</source>
        <translation>Email dupliqué '{email}' trouvé dans les lignes de données {row1} et {row2}</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>Template reference '{ref}' in {filename} not found in CSV columns</source>
        <translation>Référence de modèle '{ref}' dans {filename} introuvable dans les colonnes CSV</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>Found {error_count} error(s) and {warning_count} warning(s)</source>
        <translation>Trouvé {error_count} erreur(s) et {warning_count} avertissement(s)</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>Found {error_count} error(s)</source>
        <translation>Trouvé {error_count} erreur(s)</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1"/>
        <source>Found {warning_count} warning(s)</source>
        <translation>Trouvé {warning_count} avertissement(s)</translation>
    </message>
</context>
<context>
    <name>CreateCampaignWizard</name>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1539"/>
        <source>Create New Campaign</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1546"/>
        <source>&lt; Back</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1547"/>
        <source>Next &gt;</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1548"/>
        <source>Create Campaign</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1549"/>
        <source>Cancel</source>
        <translation>Annuler</translation>
    </message>
</context>
<context>
    <name>CreateProjectWizard</name>
    <message>
        <location filename="../tabs/picture_tab.py" line="1464"/>
        <source>Create Picture Generator Project</source>
        <translation>Créer un Projet de Générateur d'Images</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1469"/>
        <source>&lt; Back</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1470"/>
        <source>Next &gt;</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1471"/>
        <source>Finish</source>
        <translation>Terminer</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1472"/>
        <source>Cancel</source>
        <translation>Annuler</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1493"/>
        <location filename="../tabs/picture_tab.py" line="1502"/>
        <location filename="../tabs/picture_tab.py" line="1515"/>
        <location filename="../tabs/picture_tab.py" line="1537"/>
        <source>Error</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1494"/>
        <source>Please enter a project name</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1496"/>
        <location filename="../tabs/picture_tab.py" line="1505"/>
        <location filename="../tabs/picture_tab.py" line="1518"/>
        <location filename="../tabs/picture_tab.py" line="1529"/>
        <location filename="../tabs/picture_tab.py" line="1540"/>
        <source>OK</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1503"/>
        <source>Please select a template image</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1516"/>
        <source>Project &apos;{project_name}&apos; already exists</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1526"/>
        <source>Success</source>
        <translation>Succès</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1527"/>
        <source>Project &apos;{project_name}&apos; created successfully!</source>
        <translation>Projet '{project_name}' créé avec succès !</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1538"/>
        <source>Failed to create project: {str(e)}</source>
        <translation>Échec de la création du projet : {str(e)}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>&lt; Back</source>
        <translation>&lt; Précédent</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Next &gt;</source>
        <translation>Suivant &gt;</translation>
    </message>
</context>
<context>
    <name>DestinationPage</name>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1646"/>
        <source>Step 1: Select Destination</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1647"/>
        <source>Choose where to create your new campaign</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1656"/>
        <source>Select or create a folder where your campaign files will be stored. This folder will contain all your campaign data including recipients, message templates, and attachments.</source>
        <translation>Sélectionnez ou créez un dossier où vos fichiers de campagne seront stockés. Ce dossier contiendra toutes vos données de campagne, y compris les destinataires, les modèles de messages et les pièces jointes.</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1663"/>
        <source>Select destination folder...</source>
        <translation>Sélectionnez le dossier de destination...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1666"/>
        <source>Browse...</source>
        <translation>Parcourir...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1685"/>
        <source>Select Campaign Destination Folder</source>
        <translation>Sélectionner le Dossier de Destination de la Campagne</translation>
    </message>
</context>
<context>
    <name>EmailerMainWindow</name>
    <message>
        <location filename="../main_window.py" line="87"/>
        <location filename="../main_window.py" line="250"/>
        <source>📁 Campaign</source>
        <translation>📁 Campagne</translation>
    </message>
    <message>
        <location filename="../main_window.py" line="88"/>
        <location filename="../main_window.py" line="251"/>
        <source>🖼️ Pictures</source>
        <translation>🖼️ Images</translation>
    </message>
    <message>
        <location filename="../main_window.py" line="89"/>
        <location filename="../main_window.py" line="252"/>
        <source>🚀 Send</source>
        <translation>🚀 Envoi</translation>
    </message>
    <message>
        <location filename="../main_window.py" line="90"/>
        <location filename="../main_window.py" line="253"/>
        <source>📧 SMTP</source>
        <translation>📧 SMTP</translation>
    </message>
    <message>
        <location filename="../main_window.py" line="120"/>
        <location filename="../main_window.py" line="181"/>
        <location filename="../main_window.py" line="233"/>
        <source>Ready - Select a campaign folder to get started</source>
        <translation>Prêt - Sélectionnez un dossier de campagne pour commencer</translation>
    </message>
</context>
<context>
    <name>MessagePage</name>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1809"/>
        <source>Step 3: Message and Subject</source>
        <translation>Étape 3 : Message et Objet</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1810"/>
        <source>Set up your email content</source>
        <translation>Configurez le contenu de votre email</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1818"/>
        <source>Select your message template file and enter the email subject line. You can use {{variable}} syntax to personalize content with recipient data.</source>
        <translation>Sélectionnez votre fichier de modèle de message et saisissez la ligne d'objet de l'email. Vous pouvez utiliser la syntaxe {{variable}} pour personnaliser le contenu avec les données des destinataires.</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1823"/>
        <source>Message Template</source>
        <translation>Modèle de Message</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1828"/>
        <source>Select message template (.txt or .docx)...</source>
        <translation>Sélectionnez le modèle de message (.txt ou .docx)...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1831"/>
        <source>Browse...</source>
        <translation>Parcourir...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1840"/>
        <source>Subject Line</source>
        <translation>Ligne d'Objet</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1844"/>
        <source>Enter email subject line...</source>
        <translation>Saisissez la ligne d'objet de l'email...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1864"/>
        <source>Select Message Template File</source>
        <translation>Sélectionner le Fichier de Modèle de Message</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1867"/>
        <source>All Message Files (*.txt *.docx);;Text Files (*.txt);;Word Documents (*.docx);;All Files (*)</source>
        <translation>Tous les Fichiers de Message (*.txt *.docx);;Fichiers Texte (*.txt);;Documents Word (*.docx);;Tous les Fichiers (*)</translation>
    </message>
</context>
<context>
    <name>PictureTab</name>
    <message>
        <location filename="../tabs/picture_tab.py" line="66"/>
        <location filename="../tabs/picture_tab.py" line="942"/>
        <source>🖼️ Picture Generator Projects</source>
        <translation>🖼️ Projets Générateur d'Images</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="75"/>
        <location filename="../tabs/picture_tab.py" line="956"/>
        <source>Create</source>
        <translation>Créer</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="79"/>
        <location filename="../tabs/picture_tab.py" line="958"/>
        <source>Duplicate</source>
        <translation>Dupliquer</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="84"/>
        <location filename="../tabs/picture_tab.py" line="960"/>
        <source>Delete</source>
        <translation>Supprimer</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="148"/>
        <location filename="../tabs/picture_tab.py" line="944"/>
        <source>📋 Project Properties</source>
        <translation>📋 Propriétés du Projet</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="185"/>
        <location filename="../tabs/picture_tab.py" line="203"/>
        <location filename="../tabs/picture_tab.py" line="962"/>
        <location filename="../tabs/picture_tab.py" line="966"/>
        <source>Browse</source>
        <translation>Parcourir</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="189"/>
        <location filename="../tabs/picture_tab.py" line="207"/>
        <location filename="../tabs/picture_tab.py" line="229"/>
        <location filename="../tabs/picture_tab.py" line="964"/>
        <location filename="../tabs/picture_tab.py" line="968"/>
        <location filename="../tabs/picture_tab.py" line="974"/>
        <source>Open</source>
        <translation>Ouvrir</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="221"/>
        <location filename="../tabs/picture_tab.py" line="970"/>
        <source>Add Files</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="225"/>
        <location filename="../tabs/picture_tab.py" line="972"/>
        <source>Add Folder</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="241"/>
        <source>Additional Files:</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="261"/>
        <location filename="../tabs/picture_tab.py" line="986"/>
        <source>Email Attachment:</source>
        <translation>Pièce Jointe Email :</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="264"/>
        <location filename="../tabs/picture_tab.py" line="982"/>
        <source>Attach generated images to emails</source>
        <translation>Joindre les images générées aux emails</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="275"/>
        <location filename="../tabs/picture_tab.py" line="946"/>
        <source>📚 User Help &amp; Guidance</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="301"/>
        <location filename="../tabs/picture_tab.py" line="948"/>
        <source>🔍 Validation Panel</source>
        <translation>🔍 Panneau de Validation</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="309"/>
        <location filename="../tabs/picture_tab.py" line="462"/>
        <location filename="../tabs/picture_tab.py" line="996"/>
        <location filename="../tabs/picture_tab.py" line="1277"/>
        <source>No project loaded</source>
        <translation>Aucun projet chargé</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="321"/>
        <location filename="../tabs/picture_tab.py" line="950"/>
        <source>🎨 Picture Generation</source>
        <translation>🎨 Génération d'Images</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="325"/>
        <location filename="../tabs/picture_tab.py" line="976"/>
        <source>🎨 Generate Pictures</source>
        <translation>🎨 Générer les Images</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="348"/>
        <location filename="../tabs/picture_tab.py" line="952"/>
        <source>📸 Generated Images</source>
        <translation>📸 Images Générées</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="359"/>
        <location filename="../tabs/picture_tab.py" line="978"/>
        <source>Open Selected</source>
        <translation>Ouvrir Sélectionnés</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="398"/>
        <source>
&lt;b&gt;How to use the Picture Generator:&lt;/b&gt;

&lt;b&gt;• Editing fusion.csv:&lt;/b&gt;
- Each line adds an element to your personalized images
- fusion-type: Use &apos;text&apos; for text, &apos;graphic&apos; for images, &apos;formatted-text&apos; for styled documents
- data: Type your text or use {{name}} to insert recipient information
- positioning: Use &apos;x:y&apos; format - first number moves right, second moves down
- size: Font size for text, &apos;width:height&apos; for images
- alignment: Choose &apos;left&apos;, &apos;center&apos;, or &apos;right&apos;

&lt;b&gt;• Positioning Guide:&lt;/b&gt;
- Top-left corner is 0:0
- Increase first number to move right, second to move down
- Example: 100:50 means 100 pixels from left, 50 pixels from top

&lt;b&gt;• File References:&lt;/b&gt;
- Static files: Use exact names like &apos;logo.png&apos;
- Personalized files: Use {{column_name}} to reference CSV data
- Folder structure: Files can be in subfolders with &apos;folder/file.png&apos;

&lt;b&gt;• Template Variables:&lt;/b&gt;
- Use {{name}}, {{email}}, or any column from your recipients.csv
- Variables will be replaced with actual recipient data
        </source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="401"/>
        <location filename="../tabs/picture_tab.py" line="820"/>
        <location filename="../tabs/picture_tab.py" line="827"/>
        <location filename="../tabs/picture_tab.py" line="884"/>
        <source>No campaign loaded</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="402"/>
        <location filename="../tabs/picture_tab.py" line="897"/>
        <location filename="../tabs/picture_tab.py" line="915"/>
        <source>No project created yet</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="403"/>
        <location filename="../tabs/picture_tab.py" line="926"/>
        <source>Select the project to load</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="406"/>
        <location filename="../tabs/picture_tab.py" line="910"/>
        <source>Error reading projects</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="436"/>
        <location filename="../tabs/picture_tab.py" line="575"/>
        <location filename="../tabs/picture_tab.py" line="617"/>
        <location filename="../tabs/picture_tab.py" line="641"/>
        <location filename="../tabs/picture_tab.py" line="661"/>
        <location filename="../tabs/picture_tab.py" line="685"/>
        <location filename="../tabs/picture_tab.py" line="705"/>
        <location filename="../tabs/picture_tab.py" line="755"/>
        <location filename="../tabs/picture_tab.py" line="802"/>
        <location filename="../tabs/picture_tab.py" line="1213"/>
        <location filename="../tabs/picture_tab.py" line="1248"/>
        <location filename="../tabs/picture_tab.py" line="1449"/>
        <source>Error</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="437"/>
        <source>Failed to load project: {str(e)}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="470"/>
        <location filename="../tabs/picture_tab.py" line="549"/>
        <source>Warning</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="471"/>
        <source>Please load a campaign first</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="492"/>
        <source>Duplicate Project</source>
        <translation>Dupliquer le Projet</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="499"/>
        <source>Original: {}

New project name:</source>
        <translation>Original : {}

Nouveau nom de projet :</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="509"/>
        <source>Cancel</source>
        <translation>Annuler</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="510"/>
        <location filename="../tabs/picture_tab.py" line="552"/>
        <location filename="../tabs/picture_tab.py" line="570"/>
        <location filename="../tabs/picture_tab.py" line="578"/>
        <source>OK</source>
        <translation>OK</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="550"/>
        <source>A project with this name already exists</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="567"/>
        <location filename="../tabs/picture_tab.py" line="613"/>
        <location filename="../tabs/picture_tab.py" line="638"/>
        <location filename="../tabs/picture_tab.py" line="682"/>
        <location filename="../tabs/picture_tab.py" line="750"/>
        <location filename="../tabs/picture_tab.py" line="797"/>
        <source>Success</source>
        <translation>Succès</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="568"/>
        <source>Project &apos;{}&apos; created successfully</source>
        <translation>Projet '{}' créé avec succès</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="576"/>
        <source>Failed to duplicate project: {}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="589"/>
        <source>Delete Project</source>
        <translation>Supprimer le Projet</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="590"/>
        <source>Are you sure you want to delete the project &apos;{}&apos;?

This action cannot be undone.</source>
        <translation>Êtes-vous sûr de vouloir supprimer le projet '{}' ?

Cette action ne peut pas être annulée.</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="594"/>
        <source>Yes</source>
        <translation>Oui</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="595"/>
        <source>No</source>
        <translation>Non</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="614"/>
        <source>Project deleted successfully</source>
        <translation>Projet supprimé avec succès</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="618"/>
        <source>Failed to delete project: {str(e)}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="627"/>
        <source>Select fusion.csv file</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="630"/>
        <source>CSV files (*.csv)</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="639"/>
        <source>fusion.csv file updated</source>
        <translation>Fichier fusion.csv mis à jour</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="642"/>
        <source>Failed to update fusion.csv: {str(e)}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="662"/>
        <source>Failed to open fusion.csv: {str(e)}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="671"/>
        <source>Select template image</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="674"/>
        <source>Image files (*.jpg *.jpeg)</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="683"/>
        <source>template.jpg file updated</source>
        <translation>Fichier template.jpg mis à jour</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="686"/>
        <source>Failed to update template.jpg: {str(e)}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="706"/>
        <source>Failed to open template.jpg: {str(e)}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="715"/>
        <source>Select Files to Add</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="718"/>
        <source>Supported files (*.png *.jpg *.jpeg *.docx *.txt);;All Files (*)</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="733"/>
        <source>File Exists</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="734"/>
        <source>File &apos;{filename}&apos; already exists. Replace it?</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="752"/>
        <source>Added {added_count} file(s) to project</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="756"/>
        <source>Failed to add files: {str(e)}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="766"/>
        <source>Select Folder to Add</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="779"/>
        <source>Folder Exists</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="780"/>
        <source>Folder &apos;{folder_name}&apos; already exists. Replace it?</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="799"/>
        <source>Added folder &apos;{folder_name}&apos; to project</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="803"/>
        <source>Failed to add folder: {str(e)}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1214"/>
        <source>Failed to open file: {str(e)}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1249"/>
        <source>Failed to update attachment setting: {str(e)}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1286"/>
        <source>Project validation passed</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1299"/>
        <source>No validation issues found</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1356"/>
        <source>Validation Error</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1357"/>
        <source>Please fix validation errors before generating pictures</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1363"/>
        <source>Starting picture generation...</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1431"/>
        <source>Info</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1431"/>
        <source>Please select images to open</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1450"/>
        <source>Failed to open image: {str(e)}</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>📄 fusion.csv</source>
        <translation>📄 fusion.csv</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>🖼️ template.jpg</source>
        <translation>🖼️ template.jpg</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>+ Files</source>
        <translation>+ Fichiers</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>+ Folder</source>
        <translation>+ Dossier</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to load project: {error}</source>
        <translation>Échec du chargement du projet : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to delete project: {error}</source>
        <translation>Échec de la suppression du projet : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to update fusion.csv: {error}</source>
        <translation>Échec de la mise à jour de fusion.csv : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to open fusion.csv: {error}</source>
        <translation>Échec de l'ouverture de fusion.csv : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to update template.jpg: {error}</source>
        <translation>Échec de la mise à jour de template.jpg : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to open template.jpg: {error}</source>
        <translation>Échec de l'ouverture de template.jpg : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Added {count} file(s) to project</source>
        <translation>{count} fichier(s) ajouté(s) au projet</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to add files: {error}</source>
        <translation>Échec de l'ajout de fichiers : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Added folder '{folder_name}' to project</source>
        <translation>Dossier '{folder_name}' ajouté au projet</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to add folder: {error}</source>
        <translation>Échec de l'ajout du dossier : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to open file: {error}</source>
        <translation>Échec de l'ouverture du fichier : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to update attachment setting: {error}</source>
        <translation>Échec de la mise à jour du paramètre de pièce jointe : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to open image: {error}</source>
        <translation>Échec de l'ouverture de l'image : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Project '{project_name}' created successfully!</source>
        <translation>Projet '{project_name}' créé avec succès !</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Failed to create project: {error}</source>
        <translation>Échec de la création du projet : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>📚 User Help &amp; Guidance</source>
        <translation>📚 Aide Utilisateur &amp; Conseils</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Successfully generated pictures</source>
        <translation>Images générées avec succès</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>Generation failed with code</source>
        <translation>Génération échouée avec le code</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>&lt;b&gt;How to use the Picture Generator:&lt;/b&gt;

&lt;b&gt;• Editing fusion.csv:&lt;/b&gt;
- Each line adds an element to your personalized images
- fusion-type: Use 'text' for text, 'graphic' for images, 'formatted-text' for styled documents
- data: Type your text or use {{name}} to insert recipient information
- positioning: Use 'x:y' format - first number moves right, second moves down
- size: Font size for text, 'width:height' for images
- alignment: Choose 'left', 'center', or 'right'

&lt;b&gt;• Positioning Guide:&lt;/b&gt;
- Top-left corner is 0:0
- Increase first number to move right, second to move down
- Example: 100:50 means 100 pixels from left, 50 pixels from top

&lt;b&gt;• File References:&lt;/b&gt;
- Static files: Use exact names like 'logo.png'
- Personalized files: Use {{column_name}} to reference CSV data
- Folder structure: Files can be in subfolders with 'folder/file.png'

&lt;b&gt;• Template Variables:&lt;/b&gt;
- Use {{name}}, {{email}}, or any column from your recipients.csv
- Variables will be replaced with actual recipient data</source>
        <translation>&lt;b&gt;Comment utiliser le Générateur d'Images :&lt;/b&gt;

&lt;b&gt;• Édition de fusion.csv :&lt;/b&gt;
- Chaque ligne ajoute un élément à vos images personnalisées
- fusion-type : Utilisez 'text' pour le texte, 'graphic' pour les images, 'formatted-text' pour les documents stylés
- data : Tapez votre texte ou utilisez {{nom}} pour insérer les informations du destinataire
- positioning : Utilisez le format 'x:y' - le premier nombre déplace vers la droite, le second vers le bas
- size : Taille de police pour le texte, 'largeur:hauteur' pour les images
- alignment : Choisissez 'left', 'center', ou 'right'

&lt;b&gt;• Guide de Positionnement :&lt;/b&gt;
- Le coin supérieur gauche est 0:0
- Augmentez le premier nombre pour déplacer vers la droite, le second vers le bas
- Exemple : 100:50 signifie 100 pixels depuis la gauche, 50 pixels depuis le haut

&lt;b&gt;• Références de Fichiers :&lt;/b&gt;
- Fichiers statiques : Utilisez des noms exacts comme 'logo.png'
- Fichiers personnalisés : Utilisez {{nom_colonne}} pour référencer les données CSV
- Structure de dossiers : Les fichiers peuvent être dans des sous-dossiers avec 'dossier/fichier.png'

&lt;b&gt;• Variables de Modèle :&lt;/b&gt;
- Utilisez {{nom}}, {{email}}, ou toute colonne de votre recipients.csv
- Les variables seront remplacées par les données réelles du destinataire</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1"/>
        <source>&lt;b&gt;How to use the Picture Generator:&lt;/b&gt;

&lt;b&gt;• Editing fusion.csv:&lt;/b&gt;
- Each line adds an element to your personalized images
- fusion-type: Use 'text' for text, 'graphic' for images, 'formatted-text' for styled documents
- data: Type your text or use {{name}} to insert recipient information
- positioning: Use 'x:y' format - first number moves right, second moves down
- size: Font size for text, 'width:height' for images
- alignment: Choose 'left', 'center', or 'right'

&lt;b&gt;• Positioning Guide:&lt;/b&gt;
- Top-left corner is 0:0
- Increase first number to move right, second to move down
- Example: 100:50 means 100 pixels from left, 50 pixels from top

&lt;b&gt;• File References:&lt;/b&gt;
- Static files: Use exact names like 'logo.png'
- Personalized files: Use {{column_name}} to reference CSV data
- Folder structure: Files can be in subfolders with 'folder/file.png'

&lt;b&gt;• Template Variables:&lt;/b&gt;
- Use {{name}}, {{email}}, or any column from your recipients.csv
- Variables will be replaced with actual recipient data</source>
        <translation>&lt;b&gt;Comment utiliser le Générateur d'Images :&lt;/b&gt;

&lt;b&gt;• Édition de fusion.csv :&lt;/b&gt;
- Chaque ligne ajoute un élément à vos images personnalisées
- fusion-type : Utilisez 'text' pour le texte, 'graphic' pour les images, 'formatted-text' pour les documents stylés
- data : Tapez votre texte ou utilisez {{nom}} pour insérer les informations du destinataire
- positioning : Utilisez le format 'x:y' - le premier nombre déplace vers la droite, le second vers le bas
- size : Taille de police pour le texte, 'largeur:hauteur' pour les images
- alignment : Choisissez 'left', 'center', ou 'right'

&lt;b&gt;• Guide de Positionnement :&lt;/b&gt;
- Le coin supérieur gauche est 0:0
- Augmentez le premier nombre pour déplacer vers la droite, le second vers le bas
- Exemple : 100:50 signifie 100 pixels depuis la gauche, 50 pixels depuis le haut

&lt;b&gt;• Références de Fichiers :&lt;/b&gt;
- Fichiers statiques : Utilisez des noms exacts comme 'logo.png'
- Fichiers personnalisés : Utilisez {{nom_colonne}} pour référencer les données CSV
- Structure de dossiers : Les fichiers peuvent être dans des sous-dossiers avec 'dossier/fichier.png'

&lt;b&gt;• Variables de Modèle :&lt;/b&gt;
- Utilisez {{nom}}, {{email}}, ou toute colonne de votre recipients.csv
- Les variables seront remplacées par les données réelles du destinataire</translation>
    </message>
    <message>
        <location filename="../tabs/picturetab_tab.py" line="1"/>
        <source>
&lt;b&gt;How to use the Picture Generator:&lt;/b&gt;

&lt;b&gt;• Editing fusion.csv:&lt;/b&gt;
- Each line adds an element to your personalized images
- fusion-type: Use 'text' for text, 'graphic' for images, 'formatted-text' for styled documents
- data: Type your text or use {{name}} to insert recipient information
- positioning: Use 'x:y' format - first number moves right, second moves down
- size: Font size for text, 'width:height' for images
- alignment: Choose 'left', 'center', or 'right'

&lt;b&gt;• Positioning Guide:&lt;/b&gt;
- Top-left corner is 0:0
- Increase first number to move right, second to move down
- Example: 100:50 means 100 pixels from left, 50 pixels from top

&lt;b&gt;• File References:&lt;/b&gt;
- Static files: Use exact names like 'logo.png'
- Personalized files: Use {{column_name}} to reference CSV data
- Folder structure: Files can be in subfolders with 'folder/file.png'

&lt;b&gt;• Template Variables:&lt;/b&gt;
- Use {{name}}, {{email}}, or any column from your recipients.csv
- Variables will be replaced with actual recipient data
        </source>
        <translation>
&lt;b&gt;Comment utiliser le Générateur d'Images :&lt;/b&gt;

&lt;b&gt;• Édition de fusion.csv :&lt;/b&gt;
- Chaque ligne ajoute un élément à vos images personnalisées
- fusion-type : Utilisez 'text' pour le texte, 'graphic' pour les images, 'formatted-text' pour les documents stylés
- data : Tapez votre texte ou utilisez {{nom}} pour insérer les informations du destinataire
- positioning : Utilisez le format 'x:y' - le premier nombre déplace vers la droite, le second vers le bas
- size : Taille de police pour le texte, 'largeur:hauteur' pour les images
- alignment : Choisissez 'left', 'center', ou 'right'

&lt;b&gt;• Guide de Positionnement :&lt;/b&gt;
- Le coin supérieur gauche est 0:0
- Augmentez le premier nombre pour déplacer vers la droite, le second vers le bas
- Exemple : 100:50 signifie 100 pixels depuis la gauche, 50 pixels depuis le haut

&lt;b&gt;• Références de Fichiers :&lt;/b&gt;
- Fichiers statiques : Utilisez des noms exacts comme 'logo.png'
- Fichiers personnalisés : Utilisez {{nom_colonne}} pour référencer les données CSV
- Structure de dossiers : Les fichiers peuvent être dans des sous-dossiers avec 'dossier/fichier.png'

&lt;b&gt;• Variables de Modèle :&lt;/b&gt;
- Utilisez {{nom}}, {{email}}, ou toute colonne de votre recipients.csv
- Les variables seront remplacées par les données réelles du destinataire
        </translation>
    </message>
</context>
<context>
    <name>ProjectBasicsPage</name>
    <message>
        <location filename="../tabs/picture_tab.py" line="1602"/>
        <source>Project Basics</source>
        <translation>Informations de Base du Projet</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1603"/>
        <source>Set up the basic project information</source>
        <translation>Configurez les informations de base du projet</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1608"/>
        <source>Project Name:</source>
        <translation>Nom du Projet :</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1614"/>
        <source>Template Image (required):</source>
        <translation>Image de Modèle (requis) :</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1620"/>
        <location filename="../tabs/picture_tab.py" line="1635"/>
        <source>Browse...</source>
        <translation>Parcourir...</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1628"/>
        <source>Fusion Configuration:</source>
        <translation>Configuration de Fusion :</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1633"/>
        <source>Optional: Select existing fusion.csv</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1638"/>
        <source>Create Empty</source>
        <translation>Créer Vide</translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1652"/>
        <source>Select Template Image</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1655"/>
        <source>Image files (*.jpg *.jpeg)</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1663"/>
        <source>Select Fusion CSV</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/picture_tab.py" line="1666"/>
        <source>CSV files (*.csv)</source>
        <translation type="unfinished"></translation>
    </message>
</context>
<context>
    <name>RecipientsPage</name>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1706"/>
        <source>Step 2: Recipients</source>
        <translation>Étape 2 : Destinataires</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1707"/>
        <source>Import your recipient data</source>
        <translation>Importez vos données de destinataires</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1716"/>
        <source>Select a CSV file containing your recipients. The file should include an &apos;email&apos; column and any other data you want to personalize your messages with (like name, company, etc.).</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1723"/>
        <source>Select recipients CSV file...</source>
        <translation>Sélectionnez le fichier CSV des destinataires...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1726"/>
        <source>Browse...</source>
        <translation>Parcourir...</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1753"/>
        <source>Select Recipients CSV File</source>
        <translation>Sélectionner le Fichier CSV des Destinataires</translation>
    </message>
    <message>
        <location filename="../tabs/campaign_tab.py" line="1756"/>
        <source>CSV Files (*.csv);;All Files (*)</source>
        <translation>Fichiers CSV (*.csv);;Tous les Fichiers (*)</translation>
    </message>
</context>
<context>
    <name>SMTPTab</name>
    <message>
        <location filename="../tabs/smtp_tab.py" line="59"/>
        <source>✅ SMTP configuration loaded from campaign
📧 Server: {server}
👤 Username: {username}
🔐 Password: Loaded from encrypted storage</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="67"/>
        <source>ℹ️ No SMTP configuration found in this campaign
Use Quick Setup or enter settings manually</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="203"/>
        <location filename="../tabs/smtp_tab.py" line="581"/>
        <source>📧 SMTP Server Configuration</source>
        <translation>📧 Configuration du Serveur SMTP</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="209"/>
        <location filename="../tabs/smtp_tab.py" line="585"/>
        <source>smtp.gmail.com</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="212"/>
        <location filename="../tabs/smtp_tab.py" line="587"/>
        <source>587</source>
        <translation type="unfinished"></translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="219"/>
        <location filename="../tabs/smtp_tab.py" line="589"/>
        <source>your.email@gmail.com</source>
        <translation>votre.email@gmail.com</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="223"/>
        <location filename="../tabs/smtp_tab.py" line="591"/>
        <source>Your app password</source>
        <translation>Votre mot de passe d'application</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="225"/>
        <location filename="../tabs/smtp_tab.py" line="595"/>
        <source>Use TLS/STARTTLS (recommended)</source>
        <translation>Utiliser TLS/STARTTLS (recommandé)</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="229"/>
        <source>SMTP Server:</source>
        <translation>Serveur SMTP :</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="230"/>
        <source>Port:</source>
        <translation>Port :</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="231"/>
        <source>Username:</source>
        <translation>Nom d'utilisateur :</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="232"/>
        <source>Password:</source>
        <translation>Mot de passe :</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="248"/>
        <location filename="../tabs/smtp_tab.py" line="599"/>
        <source>Gmail</source>
        <translation>Gmail</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="252"/>
        <location filename="../tabs/smtp_tab.py" line="601"/>
        <source>Outlook</source>
        <translation>Outlook</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="256"/>
        <location filename="../tabs/smtp_tab.py" line="603"/>
        <source>La Poste</source>
        <translation>La Poste</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>⚡ Quick Setup</source>
        <translation>⚡ Configuration Rapide</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>🧪 Connection Test</source>
        <translation>🧪 Test de Connexion</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>📚 Setup Guidance</source>
        <translation>📚 Guide de Configuration</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>🔍 Connection Test Results</source>
        <translation>🔍 Résultats du Test de Connexion</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>🔒 Configuration Storage</source>
        <translation>🔒 Stockage de Configuration</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>⚠️ No campaign loaded - cannot save configuration

Please load a campaign first from the Campaign tab.</source>
        <translation>⚠️ Aucune campagne chargée - impossible de sauvegarder la configuration

Veuillez d'abord charger une campagne depuis l'onglet Campagne.</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>Test cancelled - Please load a campaign first</source>
        <translation>Test annulé - Veuillez d'abord charger une campagne</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>🔄 Testing connection...</source>
        <translation>🔄 Test de connexion...</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>❌ Please enter SMTP server</source>
        <translation>❌ Veuillez saisir le serveur SMTP</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>❌ Please enter port number</source>
        <translation>❌ Veuillez saisir le numéro de port</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>❌ Invalid port number (must be 1-65535)</source>
        <translation>❌ Numéro de port invalide (doit être entre 1-65535)</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>❌ Please enter username/email</source>
        <translation>❌ Veuillez saisir le nom d'utilisateur/email</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>❌ Please enter password</source>
        <translation>❌ Veuillez saisir le mot de passe</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>🔄 Step 1/3: Testing TCP connection...</source>
        <translation>🔄 Étape 1/3 : Test de connexion TCP...</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>🔄 Step 2/3: Testing SMTP connection and TLS...</source>
        <translation>🔄 Étape 2/3 : Test de connexion SMTP et TLS...</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>🔄 Step 3/3: Testing authentication...</source>
        <translation>🔄 Étape 3/3 : Test d'authentification...</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>No Campaign Loaded</source>
        <translation>Aucune Campagne Chargée</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>No campaign is currently loaded. You can test the SMTP connection, but the settings won't be saved.

Do you want to continue with the test?</source>
        <translation>Aucune campagne n'est actuellement chargée. Vous pouvez tester la connexion SMTP, mais les paramètres ne seront pas sauvegardés.

Voulez-vous continuer avec le test ?</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>✅ {provider} settings loaded</source>
        <translation>✅ Paramètres {provider} chargés</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>❌ Cannot connect to {server}:{port}
Check server address and port number.</source>
        <translation>❌ Impossible de se connecter à {server}:{port}
Vérifiez l'adresse du serveur et le numéro de port.</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>❌ Authentication failed

The server rejected your username/password.

• Double-check your email and password
• For Gmail: Use an App Password, not your regular password
• For Outlook: Enable 2FA and use an App Password
• For La Poste: Verify your email credentials

Error details: {error}</source>
        <translation>❌ Échec de l'authentification

Le serveur a rejeté votre nom d'utilisateur/mot de passe.

• Vérifiez votre email et mot de passe
• Pour Gmail : Utilisez un Mot de Passe d'Application, pas votre mot de passe habituel
• Pour Outlook : Activez la 2FA et utilisez un Mot de Passe d'Application
• Pour La Poste : Vérifiez vos identifiants email

Détails de l'erreur : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>&lt;h3&gt;🚀 Quick Start Guide&lt;/h3&gt;
            &lt;p&gt;&lt;strong&gt;1. Quick Setup:&lt;/strong&gt; Click Gmail, Outlook, or La Poste for automatic configuration.&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;2. Enter Credentials:&lt;/strong&gt; Add your email and app password.&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;3. Test Connection:&lt;/strong&gt; Click "Test SMTP Connection" to verify.&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;4. Save:&lt;/strong&gt; Configuration is automatically saved to your campaign: &lt;code&gt;{campaign}&lt;/code&gt;&lt;/p&gt;
            
            &lt;h4&gt;📧 App Passwords Required&lt;/h4&gt;
            &lt;p&gt;Most email providers require App Passwords for security:&lt;/p&gt;
            &lt;ul&gt;
                &lt;li&gt;&lt;strong&gt;Gmail:&lt;/strong&gt; Enable 2FA, then generate App Password in Google Account settings&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;Outlook:&lt;/strong&gt; Enable 2FA, then create App Password in Microsoft Account security&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;La Poste:&lt;/strong&gt; Use your regular email password&lt;/li&gt;
            &lt;/ul&gt;
            
            &lt;p&gt;&lt;strong&gt;Manual Setup:&lt;/strong&gt; Enter your email provider's SMTP settings manually.&lt;/p&gt;
            </source>
        <translation>&lt;h3&gt;🚀 Guide de Démarrage Rapide&lt;/h3&gt;
            &lt;p&gt;&lt;strong&gt;1. Configuration Rapide :&lt;/strong&gt; Cliquez sur Gmail, Outlook, ou La Poste pour une configuration automatique.&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;2. Saisir les Identifiants :&lt;/strong&gt; Ajoutez votre email et mot de passe d'application.&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;3. Tester la Connexion :&lt;/strong&gt; Cliquez sur "Tester la Connexion SMTP" pour vérifier.&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;4. Sauvegarder :&lt;/strong&gt; La configuration est automatiquement sauvegardée dans votre campagne : &lt;code&gt;{campaign}&lt;/code&gt;&lt;/p&gt;
            
            &lt;h4&gt;📧 Mots de Passe d'Application Requis&lt;/h4&gt;
            &lt;p&gt;La plupart des fournisseurs d'email nécessitent des Mots de Passe d'Application pour la sécurité :&lt;/p&gt;
            &lt;ul&gt;
                &lt;li&gt;&lt;strong&gt;Gmail :&lt;/strong&gt; Activez la 2FA, puis générez un Mot de Passe d'Application dans les paramètres du compte Google&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;Outlook :&lt;/strong&gt; Activez la 2FA, puis créez un Mot de Passe d'Application dans la sécurité du compte Microsoft&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;La Poste :&lt;/strong&gt; Utilisez votre mot de passe email habituel&lt;/li&gt;
            &lt;/ul&gt;
            
            &lt;p&gt;&lt;strong&gt;Configuration Manuelle :&lt;/strong&gt; Saisissez manuellement les paramètres SMTP de votre fournisseur d'email.&lt;/p&gt;
            </translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>&lt;h3&gt;⚠️ No Campaign Loaded&lt;/h3&gt;
            &lt;p&gt;To save SMTP configuration, please:&lt;/p&gt;
            &lt;ol&gt;
                &lt;li&gt;Go to the &lt;strong&gt;Campaign&lt;/strong&gt; tab&lt;/li&gt;
                &lt;li&gt;Select or create a campaign folder&lt;/li&gt;
                &lt;li&gt;Return here to configure SMTP settings&lt;/li&gt;
            &lt;/ol&gt;
            
            &lt;p&gt;You can still test SMTP connections without a campaign, but settings won't be saved.&lt;/p&gt;
            </source>
        <translation>&lt;h3&gt;⚠️ Aucune Campagne Chargée&lt;/h3&gt;
            &lt;p&gt;Pour sauvegarder la configuration SMTP, veuillez :&lt;/p&gt;
            &lt;ol&gt;
                &lt;li&gt;Aller à l'onglet &lt;strong&gt;Campagne&lt;/strong&gt;&lt;/li&gt;
                &lt;li&gt;Sélectionner ou créer un dossier de campagne&lt;/li&gt;
                &lt;li&gt;Revenir ici pour configurer les paramètres SMTP&lt;/li&gt;
            &lt;/ol&gt;
            
            &lt;p&gt;Vous pouvez toujours tester les connexions SMTP sans campagne, mais les paramètres ne seront pas sauvegardés.&lt;/p&gt;
            </translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>&lt;h3&gt;📧 SMTP Configuration&lt;/h3&gt;
            &lt;p&gt;Configure your email server settings to send campaigns.&lt;/p&gt;
            
            &lt;h4&gt;🚀 Quick Setup&lt;/h4&gt;
            &lt;p&gt;Click a provider button above for automatic configuration, then enter your credentials.&lt;/p&gt;
            
            &lt;h4&gt;🔧 Manual Setup&lt;/h4&gt;
            &lt;p&gt;Enter your email provider's SMTP settings manually.&lt;/p&gt;
            </source>
        <translation>&lt;h3&gt;📧 Configuration SMTP&lt;/h3&gt;
            &lt;p&gt;Configurez les paramètres de votre serveur email pour envoyer des campagnes.&lt;/p&gt;
            
            &lt;h4&gt;🚀 Configuration Rapide&lt;/h4&gt;
            &lt;p&gt;Cliquez sur un bouton de fournisseur ci-dessus pour une configuration automatique, puis saisissez vos identifiants.&lt;/p&gt;
            
            &lt;h4&gt;🔧 Configuration Manuelle&lt;/h4&gt;
            &lt;p&gt;Saisissez manuellement les paramètres SMTP de votre fournisseur d'email.&lt;/p&gt;
            </translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>&lt;h4&gt;🔐 Password Storage&lt;/h4&gt;
        &lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; Passwords are stored encrypted in your campaign folder.&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;Portability:&lt;/strong&gt; Move campaign folders between computers safely.&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;Privacy:&lt;/strong&gt; No data is sent to external servers.&lt;/p&gt;
        </source>
        <translation>&lt;h4&gt;🔐 Stockage des Mots de Passe&lt;/h4&gt;
        &lt;p&gt;&lt;strong&gt;Sécurité :&lt;/strong&gt; Les mots de passe sont stockés chiffrés dans votre dossier de campagne.&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;Portabilité :&lt;/strong&gt; Déplacez les dossiers de campagne entre ordinateurs en toute sécurité.&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;Confidentialité :&lt;/strong&gt; Aucune donnée n'est envoyée vers des serveurs externes.&lt;/p&gt;
        </translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>⚠️ No campaign loaded - settings will not be saved

You can test the connection, but configuration won't be saved without a campaign folder.
Go to Campaign tab and select a folder first.</source>
        <translation>⚠️ Aucune campagne chargée - les paramètres ne seront pas sauvegardés

Vous pouvez tester la connexion, mais la configuration ne sera pas sauvegardée sans dossier de campagne.
Allez à l'onglet Campagne et sélectionnez d'abord un dossier.</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>✅ Connection successful!

SMTP server: {server}:{port} ({tls_status})
Username: {username}

Your SMTP configuration is working correctly.</source>
        <translation>✅ Connexion réussie !

Serveur SMTP : {server}:{port} ({tls_status})
Nom d'utilisateur : {username}

Votre configuration SMTP fonctionne correctement.</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>with TLS</source>
        <translation>avec TLS</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>without TLS</source>
        <translation>sans TLS</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>

💾 Configuration saved to campaign folder.</source>
        <translation>

💾 Configuration sauvegardée dans le dossier de campagne.</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>

⚠️ Configuration tested successfully but could not be saved.</source>
        <translation>

⚠️ Configuration testée avec succès mais n'a pas pu être sauvegardée.</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>

⚠️ Configuration not saved (no campaign loaded).</source>
        <translation>

⚠️ Configuration non sauvegardée (aucune campagne chargée).</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>❌ Connection failed

Cannot establish SMTP connection.

• Check server address: {server}
• Check port number: {port}
• Check internet connection
• Verify firewall settings

Error details: {error}</source>
        <translation>❌ Échec de connexion

Impossible d'établir la connexion SMTP.

• Vérifiez l'adresse du serveur : {server}
• Vérifiez le numéro de port : {port}
• Vérifiez la connexion internet
• Vérifiez les paramètres du pare-feu

Détails de l'erreur : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>❌ SMTP error

An SMTP protocol error occurred.

• Verify server settings with your email provider
• Check if SMTP is enabled for your account
• Try different port (25, 465, 587)

Error details: {error}</source>
        <translation>❌ Erreur SMTP

Une erreur de protocole SMTP s'est produite.

• Vérifiez les paramètres du serveur avec votre fournisseur d'email
• Vérifiez si SMTP est activé pour votre compte
• Essayez un port différent (25, 465, 587)

Détails de l'erreur : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>❌ Connection timeout

The server did not respond within 10 seconds.

• Check server address and port
• Verify internet connection
• Firewall blocking the connection</source>
        <translation>❌ Délai de connexion dépassé

Le serveur n'a pas répondu dans les 10 secondes.

• Vérifiez l'adresse du serveur et le port
• Vérifiez la connexion internet
• Pare-feu bloquant la connexion</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>❌ Unexpected error

An unexpected error occurred during testing.

Error details: {error}

💡 Please check your network connection and try again.</source>
        <translation>❌ Erreur inattendue

Une erreur inattendue s'est produite pendant le test.

Détails de l'erreur : {error}

💡 Veuillez vérifier votre connexion réseau et réessayer.</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>Test SMTP Connection</source>
        <translation>Tester la Connexion SMTP</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>Save Configuration</source>
        <translation>Sauvegarder la Configuration</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>Click 'Test SMTP Connection' to verify settings</source>
        <translation>Cliquez sur 'Tester la Connexion SMTP' pour vérifier les paramètres</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>&lt;h3&gt;📧 SMTP Configuration Help&lt;/h3&gt;
            &lt;p&gt;&lt;strong&gt;Current Campaign:&lt;/strong&gt; {campaign_name}&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;💾 Auto-Save:&lt;/strong&gt; Configuration is automatically saved when you fill all required fields (server, username, password).&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;Quick Setup:&lt;/strong&gt; Use the buttons on the left for popular email providers.&lt;/p&gt;
            &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;Gmail:&lt;/strong&gt; Requires app password (not your regular password)&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;Outlook:&lt;/strong&gt; Use your Microsoft account credentials&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;La Poste:&lt;/strong&gt; Use your La Poste email credentials&lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;&lt;strong&gt;Manual Setup:&lt;/strong&gt; Enter your email provider's SMTP settings manually.&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; Always use TLS/STARTTLS for secure connections.&lt;/p&gt;
            &lt;p&gt;&lt;em&gt;💾 Use 'Save Configuration' button to save manually, or 'Test SMTP Connection' to test and save.&lt;/em&gt;&lt;/p&gt;
            </source>
        <translation>&lt;h3&gt;📧 Aide Configuration SMTP&lt;/h3&gt;
            &lt;p&gt;&lt;strong&gt;Campagne Actuelle :&lt;/strong&gt; {campaign_name}&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;💾 Sauvegarde Auto :&lt;/strong&gt; La configuration est automatiquement sauvegardée quand vous remplissez tous les champs requis (serveur, nom d'utilisateur, mot de passe).&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;Configuration Rapide :&lt;/strong&gt; Utilisez les boutons à gauche pour les fournisseurs d'email populaires.&lt;/p&gt;
            &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;Gmail :&lt;/strong&gt; Nécessite un mot de passe d'application (pas votre mot de passe habituel)&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;Outlook :&lt;/strong&gt; Utilisez vos identifiants de compte Microsoft&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;La Poste :&lt;/strong&gt; Utilisez vos identifiants email La Poste&lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;&lt;strong&gt;Configuration Manuelle :&lt;/strong&gt; Saisissez manuellement les paramètres SMTP de votre fournisseur d'email.&lt;/p&gt;
            &lt;p&gt;&lt;strong&gt;Sécurité :&lt;/strong&gt; Utilisez toujours TLS/STARTTLS pour des connexions sécurisées.&lt;/p&gt;
            &lt;p&gt;&lt;em&gt;💾 Utilisez le bouton 'Sauvegarder la Configuration' pour sauvegarder manuellement, ou 'Tester la Connexion SMTP' pour tester et sauvegarder.&lt;/em&gt;&lt;/p&gt;
            </translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>&lt;h3&gt;📧 SMTP Configuration Help&lt;/h3&gt;
            &lt;p&gt;&lt;strong&gt;⚠️ No Campaign Loaded:&lt;/strong&gt; Please select a campaign folder first.&lt;/p&gt;
            &lt;p&gt;You can test SMTP connections, but settings won't be saved without a campaign.&lt;/p&gt;
            &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;Gmail:&lt;/strong&gt; Requires app password (not your regular password)&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;Outlook:&lt;/strong&gt; Use your Microsoft account credentials&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;La Poste:&lt;/strong&gt; Use your La Poste email credentials&lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;&lt;strong&gt;To save settings:&lt;/strong&gt; Go to Campaign tab and select a folder first.&lt;/p&gt;
            </source>
        <translation>&lt;h3&gt;📧 Aide Configuration SMTP&lt;/h3&gt;
            &lt;p&gt;&lt;strong&gt;⚠️ Aucune Campagne Chargée :&lt;/strong&gt; Veuillez d'abord sélectionner un dossier de campagne.&lt;/p&gt;
            &lt;p&gt;Vous pouvez tester les connexions SMTP, mais les paramètres ne seront pas sauvegardés sans campagne.&lt;/p&gt;
            &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;Gmail :&lt;/strong&gt; Nécessite un mot de passe d'application (pas votre mot de passe habituel)&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;Outlook :&lt;/strong&gt; Utilisez vos identifiants de compte Microsoft&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;La Poste :&lt;/strong&gt; Utilisez vos identifiants email La Poste&lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;&lt;strong&gt;Pour sauvegarder les paramètres :&lt;/strong&gt; Allez à l'onglet Campagne et sélectionnez d'abord un dossier.&lt;/p&gt;
            </translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>&lt;h3&gt;📧 SMTP Configuration Help&lt;/h3&gt;
        &lt;p&gt;&lt;strong&gt;Quick Setup:&lt;/strong&gt; Use the buttons on the left for popular email providers.&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;&lt;strong&gt;Gmail:&lt;/strong&gt; Requires app password (not your regular password)&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;Outlook:&lt;/strong&gt; Use your Microsoft account credentials&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;La Poste:&lt;/strong&gt; Use your La Poste email credentials&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;&lt;strong&gt;Manual Setup:&lt;/strong&gt; Enter your email provider's SMTP settings manually.&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; Always use TLS/STARTTLS for secure connections.&lt;/p&gt;
        </source>
        <translation>&lt;h3&gt;📧 Aide Configuration SMTP&lt;/h3&gt;
        &lt;p&gt;&lt;strong&gt;Configuration Rapide :&lt;/strong&gt; Utilisez les boutons à gauche pour les fournisseurs d'email populaires.&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;&lt;strong&gt;Gmail :&lt;/strong&gt; Nécessite un mot de passe d'application (pas votre mot de passe habituel)&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;Outlook :&lt;/strong&gt; Utilisez vos identifiants de compte Microsoft&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;La Poste :&lt;/strong&gt; Utilisez vos identifiants email La Poste&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;&lt;strong&gt;Configuration Manuelle :&lt;/strong&gt; Saisissez manuellement les paramètres SMTP de votre fournisseur d'email.&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;Sécurité :&lt;/strong&gt; Utilisez toujours TLS/STARTTLS pour des connexions sécurisées.&lt;/p&gt;
        </translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>&lt;p&gt;&lt;strong&gt;How your SMTP configuration is saved:&lt;/strong&gt;&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;📁 &lt;strong&gt;Location:&lt;/strong&gt; Saved in your campaign folder as &lt;code&gt;.smtp-credentials.enc&lt;/code&gt;&lt;/li&gt;
        &lt;li&gt;🔐 &lt;strong&gt;Security:&lt;/strong&gt; Credentials are encrypted and never stored in plain text&lt;/li&gt;
        &lt;li&gt;🚀 &lt;strong&gt;Portability:&lt;/strong&gt; Configuration travels with your campaign folder&lt;/li&gt;
        &lt;li&gt;🗑️ &lt;strong&gt;Privacy:&lt;/strong&gt; Deleting a campaign removes all stored credentials&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;&lt;em&gt;Your email credentials are secure and only accessible to this application.&lt;/em&gt;&lt;/p&gt;
        </source>
        <translation>&lt;p&gt;&lt;strong&gt;Comment votre configuration SMTP est sauvegardée :&lt;/strong&gt;&lt;/p&gt;
        &lt;ul&gt;
        &lt;li&gt;📁 &lt;strong&gt;Emplacement :&lt;/strong&gt; Sauvegardée dans votre dossier de campagne sous &lt;code&gt;.smtp-credentials.enc&lt;/code&gt;&lt;/li&gt;
        &lt;li&gt;🔐 &lt;strong&gt;Sécurité :&lt;/strong&gt; Les identifiants sont chiffrés et jamais stockés en texte brut&lt;/li&gt;
        &lt;li&gt;🚀 &lt;strong&gt;Portabilité :&lt;/strong&gt; La configuration voyage avec votre dossier de campagne&lt;/li&gt;
        &lt;li&gt;🗑️ &lt;strong&gt;Confidentialité :&lt;/strong&gt; Supprimer une campagne supprime tous les identifiants stockés&lt;/li&gt;
        &lt;/ul&gt;
        &lt;p&gt;&lt;em&gt;Vos identifiants email sont sécurisés et accessibles uniquement à cette application.&lt;/em&gt;&lt;/p&gt;
        </translation>
    </message>
</context>
<context>
    <name>SendTab</name>
    <message>
        <location filename="../tabs/send_tab.py" line="140"/>
        <location filename="../tabs/send_tab.py" line="192"/>
        <location filename="../tabs/send_tab.py" line="1790"/>
        <source>📊 Campaign Status</source>
        <translation>📊 Statut de la Campagne</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="144"/>
        <location filename="../tabs/send_tab.py" line="223"/>
        <location filename="../tabs/send_tab.py" line="1792"/>
        <source>🧪 Dry Run</source>
        <translation>🧪 Test à Blanc</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="146"/>
        <location filename="../tabs/send_tab.py" line="224"/>
        <location filename="../tabs/send_tab.py" line="1794"/>
        <location filename="../tabs/send_tab.py" line="1800"/>
        <source>🚀 Send Campaign</source>
        <translation>🚀 Envoyer la Campagne</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="150"/>
        <location filename="../tabs/send_tab.py" line="217"/>
        <source>custom-name-here</source>
        <translation>nom-personnalisé-ici</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="196"/>
        <location filename="../tabs/send_tab.py" line="1290"/>
        <location filename="../tabs/send_tab.py" line="1766"/>
        <source>⚠️ No Campaign Loaded</source>
        <translation>⚠️ Aucune Campagne Chargée</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="197"/>
        <location filename="../tabs/send_tab.py" line="1292"/>
        <location filename="../tabs/send_tab.py" line="1771"/>
        <source>👥 Recipients: No campaign</source>
        <translation>👥 Destinataires : Aucune campagne</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="198"/>
        <location filename="../tabs/send_tab.py" line="1293"/>
        <location filename="../tabs/send_tab.py" line="1776"/>
        <source>📄 Message: No campaign</source>
        <translation>📄 Message : Aucune campagne</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="199"/>
        <location filename="../tabs/send_tab.py" line="1294"/>
        <location filename="../tabs/send_tab.py" line="1781"/>
        <source>📎 Attachments: No campaign</source>
        <translation>📎 Pièces jointes : Aucune campagne</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="200"/>
        <location filename="../tabs/send_tab.py" line="1295"/>
        <location filename="../tabs/send_tab.py" line="1786"/>
        <source>📎 Pictures: No campaign</source>
        <translation>📎 Images : Aucune campagne</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="210"/>
        <source>🚀 Send Controls</source>
        <translation>🚀 Contrôles d'Envoi</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="215"/>
        <source>Dry Run Name:</source>
        <translation>Nom du Test :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="237"/>
        <source>🔍 Validation Results</source>
        <translation>🔍 Résultats de Validation</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="243"/>
        <source>Validation results will appear here...</source>
        <translation>Les résultats de validation apparaîtront ici...</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="264"/>
        <source>📁 Dry Run Results</source>
        <translation>📁 Résultats des Tests</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="277"/>
        <location filename="../tabs/send_tab.py" line="296"/>
        <source>📂 Open Selected</source>
        <translation>📂 Ouvrir la Sélection</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="283"/>
        <source>📊 Sent Reports</source>
        <translation>📊 Rapports d'Envoi</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="321"/>
        <location filename="../tabs/send_tab.py" line="1806"/>
        <source>Ready to send</source>
        <translation>Prêt à envoyer</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="846"/>
        <source>Cancel</source>
        <translation>Annuler</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1260"/>
        <source>✅ Campaign: Ready to Send</source>
        <translation>✅ Campagne : Prête à Envoyer</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1263"/>
        <source>❌ Campaign: Issues Found</source>
        <translation>❌ Campagne : Problèmes Détectés</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1303"/>
        <source>⚠️ No campaign loaded. Please load a campaign first.</source>
        <translation>⚠️ Aucune campagne chargée. Veuillez d'abord charger une campagne.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1320"/>
        <source>👥 Recipients: {count} valid</source>
        <translation>👥 Destinataires : {count} valides</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1323"/>
        <source>👥 Recipients: {valid_count} valid, {invalid_count} errors</source>
        <translation>👥 Destinataires : {valid_count} valides, {invalid_count} erreurs</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1326"/>
        <source>👥 Recipients: File missing</source>
        <translation>👥 Destinataires : Fichier manquant</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1329"/>
        <source>👥 Recipients: Error reading file</source>
        <translation>👥 Destinataires : Erreur de lecture du fichier</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1338"/>
        <source>📄 Message: msg.docx validated</source>
        <translation>📄 Message : msg.docx validé</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1341"/>
        <source>📄 Message: msg.txt validated</source>
        <translation>📄 Message : msg.txt validé</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1344"/>
        <source>📄 Message: Missing msg.txt or msg.docx</source>
        <translation>📄 Message : msg.txt ou msg.docx manquant</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1798"/>
        <source>🧪 Run Dry Run</source>
        <translation>🧪 Lancer le Test</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>📚 Setup Guidance</source>
        <translation>📚 Guide de Configuration</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>🔍 Connection Test Results</source>
        <translation>🔍 Résultats du Test de Connexion</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>🔒 Configuration Storage</source>
        <translation>🔒 Stockage de Configuration</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>⚡ Quick Setup</source>
        <translation>⚡ Configuration Rapide</translation>
    </message>
    <message>
        <location filename="../tabs/smtp_tab.py" line="1"/>
        <source>🧪 Connection Test</source>
        <translation>🧪 Test de Connexion</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>⚠️ Confirm Email Campaign Send</source>
        <translation>⚠️ Confirmer l'Envoi de la Campagne Email</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>⚠️  CONFIRM EMAIL CAMPAIGN SEND</source>
        <translation>⚠️  CONFIRMER L'ENVOI DE LA CAMPAGNE EMAIL</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>This action will send real emails to all recipients</source>
        <translation>Cette action enverra de vrais emails à tous les destinataires</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📊 Campaign Summary</source>
        <translation>📊 Résumé de la Campagne</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>🔐 Security Verification</source>
        <translation>🔐 Vérification de Sécurité</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>To confirm, please type the campaign name below:</source>
        <translation>Pour confirmer, veuillez taper le nom de la campagne ci-dessous :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>✅ Final Confirmations</source>
        <translation>✅ Confirmations Finales</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>I have reviewed the campaign and recipients</source>
        <translation>J'ai vérifié la campagne et les destinataires</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>I understand this will send real emails</source>
        <translation>Je comprends que cela enverra de vrais emails</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Campaign:</source>
        <translation>Campagne :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Recipients:</source>
        <translation>Destinataires :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Subject:</source>
        <translation>Sujet :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Attachments:</source>
        <translation>Pièces jointes :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Pictures:</source>
        <translation>Images :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Attachments: No attachments folder</source>
        <translation>📎 Pièces jointes : Aucun dossier de pièces jointes</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Pictures: Projects exist, none attached</source>
        <translation>📎 Images : Projets existants, aucun attaché</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Pictures: No projects found</source>
        <translation>📎 Images : Aucun projet trouvé</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Pictures: No folder</source>
        <translation>📎 Images : Aucun dossier</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Pictures: Error checking folder</source>
        <translation>📎 Images : Erreur lors de la vérification du dossier</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Attachments: {count} files ({size_mb:.1f} MB - Too large!)</source>
        <translation>📎 Pièces jointes : {count} fichiers ({size_mb:.1f} MB - Trop volumineux !)</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Attachments: {count} files ({size_mb:.1f} MB)</source>
        <translation>📎 Pièces jointes : {count} fichiers ({size_mb:.1f} MB)</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Attachments: Folder empty</source>
        <translation>📎 Pièces jointes : Dossier vide</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Attachments: Error reading folder</source>
        <translation>📎 Pièces jointes : Erreur de lecture du dossier</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Pictures: {total_images} images from {attached_projects} project(s)</source>
        <translation>📎 Images : {total_images} images de {attached_projects} projet(s)</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Pictures: {attached_projects} project(s) attached, no images</source>
        <translation>📎 Images : {attached_projects} projet(s) attaché(s), aucune image</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>🧪 Starting dry run...</source>
        <translation>🧪 Démarrage du test à blanc...</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>✅ Dry run completed: {message}</source>
        <translation>✅ Test à blanc terminé : {message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>❌ Dry run failed: {message}</source>
        <translation>❌ Test à blanc échoué : {message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>❌ Dry run error: {error_message}</source>
        <translation>❌ Erreur du test à blanc : {error_message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📧 Starting email campaign...</source>
        <translation>📧 Démarrage de la campagne email...</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>✅ Campaign sent: {message}</source>
        <translation>✅ Campagne envoyée : {message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>❌ Campaign failed: {message}</source>
        <translation>❌ Campagne échouée : {message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>❌ Send error: {error_message}</source>
        <translation>❌ Erreur d'envoi : {error_message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>❌ Campaign: Error - {error}</source>
        <translation>❌ Campagne : Erreur - {error}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>No Campaign</source>
        <translation>Aucune Campagne</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Please load a campaign first.</source>
        <translation>Veuillez d'abord charger une campagne.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Invalid Dry Run Name</source>
        <translation>Nom de Test à Blanc Invalide</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry run name cannot be empty and must contain only letters, numbers, hyphens, and underscores.</source>
        <translation>Le nom du test à blanc ne peut pas être vide et ne doit contenir que des lettres, des chiffres, des tirets et des underscores.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry Run Completed</source>
        <translation>Test à Blanc Terminé</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry run '{custom_name}' completed successfully!

{message}</source>
        <translation>Test à blanc '{custom_name}' terminé avec succès !

{message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry Run Failed</source>
        <translation>Test à Blanc Échoué</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry run failed:
{message}</source>
        <translation>Test à blanc échoué :
{message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry Run Error</source>
        <translation>Erreur du Test à Blanc</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>An error occurred during dry run:
{error_message}</source>
        <translation>Une erreur s'est produite pendant le test à blanc :
{error_message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Campaign validation failed. Please fix the issues before sending.</source>
        <translation>La validation de la campagne a échoué. Veuillez corriger les problèmes avant l'envoi.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>SMTP configuration missing. Please configure SMTP settings first.</source>
        <translation>Configuration SMTP manquante. Veuillez d'abord configurer les paramètres SMTP.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Campaign validation passed. Ready to send.</source>
        <translation>Validation de la campagne réussie. Prêt à envoyer.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Error opening file: {error}</source>
        <translation>Erreur lors de l'ouverture du fichier : {error}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>No file selected</source>
        <translation>Aucun fichier sélectionné</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Please select a file to open</source>
        <translation>Veuillez sélectionner un fichier à ouvrir</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>seconds</source>
        <translation>secondes</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>minutes</source>
        <translation>minutes</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>hours</source>
        <translation>heures</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>days</source>
        <translation>jours</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Preparing to send...</source>
        <translation>Préparation de l'envoi...</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Sending email {current} of {total}...</source>
        <translation>Envoi de l'email {current} sur {total}...</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Finalizing...</source>
        <translation>Finalisation...</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Completed</source>
        <translation>Terminé</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Send Confirmation</source>
        <translation>Confirmation d'Envoi</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Are you sure you want to send this campaign to {count} recipients?</source>
        <translation>Êtes-vous sûr de vouloir envoyer cette campagne à {count} destinataires ?</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>This action cannot be undone.</source>
        <translation>Cette action ne peut pas être annulée.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Yes, Send Campaign</source>
        <translation>Oui, Envoyer la Campagne</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>\n✅ Fresh dry run completed - Ready to send</source>
        <translation>\n✅ Test à blanc terminé - Prêt à envoyer</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>   📅 Dry run completed moments ago</source>
        <translation>   📅 Test à blanc terminé il y a quelques instants</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>   📅 Dry run completed {minutes_ago} minutes ago</source>
        <translation>   📅 Test à blanc terminé il y a {minutes_ago} minutes</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>\n⚠️ Fresh dry run required before sending</source>
        <translation>\n⚠️ Test à blanc requis avant l'envoi</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>   → Click 'Dry Run' to test your campaign first</source>
        <translation>   → Cliquez sur 'Test à Blanc' pour tester votre campagne d'abord</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>   → This ensures your emails look correct before sending</source>
        <translation>   → Cela garantit que vos emails sont corrects avant l'envoi</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>✅ All validations passed - Campaign ready to send</source>
        <translation>✅ Toutes les validations réussies - Campagne prête à envoyer</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>✅ Recipients file validated</source>
        <translation>✅ Fichier des destinataires validé</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>✅ Message template validated</source>
        <translation>✅ Modèle de message validé</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>✅ Campaign structure verified</source>
        <translation>✅ Structure de campagne vérifiée</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>\n⚠️ Warnings (campaign can still be sent):</source>
        <translation>\n⚠️ Avertissements (la campagne peut toujours être envoyée) :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>     → Consider compressing large files or using cloud links</source>
        <translation>     → Considérez compresser les gros fichiers ou utiliser des liens cloud</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>     → Verify recipient email domains are correct</source>
        <translation>     → Vérifiez que les domaines email des destinataires sont corrects</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>❌ Campaign validation failed - Fix these issues to continue:</source>
        <translation>❌ Validation de campagne échouée - Corrigez ces problèmes pour continuer :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>\n📁 File Issues:</source>
        <translation>\n📁 Problèmes de Fichiers :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>     → Create recipients.csv with 'name' and 'email' columns</source>
        <translation>     → Créez recipients.csv avec les colonnes 'name' et 'email'</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>     → Create msg.txt (plain text) or msg.docx (formatted)</source>
        <translation>     → Créez msg.txt (texte simple) ou msg.docx (formaté)</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>     → Create subject.txt with your email subject line</source>
        <translation>     → Créez subject.txt avec votre ligne d'objet email</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>\n📧 Content Issues:</source>
        <translation>\n📧 Problèmes de Contenu :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>     → Check email addresses in recipients.csv</source>
        <translation>     → Vérifiez les adresses email dans recipients.csv</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>     → Verify {{variables}} match CSV column names</source>
        <translation>     → Vérifiez que les {{variables}} correspondent aux noms de colonnes CSV</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>\n⚙️ Configuration Issues:</source>
        <translation>\n⚙️ Problèmes de Configuration :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>     → Configure SMTP settings in the SMTP tab</source>
        <translation>     → Configurez les paramètres SMTP dans l'onglet SMTP</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>\n⚠️ Additional Warnings:</source>
        <translation>\n⚠️ Avertissements Supplémentaires :</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Subject not found</source>
        <translation>Objet introuvable</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>None</source>
        <translation>Aucun</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Error reading attachments</source>
        <translation>Erreur de lecture des pièces jointes</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>{count} files ({size_mb:.1f} MB)</source>
        <translation>{count} fichiers ({size_mb:.1f} MB)</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>No images generated</source>
        <translation>Aucune image générée</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Error reading images</source>
        <translation>Erreur de lecture des images</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Project exists, no images</source>
        <translation>Projet existant, aucune image</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>enabled</source>
        <translation>activé</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>disabled</source>
        <translation>désactivé</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>{count} images ({status})</source>
        <translation>{count} images ({status})</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>{count} valid email addresses</source>
        <translation>{count} adresses email valides</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Invalid Name</source>
        <translation>Nom Invalide</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry run name can only contain letters, numbers, hyphens, and underscores.</source>
        <translation>Le nom du test à blanc ne peut contenir que des lettres, des chiffres, des tirets et des underscores.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Name Too Long</source>
        <translation>Nom Trop Long</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry run name must be 50 characters or less.</source>
        <translation>Le nom du test à blanc doit faire 50 caractères ou moins.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Initializing email sending...</source>
        <translation>Initialisation de l'envoi d'emails...</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Sent {count} emails successfully</source>
        <translation>{count} emails envoyés avec succès</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Email campaign completed</source>
        <translation>Campagne email terminée</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Email sending failed - check validation</source>
        <translation>Envoi d'email échoué - vérifiez la validation</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Initializing dry run...</source>
        <translation>Initialisation du test à blanc...</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Generated {count} email previews</source>
        <translation>{count} aperçus d'emails générés</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry run completed</source>
        <translation>Test à blanc terminé</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry run validation failed</source>
        <translation>Validation du test à blanc échouée</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Campaign Invalid</source>
        <translation>Campagne Invalide</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Cannot send campaign. Please fix validation errors first.</source>
        <translation>Impossible d'envoyer la campagne. Veuillez d'abord corriger les erreurs de validation.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry Run Required</source>
        <translation>Test à Blanc Requis</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>A fresh dry run is required before sending. Please run a dry run first.</source>
        <translation>Un test à blanc récent est requis avant l'envoi. Veuillez d'abord effectuer un test à blanc.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Campaign Sent</source>
        <translation>Campagne Envoyée</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Email campaign sent successfully!\n\n{message}</source>
        <translation>Campagne email envoyée avec succès !\n\n{message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Campaign Failed</source>
        <translation>Campagne Échouée</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Email campaign failed:\n\n{message}</source>
        <translation>Campagne email échouée :\n\n{message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Send Error</source>
        <translation>Erreur d'Envoi</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>An error occurred during sending:\n\n{error_message}</source>
        <translation>Une erreur s'est produite pendant l'envoi :\n\n{error_message}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>No Selection</source>
        <translation>Aucune Sélection</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Please select a dry run folder to open.</source>
        <translation>Veuillez sélectionner un dossier de test à blanc à ouvrir.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Folder Not Found</source>
        <translation>Dossier Introuvable</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry run folder '{folder_name}' not found.</source>
        <translation>Dossier de test à blanc '{folder_name}' introuvable.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Error Opening Folder</source>
        <translation>Erreur d'Ouverture de Dossier</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Could not open folder in file explorer:\n\n{error}</source>
        <translation>Impossible d'ouvrir le dossier dans l'explorateur de fichiers :\n\n{error}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Please select a sent report to open.</source>
        <translation>Veuillez sélectionner un rapport d'envoi à ouvrir.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Report file '{report_filename}' not found.</source>
        <translation>Fichier de rapport '{report_filename}' introuvable.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>File Not Found</source>
        <translation>Fichier Introuvable</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Error Opening File</source>
        <translation>Erreur d'Ouverture de Fichier</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Could not open file with default application:\n\n{error}</source>
        <translation>Impossible d'ouvrir le fichier avec l'application par défaut :\n\n{error}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Unknown</source>
        <translation>Inconnu</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry run</source>
        <translation>Test à blanc</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Sending</source>
        <translation>Envoi en cours</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Validating campaign...</source>
        <translation>Validation de la campagne...</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Email campaign sent successfully!</source>
        <translation>Campagne email envoyée avec succès !</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Pictures: {attached_projects} project(s), avg {avg_size}/image (~{total_size}/recipient)</source>
        <translation>📎 Images : {attached_projects} projet(s), moy {avg_size}/image (~{total_size}/destinataire)</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Pictures: {attached_projects} project(s) attached, no images generated</source>
        <translation>📎 Images : {attached_projects} projet(s) attaché(s), aucune image générée</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Pictures: {total_projects} project(s) exist, none attached</source>
        <translation>📎 Images : {total_projects} projet(s) existant(s), aucun attaché</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Attachments: {count} files ({size_mb} MB - Too large!)</source>
        <translation>📎 Pièces jointes : {count} fichiers ({size_mb} MB - Trop volumineux !)</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>📎 Attachments: {count} files ({size_mb} MB)</source>
        <translation>📎 Pièces jointes : {count} fichiers ({size_mb} MB)</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>🗑️ Delete Selected</source>
        <translation>🗑️ Supprimer Sélectionné</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Please select a dry run folder to delete.</source>
        <translation>Veuillez sélectionner un dossier de test à blanc à supprimer.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Please select a sent report to delete.</source>
        <translation>Veuillez sélectionner un rapport d'envoi à supprimer.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Confirm Deletion</source>
        <translation>Confirmer la Suppression</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Are you sure you want to delete the dry run '{folder_name}'?

This action cannot be undone.</source>
        <translation>Êtes-vous sûr de vouloir supprimer le test à blanc '{folder_name}' ?

Cette action ne peut pas être annulée.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Are you sure you want to delete the report '{report_filename}'?

This action cannot be undone.</source>
        <translation>Êtes-vous sûr de vouloir supprimer le rapport '{report_filename}' ?

Cette action ne peut pas être annulée.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Deleted</source>
        <translation>Supprimé</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Dry run '{folder_name}' deleted successfully.</source>
        <translation>Test à blanc '{folder_name}' supprimé avec succès.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Report '{report_filename}' deleted successfully.</source>
        <translation>Rapport '{report_filename}' supprimé avec succès.</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Could not delete dry run folder:

{error}</source>
        <translation>Impossible de supprimer le dossier de test à blanc :

{error}</translation>
    </message>
    <message>
        <location filename="../tabs/send_tab.py" line="1"/>
        <source>Could not delete report file:

{error}</source>
        <translation>Impossible de supprimer le fichier de rapport :

{error}</translation>
    </message>
</context>
</TS>
