| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549 |
- {
- "title": "Paramètres",
- "subtitle": "Gerez votre atelier, factures et preferences",
- "nav": {
- "categories": {
- "general": "Général",
- "billing": "Facturation et documents",
- "communications": "Communications",
- "workshop": "Atelier",
- "integrations": "Applications et API",
- "system": "Système"
- },
- "items": {
- "company": {
- "title": "Entreprise",
- "description": "Détails commerciaux et image de marque"
- },
- "subscription": {
- "title": "Abonnement",
- "description": "Plan et facturation"
- },
- "account": {
- "title": "Compte",
- "description": "Nom, e-mail et mot de passe"
- },
- "team": {
- "title": "Équipe",
- "description": "Membres et roles"
- },
- "invoice": {
- "title": "Factures et devis",
- "description": "Paramètres de facturation, mise en page et champs personnalises"
- },
- "templates": {
- "title": "Modèles",
- "description": "Style visuel, couleurs et polices"
- },
- "payment": {
- "title": "Paiement",
- "description": "Conditions de paiement et comptes"
- },
- "tax": {
- "title": "Taxe",
- "description": "Taux de taxe et valeurs par défaut"
- },
- "warranty": {
- "title": "Garantie",
- "description": "Garantie par défaut sur les devis et factures"
- },
- "currency": {
- "title": "Devise",
- "description": "Devise et taxes par défaut"
- },
- "localization": {
- "title": "Localisation",
- "description": "Langue, devise, date et heure"
- },
- "customFields": {
- "title": "Champs personnalises",
- "description": "Définir des champs de données personnalises"
- },
- "email": {
- "title": "E-mail",
- "description": "Fournisseur et envoi d'e-mails"
- },
- "sms": {
- "title": "SMS",
- "description": "Fournisseur SMS et messagerie"
- },
- "telegram": {
- "title": "Telegram",
- "description": "Bot Telegram et messagerie"
- },
- "customerPortal": {
- "title": "Portail client",
- "description": "Portail libre-service client"
- },
- "workshop": {
- "title": "Atelier",
- "description": "Valeurs par défaut technicien et main-d'oeuvre"
- },
- "laborPresets": {
- "title": "Forfaits main-d'oeuvre",
- "description": "Forfaits de travail predefinis"
- },
- "maintenance": {
- "title": "Maintenance",
- "description": "Intervalles de service predits"
- },
- "ai": {
- "title": "IA",
- "description": "Fournisseur IA et fonctionnalités"
- },
- "reportSchedule": {
- "title": "Rapports planifiés",
- "description": "Envoi automatique de rapports"
- },
- "integrations": {
- "title": "Intégrations",
- "description": "Calendriers, appels vidéo et services connectés"
- },
- "webhooks": {
- "title": "Webhooks",
- "description": "Notifications d'événements en temps réel"
- },
- "appearance": {
- "title": "Apparence",
- "description": "Theme et affichage"
- },
- "data": {
- "title": "Données",
- "description": "Exporter et importer une sauvegarde"
- },
- "install": {
- "title": "Installer l'application",
- "description": "Ajoutez Torqvoice à cet appareil"
- },
- "license": {
- "title": "Licence",
- "description": "Licence marque blanche"
- },
- "about": {
- "title": "A propos",
- "description": "Version et informations"
- },
- "alerts": {
- "title": "Alertes",
- "description": "Être averti quand il faut réapprovisionner"
- },
- "support": {
- "title": "Assistance",
- "description": "Contacter l'assistance et gérer le bouton"
- },
- "tireHotel": {
- "title": "Hôtel à pneus",
- "description": "Stockage saisonnier des pneus"
- },
- "inspectionReminders": {
- "title": "Rappels de contrôle",
- "description": "Lien de réservation, durée et délai"
- },
- "emailTemplates": {
- "title": "Modèles d'e-mail",
- "description": "Ce que disent vos e-mails de facture, devis et rapport"
- },
- "workOrderStatuses": {
- "title": "Statuts des ordres",
- "description": "Vos propres étapes, et qui est prévenu"
- }
- },
- "pro": "PRO",
- "new": "Nouveau"
- },
- "readOnly": {
- "banner": "Vous avez un accès en lecture seule aux paramètres. Contactez un administrateur pour effectuer des modifications."
- },
- "featureLocked": {
- "requiresPro": "Abonnement requis",
- "upgradePlan": "Voir les offres",
- "activateLicense": "Activer la licence",
- "requiresLicense": "Licence en marque blanche requise",
- "previewHint": "Ceci est un aperçu. Tout ce qui figure sur cette page se débloque avec un abonnement."
- },
- "company": {
- "logoTitle": "Logo de l'entreprise",
- "logoAlt": "Logo de l'entreprise",
- "upload": "Télécharger",
- "remove": "Supprimer",
- "logoHint": "JPG, PNG, WebP, SVG — max 2 Mo",
- "uploadingLogo": "Téléchargement du logo...",
- "logoUpdated": "Logo mis a jour",
- "failedUploadLogo": "Échec du téléchargement du logo",
- "detailsTitle": "Détails de l'entreprise",
- "shopName": "Nom de l'entreprise / atelier",
- "shopNamePlaceholder": "Garage Auto Martin",
- "orgNumber": "Numéro d'organisation",
- "orgNumberPlaceholder": "123 456 789",
- "orgNumberLabel": "Libellé du numéro d'organisation",
- "orgNumberLabelPlaceholder": "N° d'org.",
- "orgNumberLabelHint": "Imprimé à côté du numéro sur les factures et les devis. Laissez vide pour le libellé par défaut dans votre langue, ou indiquez son nom chez vous, par exemple SIRET, N° TVA ou BCE.",
- "phone": "Téléphone",
- "phonePlaceholder": "(555) 123-4567",
- "email": "E-mail",
- "emailPlaceholder": "service@exemple.com",
- "address": "Adresse",
- "slogan": "Slogan",
- "sloganPlaceholder": "Entretien et réparation toutes marques",
- "sloganHint": "Une ligne sous votre nom sur les factures et les devis.",
- "addressPlaceholder": "123 Rue Principale\nEtage 1\n75001 Paris",
- "saveCompany": "Enregistrer les détails",
- "addNewCompany": "Ajouter une entreprise",
- "companyName": "Nom de l'entreprise",
- "companyNamePlaceholder": "Ex. Garage Auto Martin",
- "cancel": "Annuler",
- "createCompany": "Créer l'entreprise",
- "settingsSaved": "Paramètres de l'entreprise enregistrés",
- "failedSave": "Échec de l'enregistrement des paramètres",
- "companyCreated": "Entreprise créée avec succès",
- "serviceType": "Type de Service",
- "serviceTypeDescription": "Sélectionnez le type de service proposé par votre atelier. Cela modifie les libellés des champs dans toute l'application.",
- "automotive": "Automobile",
- "automotiveDescription": "Voitures, camions et autres véhicules routiers",
- "marineService": "Marine",
- "marineServiceDescription": "Bateaux, yachts et navires"
- },
- "account": {
- "devicesTitle": "Appareils connectés",
- "devicesDescription": "Tous les navigateurs et téléphones ayant une session ouverte sur votre compte.",
- "thisDevice": "Cet appareil",
- "signedInAt": "Connecté le {date}",
- "lastActiveAt": "Dernière activité {date}",
- "signOutDevice": "Déconnecter",
- "signOutOthers": "Déconnecter les autres appareils",
- "deviceSignedOut": "Appareil déconnecté",
- "othersSignedOut": "Autres appareils déconnectés",
- "failedSignOutDevice": "Impossible de déconnecter cet appareil",
- "profileTitle": "Profil",
- "profileDescription": "Mettez a jour votre nom d'affichage et votre adresse e-mail.",
- "emailVerified": "Vérifié",
- "emailNotVerified": "Non vérifié",
- "sendVerificationEmail": "Envoyer l'e-mail de vérification",
- "verificationEmailSent": "E-mail de vérification envoyé. Vérifiez votre boîte de réception.",
- "verificationEmailFailed": "Échec de l'envoi de l'e-mail de vérification",
- "resendCooldown": "Renvoyer dans {seconds}s",
- "emailChangeSent": "Un lien de confirmation a été envoyé à votre nouvelle adresse e-mail. Votre e-mail sera mis à jour lorsque vous cliquerez sur le lien.",
- "name": "Nom",
- "namePlaceholder": "Votre nom",
- "emailLabel": "E-mail",
- "emailPlaceholder": "Votre e-mail",
- "saveProfile": "Enregistrer le profil",
- "profileUpdated": "Profil mis a jour",
- "failedUpdateProfile": "Échec de la mise a jour du profil",
- "failedUpdateEmail": "Échec de la mise a jour de l'e-mail",
- "changePasswordTitle": "Changer le mot de passe",
- "changePasswordDescription": "Entrez votre mot de passe actuel et choisissez-en un nouveau.",
- "currentPassword": "Mot de passe actuel",
- "newPassword": "Nouveau mot de passe",
- "confirmNewPassword": "Confirmer le nouveau mot de passe",
- "changePassword": "Changer le mot de passe",
- "passwordChanged": "Mot de passe change",
- "passwordsNoMatch": "Les mots de passe ne correspondent pas",
- "passwordMinLength": "Le mot de passe doit comporter au moins 8 caractères",
- "failedChangePassword": "Échec du changement de mot de passe",
- "twoFactorTitle": "Authentification a deux facteurs",
- "twoFactorEnabled": "L'authentification a deux facteurs est activee",
- "twoFactorDisablePrompt": "Entrez votre mot de passe pour désactiver l'authentification a deux facteurs.",
- "twoFactorEnablePrompt": "Ajoutez une couche de sécurité supplémentaire a votre compte en activant l'authentification a deux facteurs avec une application d'authentification.",
- "password": "Mot de passe",
- "enterPassword": "Entrez votre mot de passe",
- "disable2FA": "Désactiver 2FA",
- "enable2FA": "Activer 2FA",
- "twoFactorDisabled": "Authentification a deux facteurs désactivée",
- "failedEnable2FA": "Échec de l'activation de 2FA",
- "failedDisable2FA": "Échec de la desactivation de 2FA",
- "enterPasswordError": "Veuillez entrer votre mot de passe",
- "setupDialogTitle": "Activer l'authentification a deux facteurs",
- "setupDialogDescription": "Entrez votre mot de passe pour commencer la configuration de 2FA avec une application d'authentification.",
- "continue": "Continuer",
- "scanQRTitle": "Scanner le code QR",
- "scanQRDescription": "Scannez ce code QR avec votre application d'authentification (Google Authenticator, Authy, etc.)",
- "verifyCodeTitle": "Vérifier le code",
- "verifyCodeDescription": "Entrez le code a 6 chiffres de votre application d'authentification pour vérifier qu'elle est correctement configurée.",
- "authCode": "Code d'authentification",
- "authCodePlaceholder": "000000",
- "back": "Retour",
- "verify": "Vérifier",
- "enterCodeError": "Veuillez entrer le code de votre application d'authentification",
- "invalidCode": "Code invalide. Veuillez réessayer.",
- "verificationFailed": "Vérification échouée",
- "backupCodesTitle": "Sauvegarder les codes de secours",
- "backupCodesDescription": "Conservez ces codes dans un endroit sur. Vous pouvez les utiliser pour vous connecter si vous perdez l'accès a votre application d'authentification. Chaque code ne peut être utilise qu'une seule fois.",
- "copyCodes": "Copier les codes",
- "copied": "Copié",
- "backupCodesCopied": "Codes de secours copies dans le presse-papiers",
- "savedBackupCodes": "J'ai sauvegarde mes codes de secours",
- "twoFactorEnabledSuccess": "Authentification a deux facteurs activee",
- "dangerZone": "Zone dangereuse",
- "deleteContentTitle": "Supprimer le contenu",
- "deleteContentDescription": "Supprimez selectivement les données de l'organisation telles que les véhicules, clients, devis ou inventaire. Votre compte et vos paramètres resteront intacts.",
- "deleteContentButton": "Supprimer le contenu",
- "deleteAccountTitle": "Supprimer le compte",
- "deleteAccountDescription": "Supprimez définitivement votre compte et toutes les données associées, y compris les véhicules, les dossiers de service, les ordres de travail, les factures, les clients, les fichiers et les paiements. Cette action ne peut pas être annulée.",
- "deleteAccountButton": "Supprimer le compte",
- "deleteAccountDialogTitle": "Supprimer le compte",
- "deleteAccountDialogDescription": "Cela supprimera définitivement votre compte et toutes les données associées. Cette action est irréversible. Tous vos véhicules, dossiers de service, ordres de travail, devis, clients, fichiers et historique de paiements seront définitivement supprimes.",
- "deleteAccountConfirmPhrase": "delete me",
- "deleteAccountConfirmPrompt": "Tapez <bold>delete me</bold> pour confirmer",
- "permanentlyDelete": "Supprimer définitivement",
- "deleting": "Suppression...",
- "failedDeleteAccount": "Échec de la suppression du compte",
- "deleteContentDialogTitle": "Supprimer le contenu",
- "deleteContentDialogDescription": "Sélectionnez le contenu que vous souhaitez supprimer définitivement. Cette action ne peut pas être annulée.",
- "contentVehicles": "Véhicules",
- "contentVehiclesDescription": "Tous les véhicules et leurs dossiers de service, notes, rappels, journaux de carburant et factures recurrentes",
- "contentCustomers": "Clients",
- "contentCustomersDescription": "Tous les dossiers clients. Les véhicules lies aux clients supprimes seront dissocies.",
- "contentQuotes": "Devis",
- "contentQuotesDescription": "Tous les devis et leurs lignes",
- "contentInventory": "Inventaire",
- "contentInventoryDescription": "Toutes les pièces d'inventaire et leurs images",
- "contentInspections": "Inspections",
- "contentInspectionsDescription": "Toutes les inspections de véhicules et leurs résultats",
- "contentTechnicians": "Techniciens",
- "contentTechniciansDescription": "Tous les profils de techniciens. Les enregistrements liés seront dissociés.",
- "contentInspectionTemplates": "Modèles d'inspection",
- "contentInspectionTemplatesDescription": "Tous les modèles d'inspection et leurs sections. Supprimez d'abord les inspections.",
- "contentNotifications": "Notifications",
- "contentNotificationsDescription": "Toutes les notifications système",
- "contentSmsMessages": "Messages SMS",
- "contentSmsMessagesDescription": "Tous les messages SMS envoyés et reçus",
- "contentCustomFields": "Champs personnalisés",
- "contentCustomFieldsDescription": "Toutes les définitions de champs personnalisés et leurs valeurs",
- "deleteContentConfirmPhrase": "delete my data",
- "deleteContentConfirmPrompt": "Tapez <bold>delete my data</bold> pour confirmer",
- "deleteSelected": "Supprimer {count} selectionnes",
- "contentDeleted": "Le contenu selectionne a ete définitivement supprime",
- "failedDeleteContent": "Échec de la suppression du contenu",
- "passkey": {
- "title": "Passkeys",
- "description": "Connectez-vous avec la biométrie ou une clé de sécurité au lieu d'un mot de passe.",
- "noPasskeys": "Aucune passkey enregistrée.",
- "unnamed": "Passkey sans nom",
- "singleDevice": "Cet appareil uniquement",
- "multiDevice": "Synchronisé entre appareils",
- "register": "Enregistrer une Passkey",
- "registering": "Enregistrement...",
- "registerSuccess": "Passkey enregistrée avec succès",
- "registerFailed": "Échec de l'enregistrement de la passkey",
- "delete": "Supprimer",
- "deleteSuccess": "Passkey supprimée",
- "deleteFailed": "Échec de la suppression de la passkey",
- "rename": "Renommer la Passkey",
- "renameFailed": "Échec du renommage de la passkey",
- "nameLabel": "Nom",
- "namePlaceholder": "ex. MacBook Pro, iPhone",
- "cancel": "Annuler",
- "save": "Enregistrer",
- "confirmDeleteTitle": "Supprimer la Passkey",
- "confirmDelete": "Êtes-vous sûr de vouloir supprimer cette passkey ? Vous ne pourrez plus vous connecter avec."
- },
- "cancel": "Annuler",
- "deleteWorkshopTitle": "Supprimer l'atelier",
- "deleteWorkshopDescription": "Supprimer définitivement cet atelier et toutes ses données : clients, véhicules, ordres de travail, factures, stock et fichiers téléversés. Les membres de l'équipe perdront l'accès. Cette action est irréversible.",
- "deleteWorkshopButton": "Supprimer l'atelier",
- "deleteWorkshopDialogTitle": "Supprimer cet atelier ?",
- "deleteWorkshopDialogDescription": "Cela supprime définitivement l'atelier et tout son contenu. Cette action est irréversible.",
- "deleteWorkshopConfirmPrompt": "Saisissez <bold>{name}</bold> pour confirmer.",
- "deleteWorkshopSuccess": "Atelier supprimé",
- "deleteWorkshopFailed": "Échec de la suppression de l'atelier",
- "deleteAccountMoved": "Vous souhaitez supprimer votre compte ?",
- "deleteAccountMovedLink": "Vous pouvez le faire dans les paramètres des données."
- },
- "team": {
- "title": "Équipe",
- "noOrgDescription": "Créez une équipe pour partager des données avec d'autres utilisateurs.",
- "orgDescription": "Gerez les membres de votre organisation et leurs roles.",
- "createOrg": "Créer une organisation",
- "createOrgDescription": "Créez une organisation pour inviter des membres. Vous serez le propriétaire.",
- "orgName": "Nom de l'organisation",
- "orgNamePlaceholder": "Mon atelier",
- "create": "Créer",
- "orgCreated": "Organisation créée",
- "failedCreateOrg": "Échec de la création de l'organisation",
- "memberCount": "{count} membre",
- "memberCountPlural": "{count} membres",
- "admin": "Administrateur",
- "member": "Membre",
- "inviteByEmail": "Inviter par e-mail",
- "inviteEmailPlaceholder": "utilisateur@exemple.com",
- "invite": "Inviter",
- "invited": "Membre invite avec succès.",
- "userNotFoundTitle": "Utilisateur non trouve",
- "userNotFoundDescription": "Aucun compte trouve pour \"{email}\". Envoyer un e-mail d'invitation pour s'inscrire et rejoindre votre équipe ?",
- "sendInvitation": "Envoyer l'invitation",
- "invitationSentTitle": "Invitation envoyée",
- "invitationSentDescription": "Un e-mail d'invitation a ete envoye a {email}.",
- "failedInvite": "Échec de l'invitation du membre",
- "failedSendInvitation": "Échec de l'envoi de l'invitation",
- "pendingInvitations": "Invitations en attente",
- "invitedAs": "Invite en tant que {role}",
- "resendInvitation": "Renvoyer l'invitation",
- "invitationResent": "Invitation renvoyée à {email}",
- "failedResendInvitation": "Échec du renvoi de l'invitation",
- "expires": "Expire le {date}",
- "pending": "En attente",
- "cancelInvitation": "Annuler l'invitation",
- "cancelInvitationDescription": "Annuler l'invitation a {email} ? Ils ne pourront plus utiliser ce lien.",
- "invitationCancelled": "Invitation annulée",
- "failedCancelInvitation": "Échec de l'annulation de l'invitation",
- "customRoles": "Roles personnalises",
- "newRole": "Nouveau role",
- "roleName": "Nom du role",
- "roleNamePlaceholder": "Ex. Technicien",
- "fullAdminAccess": "Accès administrateur complet (contourne toutes les verifications de permissions)",
- "permissions": "Permissions",
- "createRole": "Créer le role",
- "updateRole": "Mettre a jour le role",
- "roleCreated": "Role cree",
- "roleUpdated": "Role mis a jour",
- "failedSaveRole": "Échec de l'enregistrement du role",
- "deleteRole": "Supprimer le role",
- "deleteRoleDescription": "Supprimer le role \"{name}\" ? Les membres avec ce role perdront leurs permissions personnalisees.",
- "roleDeleted": "Role supprime",
- "failedDeleteRole": "Échec de la suppression du role",
- "fullAccess": "Accès complet",
- "permissionCount": "{count} permission",
- "permissionCountPlural": "{count} permissions",
- "noCustomRoles": "Pas encore de roles personnalises. Créez-en un pour définir des permissions granulaires pour les membres de l'équipe.",
- "presetAll": "Tous",
- "presetViewOnly": "Lecture seule",
- "presetWriteAll": "Lecture et écriture",
- "presetNone": "Aucun",
- "builtInRoles": "Roles integres",
- "ownerLabel": "Propriétaire",
- "ownerDescription": "Accès complet. Peut gérer les membres, changer les roles et supprimer l'organisation.",
- "adminLabel": "Administrateur",
- "adminDescription": "Peut inviter/supprimer des membres et gérer les données partagées.",
- "memberLabel": "Membre",
- "memberDescription": "Les droits découlent du rôle attribué. Sans rôle, ce membre ne peut rien faire.",
- "roleAssigned": "Role mis a jour",
- "failedAssignRole": "Échec de la mise a jour du role",
- "removeMemberTitle": "Retirer le membre",
- "removeMemberDescription": "Retirer {name} de l'équipe ? Il perdra l'accès aux données partagées.",
- "removeButton": "Retirer",
- "memberRemoved": "Membre retire",
- "failedRemoveMember": "Échec du retrait du membre",
- "memberRoleUpdated": "Role du membre mis a jour",
- "failedUpdateRole": "Échec de la mise a jour du role",
- "removeMember": "Retirer le membre",
- "cancelInvite": "Annuler l'invitation",
- "editRole": "Modifier le rôle",
- "technician": "Technicien",
- "technicianHint": "Peut se voir attribuer des travaux et utiliser l’application technicien",
- "technicianFailed": "Modification impossible",
- "setupApp": "Configurer l'application",
- "setupAppTitle": "Configurer l'application technicien",
- "setupAppInstruction": "Demandez à {name} de faire ceci sur son téléphone :",
- "setupAppOrType": "Ou communiquez-lui ce code :",
- "setupAppExpiry": "Utilisable une seule fois, expire dans {time}.",
- "setupAppExpired": "Ce code a expiré. Fermez et recommencez.",
- "setupAppDone": "Terminé",
- "setupAppFailed": "Impossible de créer un code de configuration",
- "setupPageTitle": "Configurer l'application technicien",
- "setupPageBody": "Ouvrez Torqvoice Tech sur ce téléphone, appuyez sur Scanner le code de configuration, et visez à nouveau le même code.",
- "setupPageCode": "Ou saisissez ce code dans l'application",
- "setupPageOpenApp": "Ouvrir Torqvoice Tech",
- "setupPageExpiry": "Ce code est utilisable une seule fois et expire dix minutes après sa création par votre atelier.",
- "setupAppStep1": "Installer Torqvoice Tech",
- "setupAppStep2": "L’ouvrir et appuyer sur « Scanner le code de configuration »",
- "setupAppStep3": "Viser ce code avec le téléphone",
- "setupAppNotCamera": "L'appareil photo du téléphone ne fonctionnera pas. Le code doit être scanné depuis Torqvoice Tech.",
- "addTechnician": "Ajouter un technicien",
- "addTechnicianHint": "Pour un mécanicien présent au comptoir. Sans e-mail, sans attente.",
- "technicianName": "Nom",
- "technicianNamePlaceholder": "Son nom complet",
- "technicianPhone": "Numéro de mobile",
- "technicianPhonePlaceholder": "Le téléphone qu’il a sur lui",
- "addTechnicianSubmit": "Créer",
- "addTechnicianNote": "Il se connectera ensuite avec ce numéro. Aucun mot de passe à retenir et rien à saisir sur le premier écran de l'application.",
- "addTechnicianDone": "{name} est créé. Montrez-lui le code.",
- "addTechnicianFailed": "Impossible de créer ce technicien",
- "setupAppCopyLink": "Copier le lien à envoyer",
- "setupAppCopied": "Copié",
- "revokeTechnicianTitle": "Le déconnecter de l'application ?",
- "revokeTechnicianBody": "{name} perd immédiatement l'accès sur son téléphone et tout code cesse de fonctionner. Le travail terminé et les heures restent tels quels.",
- "revokeTechnicianConfirm": "Le déconnecter",
- "addPerson": "Ajouter",
- "addPersonTitle": "Ajouter quelqu'un à l'atelier",
- "addPersonWho": "Ces deux profils se configurent différemment, alors commencez par nous dire de qui il s'agit.",
- "choiceTechnician": "Un mécanicien",
- "choiceTechnicianHint": "Travaille sur les voitures et utilise Torqvoice sur son téléphone. Le plus simple pendant qu'il est là avec vous, et cela prend environ une minute.",
- "choiceMember": "Quelqu’un au bureau",
- "choiceMemberHint": "Réceptionne les voitures, commande les pièces et envoie les factures, sur un ordinateur. Vous envoyez un e-mail et il choisit son propre mot de passe.",
- "stepLabelWho": "Qui",
- "stepLabelDetails": "Détails",
- "stepLabelPhone": "Son téléphone",
- "techDetailsTitle": "Nom et numéro de mobile",
- "techDetailsBlurb": "C'est avec ce numéro qu'il se connectera désormais, alors prenez le téléphone qu'il a vraiment sur lui. Il n'y a aucun mot de passe à retenir ni à oublier.",
- "techHandoffTitle": "Maintenant, sur son téléphone",
- "techHandoffBlurb": "Ce code relie son téléphone à votre atelier. Il ne fonctionne qu'une fois et seulement pendant dix minutes, alors faites-le tant qu'il est là.",
- "memberDetailsTitle": "Son adresse e-mail",
- "memberDetailsBlurb": "Il reçoit un e-mail avec un lien. En l'ouvrant, il choisit son mot de passe et apparaît ensuite dans la liste ci-dessus.",
- "roleHint": "Les administrateurs peuvent modifier les réglages et ajouter des personnes. Les autres font le travail quotidien.",
- "stepBack": "Retour",
- "stepHandoffDone": "Il l'a scanné",
- "stepDoneTitle": "{name} est prêt",
- "stepDoneBody": "Il peut ouvrir l'application et voir ses travaux. La prochaine fois, il se connecte avec son seul numéro de mobile, sans code.",
- "stepInvitedTitle": "Invitation envoyée à {email}",
- "stepInvitedBody": "Il apparaîtra dans la liste dès qu'il aura ouvert l'e-mail et accepté. Le lien reste valable sept jours.",
- "stepDoneAnother": "Ajouter quelqu’un d’autre",
- "clashTitle": "{name} a déjà ce numéro",
- "clashBlurb": "Deux personnes ne peuvent pas partager un numéro de mobile, puisque c'est avec lui qu'elles se connectent. Duquel s'agit-il ?",
- "clashSamePerson": "C'est {name}",
- "clashSamePersonHint": "La même personne qui revient, ou un nom orthographié autrement. Ses travaux et ses heures restent avec elle, et le nom que vous venez de saisir remplace l'ancien.",
- "clashTakeover": "Non, il s’agit de {name}",
- "clashTakeoverHint": "Une autre personne qui a désormais ce numéro. {name} conserve tout ce qu'elle a fait ici mais ne peut plus se connecter, et vous pourrez lui donner un nouveau numéro plus tard.",
- "clashDifferentNumber": "Ni l’un ni l’autre, je corrige le numéro",
- "workshopCountry": "Dans quel pays se trouve votre atelier ?",
- "workshopCountryPlaceholder": "Choisissez un pays",
- "workshopCountryHint": "Demandé une seule fois. Ensuite, les numéros de mobile peuvent être saisis en format court. Vous pourrez le modifier dans les <link>paramètres de localisation</link>.",
- "phonePreview": "Enregistré comme",
- "stepScannedTitle": "{name} est connecté",
- "countrySearch": "Rechercher un pays",
- "countryNoMatch": "Aucun pays ne correspond",
- "choiceStandalone": "Un nom pour le tableau seulement",
- "choiceStandaloneHint": "Un apprenti, un sous-traitant, toute personne que vous planifiez mais qui ne se connecte jamais. Ni téléphone, ni e-mail, ni compte. Vous pourrez lui en donner un plus tard.",
- "standaloneDetailsTitle": "Son nom, et une couleur",
- "standaloneDetailsBlurb": "C'est tout ce qu'il obtient, et tout ce qu'il lui faut. Il apparaît sur le tableau et sur les travaux, et n'a rien où se connecter.",
- "boardColour": "Couleur sur le tableau",
- "stepStandaloneTitle": "{name} est sur le tableau",
- "stepStandaloneBody": "Vous pouvez le planifier et l'affecter à des travaux tout de suite. S'il lui faut un jour l'application, ajoutez-lui un numéro de mobile depuis cette liste.",
- "boardOnly": "Sur le tableau uniquement",
- "boardOnlyHint": "Planifiés et affectés à des travaux, mais ne se connectent jamais. Donnez-leur un numéro de mobile quand ils auront besoin de l'application.",
- "boardOnlyNoAccount": "Aucun compte",
- "giveApp": "Donner l'application",
- "giveAppTitle": "Donner l'application à {name}",
- "giveAppBlurb": "Il ne manque qu'un numéro de mobile. C'est avec lui qu'il se connectera ensuite.",
- "giveAppKeepsHistory": "Tout ce qui lui est déjà attribué reste en place.",
- "giveAppSubmit": "Créer son compte",
- "role": "Rôle",
- "inviteMemberHint": "La personne reçoit un e-mail et choisit son propre mot de passe.",
- "removeBoardOnlyTitle": "Retirer {name} du planning ?",
- "removeBoardOnlyBody": "{name} n’apparaît plus sur le planning et ne peut plus être affecté à des travaux. Le travail déjà enregistré et les heures pointées restent exactement tels quels.",
- "removeBoardOnlyDone": "{name} est retiré du planning",
- "noRole": "Aucun rôle",
- "worksOnJobs": "Travaille sur les véhicules",
- "createDefaultRoles": "Créer les rôles standard",
- "defaultRolesCreated": "Rôles standard créés",
- "noRolesYet": "Cet atelier n’a encore aucun rôle, il n’y a donc rien à leur donner en dehors d’Admin. Créez les rôles standard et affinez les permissions plus tard.",
- "noRoleDescription": "Aucune permission. La personne peut se connecter, mais chaque écran la refusera tant que vous ne lui aurez pas donné un rôle ci-dessous.",
- "cannotUseApp": "Son rôle ne permet pas de travailler sur les travaux. Donnez-lui d’abord Technicien, ou un rôle ayant les mêmes permissions.",
- "revokeTechnicianDone": "{name} a été déconnecté de l’application",
- "noAccessTitle": "Pas encore d’accès",
- "noAccessBody": "Votre compte fait partie de {workshop}, mais aucun rôle ne lui a été attribué, donc il n’y a rien à ouvrir ici. Demandez un rôle à un propriétaire ou un administrateur de votre atelier.",
- "setupPageInstall": "Télécharger sur Google Play"
- },
- "invoice": {
- "title": "Mise en page de facture",
- "description": "Configurez ce qui apparait sur les factures PDF générées.",
- "numberingTitle": "Numérotation et délais",
- "numberingDescription": "Comment les factures et les devis sont numérotés, quand les factures arrivent à échéance et combien de temps les devis restent valables.",
- "documentsTitle": "Documents",
- "documentsDescription": "Ce que chaque facture et chaque devis emporte avec lui.",
- "tabs": {
- "general": "Général",
- "layout": "Mise en page",
- "customFields": "Champs personnalisés"
- },
- "invoiceNumberFormat": "Format du numéro de facture",
- "invoiceNumberFormatHint": "Utilisez <code>{year}</code> pour l'année en cours. Aperçu : <bold>{preview}</bold>",
- "quoteNumberFormat": "Format du numéro de devis",
- "quoteNumberFormatHint": "Utilisez <code>{year}</code> pour l'année en cours. Aperçu : <bold>{preview}</bold>",
- "quoteValidDays": "Validité du devis (jours)",
- "quoteValidDaysHint": "Les nouveaux devis reçoivent une date de validité de ce nombre de jours. 0 désactive cette option.",
- "sectionInvoices": "Factures",
- "sectionQuotes": "Devis",
- "nextInvoiceNumber": "Prochain numéro de facture",
- "nextInvoiceNumberPlaceholder": "Ex. 94",
- "nextInvoiceNumberHint": "La prochaine facture utilisera ce numéro (ex. {example})",
- "dueDays": "Jours d'échéance",
- "dueDaysHint": "Nombre de jours avant l'échéance de la facture",
- "visibilityTitle": "Visibilité sur la facture",
- "companyLogo": "Logo de l'entreprise",
- "companyLogoHint": "Afficher le logo dans l'en-tête de la facture",
- "companyName": "Nom de l'entreprise",
- "companyNameHint": "Afficher le nom de l'entreprise dans l'en-tête",
- "bankAccount": "Compte bancaire",
- "bankAccountHint": "Afficher le compte bancaire / IBAN sur la facture",
- "organizationNumber": "Numéro d'organisation",
- "organizationNumberHint": "Afficher le numéro d'organisation dans l'en-tête",
- "customFooter": "Pied de page personnalise",
- "footerPlaceholder": "Merci pour votre confiance !",
- "footerHint": "Ce texte apparait en bas de chaque facture",
- "saveInvoice": "Enregistrer les paramètres de facture",
- "saved": "Paramètres de facture enregistrés",
- "layoutDescription": "Personnalisez l'ordre et la visibilité des sections dans vos factures et devis.",
- "layoutSaved": "Mise en page enregistrée",
- "preview": "Aperçu",
- "layoutDocInvoice": "Facture",
- "layoutDocQuote": "Devis",
- "saveLayout": "Enregistrer la mise en page",
- "resetLayout": "Réinitialiser",
- "layoutColorsHint": "Les couleurs, les polices et le style d’en-tête sont dans Modèles.",
- "goToTemplates": "Ouvrir Modèles",
- "lockTitle": "Verrouillage des documents finalisés",
- "lockDescription": "Empêche la modification d'une facture ou d'un devis une fois qu'il est réglé.",
- "lockWhatItDoes": "Ce qui est verrouillé : pièces, main-d’œuvre, quantités, prix, remise, taxe, numéro et date du document. La suppression est également bloquée.",
- "lockWhatItAllows": "Ce qui fonctionne encore : enregistrer des paiements, le paiement en ligne, les changements de statut, l’envoi et le renvoi, les pièces jointes et les notes internes. Une facture verrouillée reste toujours payable.",
- "lockUnlockNote": "Les propriétaires et administrateurs peuvent déverrouiller un document depuis sa propre page lorsqu’une correction est réellement nécessaire. Chaque déverrouillage est consigné dans le journal d’audit.",
- "lockDetailsShow": "Ce que fait le verrouillage",
- "lockDetailsHide": "Masquer",
- "lockInvoicesLabel": "Verrouiller les factures",
- "lockTriggerSent": "Une fois la facture envoyée",
- "lockTriggerPaid": "Une fois la facture intégralement payée",
- "lockTriggerSentHint": "Verrouille dès que la facture est envoyée par e-mail ou qu'un lien de partage est créé. Les factures envoyées avant l'activation ne sont pas concernées.",
- "lockTriggerPaidHint": "Verrouille une fois le montant total réglé ou la facture marquée payée à la main. Une facture partiellement payée reste modifiable.",
- "lockQuotesLabel": "Verrouiller les devis",
- "quoteLockTriggerSent": "Une fois le devis envoyé",
- "quoteLockTriggerAccepted": "Une fois le devis accepté",
- "quoteLockTriggerSentHint": "Verrouille dès que le devis part chez le client. À choisir uniquement si vous ne révisez jamais un devis en cours de négociation.",
- "quoteLockTriggerAcceptedHint": "Verrouille une fois le devis accepté par le client ou converti en intervention. Les devis envoyés restent modifiables.",
- "freezeTitle": "Factures antérieures au verrouillage",
- "freezeBody": "{count, plural, one {# facture a atteint} other {# factures ont atteint}} un client avant que cette version puisse verrouiller ce qu'une facture imprime. Elles s'impriment toujours avec vos coordonnées, logo et design actuels, donc un changement fait aujourd'hui les atteint aussi. Les verrouiller conserve chacune telle qu'elle s'imprime maintenant.",
- "freezeNone": "Chaque facture ayant atteint un client est verrouillée telle qu'elle a été envoyée.",
- "freezeButton": "Les verrouiller avec le design actuel",
- "freezeConfirmTitle": "Verrouiller {count, plural, one {# facture} other {# factures}} ?",
- "freezeConfirmBody": "Chacune conserve le design, le logo, les coordonnées de l'atelier, le client, le véhicule et les constats avec lesquels elle s'imprime maintenant. Irréversible ; les factures restent modifiables ou verrouillées en modification exactement comme aujourd'hui.",
- "freezeProgress": "{done} sur {total} verrouillées",
- "freezeDone": "{count, plural, one {# facture verrouillée} other {# factures verrouillées}}",
- "freezeFailed": "Impossible de verrouiller les factures",
- "reapplyTitle": "Design des factures déjà envoyées",
- "reapplyDescription": "Appliquer le design utilisé aujourd'hui aux factures verrouillées sur un design plus ancien.",
- "reapplyBody": "{count, plural, one {# facture est verrouillée} other {# factures sont verrouillées}} sur le design d'envoi, si bien qu'un nouveau design ne touche que les factures envoyées à partir de maintenant. La réapplication pose le design du jour sur toutes. Seule l'apparence change : les coordonnées de l'atelier, le client, les conditions de paiement et les montants de chaque facture restent tels quels.",
- "reapplyWarning": "Cette action est irréversible. Le design utilisé auparavant n'est pas conservé.",
- "reapplyButton": "Réappliquer le design actuel",
- "reapplyConfirmTitle": "Réappliquer le design à {count, plural, one {# facture} other {# factures}} ?",
- "reapplyConfirmBody": "Chaque facture déjà partie chez un client passe au design utilisé aujourd'hui. Seule l'apparence change : les coordonnées, les conditions et les montants de chaque facture restent tels quels. L'action est irréversible et le design précédent ne pourra pas être rétabli.",
- "reapplyProgress": "{done} sur {total} mises à jour",
- "reapplyDone": "{count, plural, one {# facture utilise} other {# factures utilisent}} maintenant le design actuel",
- "reapplyFailed": "Impossible de réappliquer le design",
- "sectionSending": "Envoi",
- "attachPdfLabel": "Joindre le PDF aux e-mails",
- "attachPdfHint": "La valeur par défaut pour chaque facture, devis et inspection que vous envoyez par e-mail. Activé : le client reçoit le PDF en pièce jointe. Désactivé : il reçoit un lien vers le document, et le compteur de consultations indique quand il l'a ouvert, ce qui permet de relancer ceux que personne n'a regardés. Vous pouvez le changer pour un envoi précis dans la fenêtre de partage."
- },
- "layoutEditor": {
- "helpText": "Glissez pour réorganiser. Utilisez le sélecteur de largeur pour placer les sections côte à côte. Les sections consécutives en demi-largeur (G/D) s'afficheront en deux colonnes.",
- "addField": "Ajouter un champ",
- "custom": "personnalisé",
- "full": "Plein",
- "boxed": "Cadre",
- "plain": "Sans",
- "boxedHint": "Imprimé dans un cadre",
- "plainHint": "Imprimé sans cadre",
- "L": "G",
- "R": "D",
- "left": "gauche",
- "right": "droite",
- "halfWidthHint": "Demi-largeur ({column}) — cliquer pour pleine largeur",
- "fullWidthHint": "Pleine largeur — cliquer pour demi-largeur (gauche)",
- "sections": {
- "header": "En-tête",
- "slogan": "Slogan",
- "customer": "Client",
- "vehicle": "Véhicule",
- "service": "Service",
- "document_title": "Titre du document",
- "items_table": "Tableau des articles",
- "parts_table": "Pièces",
- "labor_table": "Main-d'œuvre",
- "totals": "Totaux",
- "notes": "Notes",
- "attached_documents": "Documents joints",
- "diagnostic_notes": "Notes de diagnostic",
- "findings": "Observations",
- "warranty": "Garantie",
- "bank_account": "Compte bancaire",
- "footer": "Pied de page",
- "general": "Général",
- "telegram_qr": "QR Telegram"
- },
- "fields": {
- "customer_name": "Nom du client",
- "customer_company": "Entreprise",
- "customer_address": "Adresse",
- "customer_email": "E-mail",
- "customer_phone": "Téléphone",
- "customer_tax_id": "Numéro TVA client",
- "vehicle_name": "Véhicule",
- "vin": "VIN",
- "license_plate": "Plaque d'immatriculation",
- "mileage": "Kilométrage",
- "service_title": "Titre du service",
- "service_type": "Type de service",
- "tech_name": "Technicien",
- "logo": "Logo",
- "company_name": "Nom de l'entreprise",
- "company_slogan": "Slogan",
- "company_address": "Adresse",
- "company_phone": "Téléphone",
- "company_email": "E-mail",
- "company_org_number": "Numéro d'organisation",
- "bank_account": "Compte bancaire",
- "footer_note": "Note de bas de page",
- "org_number": "Numéro d'organisation",
- "payment_terms": "Conditions de paiement",
- "due_date": "Date d'échéance",
- "title": "Titre",
- "invoice_number": "N° de facture",
- "customer_number": "N° de client",
- "date": "Date",
- "portal_link": "Lien du portail"
- },
- "presetsTitle": "Partir d’une disposition",
- "presetsHint": "Remplace la disposition ci-dessous. Rien n’est enregistré avant votre validation.",
- "presets": {
- "classic": {
- "name": "Classique",
- "description": "Pièces et main-d’œuvre en tableaux séparés, informations empilées à gauche"
- },
- "letterhead": {
- "name": "En-tête",
- "description": "Coordonnées en bas, titre sous les adresses"
- },
- "compact": {
- "name": "Compacte",
- "description": "Sans cadres, l’essentiel seulement"
- },
- "minimal": {
- "name": "Minimal",
- "description": "Typographie nue sur blanc : sans encadrés ni bandeaux, seulement des filets et de l'espace"
- },
- "itemized": {
- "name": "Détaillé",
- "description": "Une liste de postes numérotée avec une colonne d'unité"
- },
- "detailed": {
- "name": "Détaillée",
- "description": "Titre en haut, véhicule seul, les deux tableaux et tous les blocs optionnels"
- }
- },
- "style": {
- "documentTitle": "Feuille entière",
- "documentHint": "taille, espacement, accent, bandes",
- "textColor": "Texte",
- "labelColor": "Titre",
- "backgroundColor": "Fond",
- "borderColor": "Bordure",
- "fontSize": "Taille",
- "rowPadding": "Hauteur de ligne",
- "margin": "Marge",
- "accentColor": "Accent",
- "stripeColor": "Bande",
- "stripes": "Bandes",
- "fontFamily": "Police",
- "fontInherit": "Hériter"
- }
- },
- "templates": {
- "title": "Modèles",
- "invoiceDescription": "Personnalisez l'apparence de vos factures et devis PDF.",
- "inspectionsDescription": "Gerez les listes de contrôle d'inspection et les modèles multi-points.",
- "smsDescription": "Personnalisez les messages SMS envoyés aux clients.",
- "tabs": {
- "invoice": "Facture",
- "quotation": "Devis",
- "inspections": "Inspections",
- "sms": "SMS",
- "layout": "Mise en page"
- },
- "presets": "Presets de modèle",
- "primaryColor": "Couleur primaire",
- "colors": "Couleurs",
- "textColor": "Texte",
- "textColorHint": "La couleur des titres et du corps de texte",
- "companyTextColor": "Nom de la société",
- "companyTextColorHint": "La couleur du nom sur l’en-tête",
- "frameBorderColor": "Filet du cadre",
- "frameBorderColorHint": "Le filet où le cadre rencontre le papier",
- "frameShadow": "Ombre du cadre",
- "frameShadowOn": "Ombre",
- "frameShadowOff": "Plat",
- "backgroundColor": "Arrière-plan",
- "backgroundColorClear": "Réinitialiser",
- "backgroundColorHint": "Laissez vide pour du papier blanc. Une teinte claire imprime une feuille teintée.",
- "fontAndLayout": "Police et mise en page",
- "fontFamily": "Famille de police",
- "helveticaDefault": "Helvetica (Par défaut)",
- "timesRoman": "Times Roman",
- "courier": "Courier",
- "headerStyle": "Style d'en-tête",
- "logoSize": "Taille du logo",
- "standard": "Standard",
- "compact": "Compact",
- "modern": "Moderne",
- "framed": "Encadré",
- "letterheadMark": "En-tête",
- "letterheadLogo": "Logo",
- "letterheadCompanyName": "Nom de la société",
- "preview": "Aperçu {name}",
- "billTo": "Facturer à",
- "preparedFor": "Préparé pour",
- "vehicle": "Véhicule",
- "part": "Pièce",
- "qty": "Qte",
- "price": "Prix",
- "total": "Total",
- "labor": "Main-d'œuvre",
- "hours": "Heures",
- "rate": "Taux",
- "subtotal": "Sous-total",
- "tax": "Taxe ({rate}%)",
- "previewService": "Service",
- "previewNotes": "Notes",
- "previewDiagnosticNotes": "Notes de diagnostic",
- "previewDue": "Échéance: {date}",
- "previewAdditionalInfo": "Informations supplémentaires",
- "previewThankYou": "Merci pour votre confiance",
- "saveInvoiceTemplate": "Enregistrer le modèle de facture",
- "saveQuotationTemplate": "Enregistrer le modèle de devis",
- "invoiceTemplateSaved": "Paramètres du modèle de facture enregistrés",
- "quotationTemplateSaved": "Paramètres du modèle de devis enregistrés",
- "failedSave": "Échec de l'enregistrement des paramètres",
- "smsTemplates": "Modèles de messages SMS",
- "smsTemplatesDescription": "Personnalisez les messages texte envoyés aux clients. Utilisez des variables comme <code>'{companyName}'</code> pour inserer des valeurs dynamiques.",
- "reset": "Réinitialiser",
- "invoiceReady": "Facture prête",
- "invoiceReadyDescription": "Envoyé lors du partage d'une facture avec un client.",
- "quoteReady": "Devis prêt",
- "quoteReadyDescription": "Envoyé lors du partage d'un devis avec un client.",
- "inspectionReady": "Inspection prête",
- "inspectionReadyDescription": "Envoyé lors du partage d'un rapport d'inspection avec un client.",
- "statusInProgress": "Statut : En cours",
- "statusInProgressDescription": "Envoyé lorsque le statut d'un ordre de travail passe à En cours.",
- "statusWaitingParts": "Statut : En attente de pièces",
- "statusWaitingPartsDescription": "Envoyé lorsque le statut passe à En attente de pièces.",
- "statusReady": "Statut : Prêt a récupérer",
- "statusReadyDescription": "Envoyé lorsque le statut passe à Prêt.",
- "statusCompleted": "Statut : Terminé",
- "statusCompletedDescription": "Envoyé lorsque le statut passe à Terminé.",
- "paymentReceived": "Paiement reçu",
- "paymentReceivedDescription": "Envoyé lorsqu'un paiement est enregistré pour une facture.",
- "saveSmsTemplates": "Enregistrer les modèles SMS",
- "smsTemplateSaved": "Paramètres des modèles SMS enregistrés",
- "smsDefaults": {
- "invoiceReady": "Votre facture est prête. Consultez-la ici : {share_link}",
- "quoteReady": "Votre devis est prêt pour examen. Consultez-le ici : {share_link}",
- "inspectionReady": "Votre rapport d'inspection véhicule est prêt. Consultez-le ici : {share_link}",
- "statusInProgress": "Les travaux sur votre véhicule ont commencé. Nous vous tiendrons informé.",
- "statusWaitingParts": "Votre véhicule est en attente de pièces. Nous vous informerons quand les travaux reprendront.",
- "statusReady": "Votre véhicule est prêt à être récupéré !",
- "statusCompleted": "Votre service est terminé. Merci pour votre confiance !",
- "paymentReceived": "Paiement de {amount} reçu pour la facture {invoice_number}. Merci !"
- },
- "colorPresets": {
- "amber": "Ambre",
- "blue": "Bleu",
- "emerald": "Émeraude",
- "red": "Rouge",
- "purple": "Violet",
- "slate": "Ardoise",
- "rose": "Rose",
- "indigo": "Indigo"
- },
- "layoutTitle": "Mise en page de la facture",
- "layoutDescription": "Personnalisez l'ordre et la visibilité des sections dans vos factures et devis.",
- "layoutSaved": "Mise en page enregistrée",
- "layoutDocInvoice": "Facture",
- "layoutDocQuote": "Devis",
- "goToLayout": "Disposition et sections",
- "openDesigner": "Ouvrir le concepteur",
- "designerIntro": "Choisissez un point de départ, puis ouvrez le concepteur pour tout modifier.",
- "designerHint": "Les couleurs, les polices, les espacements et toutes les sections sont dans le concepteur."
- },
- "payment": {
- "readMore": "En savoir plus",
- "detailsTitle": "Détails de paiement",
- "detailsDescription": "Compte bancaire et conditions de paiement sur les factures.",
- "bankAccount": "Compte bancaire (IBAN)",
- "bankAccountPlaceholder": "NO93 8601 1117 947",
- "bankAccountHint": "Votre numéro de compte bancaire ou IBAN pour recevoir les paiements",
- "paymentTerms": "Conditions de paiement",
- "paymentTermsPlaceholder": "Net 14 jours",
- "paymentTermsHint": "Texte des conditions de paiement sur les factures (ex. \"Net 14 jours\", \"A réception\")",
- "onlinePayments": "Paiements en ligne",
- "onlinePaymentsDescription": "Laissez les clients payer les factures depuis le lien que vous leur envoyez. Stripe, Vipps et PayPal se connectent sous Intégrations et peuvent fonctionner côte à côte.",
- "onlinePaymentsHint": "Quand un client paie, le prestataire prévient Torqvoice et la facture se marque payée toute seule. La page de chaque prestataire affiche l'URL de notification dont il a besoin.",
- "offered": "Sur les liens de facture",
- "paused": "Connecté, non proposé",
- "termsOfSale": "Conditions de vente",
- "termsOfSaleDescription": "Ce qu'un client accepte en payant en ligne. Vipps exige des conditions publiées ; la facture y renvoie dans tous les cas.",
- "termsOfSaleText": "Texte des conditions",
- "externalTermsUrl": "URL des conditions externes (optionnel)",
- "externalTermsUrlHint": "Lien vers une page externe avec vos conditions. Si defini, la facture redirigera ici.",
- "publicTermsUrl": "URL publique des conditions",
- "publicTermsUrlHint": "Partagez cette URL avec Vipps ou liez-la depuis votre site web.",
- "savePayment": "Enregistrer les paramètres de paiement",
- "saved": "Paramètres de paiement enregistrés"
- },
- "tax": {
- "title": "Taxe",
- "description": "Configurez le taux de taxe applique aux factures, devis et bons de travail.",
- "modeLabel": "Mode de taxe",
- "modeHint": "Choisissez si les prix des lignes sont saisis avec la taxe déjà incluse (inclusif) ou hors taxe (exclusif). Les enregistrements existants conservent le mode avec lequel ils ont ete crees.",
- "modeExclusive": "Exclusif",
- "modeInclusive": "Inclusif",
- "modeExclusiveExample": "Exemple : 100 + {rate}% de taxe = 100 + taxe en plus.",
- "modeInclusiveExample": "Exemple : 100 inclut déjà {rate}% de taxe — la part de taxe est calculee en sens inverse.",
- "lineItemsInclTaxLabel": "Afficher les prix des lignes TTC sur les factures et les devis",
- "lineItemsInclTaxHint": "Ne change que ce qui est imprimé sur les factures et les devis, y compris leurs PDF et les copies que les clients ouvrent depuis un lien. Activé : chaque ligne de pièces et de main-d'œuvre et le sous-total sont affichés TTC, et la ligne de taxe indique la part de taxe incluse. Désactivé : prix HT avec la taxe ajoutée en bas. Les ordres de travail et les prix que vous saisissez ne sont pas modifiés.",
- "labelLabel": "Libellé de taxe",
- "labelHint": "Nom personnalisé affiché sur les factures et devis (p. ex. TVA, GST). Laisser vide pour utiliser le libellé localisé par défaut.",
- "labelPlaceholder": "TVA",
- "splitLabel": "Répartir la taxe en plusieurs taux",
- "splitHint": "Pour les régions qui appliquent plusieurs taxes sur la même facture, comme la GST et la QST au Québec ou la CGST et la SGST en Inde. Chaque taxe s'imprime sur sa propre ligne avec son propre numéro d'enregistrement, et le rapport de taxes les distingue.",
- "splitIncomplete": "Donnez un nom et un taux à chaque taxe avant d'enregistrer.",
- "presetLabel": "Partir d'un modèle",
- "presetPlaceholder": "Choisir une région",
- "presets": {
- "caQc": "Québec, Canada (GST + QST)",
- "caBc": "Colombie-Britannique, Canada (GST + PST)",
- "caSk": "Saskatchewan, Canada (GST + PST)",
- "caMb": "Manitoba, Canada (GST + RST)",
- "inIntra": "Inde, même État (CGST + SGST à 18%)"
- },
- "componentName": "Nom",
- "componentNamePlaceholder": "GST",
- "componentRate": "Taux",
- "componentRegistration": "Numéro d'enregistrement",
- "componentRegistrationPlaceholder": "123456789 RT0001",
- "componentRemove": "Retirer cette taxe",
- "registrationHint": "Imprimé sur les factures sous les coordonnées de votre entreprise. Laissez vide pour une taxe à laquelle vous n'êtes pas inscrit.",
- "addComponent": "Ajouter une taxe",
- "combinedRate": "Taux combiné",
- "combinedRateHint": "Les nouveaux bons de travail et devis sont taxés à la somme des taux ci-dessus.",
- "convertInclusiveLabel": "Convertir les enregistrements existants en mode inclusif",
- "convertInclusiveHint": "Augmente chaque prix de ligne par le taux de taxe afin que les prix incluent la taxe. Les totaux côté client restent identiques. Éligibles : {serviceRecords} bons de travail, {quotes} devis.",
- "convertInclusiveButton": "Convertir en inclusif",
- "convertInclusiveConfirmTitle": "Convertir les enregistrements existants en mode inclusif ?",
- "convertInclusiveConfirmDescription": "Cela réécrira les prix de ligne de {serviceRecords} bons de travail et {quotes} devis pour quils incluent la taxe. Les totaux côté client ne changeront pas, mais les prix imprimés sur les factures passées apparaîtront plus élevés. Cette action est irréversible.",
- "convertInclusiveConfirmLabel": "Convertir les enregistrements",
- "convertInclusiveSuccess": "{serviceRecords} bons de travail et {quotes} devis convertis en mode inclusif.",
- "convertInclusiveFailed": "Impossible de convertir les enregistrements en mode inclusif",
- "convertInclusiveNoRecords": "Aucun enregistrement en mode exclusif à convertir.",
- "convertExclusiveLabel": "Convertir les enregistrements existants en mode exclusif",
- "convertExclusiveHint": "Diminue chaque prix de ligne par le taux de taxe afin que les prix affichent les montants hors taxe. Les totaux côté client restent identiques. Éligibles : {serviceRecords} bons de travail, {quotes} devis.",
- "convertExclusiveButton": "Convertir en exclusif",
- "convertExclusiveConfirmTitle": "Convertir les enregistrements existants en mode exclusif ?",
- "convertExclusiveConfirmDescription": "Cela réécrira les prix de ligne de {serviceRecords} bons de travail et {quotes} devis pour quils affichent les montants hors taxe. Les totaux côté client ne changeront pas, mais les prix imprimés sur les factures passées apparaîtront plus bas. Cette action est irréversible.",
- "convertExclusiveConfirmLabel": "Convertir les enregistrements",
- "convertExclusiveSuccess": "{serviceRecords} bons de travail et {quotes} devis convertis en mode exclusif.",
- "convertExclusiveFailed": "Impossible de convertir les enregistrements en mode exclusif",
- "convertExclusiveNoRecords": "Aucun enregistrement en mode inclusif à convertir."
- },
- "currency": {
- "title": "Devise et taxes",
- "description": "Devise par défaut et taux d'imposition pour les factures et les dossiers de service.",
- "currencyLabel": "Devise",
- "searchCurrency": "Rechercher une devise...",
- "noCurrencyFound": "Aucune devise trouvée.",
- "previewLabel": "Aperçu : {value}",
- "enableTax": "Activer les taxes",
- "enableTaxHint": "Afficher le calcul des taxes sur les factures et les dossiers de service",
- "defaultTaxRate": "Taux d'imposition par défaut (%)",
- "defaultTaxRateHint": "Rempli automatiquement lors de la création de nouveaux dossiers de service",
- "applyTaxToExistingLabel": "Appliquer la taxe aux enregistrements existants",
- "applyTaxToExistingHint": "Applique le taux de taxe par défaut aux bons de travail et devis existants sans taux de taxe. Éligibles : {serviceRecords} bons de travail, {quotes} devis.",
- "applyTaxToExistingButton": "Appliquer la taxe aux enregistrements existants",
- "applyTaxConfirmTitle": "Appliquer la taxe aux enregistrements existants ?",
- "applyTaxConfirmDescription": "Cela definira le taux de taxe a {rate}% sur {serviceRecords} bons de travail et {quotes} devis qui n'ont actuellement aucun taux de taxe, et recalculera leurs totaux. Les enregistrements avec un taux personnalise ne seront pas modifies. Cette action est irréversible.",
- "applyTaxConfirmLabel": "Appliquer la taxe",
- "applyTaxSuccess": "{serviceRecords} bons de travail et {quotes} devis mis a jour.",
- "applyTaxFailed": "Impossible d'appliquer la taxe aux enregistrements existants",
- "applyTaxNoRecords": "Aucun enregistrement ne necessite le taux de taxe par défaut.",
- "saveSettings": "Enregistrer les paramètres",
- "saved": "Paramètres enregistrés",
- "currencies": {
- "USD": "Dollar americain",
- "EUR": "Euro",
- "GBP": "Livre sterling",
- "NOK": "Couronne norvegienne",
- "SEK": "Couronne suedoise",
- "DKK": "Couronne danoise",
- "CHF": "Franc suisse",
- "CAD": "Dollar canadien",
- "AUD": "Dollar australien",
- "NZD": "Dollar neo-zelandais",
- "JPY": "Yen japonais",
- "CNY": "Yuan chinois",
- "INR": "Roupie indienne",
- "BRL": "Real bresilien",
- "MXN": "Peso mexicain",
- "PLN": "Zloty polonais",
- "CZK": "Couronne tcheque",
- "HUF": "Forint hongrois",
- "TRY": "Livre turque",
- "ZAR": "Rand sud-africain",
- "KRW": "Won sud-coreen",
- "SGD": "Dollar de Singapour",
- "HKD": "Dollar de Hong Kong",
- "THB": "Baht thailandais",
- "ISK": "Couronne islandaise",
- "RON": "Leu roumain",
- "ILS": "Shekel israelien",
- "PHP": "Peso philippin",
- "IDR": "Roupie indonesienne",
- "MYR": "Ringgit malaisien",
- "LKR": "Roupie srilankaise",
- "AED": "Dirham des EAU",
- "SAR": "Riyal saoudien",
- "RUB": "Rouble russe",
- "TWD": "Dollar taiwanais",
- "VND": "Dong vietnamien",
- "PKR": "Roupie pakistanaise",
- "BDT": "Taka bangladais",
- "NPR": "Roupie nepalaise",
- "BGN": "Lev bulgare",
- "UAH": "Hryvnia ukrainienne",
- "CLP": "Peso chilien",
- "COP": "Peso colombien",
- "ARS": "Peso argentin",
- "PEN": "Sol peruvien",
- "EGP": "Livre egyptienne",
- "NGN": "Naira nigerian",
- "KES": "Shilling kenyan",
- "MAD": "Dirham marocain",
- "DZD": "Dinar algérien",
- "GHS": "Cedi ghaneen",
- "QAR": "Riyal qatari",
- "KWD": "Dinar koweitien",
- "BHD": "Dinar bahreini",
- "OMR": "Rial omanais",
- "JOD": "Dinar jordanien"
- },
- "formatTitle": "Format de la monnaie",
- "formatSymbolName": "Symbole",
- "formatCodeName": "Code",
- "formatSymbolLabel": "Symbole: {value}",
- "formatCodeLabel": "Code: {value}"
- },
- "localization": {
- "languageTitle": "Langue",
- "languageDescription": "Choisissez la langue d'affichage de l'application.",
- "language": "Langue",
- "forceCustomerLocale": "Forcer cette langue sur les pages destinées aux clients",
- "forceCustomerLocaleHint": "Lorsqu'il est activé, le portail client et les factures, devis et inspections partagés s'affichent dans la langue de votre atelier, quels que soient les paramètres du navigateur du visiteur. Lorsqu'il est désactivé, les pages destinées aux clients suivent la langue du navigateur du visiteur.",
- "defaultCountryCode": "Indicatif pays par défaut",
- "defaultCountryCodeHint": "Utilisé lorsque les clients se connectent au portail par SMS — appliqué aux numéros de téléphone sans indicatif pays (le vôtre ou celui du client). Format : + suivi de chiffres, par exemple +33.",
- "defaultCountryCodeInvalid": "Saisissez un indicatif pays valide, par exemple +33, 33 ou 0033.",
- "saved": "Paramètres de localisation enregistrés",
- "saveSettings": "Enregistrer les paramètres"
- },
- "customFields": {
- "title": "Champs personnalisés",
- "description": "Définissez des champs personnalisés qui apparaissent sur les fiches de service et les devis.",
- "addField": "Ajouter un champ",
- "filterAll": "Tous",
- "serviceRecord": "Fiche de service",
- "quote": "Devis",
- "emptyState": "Aucun champ personnalisé défini. Cliquez sur \"Ajouter un champ\" pour en créer un.",
- "required": "Obligatoire",
- "inactive": "Inactif",
- "editField": "Modifier le champ",
- "newField": "Nouveau champ personnalisé",
- "label": "Libellé",
- "labelPlaceholder": "ex. Expiration de garantie",
- "fieldName": "Nom du champ (ID)",
- "fieldNamePlaceholder": "expiration_garantie",
- "fieldNameHint": "Lettres minuscules, chiffres et underscores uniquement.",
- "fieldType": "Type de champ",
- "entityType": "Type d'entité",
- "fieldTypes": {
- "text": "Texte",
- "number": "Nombre",
- "date": "Date",
- "select": "Sélection (Menu déroulant)",
- "checkbox": "Case à cocher",
- "textarea": "Zone de texte"
- },
- "optionsLabel": "Options (séparées par des virgules)",
- "optionsPlaceholder": "Option 1, Option 2, Option 3",
- "active": "Actif",
- "cancel": "Annuler",
- "update": "Mettre à jour",
- "create": "Créer",
- "deleteTitle": "Supprimer le champ personnalisé",
- "deleteDescription": "Cela supprimera définitivement \"{label}\" et toutes ses valeurs enregistrées. Cette action est irréversible.",
- "fieldCreated": "Champ personnalisé créé",
- "fieldUpdated": "Champ personnalisé mis à jour",
- "fieldDeleted": "Champ personnalisé supprimé",
- "failedSave": "Impossible d'enregistrer le champ",
- "failedDelete": "Impossible de supprimer",
- "edit": "Modifier",
- "delete": "Supprimer",
- "unassigned": "Non assigné",
- "defaultValue": "Valeur par défaut",
- "defaultValueHint": "Préremplie sur les nouvelles fiches et imprimée tant qu'aucune valeur n'a été saisie.",
- "defaultValueNone": "Aucune",
- "defaultValueCheckedHint": "Cochée par défaut",
- "placement": "Emplacement sur le document",
- "placementHidden": "Non imprimé",
- "placementHint": "Dans quelle section de la facture ou du devis ce champ est imprimé. Dans le designer, vous pouvez aussi l'activer dans d'autres sections.",
- "failedSavePlacement": "Impossible d'enregistrer l'emplacement du champ"
- },
- "workshop": {
- "title": "Valeurs par défaut de l'atelier",
- "description": "Valeurs par défaut lors de la création de nouveaux dossiers de service.",
- "defaultTechnician": "Nom du technicien par défaut",
- "technicianPlaceholder": "Rechercher technicien...",
- "failedCreateTech": "Échec de la création du technicien",
- "creating": "Création...",
- "createTechnician": "Créer \"{name}\"",
- "newTechPlaceholder": "Nom du technicien",
- "addTech": "Ajouter",
- "addNewTech": "+ Ajouter nouveau",
- "defaultLaborRate": "Taux horaire par défaut",
- "laborRatePlaceholder": "75,00",
- "partsMarkupTitle": "Marge sur Pièces",
- "partsMarkupDescription": "Marge appliquée au coût fournisseur lors de l'ajout de pièces. Interne uniquement. Le client ne voit jamais le coût ou la marge, seulement le prix final.",
- "defaultMarkupPercent": "Marge par Défaut %",
- "defaultMarkupPercentHint": "Les nouvelles pièces ajoutées manuellement sont préremplies avec cette marge. Laisser à 0 pour saisir les prix manuellement.",
- "markupAppliesToInventory": "Appliquer la marge aux pièces du stock",
- "markupAppliesToInventoryHint": "Lorsque activé, les pièces sélectionnées dans le stock utilisent aussi coût + marge par défaut (remplace le prix de vente du stock).",
- "unitsTitle": "Unites",
- "unitsDescription": "Choisissez entre metrique (km, litres) et imperial (miles, gallons).",
- "unitSystem": "Système d'unites",
- "metric": "Metrique (km, litres)",
- "imperial": "Impérial (miles, gallons)",
- "distanceLabel": "Distance",
- "volumeLabel": "Volume",
- "kilometers": "kilometres (km)",
- "liters": "litres (L)",
- "miles": "miles (mi)",
- "gallons": "gallons (gal)",
- "defaultStockUnit": "Unité de stock par défaut",
- "defaultStockUnitHint": "Préremplie pour les nouvelles pièces en stock. Chaque pièce peut toujours utiliser sa propre unité.",
- "saveWorkshop": "Enregistrer les paramètres de l'atelier",
- "saved": "Paramètres de l'atelier enregistrés",
- "assignDialogTitle": "Assigner aux ordres de travail existants ?",
- "assignDialogDescription": "Voulez-vous assigner {name} à tous les ordres de travail qui n'ont pas de technicien ?",
- "assignDialogConfirm": "Oui, assigner",
- "assignDialogSkip": "Non, ignorer",
- "assignedUnassigned": "{count, plural, =0 {Aucun ordre non assigné trouvé} one {1 ordre assigné} other {# ordres assignés}}",
- "assignFailed": "Échec de l'assignation des ordres",
- "noTechnician": "Aucun",
- "weekStartDay": "Début de semaine",
- "workDayStart": "Début de journee",
- "workDayEnd": "Fin de journee",
- "titleTemplateTitle": "Titre de l'ordre de travail",
- "titleTemplateDescription": "Le nom d'un nouvel ordre de travail avant que quelqu'un saisisse un titre. Composez-le avec les balises ci-dessous ; chaque travail s'ouvre avec les balises remplies et le titre reste modifiable sur le travail.",
- "titleTemplate": "Modèle de titre",
- "titleTemplatePlaceholder": "Laissez vide pour que chaque travail commence comme « New Service Record »",
- "titleTemplateHint": "Cliquez sur une balise pour l'ajouter. Une balise sans contenu, comme un véhicule sans plaque, est omise avec son séparateur.",
- "titleTemplatePreview": "Exemple : {title}",
- "titleTemplateUnknown": "Les balises inconnues sont omises : {tags}",
- "titleTemplateTags": {
- "order_number": "Numéro d'ordre",
- "license_plate": "Plaque d'immatriculation",
- "customer_name": "Nom du client",
- "vehicle": "Véhicule (année, marque, modèle)",
- "make": "Marque",
- "model": "Modèle",
- "year": "Année",
- "vin": "VIN",
- "technician": "Technicien",
- "date": "Date"
- },
- "weekDays": {
- "0": "Dimanche",
- "1": "Lundi",
- "2": "Mardi",
- "3": "Mercredi",
- "4": "Jeudi",
- "5": "Vendredi",
- "6": "Samedi"
- }
- },
- "maintenance": {
- "title": "Maintenance predictive",
- "description": "Predisez le kilométrage actuel de chaque véhicule a partir de son historique de service et affichez les véhicules necessitant ou approchant leur prochain service.",
- "enablePredicted": "Activer la maintenance predictive",
- "enablePredictedHint": "Afficher les predictions sur les détails du véhicule et le tableau de bord",
- "serviceInterval": "Intervalle de service ({unit})",
- "serviceIntervalHint": "Distance entre les services recommandes",
- "approachingThreshold": "Seuil d'approche ({unit})",
- "approachingThresholdHint": "Afficher un avertissement a cette distance du prochain service",
- "saveMaintenance": "Enregistrer les paramètres de maintenance",
- "saved": "Paramètres de maintenance enregistrés"
- },
- "warranty": {
- "title": "Garantie",
- "description": "Définissez ce que vos devis et factures disent de la garantie. Chaque nouveau document part de là, et vous pouvez toujours le modifier sur chacun.",
- "designHint": "Imprimé dans la section Garantie du modèle de vos factures et devis. Si vous avez masqué cette section dans Modèles, réactivez-la. Le modèle Compact ne l'inclut pas.",
- "defaultStatus": "Les nouveaux devis et ordres de travail indiquent",
- "status": {
- "none": "Rien",
- "included": "Garantie incluse",
- "not_included": "Pas de garantie"
- },
- "statusHint": {
- "none": "La garantie n'est pas mentionnée tant que personne ne la renseigne sur le document.",
- "included": "Les nouveaux documents commencent avec la durée et les conditions ci-dessous.",
- "not_included": "Les nouveaux documents indiquent au client qu'aucune garantie de l'atelier n'est incluse."
- },
- "includedTitle": "Quand une garantie est incluse",
- "includedHint": "La durée et les conditions qu'un document reçoit lorsqu'il propose une garantie.",
- "months": "Durée (mois)",
- "mileage": "Limite de distance ({unit})",
- "mileageHint": "Laissez vide s'il n'y a pas de limite de distance.",
- "terms": "Conditions de garantie",
- "termsPlaceholder": "ex. 12 mois sur les pièces et la main-d'œuvre. Les pièces d'usure ne sont pas couvertes.",
- "termsHint": "Imprimé sous la garantie sur les devis et factures.",
- "notIncludedTitle": "Quand aucune garantie n'est incluse",
- "notIncludedHint": "Ce que le client lit lorsqu'un document indique qu'aucune garantie n'est incluse.",
- "notIncludedText": "Mention",
- "notIncludedPlaceholder": "ex. L'atelier n'offre aucune garantie sur les pièces fournies par le client. Vos droits légaux ne sont pas affectés.",
- "legalHint": "Il s'agit de la garantie propre à votre atelier. Dans de nombreux pays, dont l'UE et le Royaume-Uni, les clients disposent aussi de garanties légales qui ne peuvent pas être exclues. Laissez ce champ vide et le document indique que les droits légaux ne sont pas affectés.",
- "applyTitle": "Appliquer ces valeurs par défaut aux",
- "applyToQuotes": "Nouveaux devis",
- "applyToQuotesHint": "Le client voit la garantie avant d'accepter.",
- "applyToWorkOrders": "Nouveaux ordres de travail",
- "applyToWorkOrdersHint": "Imprimé sur la facture. Un ordre de travail créé depuis un devis conserve ce que disait le devis.",
- "save": "Enregistrer les paramètres de garantie",
- "saved": "Paramètres de garantie enregistrés",
- "saveFailed": "Impossible d'enregistrer les paramètres de garantie"
- },
- "appearance": {
- "title": "Apparence",
- "description": "Personnalisez l'apparence de Torqvoice.",
- "themeLabel": "Thème",
- "themeHint": "Choisissez la palette de couleurs de l'application. Le choix est enregistré sur cet appareil.",
- "themes": {
- "light": "Clair",
- "dark": "Sombre",
- "graphite": "Graphite",
- "ocean": "Océan",
- "forest": "Forêt",
- "midnight": "Minuit",
- "carbon": "Carbone",
- "system": "Système"
- },
- "dateTimeTitle": "Date et heure",
- "dateTimeDescription": "Configurez l'affichage des dates et heures dans l'application.",
- "dateFormat": "Format de date",
- "timeFormat": "Format d'heure",
- "time12h": "12 heures (2:30 PM)",
- "time24h": "24 heures (14:30)",
- "timezone": "Fuseau horaire",
- "timezoneAuto": "Detection automatique (navigateur)",
- "searchTimezone": "Rechercher un fuseau horaire...",
- "noTimezoneFound": "Aucun fuseau horaire trouvé.",
- "timezoneHint": "En mode auto-detection, chaque utilisateur voit les dates dans le fuseau horaire de son navigateur.",
- "previewLabel": "Aperçu",
- "dateLabel": "Date",
- "dateTimeLabel": "Date et heure",
- "saveSettings": "Enregistrer les paramètres",
- "saved": "Paramètres enregistrés",
- "fontLabel": "Police",
- "fontHint": "Choisissez les polices de l'application. Le choix est enregistré sur cet appareil.",
- "fontSampleHeading": "Ordre de travail",
- "fontSampleText": "Remplacer la bobine d'allumage et les bougies",
- "fonts": {
- "default": {
- "name": "Par défaut",
- "description": "Geist, net et neutre."
- },
- "workshop": {
- "name": "Atelier",
- "description": "IBM Plex avec des titres en capitales étroites, comme une fiche de travail."
- },
- "precise": {
- "name": "Précis",
- "description": "Inter et JetBrains Mono. Conçu pour les écrans remplis de tableaux et de chiffres."
- },
- "legible": {
- "name": "Lisible",
- "description": "Atkinson Hyperlegible. 0 et O, 1 et l ne se ressemblent jamais ; facile à lire depuis l'autre bout de l'atelier."
- }
- }
- },
- "data": {
- "title": "Gestion des données",
- "description": "Récupérez les données de votre ancien système, téléchargez une sauvegarde complète ou restaurez-en une.",
- "exportTitle": "Exporter les données",
- "exportDescription": "Telechargez vos données sous forme de fichier zip. Sélectionnez les catégories a inclure.",
- "includeInBackup": "Inclure dans la sauvegarde :",
- "selectAll": "Tout sélectionner",
- "deselectAll": "Tout désélectionner",
- "optSettings": "Paramètres",
- "optSettingsDesc": "Info atelier, config facturation, fournisseurs de paiement",
- "optCustomers": "Clients",
- "optCustomersDesc": "Dossiers clients et informations de contact",
- "optVehicles": "Véhicules et dossiers de service",
- "optVehiclesDesc": "Véhicules, notes, journaux de carburant, rappels, dossiers de service",
- "optQuotes": "Devis",
- "optQuotesDesc": "Devis avec pièces et main-d'oeuvre",
- "optInventory": "Inventaire",
- "optInventoryDesc": "Pièces d'inventaire et niveaux de stock",
- "optTechnicians": "Techniciens",
- "optTechniciansDesc": "Profils des techniciens et affectations au tableau de travail",
- "optInspections": "Inspections",
- "optInspectionsDesc": "Modèles d'inspection, inspections et résultats",
- "optAuditLogs": "Journaux d'audit",
- "optAuditLogsDesc": "Historique des activités et des modifications",
- "optSmsMessages": "Messages",
- "optSmsMessagesDesc": "Messages SMS, WhatsApp et Telegram envoyés et reçus",
- "optScheduledMessages": "Messages programmés",
- "optScheduledMessagesDesc": "Messages en attente et récurrents qui doivent encore partir",
- "optNotifications": "Notifications",
- "optNotificationsDesc": "Notifications système",
- "optCustomFields": "Champs personnalises",
- "optCustomFieldsDesc": "Définitions et valeurs des champs personnalises",
- "optFiles": "Fichiers telecharges",
- "optFilesDesc": "Images, pièces jointes de service, logo",
- "filesWarning": "Inclut les fichiers telecharges — la sauvegarde peut être plus volumineuse",
- "downloadBackup": "Télécharger la sauvegarde",
- "exportComplete": "Exportation terminée",
- "exportCompleteMessage": "Votre fichier de sauvegarde a ete telecharge.",
- "exportFailed": "Exportation échouée",
- "exportFailedMessage": "Impossible d'exporter vos données. Veuillez réessayer.",
- "importTitle": "Importer des données",
- "importWarning": "L'importation va <bold>remplacer toutes les données existantes</bold> par le contenu du fichier de sauvegarde. Cette action ne peut pas être annulée.",
- "importFileHint": "Supporte les fichiers de sauvegarde .zip (v2) et .json (v1).",
- "uploadRestore": "Télécharger et restaurer",
- "importComplete": "Importation terminée",
- "importCompleteMessage": "Toutes les données ont ete restaurees a partir du fichier de sauvegarde.",
- "importFailed": "Importation échouée",
- "importFromOther": "Importer d'autres services",
- "importFromOtherDescription": "Migrez vos données depuis une autre plateforme. Sélectionnez un service pour commencer.",
- "lubelogTitle": "Importer de LubeLog",
- "lubelogExportSteps": "Comment exporter vos données LubeLog :",
- "lubelogStep1": "Ouvrez votre instance LubeLog",
- "lubelogStep2": "Allez dans <bold>Settings</bold>",
- "lubelogStep3": "Cliquez sur <bold>Make Backup</bold> pour télécharger un fichier zip",
- "lubelogStep4": "Telechargez le fichier zip ci-dessous",
- "lubelogAddNote": "Cela va <bold>ajouter des données</bold> a cote de vos enregistrements existants — rien ne sera supprime.",
- "lubelogImported": "Ce qui sera importe :",
- "lubelogVehicles": "Véhicules",
- "lubelogServiceRecords": "Dossiers de service avec pièces jointes",
- "lubelogNotes": "Notes",
- "lubelogFileHint": "Fichiers jusqu'a 200 Mo supportes.",
- "lubelogImportComplete": "Importation LubeLog terminée",
- "cancel": "Annuler",
- "import": "Importer",
- "invoiceNinjaTitle": "Importer de Invoice Ninja",
- "invoiceNinjaExportSteps": "Comment exporter vos données Invoice Ninja :",
- "invoiceNinjaStep1": "Ouvrez votre instance Invoice Ninja",
- "invoiceNinjaStep2": "Allez dans <bold>Settings > Import | Export</bold>",
- "invoiceNinjaStep3": "Cliquez sur <bold>Export</bold> pour télécharger un fichier zip",
- "invoiceNinjaStep4": "Telechargez le fichier zip ci-dessous",
- "invoiceNinjaAddNote": "Cela va <bold>ajouter des données</bold> a cote de vos enregistrements existants — rien ne sera supprime.",
- "invoiceNinjaImported": "Ce qui sera importe :",
- "invoiceNinjaCustomers": "Clients",
- "invoiceNinjaProducts": "Produits (inventaire)",
- "invoiceNinjaInvoices": "Factures comme dossiers de service (pièces et main-d'oeuvre)",
- "invoiceNinjaDocuments": "Documents et pièces jointes",
- "invoiceNinjaPayments": "Paiements",
- "invoiceNinjaFileHint": "Telechargez un fichier d'export zip Invoice Ninja. Fichiers jusqu'a 200 Mo supportes.",
- "invoiceNinjaImportComplete": "Importation Invoice Ninja terminée",
- "backupStatus": {
- "title": "Protection des données",
- "description": "Nous prenons vos données au sérieux. Toutes les données de votre organisation, y compris les clients, les véhicules, les ordres de travail, les factures et les fichiers téléversés, sont sauvegardées automatiquement toutes les heures. Les sauvegardes sont protégées par un chiffrement AES-256 avant de quitter notre infrastructure et stockées dans un emplacement séparé et sécurisé, de sorte qu'aucun tiers ne peut les lire.",
- "lastBackup": "Dernière sauvegarde :",
- "supportPrompt": "Pour toute question sur la protection de vos données,",
- "supportAction": "contactez notre équipe d'assistance."
- },
- "optTireHotel": "Hôtel à pneus",
- "optTireHotelDesc": "Jeux stockés, étagères, préparation et contrats de stockage",
- "optWorkshopConfig": "Configuration de l'atelier",
- "optWorkshopConfigDesc": "Modèles de main-d'œuvre, rôles, webhooks et rapports programmés",
- "importHubDescription": "Indiquez où se trouvent vos données aujourd'hui. Les imports depuis un tableur ou une application s'ajoutent à l'existant et peuvent être annulés ; la restauration d'une sauvegarde remplace tout.",
- "sourceSpreadsheet": "Tableur ou CSV",
- "sourceSpreadsheetDesc": "Exports de n'importe quel logiciel d'atelier, outil comptable, Google Contacts, Outlook ou Excel. Vous confirmez la correspondance des colonnes et voyez une simulation avant toute écriture.",
- "sourceLubelogDesc": "Véhicules, historiques d'entretien et notes issus d'une sauvegarde LubeLog.",
- "sourceInvoiceNinjaDesc": "Clients, produits, factures et paiements issus d'un export Invoice Ninja.",
- "sourceBackup": "Sauvegarde Torqvoice",
- "sourceBackupDesc": "Un fichier .zip ou .json téléchargé depuis cette page. La restauration remplace tout dans cet atelier.",
- "restore": "Restaurer",
- "restoreTitle": "Restaurer une sauvegarde"
- },
- "license": {
- "title": "Licence marque blanche",
- "description": "Activez une licence marque blanche pour supprimer la marque Torqvoice des factures et de l'application.",
- "purchaseWhiteLabel": "Acheter marque blanche",
- "status": "Statut :",
- "active": "Active",
- "inactive": "Inactive",
- "lastChecked": "Dernière vérification : {date}",
- "enterLicenseKey": "Entrez la cle de licence",
- "validate": "Valider",
- "validated": "Licence validee avec succès",
- "invalid": "Cle de licence invalide",
- "failedValidate": "Échec de la validation de la licence",
- "keyHint": "Chaque cle de licence est liée a cette organisation et ne peut pas être partagee entre plusieurs organisations.",
- "expired": "Expirée",
- "unverified": "Non vérifiée",
- "expiresOn": "Expire le : {date}",
- "unreachable": "Impossible de joindre torqvoice.com. La licence enregistrée sur ce serveur reste inchangée.",
- "unverifiedHint": "Ce serveur n'a pas pu confirmer la licence auprès de torqvoice.com depuis {days} jours. La marque Torqvoice réapparaît après {max} jours sans vérification réussie.",
- "rejected": "torqvoice.com n'a pas accepté cette clé : {reason}",
- "signedHint": "La validation est signée par torqvoice.com et renouvelée chaque jour ; le serveur doit donc pouvoir joindre torqvoice.com."
- },
- "about": {
- "title": "A propos de Torqvoice",
- "description": "Torqvoice est votre solution complete de gestion de services véhicules. Suivez l'historique de service, les réparations et plus encore.",
- "version": "Version",
- "website": "Site web",
- "documentation": "Documentation",
- "changelog": "Journal des modifications"
- },
- "portal": {
- "title": "Portail client",
- "description": "Permettez a vos clients de se connecter et de consulter leurs véhicules, factures, devis et inspections. Les clients peuvent également soumettre des demandes de service.",
- "enablePortal": "Activer le portail client",
- "enablePortalHint": "Les clients avec une adresse e-mail peuvent se connecter via un lien magique",
- "enabled": "Portail client active",
- "disabled": "Portail client desactive",
- "failedUpdate": "Échec de la mise a jour du paramètre",
- "customSlug": "Slug personnalise du portail",
- "save": "Enregistrer",
- "slugSaved": "Slug du portail enregistre",
- "slugRemoved": "Slug du portail supprime",
- "failedUpdateSlug": "Échec de la mise a jour du slug",
- "slugHint": "Lettres minuscules, chiffres, tirets et underscores. 3-48 caractères. Laissez vide pour utiliser l'URL par défaut.",
- "portalUrl": "URL du portail",
- "urlCopied": "URL du portail copiee",
- "shareHint": "Partagez ce lien avec vos clients pour qu'ils puissent se connecter a leur portail.",
- "serviceRequestAlertsHint": "Les demandes de service du portail apparaissent toujours dans votre cloche de notifications. Vous pouvez aussi les recevoir par e-mail.",
- "serviceRequestAlertsLink": "Paramètres d'alerte →",
- "descriptionLabel": "À propos de votre garage",
- "descriptionPlaceholder": "Présentez votre garage à vos clients : vos services, votre équipe, ce qui vous rend unique.",
- "descriptionHint": "Affiché aux visiteurs en haut de la page d'accueil de votre portail.",
- "hoursLabel": "Horaires d'ouverture",
- "hoursPlaceholder": "Lun-Ven : 8h00-17h00\nSam : 9h00-13h00\nDim : Fermé",
- "hoursHint": "Texte libre. Utilisez des sauts de ligne pour lister chaque jour séparément.",
- "contentSaved": "Contenu du portail enregistré",
- "background": {
- "title": "Arrière-plan du portail",
- "description": "Choisissez l'apparence de la page d'accueil du portail client.",
- "typeNone": "Aucun",
- "typeTemplate": "Modèle",
- "typeImage": "Image personnalisée",
- "chooseTemplate": "Choisissez un modèle",
- "uploadLabel": "Image d'arrière-plan",
- "upload": "Téléverser une image",
- "replace": "Remplacer l'image",
- "remove": "Supprimer",
- "uploadHint": "JPG, PNG ou WebP. Max 8 Mo. Recommandé au moins 1600×900.",
- "uploading": "Téléversement de l'arrière-plan…",
- "uploaded": "Arrière-plan mis à jour",
- "uploadFailed": "Échec du téléversement de l'arrière-plan",
- "templateNames": {
- "default": "Subtil",
- "sunrise": "Lever de soleil",
- "ocean": "Océan",
- "forest": "Forêt",
- "slate": "Ardoise",
- "sand": "Sable"
- }
- },
- "copyUrl": "Copier l'URL du portail"
- },
- "email": {
- "title": "Fournisseur de messagerie",
- "description": "Configurez le fournisseur de messagerie de votre organisation pour l'envoi de factures et devis. Sans configuration, le fournisseur de messagerie par défaut de la plateforme sera utilise.",
- "useCustomLabel": "Utiliser un fournisseur de messagerie personnalise",
- "useCustomHint": "Activer pour configurer votre propre fournisseur de messagerie au lieu du fournisseur par défaut de la plateforme",
- "platformDefaultInfo": "Votre organisation utilise le fournisseur de messagerie par défaut de la plateforme. Les factures et devis seront envoyés avec les paramètres de messagerie configures par la plateforme.",
- "smtpHost": "Hôte SMTP",
- "smtpHostPlaceholder": "smtp.example.com",
- "smtpPort": "Port SMTP",
- "smtpPortPlaceholder": "587",
- "username": "Nom d'utilisateur",
- "usernamePlaceholder": "utilisateur@example.com",
- "password": "Mot de passe",
- "fromEmail": "E-mail d'expedition",
- "fromEmailPlaceholder": "noreply@example.com",
- "fromEmailDomainPlaceholder": "noreply@votredomaine.com",
- "fromName": "Nom d'expéditeur",
- "fromNamePlaceholder": "Votre Atelier",
- "tlsConnection": "Connexion TLS (Port 465)",
- "tlsConnectionHint": "Activer pour TLS implicite. Désactiver pour STARTTLS (port 587/25).",
- "verifyTlsCerts": "Vérifier les certificats TLS",
- "verifyTlsCertsHint": "Désactiver pour autoriser les certificats auto-signes (non recommande en production)",
- "requireTlsUpgrade": "Exiger la mise a niveau TLS",
- "requireTlsUpgradeHint": "Forcer la mise a niveau TLS sur les connexions STARTTLS",
- "apiKey": "Cle API",
- "apiKeyHintResend": "Obtenez votre cle API sur",
- "serverToken": "Jeton de serveur",
- "serverTokenHintPostmark": "Obtenez votre jeton de serveur sur",
- "apiKeyHintMailgun": "Obtenez votre cle API sur",
- "domain": "Domaine",
- "domainPlaceholder": "mg.votredomaine.com",
- "region": "Région",
- "apiKeyHintSendGrid": "Obtenez votre cle API sur",
- "accessKeyId": "ID de cle d'accès",
- "secretAccessKey": "Cle d'accès secrète",
- "awsRegion": "Région AWS",
- "awsRegionPlaceholder": "us-east-1",
- "awsRegionHint": "La région AWS ou SES est configure (ex. us-east-1, eu-west-1)",
- "sendTestEmail": "Envoyer un e-mail de test",
- "testEmailHint": "Enregistrez d'abord les paramètres, puis envoyez un e-mail de test a votre compte",
- "saveSettings": "Enregistrer les paramètres",
- "savedDefault": "Paramètres de messagerie enregistrés — fournisseur par défaut de la plateforme utilise",
- "saved": "Paramètres de messagerie enregistrés",
- "failedSave": "Échec de l'enregistrement des paramètres",
- "testSentTo": "E-mail de test envoye a {email}",
- "testFailed": "Échec du test de messagerie"
- },
- "sms": {
- "title": "Fournisseur SMS",
- "description": "Configurez votre fournisseur SMS pour la messagerie bidirectionnelle avec les clients. Chaque organisation utilise son propre fournisseur SMS et numéro de téléphone.",
- "enableLabel": "Activer la messagerie SMS",
- "enableHint": "Envoyer et recevoir des SMS avec les clients",
- "disabledInfo": "La messagerie SMS est désactivée. Activez-la pour envoyer et recevoir des messages texte avec vos clients.",
- "phoneNumber": "Numéro de téléphone",
- "phoneNumberPlaceholder": "+33612345678",
- "phoneNumberHint": "Votre numéro de téléphone compatible SMS au format E.164 (ex. +33612345678)",
- "accountSid": "SID du compte",
- "authToken": "Jeton d'authentification",
- "apiKey": "Cle API",
- "apiSecret": "Secret API",
- "webhookUrl": "URL du webhook",
- "webhookUrlHint": "Configurez cette URL dans votre tableau de bord {provider} pour recevoir les SMS entrants.",
- "webhookCopied": "URL du webhook copiee",
- "testPhoneNumber": "Numéro de téléphone de test",
- "testPhonePlaceholder": "+33698765432",
- "sendTestSms": "Envoyer un SMS de test",
- "testSmsHint": "Enregistrez d'abord les paramètres, puis entrez un numéro de destinataire pour envoyer un SMS de test",
- "enterTestPhone": "Entrez un numéro de téléphone pour envoyer le SMS de test",
- "saveSettings": "Enregistrer les paramètres",
- "savedDisabled": "Paramètres SMS enregistrés — SMS desactive",
- "saved": "Paramètres SMS enregistrés",
- "failedSave": "Échec de l'enregistrement des paramètres",
- "testSentTo": "SMS de test envoye a {phone}",
- "testFailed": "Échec du test SMS",
- "copyWebhookUrl": "Copier l'URL du webhook"
- },
- "subscription": {
- "title": "Plan d'abonnement",
- "description": "Le niveau d'abonnement Torqvoice actuel de votre organisation et les fonctionnalités disponibles.",
- "currentPlan": "Plan actuel",
- "planFree": "Gratuit",
- "planPro": "Torq Pro",
- "planEnterprise": "Enterprise",
- "price": "{price}/{interval}",
- "perYear": "an",
- "perMonth": "mois",
- "statusActive": "Actif",
- "statusCanceling": "En cours d'annulation",
- "statusPastDue": "En retard",
- "statusCanceled": "Annulé",
- "billingPeriod": "Période de facturation",
- "billingPeriodDates": "{start} — {end}",
- "nextRenewal": "Prochain renouvellement",
- "cancelingWarning": "Votre abonnement sera annulé le {date}. Après cela, vous serez rétrogradé au plan gratuit.",
- "pastDueWarning": "Votre paiement est en retard. Veuillez mettre à jour votre méthode de paiement pour éviter une interruption de service.",
- "featuresTitle": "Fonctionnalités du plan",
- "featuresDescription": "Ce qui est inclus dans votre plan actuel.",
- "featureCustomers": "Clients",
- "featureTeamMembers": "Membres de l'équipe",
- "featureSmtp": "E-mail personnalisé (SMTP)",
- "featureApi": "Accès API",
- "featurePayments": "Paiements en ligne",
- "featureCustomFields": "Champs personnalisés",
- "featureSms": "Messagerie SMS",
- "featureCustomerPortal": "Portail client",
- "featureCustomTemplates": "Modèles personnalisés",
- "featureBrandingRemoved": "Marque supprimée",
- "usageOf": "{used} / {limit}",
- "usageUnlimited": "{used} / Illimité",
- "included": "Inclus",
- "notIncluded": "Non inclus",
- "manageTitle": "Gérer l'abonnement",
- "manageBilling": "Gérer la facturation",
- "manageBillingDescription": "Mettre à jour le moyen de paiement, consulter les factures et gérer les détails de facturation.",
- "cancelSubscription": "Annuler l'abonnement",
- "resumeSubscription": "Reprendre l'abonnement",
- "cancelDialogTitle": "Annuler l'abonnement",
- "cancelDialogDescription": "Votre abonnement restera actif jusqu'au {date}. Après cela, vous serez rétrogradé au plan gratuit.",
- "cancelDialogConfirm": "Oui, annuler",
- "cancelDialogCancel": "Garder l'abonnement",
- "cancelSuccess": "L'abonnement sera annulé à la fin de la période de facturation",
- "cancelError": "Échec de l'annulation de l'abonnement",
- "resumeSuccess": "Abonnement repris avec succès",
- "resumeError": "Échec de la reprise de l'abonnement",
- "billingPortalError": "Impossible d'ouvrir le portail de facturation",
- "checkoutError": "Impossible de lancer le paiement",
- "upgradeTitle": "Améliorer le plan",
- "upgradeDescription": "Débloquez plus de fonctionnalités en améliorant votre plan.",
- "upgradeToProDescription": "Améliorez pour débloquer des clients illimités, des membres d'équipe, des rapports, SMTP, l'accès API et plus encore.",
- "upgradeToEnterpriseDescription": "Besoin de plus de 5 membres d'équipe ? Passez à Enterprise pour jusqu'à 50 utilisateurs.",
- "upgradeToPro": "Passer à Pro — 99 $/an",
- "upgradeToEnterprise": "Enterprise — 140 $/an",
- "upgradeDialogTitle": "Passer à Enterprise",
- "upgradeDialogDescription": "Votre plan Pro actuel sera mis à niveau vers Enterprise. Seule la différence au prorata pour la période de facturation restante vous sera facturée.",
- "upgradeConfirm": "Confirmer la mise à niveau",
- "upgradeCalculating": "Calcul du montant au prorata…",
- "upgradeAmountDue": "Montant dû maintenant",
- "upgradeSuccess": "Mis à niveau vers Enterprise avec succès !",
- "upgradeError": "Échec de la mise à niveau de l'abonnement",
- "demoBadge": "Démo",
- "demoExpiresIn": "Expire dans {days, plural, =0 {moins d'un jour} one {# jour} other {# jours}} ({date})",
- "checkoutOnTorqvoice": "Vous serez redirigé vers torqvoice.com pour finaliser l'achat. Les factures et reçus y sont disponibles dans votre compte.",
- "purchaseSuccess": "Merci ! Votre forfait est maintenant actif.",
- "purchaseActivating": "Paiement reçu. Votre forfait est en cours d'activation, cette page se rafraîchit dans un instant.",
- "accountOnTorqvoice": "Les factures et reçus sont sur torqvoice.com, où vous êtes connecté avec ce compte.",
- "openTorqvoiceAccount": "Ouvrir votre compte sur torqvoice.com"
- },
- "ai": {
- "title": "Assistant IA",
- "readMore": "En savoir plus",
- "description": "Configurez l'IA pour générer automatiquement des notes de service et resumer l'historique du véhicule.",
- "enableLabel": "Activer l'IA",
- "enableHint": "Utiliser les fonctionnalités alimentees par l'IA dans toute l'application",
- "disabledInfo": "Activez l'IA pour utiliser des fonctionnalités telles que les descriptions de service générées automatiquement et les resumes d'historique de véhicule.",
- "provider": "Fournisseur IA",
- "apiKey": "Cle API",
- "apiKeyHint": "Votre cle API {provider}. Stockee en toute sécurité et jamais partagee.",
- "model": "Modèle",
- "testConnection": "Tester la connexion",
- "testSuccess": "Connexion IA réussie !",
- "testFailed": "Échec de la connexion. Vérifiez votre cle API et le modèle.",
- "saved": "Paramètres IA enregistrés",
- "failedSave": "Échec de l'enregistrement des paramètres IA",
- "saveSettings": "Enregistrer les paramètres",
- "featuresTitle": "Fonctionnalités IA incluses :",
- "featureServiceNotes": "Génération automatique de descriptions de service professionnelles a partir des pièces et de la main-d'oeuvre",
- "featureHistorySummary": "Resume de l'historique de service du véhicule en un clic",
- "cost": {
- "high": "Coût élevé",
- "medium": "Moyen",
- "low": "Faible coût"
- }
- },
- "reportSchedule": {
- "title": "Rapports planifiés",
- "description": "Générez et envoyez automatiquement des rapports PDF par e-mail selon un calendrier récurrent.",
- "schedule": "Planification",
- "name": "Nom du planning",
- "namePlaceholder": "Ex. Rapport hebdomadaire",
- "frequency": "Fréquence",
- "daily": "Quotidien",
- "weekly": "Hebdomadaire",
- "biweekly": "Toutes les 2 semaines",
- "monthly": "Mensuel",
- "bimonthly": "Tous les 2 mois",
- "quarterly": "Tous les 3 mois",
- "semiannually": "Tous les 6 mois",
- "yearly": "Annuel",
- "dateRangeLabel": "Période",
- "dateRanges": {
- "last1d": "Dernier jour",
- "last7d": "7 derniers jours",
- "last14d": "14 derniers jours",
- "last30d": "30 derniers jours",
- "last60d": "60 derniers jours",
- "last90d": "90 derniers jours",
- "last6m": "6 derniers mois",
- "last12m": "12 derniers mois",
- "ytd": "Depuis début d'année",
- "allTime": "Tout le temps"
- },
- "sections": "Sections du rapport",
- "sectionsDescription": "Sélectionnez les sections à inclure dans le rapport planifié.",
- "sectionsIncluded": "Sections incluses",
- "selectAll": "Tout sélectionner",
- "clearAll": "Tout effacer",
- "recipients": "Destinataires",
- "recipientsDescription": "Sélectionnez les membres de l'équipe qui recevront le rapport par e-mail.",
- "recipientsCount": "Destinataires",
- "endDate": "Date de fin",
- "endDateDescription": "Arrêter optionnellement le planning après cette date.",
- "enabled": "Activé",
- "disabled": "Désactivé",
- "nextRun": "Prochaine exécution",
- "lastRun": "Dernière exécution",
- "runCount": "Rapports envoyés",
- "save": "Enregistrer le planning",
- "create": "Créer un planning",
- "delete": "Supprimer le planning",
- "created": "Planning de rapports créé",
- "updated": "Planning de rapports mis à jour",
- "deleted": "Planning de rapports supprimé",
- "toggledOn": "Planning de rapports activé",
- "toggledOff": "Planning de rapports désactivé",
- "failedSave": "Échec de l'enregistrement",
- "failedSend": "Échec de l'envoi",
- "failedToggle": "Échec de l'activation ou de la désactivation",
- "failedDelete": "Échec de la suppression",
- "noMembers": "Aucun membre trouvé",
- "addRecipient": "Ajouter un destinataire...",
- "searchMembers": "Rechercher des membres...",
- "sendNow": "Envoyer maintenant",
- "sentNow": "Rapport envoyé avec succès",
- "newSchedule": "Nouveau planning",
- "editSchedule": "Modifier le planning",
- "edit": "Modifier",
- "cancel": "Annuler",
- "sent": "envoyés",
- "emptyTitle": "Aucun rapport planifié",
- "emptyDescription": "Créez un planning pour générer et envoyer automatiquement des rapports à votre équipe.",
- "sectionLabels": {
- "revenue": "Revenus",
- "tax": "Taxes",
- "pastDue": "Factures en retard",
- "services": "Services",
- "customers": "Clients",
- "technicians": "Techniciens",
- "parts": "Utilisation des pièces",
- "jobAnalytics": "Analyses des travaux",
- "retention": "Fidélisation clients",
- "inventory": "Inventaire"
- }
- },
- "webhooks": {
- "title": "Webhooks",
- "subtitle": "Envoyez des notifications d'événements en temps réel vers vos propres systèmes via HTTPS. Chaque événement est signé avec HMAC-SHA256 afin que vous puissiez vérifier son authenticité.",
- "create": "Ajouter un webhook",
- "createTitle": "Ajouter un webhook",
- "editTitle": "Modifier le webhook",
- "createDescription": "Les webhooks sont envoyés en JSON via POST. Les livraisons échouées sont réessayées avec un délai exponentiel jusqu'à 5 fois.",
- "name": "Nom",
- "namePlaceholder": "p. ex. Sync comptable",
- "url": "URL du point de terminaison",
- "urlHint": "Doit commencer par http:// ou https://. Nous recommandons fortement HTTPS.",
- "description": "Description (facultatif)",
- "events": "Événements",
- "eventsHint": "Choisissez les événements qui déclenchent ce webhook.",
- "subscribeToAll": "Tous les événements",
- "selectAtLeastOneEvent": "Sélectionnez au moins un événement",
- "groups": {
- "customers": "Clients",
- "vehicles": "Véhicules",
- "services": "Ordres de service",
- "quotes": "Devis",
- "payments": "Paiements",
- "inspections": "Inspections",
- "inventory": "Inventaire",
- "findings": "Constatations"
- },
- "save": "Enregistrer",
- "cancel": "Annuler",
- "delete": "Supprimer",
- "rotate": "Renouveler",
- "done": "Terminé",
- "paused": "En pause",
- "statusOk": "Sain",
- "statusFailing": "{count, plural, one {# échec récent} other {# échecs récents}}",
- "lastDelivery": "Dernière livraison {when}",
- "totalDeliveries": "{count, plural, one {# livraison} other {# livraisons}}",
- "toggleAria": "Activer ou désactiver ce webhook",
- "deliveries": "Livraisons",
- "sendTest": "Envoyer un test",
- "testSent": "Événement de test envoyé",
- "testFailed": "Impossible d'envoyer l'événement de test",
- "rotateSecret": "Renouveler la clé de signature",
- "confirmRotateTitle": "Renouveler la clé de signature ?",
- "confirmRotateDescription": "La clé actuelle cessera immédiatement de fonctionner. Mettez à jour votre endpoint avec la nouvelle clé.",
- "secretRotated": "Clé renouvelée",
- "secretRotatedDescription": "Enregistrez cette clé maintenant — elle ne pourra pas être récupérée plus tard.",
- "confirmDeleteTitle": "Supprimer le webhook ?",
- "confirmDeleteDescription": "« {name} » cessera immédiatement de recevoir des événements. Cette action est irréversible.",
- "secretShownOnceTitle": "Webhook « {name} » créé",
- "secretShownOnceDescription": "Copiez cette clé de signature maintenant. Elle ne sera pas affichée à nouveau.",
- "secretCopyHint": "Utilisez cette clé pour vérifier l'en-tête X-Torqvoice-Signature de chaque requête.",
- "deliveriesTitle": "Livraisons — {name}",
- "deliveriesDescription": "50 dernières tentatives. Les événements échoués sont réessayés automatiquement avec un délai exponentiel.",
- "deliveriesEmpty": "Aucune livraison pour le moment. Envoyez un événement de test pour essayer.",
- "attempt": "Tentative {n}/{max}",
- "nextRetry": "Prochaine tentative {when}",
- "retryQueued": "Nouvelle tentative en file d'attente",
- "retryFailed": "Échec de la nouvelle tentative",
- "saveFailed": "Échec de l'enregistrement",
- "deleteFailed": "Échec de la suppression",
- "toggleFailed": "Échec du basculement",
- "rotateFailed": "Échec du renouvellement",
- "created": "Webhook créé",
- "updated": "Webhook mis à jour",
- "deleted": "Webhook supprimé",
- "emptyTitle": "Aucun webhook pour le moment",
- "emptyDescription": "Ajoutez un webhook pour envoyer des événements vers vos propres systèmes — sync comptable, tableaux de bord personnalisés, Zapier, tout ce qui parle HTTP.",
- "helpTitle": "Vérifier les signatures des webhooks",
- "helpIntro": "Chaque livraison comprend une signature HMAC-SHA256 pour que vous puissiez confirmer que la requête provient de Torqvoice.",
- "helpHeadersTitle": "En-têtes envoyés avec chaque requête",
- "helpVerify": "Reconstruisez la chaîne signée comme `[timestamp].[body]` et comparez avec une égalité à temps constant :",
- "tabWebhooks": "Webhooks",
- "tabReference": "Référence des événements",
- "autoDisabled": "Mis en pause automatiquement",
- "autoDisabledBanner": "Ce webhook a été mis en pause automatiquement après 20 échecs consécutifs. Réactivez-le pour reprendre les livraisons.",
- "reEnable": "Réactiver",
- "resumed": "Webhook réactivé",
- "copyUrl": "Copier l'URL",
- "refresh": "Actualiser",
- "noMatches": "Aucune livraison ne correspond à ce filtre.",
- "retry": "Réessayer",
- "viewPayload": "Voir le payload",
- "payloadCopied": "Payload copié",
- "loadingPayload": "Chargement du payload…",
- "requestPayload": "Payload de la requête",
- "response": "Réponse",
- "close": "Fermer",
- "samplePayload": "Enveloppe exemple",
- "referenceTitle": "Référence des événements",
- "referenceIntro": "Chaque livraison suit cette enveloppe. Cliquez sur un événement pour voir un exemple de payload que votre endpoint recevra.",
- "filter": {
- "all": "Toutes",
- "success": "Réussie",
- "failed": "Échouée",
- "retrying": "Nouvelle tentative",
- "pending": "En attente"
- }
- },
- "alerts": {
- "title": "Alertes",
- "description": "Choisissez les événements dont vous voulez être averti, et comment.",
- "serviceRequest": {
- "title": "Alertes de demandes de service",
- "description": "Les demandes de service envoyées via le portail client apparaissent toujours dans la cloche de notifications. Activez cette option pour les recevoir aussi par e-mail.",
- "email": "Notification par e-mail",
- "emailHint": "Désactivé par défaut. Un e-mail par demande, envoyé dès qu'un client la soumet.",
- "recipients": "Envoyer à",
- "recipientsHint": "Laissez vide pour avertir tous les propriétaires et administrateurs. Séparez plusieurs adresses par des virgules.",
- "invalidRecipients": "Adresse non valide : {list}",
- "emailSetupHint": "Les alertes sont envoyées via le fournisseur de messagerie que vous avez configuré.",
- "emailSetupLink": "Paramètres e-mail →",
- "save": "Enregistrer les paramètres d'alerte",
- "saved": "Paramètres d'alerte des demandes enregistrés"
- },
- "lowStock": {
- "title": "Alertes de stock bas",
- "description": "Alerte quand une pièce atteint son seuil de réapprovisionnement. Une pièce est basse lorsque sa quantité descend à ou sous sa \"Qté min\", ou sous la valeur par défaut ci-dessous si elle n'en a pas. Chaque pièce est signalée une fois par baisse et reste silencieuse jusqu'au réassort.",
- "enable": "Activer les alertes de stock bas",
- "enableHint": "Désactivé par défaut. Seules les pièces avec un seuil défini sont surveillées.",
- "inApp": "Notification dans l'app",
- "inAppHint": "Une notification groupée dans la cloche, pas une par pièce.",
- "email": "Résumé par e-mail",
- "emailHint": "Un seul e-mail listant toutes les pièces passées sous le seuil.",
- "emailInterval": "Heures minimum entre e-mails",
- "emailIntervalHint": "Au plus un résumé par tranche d'heures. 0 supprime la limite.",
- "save": "Enregistrer les alertes",
- "saved": "Alertes de stock bas enregistrées",
- "defaultThreshold": "Seuil de réapprovisionnement par défaut",
- "defaultThresholdHint": "Utilisé uniquement pour les pièces sans seuil propre. La \"Qté min\" d'une pièce — définie lors de sa modification — est toujours prioritaire. Laissez 0 pour ne surveiller que les pièces configurées individuellement.",
- "checkNow": "Vérifier maintenant",
- "checkDisabled": "Les alertes sont désactivées.",
- "checkNothingNew": "Rien de nouveau — toutes les pièces basses ont déjà été signalées.",
- "checkAlerted": "{count} pièce(s) nouvellement basse(s) signalée(s)",
- "checkFailed": "Échec de la vérification",
- "configurePerPart": "Définir la Qté min d'une pièce sur la page inventaire →",
- "readMore": "En savoir plus"
- },
- "technicianStatus": {
- "title": "Application technicien Torqvoice (Android/iOS)",
- "description": "Notification lorsqu'un technicien modifie un travail depuis son téléphone.",
- "inApp": "Prévenir l'accueil",
- "inAppHint": "Une notification lorsqu'un travail est terminé, en attente de pièces ou repris.",
- "save": "Enregistrer",
- "saved": "Paramètres de notification enregistrés",
- "saveFailed": "Impossible d'enregistrer les paramètres"
- }
- },
- "support": {
- "title": "Assistance",
- "description": "Contactez l'équipe d'assistance Torqvoice sans quitter l'application. Votre demande inclut votre organisation et la page consultée.",
- "showButton": "Afficher le bouton d'assistance",
- "showButtonHint": "Un bouton déplaçable sur chaque page, sur cet appareil. Une fois masqué, un petit onglet sur le bord droit le fait revenir.",
- "contactTitle": "Contacter l'assistance",
- "contactHint": "Ouvrir directement le formulaire d'assistance.",
- "contactAction": "Ouvrir le formulaire"
- },
- "install": {
- "title": "Installer Torqvoice",
- "description": "Installez Torqvoice sur cet appareil pour l'ouvrir depuis l'écran d'accueil, en plein écran et sans la barre du navigateur. C'est la même application et les mêmes données.",
- "installed": "Torqvoice est installée sur cet appareil.",
- "iosHint": "Dans Safari, touchez le bouton Partager, puis « Sur l'écran d'accueil ».",
- "unavailable": "Ce navigateur n'a pas proposé d'installation. Ouvrez le menu du navigateur et cherchez « Installer l'application » ou « Sur l'écran d'accueil ».",
- "bannerHidden": "La bannière d'installation est masquée sur cet appareil.",
- "showBanner": "Afficher à nouveau la bannière"
- },
- "tireHotel": {
- "title": "Hôtel à pneus",
- "description": "Stockez les pneus saisonniers de vos clients et sachez où se trouve chaque jeu.",
- "cardTitle": "Stockage des pneus",
- "enable": "Activer l’hôtel à pneus",
- "enableHint": "Ajoute le stockage des pneus au menu. Le désactiver plus tard le masque sans rien supprimer.",
- "defaultCapacity": "Pneus par niveau par défaut",
- "defaultCapacityHint": "Prérempli à la création de nouveaux niveaux. Modifiable niveau par niveau.",
- "warnPercent": "Alerter à partir de (%)",
- "warnPercentHint": "Signale la vue du stockage dès que cette part de la capacité totale est occupée.",
- "treadTitle": "Seuils de remplacement",
- "treadHint": "Les minimums légaux varient selon les pays, réglez donc les seuils de votre marché. Une sculpture sous le seuil est signalée à remplacer.",
- "summerLimit": "Seuil été ({unit})",
- "winterLimit": "Seuil hiver ({unit})",
- "unitMm": "mm",
- "unit32nds": "1/32\"",
- "setupHint": "Configurez ensuite vos étagères.",
- "setupLink": "Ouvrir l’organisation du stockage",
- "save": "Enregistrer les réglages",
- "saved": "Réglages de l’hôtel à pneus enregistrés",
- "billingTitle": "Facturation du stockage",
- "billingHint": "Prérempli sur la ligne de stockage lors de la facturation d’un jeu. Modifiable sur la facture.",
- "seasonalPrice": "Tarif de stockage par défaut",
- "prepTitle": "Prix de la préparation",
- "prepHint": "Ce que coûte chaque type de préparation. Laissez vide et rien n’est facturé, ce qui convient aux ateliers qui incluent le lavage dans le stockage. Les prestations chiffrées sont ajoutées automatiquement au devis et à l’ordre.",
- "prepNotCharged": "non facturé"
- },
- "designer": {
- "invoice": "Facture",
- "quote": "Devis",
- "eyebrow": "Concepteur de documents",
- "galleryTitle": "Partir d'un modèle",
- "galleryHint": "Choisissez un point de départ. Vous pourrez tout modifier dans le concepteur.",
- "yourDesigns": "Vos maquettes",
- "autoRuleHint": "Les ventes sans véhicule s'impriment avec le design qui leur est attribué, sauf si la vente ou son client en a choisi un autre.",
- "useForPartsSale": "Utiliser pour les ventes de pièces seules",
- "usedForPartsSale": "Utilisé pour les ventes de pièces seules",
- "autoRule": {
- "parts_sale": "Vente de pièces seule"
- },
- "autoRuleSaved": "Utilisation de « {name} » mise à jour",
- "couldNotSaveRule": "Impossible de mettre à jour la règle",
- "templates": "Modèles",
- "inUse": "Utilisée",
- "savedOn": "Enregistrée le {date}",
- "deleteDesignTitle": "Supprimer la maquette",
- "deleteDesignBody": "Supprimer la maquette « {name} » ? La facture et le devis conservent ce qui est appliqué ; seule la copie enregistrée disparaît.",
- "delete": "Supprimer",
- "deleteDesign": "Supprimer cette maquette",
- "continueCurrent": "Continuer avec ma mise en page actuelle",
- "backToSettings": "Retour aux paramètres",
- "useInvoiceDesign": "Reprendre la maquette de la facture",
- "copiedToQuote": "Maquette de la facture copiée vers le devis",
- "rulers": "Règles",
- "saveDesign": "Enregistrer la maquette",
- "saveDesignHint": "Conservez une copie nommée de cette maquette pour la retrouver dans la galerie de modèles",
- "reset": "Réinitialiser",
- "save": "Enregistrer",
- "saving": "Enregistrement…",
- "saved": "Enregistré",
- "couldNotSave": "Enregistrement impossible",
- "couldNotSaveDesigns": "Impossible d'enregistrer vos maquettes",
- "designUpdated": "« {name} » mise à jour",
- "designSaved": "Enregistrée sous « {name} »",
- "defaultDesignName": "Ma maquette de {doc}",
- "documentStyling": "Style du document",
- "sections": "Sections",
- "sectionEmpty": "vide",
- "sectionEmptyHint": "Affichée, mais avec les données actuelles elle n'a rien à imprimer.",
- "sectionShownHint": "Visible sur la feuille. Cliquez pour la masquer.",
- "sectionHiddenHint": "Masquée sur la feuille. Cliquez pour l'afficher.",
- "railHint": "Faites glisser une section sur la page : déposez-la entre deux blocs pour la réordonner, sur une carte pour la placer à côté, ou ailleurs pour la positionner librement. La page fait de la place autour d'elle.",
- "returnToFlow": "Remettre {section} dans le flux",
- "saveDialogTitle": "Enregistrer cette maquette",
- "saveDialogBody": "Conserve une copie nommée de la disposition et de l'apparence actuelles. Vous la retrouverez sous Vos maquettes, dans la galerie de modèles.",
- "designNamePlaceholder": "Nom de la maquette",
- "nameExists": "Une maquette porte déjà ce nom ; l'enregistrement la mettra à jour.",
- "updateDesign": "Mettre à jour la maquette",
- "cancel": "Annuler",
- "insertHere": "Insérer ici",
- "dropLeftColumn": "Colonne de gauche",
- "dropRightColumn": "Colonne de droite",
- "freePosition": "Position libre",
- "sectionSettings": "Réglages de la section",
- "panelStyle": "Style du panneau",
- "variant": {
- "accent": "Accent",
- "panel": "Panneau",
- "outline": "Contour",
- "lines": "Lignes",
- "hint": "Accent teinte la carte avec la couleur principale. Panneau s'aligne sur les autres cartes de détail. Contour ne trace qu'une bordure, et Lignes imprime sans encadré.",
- "classic": "Classique",
- "box": "Encadré",
- "totalsHint": "Classique imprime des lignes nues avec un filet au-dessus du total. Encadré les entoure d'un cadre. Panneau et Accent les posent sur une carte."
- },
- "alignment": "Alignement",
- "alignCenter": "Centre",
- "itemsTableHint": "Une liste numérotée de toutes les lignes du travail, main-d'œuvre d'abord puis pièces, à la place des tableaux séparés.",
- "discardChanges": "Annuler les modifications",
- "tablesExclusiveHint": "La feuille imprime une disposition : une liste numérotée unique, ou des tableaux séparés pour pièces et main-d'œuvre. Activer l'une désactive l'autre.",
- "innerPadding": "Marge intérieure",
- "totalsWidth": "Largeur",
- "totalsWidthHint": "Vide, le bloc occupe toute la ligne. Une valeur en points l'accroche à droite ; dans une colonne, il prend la largeur de la colonne.",
- "placement": "Placement",
- "visible": "Visible",
- "columnFull": "Pleine",
- "columnLeft": "Gauche",
- "columnRight": "Droite",
- "drawBox": "Tracer un encadré",
- "showHeading": "Afficher le titre",
- "spacing": "Espacement",
- "placedByHand": "Cette section est placée à la main : l'espacement du flux ne la déplace pas.",
- "placedByHandFramed": "L'en-tête encadré repose sur le bandeau ; faites-le glisser pour le déplacer.",
- "placedByHandDrag": "Faites-la glisser, ou remettez-la dans le flux, pour utiliser l'espacement.",
- "marginTop": "Haut",
- "marginBottom": "Bas",
- "marginLeft": "Gauche",
- "marginRight": "Droite",
- "spacingHint": "Points d'espace vide que la section garde autour d'elle dans le flux.",
- "logo": "Logo",
- "size": "Taille",
- "logoHint": "Désactivez le logo sous Champs pour imprimer le nom de l'entreprise à la place.",
- "fields": "Champs",
- "removeField": "Retirer de cette section",
- "yourCustomFields": "Vos champs personnalisés",
- "appearance": "Apparence",
- "details": "Détails",
- "text": "Texte",
- "companyName": "Nom de l'entreprise",
- "heading": "Titre",
- "fill": "Remplissage",
- "border": "Bordure",
- "lineWidth": "Épaisseur de trait",
- "borderWidth": "Épaisseur de bordure",
- "outerBorder": "Bordure extérieure",
- "rowBanding": "Alternance de lignes",
- "likeSheet": "Comme la feuille",
- "on": "Activé",
- "off": "Désactivé",
- "font": "Police",
- "inherit": "Hériter",
- "auto": "auto",
- "sectionDragHint": "Faites glisser cette section dans la liste, ou sur la page, pour la déplacer. Une fois placée à la main, les flèches la décalent d'un point, de dix avec Maj, et Échap annule un déplacement.",
- "document": "Document",
- "documentSubtitle": "S'applique à toute la feuille",
- "headerStyleTitle": "Style d'en-tête",
- "headerStyle": {
- "standard": {
- "name": "Standard",
- "desc": "Nom et coordonnées sur blanc, filet en dessous"
- },
- "compact": {
- "name": "Compact",
- "desc": "En-tête resserré, lignes denses"
- },
- "modern": {
- "name": "Moderne",
- "desc": "Bandeau coloré pleine largeur"
- },
- "framed": {
- "name": "Encadré",
- "desc": "Bandeau en haut, filet sur le bord gauche"
- }
- },
- "colors": "Couleurs",
- "primary": "Principale",
- "background": "Fond",
- "accent": "Accent",
- "frame": "Cadre",
- "rail": "Filet",
- "leftEdge": "Bord gauche",
- "rightEdge": "Bord droit",
- "frameLine": "Trait du cadre",
- "cornerRadius": "Rayon des angles",
- "shadow": "Ombre",
- "shadowThin": "Fine",
- "shadowNormal": "Normale",
- "shadowWide": "Large",
- "typography": "Typographie",
- "baseSize": "Taille de base",
- "page": "Page",
- "margins": "Marges",
- "rowHeight": "Hauteur de ligne",
- "band": "Bande",
- "sample": {
- "itemLabor": "Freins avant remplacés",
- "itemDisc": "Disque de frein, avant",
- "itemPads": "Jeu de plaquettes, essieu avant",
- "itemConsumables": "Consommables",
- "unitPcs": "pcs",
- "unitSet": "jeu",
- "unitEach": "x",
- "findingPads": "Plaquettes arrière à 15 %",
- "findingPadsNote": "À remplacer sous 5 000 km",
- "findingOilWeep": "Léger suintement d'huile au cache-culbuteurs",
- "notes": "Merci d'avoir choisi notre atelier. Contactez-nous pour toute question.",
- "warranty": "12 mois de garantie sur les pièces et la main-d'œuvre.",
- "serviceTitle": "Révision annuelle et freins",
- "serviceType": "Réparation",
- "companyName": "Votre atelier",
- "slogan": "Un service de qualité en toute confiance",
- "paymentTerms": "Payable sous 14 jours",
- "footerNote": "Merci de votre confiance",
- "value": "Exemple"
- },
- "logoUpload": "Importer un logo",
- "logoReplace": "Remplacer le logo",
- "logoUploading": "Import en cours…",
- "logoFailed": "Impossible d'importer cette image",
- "footerLogoHint": "Activez le logo dans Champs pour l'imprimer aussi en bas de page.",
- "logoReset": "Utiliser le logo de l'entreprise",
- "logoOwn": "Imprimé sur ce document uniquement. Le logo de l'entreprise reste inchangé.",
- "logoInherited": "Le logo de l'entreprise est utilisé. Importez-en un ici pour en utiliser un autre sur ce document seulement.",
- "slogan": "Slogan",
- "sloganPlaceholderHint": "Aucun slogan n'est défini, la feuille affiche donc un texte d'exemple qui ne sera pas imprimé.",
- "sloganSetHint": "Votre slogan provient des informations de votre entreprise.",
- "sloganLink": "Paramètres de l'entreprise",
- "paymentTerms": "Conditions de paiement",
- "paymentTermsPlaceholderHint": "Aucune condition de paiement n'est définie, la feuille affiche donc un texte d'exemple qui ne sera pas imprimé.",
- "paymentTermsSetHint": "Vos conditions de paiement proviennent des paramètres de paiement.",
- "paymentTermsLink": "Paramètres de paiement",
- "telegramQr": "Code Telegram",
- "telegramQrConnectedHint": "Imprime un code qui ouvre {link}, votre bot Telegram connecté. Il n'apparaît que sur les factures émises après l'activation du bloc.",
- "telegramQrPlaceholderHint": "Aucun bot Telegram n'est connecté, la feuille affiche donc un code d'exemple qui ne sera pas imprimé.",
- "telegramQrLink": "Intégrations",
- "titleText": "Texte du titre",
- "titleTextHint": "Le nom que porte ce document. Laissé vide, il imprime son propre nom dans la langue du lecteur.",
- "orgNumberLabel": "Libellé du numéro d'organisation",
- "orgNumberLabelHint": "Imprimé à côté du numéro d'organisation sur les factures et les devis. Laissez vide pour le libellé par défaut dans votre langue, ou indiquez son nom chez vous, par exemple SIRET, N° TVA ou BCE. Partagé avec les paramètres de l'entreprise.",
- "placeholder": "Exemple",
- "leaveTitle": "Quitter sans enregistrer ?",
- "leaveBody": "Les modifications de cette maquette ne sont pas enregistrées et seront perdues.",
- "leaveConfirm": "Quitter",
- "boldField": "Gras",
- "deleteDesignDrafts": "{count, plural, one {# brouillon de facture} other {# brouillons de facture}} qui l'utilisent reviendront au design par défaut.",
- "deleteDesignCustomers": "{count, plural, one {# client} other {# clients}} qui y sont associés reviendront au design par défaut.",
- "setDefault": "Définir par défaut",
- "defaultSet": "« {name} » est maintenant utilisé",
- "couldNotSetDefault": "Impossible de définir le design par défaut",
- "fieldFixedSlot": "S'imprime toujours au même endroit et ne peut pas être déplacé."
- },
- "preview": {
- "title": "Révision des freins et vidange",
- "serviceType": "Entretien",
- "findingPads": "Plaquettes arrière usées à 15 %",
- "findingPadsNote": "Remplacement recommandé sous 8 000 km",
- "findingOilLeak": "Léger suintement d'huile au joint de cache-culbuteurs",
- "invoiceNotes": "Plaquettes avant remplacées. Huile et filtre changés avec de la synthèse 5W-30. Prochaine révision conseillée à 80 000 km.",
- "quoteNotes": "Remplacement des plaquettes avant recommandé. Vidange et changement de filtre avec de la synthèse 5W-30.",
- "partBrakePads": "Plaquettes de frein (avant)",
- "partOilFilter": "Filtre à huile",
- "partSyntheticOil": "Huile synthétique 5W-30",
- "laborBrakeReplacement": "Remplacement des freins",
- "laborOilChange": "Vidange"
- },
- "inspectionReminders": {
- "title": "Rappels de contrôle et réservation",
- "description": "Comment se comporte le lien de réservation d'un rappel. Réglé une fois ; chaque campagne l'utilise.",
- "duration": "Durée du contrôle (minutes)",
- "durationHint": "Combien de temps un contrôle occupe un pont. Le lien réserve des créneaux de cette durée.",
- "leadDays": "Réservation au plus tôt (jours)",
- "leadDaysHint": "1 signifie que le premier créneau proposé est demain, jamais aujourd'hui.",
- "horizonWeeks": "Jusqu'à quand (semaines)",
- "horizonHint": "Les clients peuvent choisir tout créneau libre dans ce nombre de semaines.",
- "reserve": "Garder libre pour les sans rendez-vous",
- "reserveHint": "Ponts ou techniciens que le lien ne remplit jamais. 0 autorise tous les libres.",
- "linkValidDays": "Le lien reste ouvert (jours)",
- "linkValidHint": "Au moins {min}. Les liens restent aussi ouverts jusqu'à une semaine après l'échéance, selon le plus tard.",
- "bookingMode": "Ce qu'une réservation crée",
- "bookingModeDirect": "Un ordre de travail planifié sur le planning",
- "bookingModeRequest": "Une demande que l'accueil confirme d'abord",
- "bookingModeHint": "La réservation directe est ce qui rend le lien utile. Choisissez la demande si vous voulez valider à chaque fois.",
- "phone": "Numéro de téléphone dans les messages",
- "phoneHint": "Affiché comme alternative au lien. Par défaut, le numéro de l'atelier.",
- "save": "Enregistrer",
- "saved": "Paramètres enregistrés",
- "saveFailed": "Enregistrement impossible",
- "timeZoneDetected": "Le fuseau horaire est en automatique sous Localisation, le serveur utilise donc {zone}, le dernier fuseau vu dans un navigateur ayant enregistré les paramètres. Choisissez explicitement le fuseau de l'atelier pour que les horaires de réservation ne dépendent jamais de qui a enregistré en dernier.",
- "timeZoneExplicit": "Les horaires de réservation et d'ouverture sont lus en {zone}.",
- "timeZoneChange": "Modifier sous Localisation"
- },
- "emailTemplates": {
- "title": "Modèles d'e-mail",
- "description": "Ce que disent les e-mails envoyés par votre atelier et leur apparence. Chaque type d'e-mail a un modèle intégré ; créez le vôtre pour changer le texte, les couleurs et les blocs qui le composent.",
- "lockedDescription": "Concevez les e-mails envoyés par votre atelier : changez le texte, ajoutez ou retirez des blocs et accordez les couleurs à votre marque.",
- "groups": {
- "documents": "Documents",
- "messages": "Messages",
- "portal": "Portail client",
- "team": "Équipe"
- },
- "kinds": {
- "invoice_sent": {
- "name": "Facture envoyée",
- "description": "Envoyé quand une facture part chez un client par e-mail, avec le PDF en pièce jointe ou un lien pour la consulter."
- },
- "quote_sent": {
- "name": "Devis envoyé",
- "description": "Envoyé quand un devis part chez un client par e-mail."
- },
- "inspection_sent": {
- "name": "Rapport d'inspection envoyé",
- "description": "Envoyé quand un rapport d'inspection part chez un client par e-mail."
- },
- "message": {
- "name": "Message au client",
- "description": "Un message écrit à un client : une notification depuis un ordre de travail, un rapport d'état, une invitation à un appel vidéo ou un rappel programmé."
- },
- "portal_signin": {
- "name": "Connexion au portail",
- "description": "Le lien de connexion qu'un client demande sur le portail client."
- },
- "team_invitation": {
- "name": "Invitation dans l'équipe",
- "description": "Envoyé à un collègue que vous invitez à rejoindre l'atelier, avec le lien qui crée son compte."
- }
- },
- "blocks": {
- "header": "En-tête",
- "heading": "Titre",
- "paragraph": "Paragraphe",
- "callout": "Encadré",
- "button": "Bouton",
- "document_summary": "Résumé du document",
- "attachment_note": "Note de pièce jointe",
- "image": "Image",
- "divider": "Séparateur",
- "spacer": "Espace",
- "contact_footer": "Pied de page contact"
- },
- "blockNotes": {
- "header": "Votre logo, ou le nom de l'atelier quand il n'y a pas de logo ou qu'il est désactivé. Importez et dimensionnez le logo ici ; les couleurs et les polices se trouvent sous Objet et thème.",
- "contact_footer": "Le nom, l'adresse, le téléphone et l'e-mail de votre atelier, repris des paramètres Entreprise. Renseignez-les là-bas pour changer ce qui s'imprime ici.",
- "divider": "Une ligne fine entre deux blocs. Elle est omise quand elle ouvrirait ou fermerait l'e-mail.",
- "callout": "Un panneau mis en avant avec un bord coloré. Idéal pour les mots qui comptent le plus, comme le message lui-même.",
- "attachment_note": "Imprimé seulement quand un PDF est joint à l'e-mail.",
- "button": "Le lien est généralement une balise, comme le lien de partage. Un bouton dont le lien n'a pas de valeur est omis de l'e-mail.",
- "document_summary": "Un panneau avec les chiffres clés du document. Les lignes sans rien à afficher sont omises.",
- "image": "Les images sont compressées et redimensionnées pour l'e-mail lors de l'import. Les images qui ne sont plus utilisées sont supprimées à l'enregistrement du modèle.",
- "summaryUnused": "Ce type d'e-mail n'a pas de document, le résumé n'imprime donc rien."
- },
- "tagGroups": {
- "workshop": "Atelier",
- "customer": "Client",
- "vehicle": "Véhicule",
- "document": "Document",
- "message": "Message",
- "portal": "Portail",
- "team": "Équipe"
- },
- "tags": {
- "workshop_name": {
- "label": "Nom de l'atelier",
- "description": "Le nom de votre atelier."
- },
- "workshop_phone": {
- "label": "Téléphone de l'atelier",
- "description": "Le numéro de téléphone des paramètres Entreprise."
- },
- "workshop_email": {
- "label": "E-mail de l'atelier",
- "description": "L'adresse e-mail des paramètres Entreprise."
- },
- "workshop_address": {
- "label": "Adresse de l'atelier",
- "description": "L'adresse des paramètres Entreprise, sur autant de lignes qu'elle en compte."
- },
- "current_user": {
- "label": "Nom de l'expéditeur",
- "description": "Le nom de la personne qui envoie l'e-mail."
- },
- "customer_name": {
- "label": "Nom du client",
- "description": "Le nom du client destinataire de l'e-mail."
- },
- "vehicle": {
- "label": "Véhicule",
- "description": "Année, marque et modèle du véhicule."
- },
- "plate": {
- "label": "Immatriculation",
- "description": "Le numéro d'immatriculation du véhicule."
- },
- "mileage": {
- "label": "Kilométrage",
- "description": "Le kilométrage relevé sur le véhicule."
- },
- "document_number": {
- "label": "Numéro du document",
- "description": "Le numéro de la facture ou du devis."
- },
- "document_title": {
- "label": "Titre du document",
- "description": "Le titre de l'intervention ou du document."
- },
- "total": {
- "label": "Total",
- "description": "Le total du document, dans sa devise."
- },
- "balance_due": {
- "label": "Solde dû",
- "description": "Ce qui reste dû sur le document après les paiements."
- },
- "due_date": {
- "label": "Date d'échéance",
- "description": "La date à laquelle le paiement est dû."
- },
- "share_link": {
- "label": "Lien de partage",
- "description": "Un lien que le client peut ouvrir pour consulter le document en ligne."
- },
- "message": {
- "label": "Message",
- "description": "Le message écrit pour cet e-mail, ou la note ajoutée au document."
- },
- "signin_link": {
- "label": "Lien de connexion",
- "description": "Le lien qui connecte le client au portail. Il expire au bout d'un court délai."
- },
- "portal_link": {
- "label": "Lien du portail",
- "description": "Un lien vers le portail client."
- },
- "invite_link": {
- "label": "Lien d'invitation",
- "description": "Le lien qui crée le compte et rejoint l'équipe. Il cesse de fonctionner à l'expiration de l'invitation."
- },
- "role": {
- "label": "Rôle",
- "description": "Le rôle auquel la personne est invitée."
- },
- "invite_expires": {
- "label": "Date d'expiration",
- "description": "Le dernier jour où le lien d'invitation fonctionne."
- }
- },
- "headerRule": "Filet sous l'en-tête",
- "headerRuleHint": "Un trait fin entre le logo ou le nom de l'atelier et le reste de l'e-mail.",
- "optionalTag": "Tous les e-mails n'ont pas de valeur pour cette balise. Quand elle est vide, les mots autour sont remis en ordre.",
- "summaryRows": {
- "reference": "Référence",
- "vehicle": "Véhicule",
- "total": "Total",
- "balance": "Solde dû",
- "due": "Date d'échéance"
- },
- "builtIn": "Intégré",
- "inUse": "Utilisé",
- "useBuiltIn": "Utiliser le modèle intégré",
- "setDefault": "Définir par défaut",
- "defaultSet": "Envoi désormais avec « {name} »",
- "couldNotSetDefault": "Impossible de changer le modèle utilisé",
- "updatedOn": "Mis à jour le {date}",
- "delete": "Supprimer",
- "deleteTitle": "Supprimer le modèle",
- "deleteConfirm": "Supprimer le modèle « {name} » ? S'il est utilisé, les e-mails reviennent au modèle intégré.",
- "deleteTemplate": "Supprimer ce modèle",
- "deleted": "« {name} » supprimé",
- "couldNotDelete": "Impossible de supprimer le modèle",
- "backToSettings": "Retour aux paramètres",
- "unsaved": "(non enregistré)",
- "save": "Enregistrer",
- "saving": "Enregistrement…",
- "savedState": "Enregistré",
- "saved": "« {name} » enregistré",
- "couldNotSave": "Enregistrement impossible",
- "saveAsNew": "Enregistrer comme nouveau",
- "discard": "Annuler les modifications",
- "sendTest": "Envoyer un test",
- "cancel": "Annuler",
- "problems": "{count, plural, one {# problème} other {# problèmes}}",
- "unknownTags": "Ces balises n'existent pas pour ce type d'e-mail : {tags}",
- "missingTags": "Cet e-mail doit contenir {tags}",
- "subjectRequired": "L'objet ne peut pas être vide",
- "invalidTemplate": "Un texte est trop long ou un champ contient une valeur non valide.",
- "leaveTitle": "Quitter sans enregistrer ?",
- "leaveBody": "Vos modifications de ce modèle n'ont pas été enregistrées. Elles seront perdues.",
- "leaveConfirm": "Quitter",
- "subjectAndTheme": "Objet et thème",
- "settingsSubtitle": "S'applique à tout l'e-mail",
- "blocksTitle": "Blocs",
- "addBlock": "Ajouter un bloc",
- "removeBlock": "Retirer le bloc",
- "removeBlockLast": "Le dernier bloc ne peut pas être retiré",
- "blockEmpty": "vide",
- "blockEmptyHint": "Affiché, mais il n'a encore rien à imprimer.",
- "blockShownHint": "Visible dans l'e-mail. Cliquez pour le masquer.",
- "blockHiddenHint": "Masqué dans l'e-mail. Cliquez pour l'afficher.",
- "railHint": "Glissez un bloc par sa poignée pour le déplacer. La ligne indique où il sera placé. Cliquez sur un bloc pour modifier son texte à droite.",
- "resizeHint": "Glissez pour redimensionner le panneau. Double-cliquez pour réinitialiser.",
- "desktop": "Ordinateur",
- "mobile": "Mobile",
- "htmlView": "HTML",
- "textView": "Texte brut",
- "desktopTooltip": "Aperçu en largeur ordinateur",
- "mobileTooltip": "Aperçu en largeur téléphone",
- "htmlViewTooltip": "Afficher l'e-mail HTML",
- "previewWidth": "Largeur de l'aperçu",
- "previewView": "Mode d'aperçu",
- "textViewTooltip": "Afficher la version en texte brut",
- "inboxNow": "Maintenant",
- "inboxNoSender": "Votre atelier",
- "inboxNoSubject": "(sans objet)",
- "subject": "Objet",
- "text": "Texte",
- "buttonLabel": "Texte du bouton",
- "buttonHref": "Lien",
- "spacerHeight": "Hauteur",
- "tagsTitle": "Balises",
- "tagsHint": "Cliquez sur une balise pour l'insérer à la position du curseur dans le dernier champ où vous avez saisi du texte.",
- "theme": {
- "colors": "Couleurs",
- "primaryColor": "Principale",
- "textColor": "Texte",
- "mutedColor": "Texte atténué",
- "backgroundColor": "Fond",
- "panelColor": "Panneaux",
- "invalidColor": "Une couleur n'est pas une valeur hexadécimale valide",
- "hexLabel": "{label} en hexadécimal",
- "typography": "Typographie",
- "font": "Police",
- "fontHint": "Seulement des polices que chaque client mail possède déjà. La plupart ne chargent pas les polices web.",
- "fonts": {
- "system": "Système",
- "arial": "Arial",
- "georgia": "Georgia",
- "verdana": "Verdana",
- "trebuchet": "Trebuchet MS",
- "courier": "Courier New"
- },
- "lineSpacing": "Interligne",
- "lineSpacings": {
- "compact": "Compact",
- "normal": "Normal",
- "relaxed": "Aéré"
- },
- "paragraphSpacing": "Espacement des paragraphes",
- "paragraphSpacings": {
- "tight": "Serré",
- "normal": "Normal",
- "loose": "Large"
- },
- "spacingHint": "L'interligne est la hauteur de chaque ligne ; l'espacement des paragraphes est l'espace entre les paragraphes et entre les blocs de texte. Entrée commence un nouveau paragraphe, Maj+Entrée une nouvelle ligne dans le même.",
- "shapes": "Formes",
- "buttonRadius": "Angles du bouton",
- "topBar": "Barre de couleur en haut",
- "topBarHint": "Une fine bande dans votre couleur principale le long du bord supérieur de l'e-mail.",
- "showLogo": "Afficher le logo",
- "showLogoHint": "Logo désactivé, l'en-tête imprime le nom de l'atelier à la place."
- },
- "nameDialog": {
- "title": "Enregistrer ce modèle",
- "body": "Donnez un nom au modèle pour le retrouver dans la galerie. L'enregistrer en fait aussi le modèle avec lequel ce type d'e-mail est envoyé.",
- "placeholder": "Nom du modèle",
- "nameExists": "Un modèle porte déjà ce nom. Choisissez un autre nom.",
- "save": "Enregistrer le modèle",
- "update": "Mettre à jour le modèle"
- },
- "testDialog": {
- "title": "Envoyer un e-mail de test",
- "body": "L'e-mail est envoyé avec des données d'exemple, pour que vous puissiez le voir dans un vrai client mail.",
- "placeholder": "Adresse e-mail",
- "send": "Envoyer",
- "sending": "Envoi…",
- "sentTitle": "E-mail de test envoyé",
- "sentBody": "Vérifiez la boîte de réception de {email}. Il peut mettre une minute à arriver.",
- "failedTitle": "Impossible d'envoyer l'e-mail de test",
- "failedBody": "Vérifiez le fournisseur d'e-mail sous Fournisseurs et réessayez."
- },
- "toolbar": {
- "bold": "Gras",
- "italic": "Italique",
- "underline": "Souligné",
- "strike": "Barré",
- "link": "Lien",
- "linkUrl": "Adresse du lien",
- "linkPlaceholder": "https://... ou {share_link}",
- "linkHint": "Une adresse web, ou une balise comme {share_link} qui est remplie à l'envoi de l'e-mail.",
- "linkApply": "Appliquer",
- "linkRemove": "Retirer le lien",
- "bulletList": "Liste à puces",
- "orderedList": "Liste numérotée",
- "align": {
- "left": "Aligner à gauche",
- "center": "Centrer",
- "right": "Aligner à droite"
- },
- "size": {
- "label": "Taille du texte",
- "default": "Taille par défaut",
- "small": "Petit",
- "normal": "Normal",
- "large": "Grand",
- "extraLarge": "Très grand"
- },
- "color": {
- "label": "Couleur du texte",
- "text": "Couleur de texte du thème",
- "muted": "Couleur atténuée du thème",
- "primary": "Couleur principale du thème",
- "default": "Par défaut",
- "hex": "Couleur hexadécimale",
- "apply": "Appliquer"
- },
- "clear": "Effacer la mise en forme"
- },
- "logo": {
- "title": "Logo",
- "empty": "Aucun logo importé. L'en-tête imprime le nom de l'atelier.",
- "upload": "Importer un logo",
- "replace": "Remplacer le logo",
- "remove": "Retirer",
- "uploading": "Import en cours…",
- "width": "Largeur du logo",
- "hint": "Indépendant du logo de l'entreprise. Il est rogné et préparé pour l'e-mail lors de l'import. PNG, JPEG ou WebP jusqu'à 4 Mo.",
- "position": "Position",
- "tooLarge": "L'image doit faire moins de 4 Mo",
- "uploadFailed": "Impossible d'importer le logo"
- },
- "image": {
- "empty": "Aucune image importée. Le bloc n'imprime rien tant qu'il n'y en a pas.",
- "upload": "Importer une image",
- "replace": "Remplacer l'image",
- "remove": "Retirer",
- "uploading": "Import en cours…",
- "alt": "Description",
- "altHint": "Lue à voix haute aux lecteurs qui ne peuvent pas voir l'image, et affichée pendant son chargement. PNG, JPEG ou WebP jusqu'à 10 Mo.",
- "width": "Largeur",
- "widthHint": "600 px correspond à la pleine largeur de l'e-mail. Les images plus étroites se placent selon la Position.",
- "link": "Lien",
- "linkHint": "Facultatif. S'ouvre au clic sur l'image ; une balise comme le lien de partage fonctionne aussi ici.",
- "tooLarge": "L'image doit faire moins de 10 Mo",
- "uploadFailed": "Impossible d'importer l'image"
- },
- "dragHandle": "Glisser pour réorganiser",
- "dragHandleKeyboard": "Glisser, ou utiliser les touches fléchées, pour déplacer ce bloc",
- "tagDoesNotFit": "La balise ne tient pas dans ce champ."
- },
- "workOrderStatuses": {
- "title": "Statuts des ordres de réparation",
- "description": "Vos propres noms pour les étapes d’un travail. Chacun appartient à l’une des trois phases et apparaît dans le menu de cette phase sur chaque ordre de réparation.",
- "cardTitle": "Phases et statuts",
- "suggestionsLabel": "Ajout rapide",
- "suggestions": {
- "readyForPickup": {
- "name": "Prêt à être récupéré",
- "message": "Bonjour {customer_name}, votre {vehicle} est prêt à être récupéré. {company_name}"
- },
- "waitingForCustomer": {
- "name": "En attente du client"
- },
- "waitingForApproval": {
- "name": "En attente d’accord",
- "message": "Bonjour {customer_name}, nous avons besoin de votre accord avant de poursuivre sur votre {vehicle}. Merci de nous contacter. {company_name}"
- }
- },
- "stageHints": {
- "pending": "Avant le début des travaux. Le travail compte comme ouvert.",
- "in-progress": "Pendant l’intervention sur le véhicule. Le travail compte comme ouvert.",
- "completed": "Le travail est terminé. Le client peut voir et payer la facture, et le travail quitte la liste du technicien."
- },
- "add": "Ajouter un statut",
- "builtIn": "Intégré",
- "asksToNotify": "Propose de prévenir",
- "notifyHint": "Lorsqu’un travail atteint ce statut, il est proposé d’envoyer un message au client. Rien n’est envoyé sans votre confirmation.",
- "moveUp": "Monter",
- "moveDown": "Descendre",
- "edit": "Modifier",
- "remove": "Retirer",
- "empty": "Aucun statut personnel ici pour l’instant.",
- "removeTitle": "Retirer {name} ?",
- "removeBody": "Il disparaît des menus. Les travaux qui le portent continuent de l’afficher.",
- "addTitle": "Nouveau statut",
- "editTitle": "Modifier le statut",
- "dialogBody": "Un statut est un nom avec une couleur. La phase à laquelle il appartient décide du traitement du travail.",
- "name": "Nom",
- "namePlaceholder": "Prêt à être récupéré",
- "stage": "Phase",
- "color": "Couleur",
- "notify": "Proposer de prévenir le client",
- "message": "Message",
- "tokens": "Insérer :",
- "cancel": "Annuler",
- "save": "Enregistrer",
- "saved": "Statut enregistré",
- "failed": "Impossible d’enregistrer le statut",
- "messageEmptyHint": "Si le champ reste vide, le texte ci-dessus est envoyé.",
- "useSuggested": "Modifier ce texte"
- }
- }
|