feat(i18n): Add time blocks translations and fix deployment
- Add comprehensive timeBlocks translations (ES, FR, DE, EN) - Add myAvailability translations (ES, FR, DE, EN) - Add full helpTimeBlocks guide content (ES, FR, DE, EN) - Add contracts guide translations (ES) - Fix DATABASE_URL env var in deploy.sh for seed_platform_plugins - Update Contracts page and HelpContracts guide 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1078,5 +1078,344 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"contracts": {
|
||||
"title": "Contrats",
|
||||
"description": "Gérez les modèles de contrats et les contrats envoyés",
|
||||
"templates": "Modèles",
|
||||
"sentContracts": "Contrats Envoyés",
|
||||
"allContracts": "Tous les Contrats",
|
||||
"createTemplate": "Créer un Modèle",
|
||||
"newTemplate": "Nouveau Modèle",
|
||||
"createContract": "Créer un Contrat",
|
||||
"editTemplate": "Modifier le Modèle",
|
||||
"viewContract": "Voir le Contrat",
|
||||
"noTemplates": "Pas encore de modèles de contrats",
|
||||
"noTemplatesEmpty": "Pas encore de modèles. Créez votre premier modèle pour commencer.",
|
||||
"noTemplatesSearch": "Aucun modèle trouvé",
|
||||
"noContracts": "Pas encore de contrats",
|
||||
"noContractsEmpty": "Aucun contrat envoyé pour le moment.",
|
||||
"noContractsSearch": "Aucun contrat trouvé",
|
||||
"templateName": "Nom du Modèle",
|
||||
"templateDescription": "Description",
|
||||
"content": "Contenu",
|
||||
"contentHtml": "Contenu du Contrat (HTML)",
|
||||
"searchTemplates": "Rechercher des modèles...",
|
||||
"searchContracts": "Rechercher des contrats...",
|
||||
"all": "Tous",
|
||||
"scope": {
|
||||
"label": "Portée",
|
||||
"customer": "Niveau Client",
|
||||
"appointment": "Par Rendez-vous",
|
||||
"customerDesc": "Contrats uniques par client (ex: politique de confidentialité, conditions d'utilisation)",
|
||||
"appointmentDesc": "Signé à chaque réservation (ex: décharges de responsabilité, accords de service)"
|
||||
},
|
||||
"status": {
|
||||
"label": "Statut",
|
||||
"draft": "Brouillon",
|
||||
"active": "Actif",
|
||||
"archived": "Archivé",
|
||||
"pending": "En Attente",
|
||||
"signed": "Signé",
|
||||
"expired": "Expiré",
|
||||
"voided": "Annulé"
|
||||
},
|
||||
"table": {
|
||||
"template": "Modèle",
|
||||
"scope": "Portée",
|
||||
"status": "Statut",
|
||||
"version": "Version",
|
||||
"actions": "Actions",
|
||||
"customer": "Client",
|
||||
"contract": "Contrat",
|
||||
"created": "Créé",
|
||||
"sent": "Envoyé"
|
||||
},
|
||||
"expiresAfterDays": "Expire Après (jours)",
|
||||
"expiresAfterDaysHint": "Laisser vide pour sans expiration",
|
||||
"versionNotes": "Notes de Version",
|
||||
"versionNotesPlaceholder": "Qu'est-ce qui a changé dans cette version ?",
|
||||
"services": "Services Applicables",
|
||||
"servicesHint": "Laisser vide pour appliquer à tous les services",
|
||||
"customer": "Client",
|
||||
"appointment": "Rendez-vous",
|
||||
"service": "Service",
|
||||
"sentAt": "Envoyé",
|
||||
"signedAt": "Signé",
|
||||
"expiresAt": "Expire Le",
|
||||
"createdAt": "Créé",
|
||||
"availableVariables": "Variables Disponibles",
|
||||
"actions": {
|
||||
"send": "Envoyer le Contrat",
|
||||
"resend": "Renvoyer l'E-mail",
|
||||
"void": "Annuler le Contrat",
|
||||
"duplicate": "Dupliquer le Modèle",
|
||||
"preview": "Aperçu PDF",
|
||||
"previewFailed": "Échec du chargement de l'aperçu PDF.",
|
||||
"delete": "Supprimer",
|
||||
"edit": "Modifier",
|
||||
"viewDetails": "Voir les Détails",
|
||||
"copyLink": "Copier le Lien de Signature",
|
||||
"sendEmail": "Envoyer l'E-mail",
|
||||
"openSigningPage": "Ouvrir la Page de Signature",
|
||||
"saveChanges": "Enregistrer les Modifications"
|
||||
},
|
||||
"sendContract": {
|
||||
"title": "Envoyer le Contrat",
|
||||
"selectTemplate": "Modèle de Contrat",
|
||||
"selectTemplatePlaceholder": "Sélectionnez un modèle...",
|
||||
"selectCustomer": "Client",
|
||||
"searchCustomers": "Rechercher des clients...",
|
||||
"selectAppointment": "Sélectionner un Rendez-vous (Optionnel)",
|
||||
"selectService": "Sélectionner un Service (Optionnel)",
|
||||
"send": "Envoyer le Contrat",
|
||||
"sendImmediately": "Envoyer la demande de signature par e-mail immédiatement",
|
||||
"success": "Contrat envoyé avec succès",
|
||||
"error": "Échec de l'envoi du contrat",
|
||||
"loadingCustomers": "Chargement des clients...",
|
||||
"loadCustomersFailed": "Échec du chargement des clients",
|
||||
"noCustomers": "Aucun client disponible. Créez d'abord des clients.",
|
||||
"noMatchingCustomers": "Aucun client correspondant"
|
||||
},
|
||||
"voidContract": {
|
||||
"title": "Annuler le Contrat",
|
||||
"description": "L'annulation de ce contrat le révoquera. Le client ne pourra plus signer.",
|
||||
"reason": "Raison de l'annulation",
|
||||
"reasonPlaceholder": "Entrez la raison...",
|
||||
"confirm": "Annuler le Contrat",
|
||||
"success": "Contrat annulé avec succès",
|
||||
"error": "Échec de l'annulation du contrat"
|
||||
},
|
||||
"deleteTemplate": {
|
||||
"title": "Supprimer le Modèle",
|
||||
"description": "Êtes-vous sûr de vouloir supprimer ce modèle ? Cette action est irréversible.",
|
||||
"confirm": "Supprimer",
|
||||
"success": "Modèle supprimé avec succès",
|
||||
"error": "Échec de la suppression du modèle"
|
||||
},
|
||||
"contractDetails": {
|
||||
"title": "Détails du Contrat",
|
||||
"customer": "Client",
|
||||
"template": "Modèle",
|
||||
"status": "Statut",
|
||||
"created": "Créé",
|
||||
"contentPreview": "Aperçu du Contenu",
|
||||
"signingLink": "Lien de Signature"
|
||||
},
|
||||
"preview": {
|
||||
"title": "Aperçu du Contrat",
|
||||
"sampleData": "Utilisation de données d'exemple pour l'aperçu"
|
||||
},
|
||||
"signing": {
|
||||
"title": "Signer le Contrat",
|
||||
"businessName": "{{businessName}}",
|
||||
"contractFor": "Contrat pour {{customerName}}",
|
||||
"pleaseReview": "Veuillez examiner et signer ce contrat",
|
||||
"signerName": "Votre Nom Complet",
|
||||
"signerNamePlaceholder": "Entrez votre nom légal",
|
||||
"signerEmail": "Votre E-mail",
|
||||
"signatureLabel": "Signez Ci-dessous",
|
||||
"signaturePlaceholder": "Dessinez votre signature ici",
|
||||
"clearSignature": "Effacer",
|
||||
"agreeToTerms": "J'ai lu et j'accepte les termes et conditions décrits dans ce document. En cochant cette case, je comprends que cela constitue une signature électronique légale.",
|
||||
"consentToElectronic": "Je consens à effectuer des affaires électroniquement. Je comprends que j'ai le droit de recevoir des documents sous forme papier sur demande et peux retirer ce consentement à tout moment.",
|
||||
"submitSignature": "Signer le Contrat",
|
||||
"submitting": "Signature en cours...",
|
||||
"success": "Contrat signé avec succès !",
|
||||
"successMessage": "Vous recevrez un e-mail de confirmation avec une copie du contrat signé.",
|
||||
"error": "Échec de la signature du contrat",
|
||||
"expired": "Ce contrat a expiré",
|
||||
"alreadySigned": "Ce contrat a déjà été signé",
|
||||
"notFound": "Contrat non trouvé",
|
||||
"voided": "Ce contrat a été annulé",
|
||||
"signedBy": "Signé par {{name}} le {{date}}",
|
||||
"thankYou": "Merci d'avoir signé !",
|
||||
"loading": "Chargement du contrat...",
|
||||
"geolocationHint": "La localisation sera enregistrée pour conformité légale"
|
||||
},
|
||||
"errors": {
|
||||
"loadFailed": "Échec du chargement des contrats",
|
||||
"createFailed": "Échec de la création du contrat",
|
||||
"updateFailed": "Échec de la mise à jour du contrat",
|
||||
"deleteFailed": "Échec de la suppression du contrat",
|
||||
"sendFailed": "Échec de l'envoi du contrat",
|
||||
"voidFailed": "Échec de l'annulation du contrat"
|
||||
}
|
||||
},
|
||||
"timeBlocks": {
|
||||
"title": "Blocs de Temps",
|
||||
"subtitle": "Gérer les fermetures, jours fériés et indisponibilités des ressources",
|
||||
"addBlock": "Ajouter un Bloc",
|
||||
"businessTab": "Blocs de l'Entreprise",
|
||||
"resourceTab": "Blocs de Ressources",
|
||||
"calendarTab": "Vue Annuelle",
|
||||
"businessInfo": "Les blocs de l'entreprise s'appliquent à toutes les ressources. Utilisez-les pour les jours fériés, fermetures et événements d'entreprise.",
|
||||
"noBusinessBlocks": "Aucun Bloc d'Entreprise",
|
||||
"noBusinessBlocksDesc": "Ajoutez des jours fériés et fermetures pour empêcher les réservations pendant ces périodes.",
|
||||
"addFirstBlock": "Ajouter le Premier Bloc",
|
||||
"titleCol": "Titre",
|
||||
"typeCol": "Type",
|
||||
"patternCol": "Modèle",
|
||||
"actionsCol": "Actions",
|
||||
"resourceInfo": "Les blocs de ressources s'appliquent à du personnel ou équipement spécifique. Utilisez-les pour les vacances, maintenance ou temps personnel.",
|
||||
"noResourceBlocks": "Aucun Bloc de Ressource",
|
||||
"noResourceBlocksDesc": "Ajoutez des blocs de temps pour des ressources spécifiques afin de gérer leur disponibilité.",
|
||||
"deleteConfirmTitle": "Supprimer le Bloc de Temps ?",
|
||||
"deleteConfirmDesc": "Cette action est irréversible.",
|
||||
"blockTypes": {
|
||||
"hard": "Bloc Strict",
|
||||
"soft": "Bloc Souple"
|
||||
},
|
||||
"recurrenceTypes": {
|
||||
"none": "Ponctuel",
|
||||
"weekly": "Hebdomadaire",
|
||||
"monthly": "Mensuel",
|
||||
"yearly": "Annuel",
|
||||
"holiday": "Jour Férié"
|
||||
},
|
||||
"inactive": "Inactif",
|
||||
"activate": "Activer",
|
||||
"deactivate": "Désactiver"
|
||||
},
|
||||
"myAvailability": {
|
||||
"title": "Ma Disponibilité",
|
||||
"subtitle": "Gérer vos congés et indisponibilités",
|
||||
"noResource": "Aucune Ressource Liée",
|
||||
"noResourceDesc": "Votre compte n'est pas lié à une ressource. Veuillez contacter votre responsable pour configurer votre disponibilité.",
|
||||
"addBlock": "Bloquer du Temps",
|
||||
"businessBlocks": "Fermetures de l'Entreprise",
|
||||
"businessBlocksInfo": "Ces blocs sont définis par votre entreprise et s'appliquent à tous.",
|
||||
"myBlocks": "Mes Blocs de Temps",
|
||||
"noBlocks": "Aucun Bloc de Temps",
|
||||
"noBlocksDesc": "Ajoutez des blocs de temps pour les vacances, pauses déjeuner ou tout temps dont vous avez besoin.",
|
||||
"addFirstBlock": "Ajouter le Premier Bloc",
|
||||
"titleCol": "Titre",
|
||||
"typeCol": "Type",
|
||||
"patternCol": "Modèle",
|
||||
"actionsCol": "Actions",
|
||||
"editBlock": "Modifier le Bloc de Temps",
|
||||
"createBlock": "Bloquer du Temps",
|
||||
"create": "Bloquer",
|
||||
"deleteConfirmTitle": "Supprimer le Bloc de Temps ?",
|
||||
"deleteConfirmDesc": "Cette action est irréversible.",
|
||||
"form": {
|
||||
"title": "Titre",
|
||||
"description": "Description",
|
||||
"blockType": "Type de Bloc",
|
||||
"recurrenceType": "Récurrence",
|
||||
"allDay": "Journée entière",
|
||||
"startDate": "Date de Début",
|
||||
"endDate": "Date de Fin",
|
||||
"startTime": "Heure de Début",
|
||||
"endTime": "Heure de Fin",
|
||||
"daysOfWeek": "Jours de la Semaine",
|
||||
"daysOfMonth": "Jours du Mois"
|
||||
}
|
||||
},
|
||||
"helpTimeBlocks": {
|
||||
"title": "Guide des Blocs de Temps",
|
||||
"subtitle": "Apprenez à bloquer du temps pour les fermetures, jours fériés et indisponibilités",
|
||||
"overview": {
|
||||
"title": "Qu'est-ce que les Blocs de Temps ?",
|
||||
"description": "Les blocs de temps vous permettent de marquer des dates, heures ou périodes récurrentes spécifiques comme indisponibles pour les réservations. Utilisez-les pour gérer les jours fériés, fermetures d'entreprise, vacances du personnel, fenêtres de maintenance et plus.",
|
||||
"businessBlocks": "Blocs de l'Entreprise",
|
||||
"businessBlocksDesc": "S'appliquent à toutes les ressources. Parfaits pour les jours fériés, fermetures de bureau et maintenance.",
|
||||
"resourceBlocks": "Blocs de Ressources",
|
||||
"resourceBlocksDesc": "S'appliquent à des ressources spécifiques. Utilisez-les pour les vacances individuelles, rendez-vous ou formations.",
|
||||
"hardBlocks": "Blocs Stricts",
|
||||
"hardBlocksDesc": "Empêchent complètement les réservations pendant la période bloquée. Ne peuvent pas être remplacés.",
|
||||
"softBlocks": "Blocs Souples",
|
||||
"softBlocksDesc": "Affichent un avertissement mais permettent les réservations avec confirmation."
|
||||
},
|
||||
"levels": {
|
||||
"title": "Niveaux de Bloc",
|
||||
"levelCol": "Niveau",
|
||||
"scopeCol": "Portée",
|
||||
"examplesCol": "Exemples d'Utilisation",
|
||||
"business": "Entreprise",
|
||||
"businessScope": "Toutes les ressources de votre entreprise",
|
||||
"businessExamples": "Jours fériés, fermetures de bureau, événements d'entreprise, maintenance",
|
||||
"resource": "Ressource",
|
||||
"resourceScope": "Une ressource spécifique (employé, salle, etc.)",
|
||||
"resourceExamples": "Vacances, rendez-vous personnels, pauses déjeuner, formation",
|
||||
"additiveNote": "Les Blocs sont Additifs",
|
||||
"additiveDesc": "Les blocs de niveau entreprise et ressource s'appliquent tous les deux. Si l'entreprise est fermée un jour férié, les blocs individuels de ressources n'importent pas pour ce jour."
|
||||
},
|
||||
"types": {
|
||||
"title": "Types de Bloc : Strict vs Souple",
|
||||
"hardBlock": "Bloc Strict",
|
||||
"hardBlockDesc": "Empêche complètement toute réservation pendant la période bloquée. Les clients ne peuvent pas réserver et le personnel ne peut pas remplacer. Le calendrier affiche une superposition rayée rouge.",
|
||||
"cannotOverride": "Ne peut pas être remplacé",
|
||||
"showsInBooking": "Affiché dans les réservations clients",
|
||||
"redOverlay": "Superposition rayée rouge",
|
||||
"softBlock": "Bloc Souple",
|
||||
"softBlockDesc": "Affiche un avertissement mais permet les réservations avec confirmation. Utile pour indiquer les temps de repos préférés qui peuvent être remplacés si nécessaire.",
|
||||
"canOverride": "Peut être remplacé",
|
||||
"showsWarning": "Affiche uniquement un avertissement",
|
||||
"yellowOverlay": "Superposition pointillée jaune"
|
||||
},
|
||||
"recurrence": {
|
||||
"title": "Modèles de Récurrence",
|
||||
"patternCol": "Modèle",
|
||||
"descriptionCol": "Description",
|
||||
"exampleCol": "Exemple",
|
||||
"oneTime": "Ponctuel",
|
||||
"oneTimeDesc": "Une date ou plage de dates spécifique qui se produit une fois",
|
||||
"oneTimeExample": "24-26 Déc (vacances de Noël), 15 Fév (Jour des Présidents)",
|
||||
"weekly": "Hebdomadaire",
|
||||
"weeklyDesc": "Se répète certains jours de la semaine",
|
||||
"weeklyExample": "Chaque samedi et dimanche, Chaque lundi déjeuner",
|
||||
"monthly": "Mensuel",
|
||||
"monthlyDesc": "Se répète certains jours du mois",
|
||||
"monthlyExample": "1er de chaque mois (inventaire), 15 (paie)",
|
||||
"yearly": "Annuel",
|
||||
"yearlyDesc": "Se répète à un mois et jour spécifique chaque année",
|
||||
"yearlyExample": "4 juillet, 25 décembre, 1er janvier",
|
||||
"holiday": "Jour Férié",
|
||||
"holidayDesc": "Sélectionnez parmi les jours fériés américains populaires. Sélection multiple supportée - chaque jour férié crée son propre bloc.",
|
||||
"holidayExample": "Noël, Thanksgiving, Memorial Day, Jour de l'Indépendance"
|
||||
},
|
||||
"visualization": {
|
||||
"title": "Afficher les Blocs de Temps",
|
||||
"description": "Les blocs de temps apparaissent dans plusieurs vues de l'application avec des indicateurs colorés :",
|
||||
"colorLegend": "Légende des Couleurs",
|
||||
"businessHard": "Bloc Strict de l'Entreprise",
|
||||
"businessSoft": "Bloc Souple de l'Entreprise",
|
||||
"resourceHard": "Bloc Strict de Ressource",
|
||||
"resourceSoft": "Bloc Souple de Ressource",
|
||||
"schedulerOverlay": "Superposition du Calendrier",
|
||||
"schedulerOverlayDesc": "Les temps bloqués apparaissent directement sur le calendrier avec des indicateurs visuels. Les blocs d'entreprise utilisent des couleurs rouge/jaune, les blocs de ressources utilisent violet/cyan. Cliquez sur une zone bloquée en vue semaine pour naviguer vers ce jour.",
|
||||
"monthView": "Vue Mensuelle",
|
||||
"monthViewDesc": "Les dates bloquées s'affichent avec des fonds colorés et des indicateurs de badge. Plusieurs types de blocs le même jour affichent tous les badges applicables.",
|
||||
"listView": "Vue Liste",
|
||||
"listViewDesc": "Gérez tous les blocs de temps dans un format tabulaire avec des options de filtrage. Modifiez, activez/désactivez ou supprimez des blocs ici."
|
||||
},
|
||||
"staffAvailability": {
|
||||
"title": "Disponibilité du Personnel (Ma Disponibilité)",
|
||||
"description": "Les membres du personnel peuvent gérer leurs propres blocs de temps via la page \"Ma Disponibilité\". Cela leur permet de bloquer du temps pour des rendez-vous personnels, vacances ou autres engagements.",
|
||||
"viewBusiness": "Voir les blocs de niveau entreprise (lecture seule)",
|
||||
"createPersonal": "Créer et gérer des blocs de temps personnels",
|
||||
"seeCalendar": "Voir le calendrier annuel de leur disponibilité",
|
||||
"hardBlockPermission": "Permission de Bloc Strict",
|
||||
"hardBlockPermissionDesc": "Par défaut, le personnel ne peut créer que des blocs souples. Pour permettre à un membre du personnel de créer des blocs stricts, activez la permission \"Peut créer des blocs stricts\" dans les paramètres de son profil."
|
||||
},
|
||||
"bestPractices": {
|
||||
"title": "Bonnes Pratiques",
|
||||
"tip1Title": "Planifiez les jours fériés à l'avance",
|
||||
"tip1Desc": "Configurez les jours fériés annuels au début de chaque année en utilisant le type de récurrence Jour Férié.",
|
||||
"tip2Title": "Utilisez des blocs souples pour les préférences",
|
||||
"tip2Desc": "Réservez les blocs stricts pour les fermetures absolues. Utilisez des blocs souples pour les temps de repos préférés qui pourraient être remplacés.",
|
||||
"tip3Title": "Vérifiez les conflits avant de créer",
|
||||
"tip3Desc": "Le système affiche les rendez-vous existants qui entrent en conflit avec les nouveaux blocs. Vérifiez avant de confirmer.",
|
||||
"tip4Title": "Définissez des dates de fin de récurrence",
|
||||
"tip4Desc": "Pour les blocs récurrents qui ne sont pas permanents, définissez une date de fin pour éviter qu'ils ne s'étendent indéfiniment.",
|
||||
"tip5Title": "Utilisez des titres descriptifs",
|
||||
"tip5Desc": "Incluez des titres clairs comme \"Jour de Noël\", \"Réunion d'Équipe\" ou \"Maintenance Annuelle\" pour une identification facile."
|
||||
},
|
||||
"quickAccess": {
|
||||
"title": "Accès Rapide",
|
||||
"manageTimeBlocks": "Gérer les Blocs de Temps",
|
||||
"myAvailability": "Ma Disponibilité"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user