Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
757 lines
31 KiB
JSON
757 lines
31 KiB
JSON
{
|
||
"common": {
|
||
"back": "Retour",
|
||
"cancel": "Annuler",
|
||
"close": "Fermer",
|
||
"confirm": "Confirmer",
|
||
"create": "Créer",
|
||
"delete": "Supprimer",
|
||
"edit": "Modifier",
|
||
"error": "Erreur",
|
||
"loading": "Chargement...",
|
||
"new": "Nouveau",
|
||
"next": "Suivant",
|
||
"notAvailable": "S/O",
|
||
"openMenu": "Ouvrir le menu",
|
||
"processing": "Traitement...",
|
||
"refresh": "Rafraîchir",
|
||
"remove": "Retirer",
|
||
"reset": "Réinitialiser",
|
||
"save": "Enregistrer",
|
||
"saving": "Enregistrement...",
|
||
"success": "Succès",
|
||
"update": "Mise à jour",
|
||
"yes": "Oui",
|
||
"no": "Non"
|
||
},
|
||
"dashboard": {
|
||
"title": "Facturation",
|
||
"beta": {
|
||
"title": "Version bêta",
|
||
"description": "Notre système de facturation remanié est actuellement en version bêta. Vous pouvez rencontrer des problèmes ou des fonctionnalités incomplètes. Nous apprécions votre patience alors que nous continuons à améliorer l’expérience."
|
||
},
|
||
"errorPrefix": "Erreur:",
|
||
"backToPresets": "Retour à la liste des préréglages de ligne de contrat",
|
||
"quoteTemplatesHeading": "Modèles de devis",
|
||
"tabs": {
|
||
"quotes": "Devis",
|
||
"quoteLayouts": "Mises en page des devis",
|
||
"quoteTemplates": "Modèles de devis",
|
||
"clientContracts": "Contrats clients",
|
||
"accountingExports": "Exportations comptables",
|
||
"contractTemplates": "Modèles de contrat",
|
||
"invoicing": "Facturation",
|
||
"invoiceLayouts": "Présentations de facture",
|
||
"taxRates": "Taux de taxe",
|
||
"contractLinePresets": "Préréglages de ligne de contrat",
|
||
"billingCycles": "Cycles de facturation",
|
||
"servicePeriods": "Périodes de service",
|
||
"usageTracking": "Suivi de l'utilisation",
|
||
"reports": "Rapports",
|
||
"serviceTypes": "Types de service",
|
||
"serviceCatalog": "Services",
|
||
"products": "Produits"
|
||
}
|
||
},
|
||
"overview": {
|
||
"errors": {
|
||
"loadTitle": "Impossible de charger les données de facturation",
|
||
"loadData": "Échec du chargement des données de facturation"
|
||
},
|
||
"metrics": {
|
||
"activeContractLines": {
|
||
"title": "Lignes de contrat actives",
|
||
"subtitle": "Lignes de contrat actives"
|
||
},
|
||
"billingClients": {
|
||
"title": "Clients facturés",
|
||
"subtitle": "Nombre total de clients"
|
||
},
|
||
"monthlyRevenue": {
|
||
"title": "Revenu mensuel",
|
||
"subtitle": "Mois en cours"
|
||
},
|
||
"activeServices": {
|
||
"title": "Services actifs",
|
||
"subtitle": "Dans le catalogue"
|
||
},
|
||
"outstandingAmount": {
|
||
"title": "Montant impayé",
|
||
"subtitle": "Factures impayées"
|
||
},
|
||
"creditBalance": {
|
||
"title": "Solde créditeur",
|
||
"subtitle": "Crédits totaux"
|
||
},
|
||
"pendingApprovals": {
|
||
"title": "Approbations en attente",
|
||
"subtitle": "Entrées de temps"
|
||
}
|
||
},
|
||
"states": {
|
||
"ellipsis": "...",
|
||
"error": "Erreur",
|
||
"zero": "0",
|
||
"zeroHours": "0 heures"
|
||
},
|
||
"sections": {
|
||
"monthlyActivity": {
|
||
"title": "Activité mensuelle",
|
||
"subtitle": "Heures facturables ce mois-ci"
|
||
},
|
||
"serviceCatalog": {
|
||
"title": "Gestion du catalogue de services",
|
||
"description": "Gérez vos offres de services, vos tarifs et vos configurations de facturation",
|
||
"activeServicesLabel": "Services actifs",
|
||
"button": "Gérer le catalogue de services"
|
||
}
|
||
},
|
||
"features": {
|
||
"paymentProcessing": {
|
||
"title": "Traitement des paiements",
|
||
"description": "Suivre et gérer les paiements des clients, traiter les remboursements et gérer les litiges de paiement"
|
||
},
|
||
"billingCycles": {
|
||
"title": "Cycles de facturation",
|
||
"description": "Gérer les calendriers de facturation des clients, les paramètres de cadence par défaut et les paramètres de fréquence de facturation"
|
||
},
|
||
"servicePeriods": {
|
||
"title": "Périodes de service",
|
||
"description": "Examinez les périodes de service récurrentes et comprenez comment les fenêtres de facturation les regroupent"
|
||
},
|
||
"invoiceManagement": {
|
||
"title": "Gestion des factures",
|
||
"description": "Générez des fenêtres de facture pour les périodes de service récurrentes et créez des documents manuels ou de paiement anticipé lorsque la gestion financière diffère de la couverture récurrente."
|
||
},
|
||
"overduePayments": {
|
||
"title": "Paiements en retard",
|
||
"description": "Surveiller et suivre les paiements en souffrance et les rappels de paiement"
|
||
},
|
||
"serviceCatalog": {
|
||
"title": "Catalogue de services",
|
||
"description": "Gérez vos offres de services, vos tarifs et vos contrats"
|
||
}
|
||
},
|
||
"debug": {
|
||
"reportExecuted": "Rapport exécuté :",
|
||
"executionTime": "Temps d'exécution :",
|
||
"reportVersion": "Version du rapport :"
|
||
}
|
||
},
|
||
"reconciliation": {
|
||
"title": "Résoudre l'écart de crédit",
|
||
"steps": {
|
||
"review": "Examiner l'écart",
|
||
"approval": "Approbation",
|
||
"confirmation": "Confirmation"
|
||
},
|
||
"sections": {
|
||
"discrepancyDetails": "Détails des écarts",
|
||
"balanceComparison": "Comparaison des soldes",
|
||
"issueDetails": "Détails du problème",
|
||
"resolutionOptions": "Options de résolution",
|
||
"approvalDetails": "Détails de l'approbation",
|
||
"correctionSummary": "Résumé des corrections",
|
||
"confirmResolution": "Confirmer la résolution",
|
||
"resolutionDetails": "Détails de la résolution",
|
||
"impactSummary": "Résumé des impacts",
|
||
"resolutionComplete": "Résolution terminée",
|
||
"resolutionSummary": "Résumé de la résolution"
|
||
},
|
||
"fields": {
|
||
"client": "Client",
|
||
"status": "Statut",
|
||
"detected": "Détecté",
|
||
"issueType": "Type de problème",
|
||
"expectedBalance": "Solde attendu",
|
||
"actualBalance": "Solde réel",
|
||
"difference": "Différence",
|
||
"transactionId": "ID de transaction",
|
||
"transactionType": "Type de transaction",
|
||
"transactionAmount": "Montant de la transaction",
|
||
"transactionDate": "Date de transaction",
|
||
"creditId": "Numéro de crédit",
|
||
"originalAmount": "Montant initial",
|
||
"expectedRemaining": "Restant prévu",
|
||
"actualRemaining": "Restant réel",
|
||
"reportId": "ID du rapport",
|
||
"resolutionType": "Type de résolution",
|
||
"correctionAmount": "Montant de la correction",
|
||
"currentBalance": "Solde actuel",
|
||
"newBalance": "Nouveau solde",
|
||
"resolutionNotes": "Notes de résolution",
|
||
"previousBalance": "Solde précédent"
|
||
},
|
||
"issueTypes": {
|
||
"missingCreditTrackingEntry": "Entrée de suivi de crédit manquante",
|
||
"inconsistentCreditRemainingAmount": "Montant restant du crédit incohérent"
|
||
},
|
||
"transactionHistory": {
|
||
"title": "Demandes de crédit",
|
||
"columns": {
|
||
"transactionId": "ID de transaction",
|
||
"date": "Date",
|
||
"amount": "Montant"
|
||
}
|
||
},
|
||
"recommendedFix": {
|
||
"title": "Correctif recommandé",
|
||
"missingTrackingDescription": "Créez une entrée de suivi du crédit basée sur les détails de la transaction d'origine et définissez le montant restant pour qu'il corresponde au montant de la transaction d'origine.",
|
||
"missingTrackingRemainingAmount": "Montant restant : calculez en fonction de toutes les demandes",
|
||
"inconsistentRemainingDescription": "Mettez à jour le montant restant de l'entrée de suivi du crédit pour qu'il corresponde au solde attendu calculé en fonction des demandes."
|
||
},
|
||
"resolutionTypes": {
|
||
"recommended": "Correctif recommandé",
|
||
"custom": "Correction personnalisée",
|
||
"noAction": "Aucune action requise"
|
||
},
|
||
"customCorrection": {
|
||
"label": "Montant de la correction",
|
||
"hint": "Saisissez un montant positif pour augmenter le solde ou un montant négatif pour le diminuer."
|
||
},
|
||
"notes": {
|
||
"label": "Notes de résolution",
|
||
"placeholder": "Expliquez la raison de cette correction...",
|
||
"hint": "Ces notes seront enregistrées dans la piste d'audit de cet écart."
|
||
},
|
||
"fourEyes": {
|
||
"requiredTitle": "Approbation à quatre yeux requise",
|
||
"requiredDescription": "Cette correction dépasse le seuil d'approbation et nécessite qu'un approbateur secondaire examine et vérifie la modification avant de pouvoir la soumettre.",
|
||
"approverName": "Nom de l'approbateur secondaire",
|
||
"approverEmail": "E-mail de l'approbateur secondaire",
|
||
"sendRequest": "Envoyer une demande d'approbation",
|
||
"requestSentTitle": "Demande d'approbation envoyée",
|
||
"requestSentDescription": "Demandez à l'approbateur secondaire le code de vérification qu'il a reçu, puis saisissez-le ci-dessous pour continuer.",
|
||
"verificationCode": "Le code de vérification",
|
||
"verifyCode": "Vérifier le code",
|
||
"verificationHint": "Saisissez le code de vérification fourni par l'approbateur secondaire.",
|
||
"verifiedTitle": "Approbation secondaire vérifiée",
|
||
"verifiedDescription": "L'approbation secondaire a été vérifiée et cette correction peut maintenant être soumise."
|
||
},
|
||
"confirmation": {
|
||
"importantTitle": "Important",
|
||
"importantDescription": "Veuillez examiner attentivement les détails ci-dessous. Cette action mettra à jour les enregistrements de rapprochement et ne peut pas être facilement annulée.",
|
||
"verifiedTitle": "Approbation secondaire vérifiée",
|
||
"verifiedDescription": "Un approbateur secondaire a vérifié cette correction et l'exigence d'approbation a été satisfaite.",
|
||
"thankYouTitle": "Merci!",
|
||
"thankYouDescription": "L'écart a été résolu et les enregistrements de facturation ont été mis à jour.",
|
||
"confirmButton": "Confirmer la résolution",
|
||
"closeButton": "Fermer"
|
||
},
|
||
"status": {
|
||
"open": "Ouvert"
|
||
},
|
||
"buttons": {
|
||
"cancel": "Annuler",
|
||
"back": "Retour",
|
||
"next": "Suivant",
|
||
"confirm": "Confirmer la résolution"
|
||
},
|
||
"errors": {
|
||
"loadData": "Échec du chargement des données du rapport de rapprochement",
|
||
"secondaryApprovalRequired": "Une approbation secondaire est requise pour cette correction",
|
||
"secondaryApproverRequired": "Veuillez saisir le nom et l'adresse e-mail de l'approbateur secondaire",
|
||
"invalidVerificationCode": "Code de vérification invalide",
|
||
"unknown": "Une erreur inconnue s'est produite",
|
||
"reportNotFound": "Rapport de rapprochement introuvable. Le rapport a peut-être été supprimé ou vous n'êtes peut-être pas autorisé à le consulter."
|
||
}
|
||
},
|
||
"discrepancy": {
|
||
"backToReconciliation": "Retour à la réconciliation",
|
||
"title": "Résoudre l'écart de crédit",
|
||
"tabs": {
|
||
"transactionHistory": "Historique des transactions",
|
||
"creditTrackingEntries": "Entrées de suivi du crédit",
|
||
"issueDetails": "Détails du problème"
|
||
},
|
||
"cards": {
|
||
"relatedTransactions": "Opérations liées",
|
||
"creditTrackingEntries": "Entrées de suivi du crédit",
|
||
"issueDetails": "Détails du problème",
|
||
"discrepancyDetails": "Détails des écarts",
|
||
"balanceComparison": "Comparaison des soldes"
|
||
},
|
||
"status": {
|
||
"open": "Ouvert",
|
||
"inReview": "En cours de revue",
|
||
"resolved": "Résolu",
|
||
"expired": "Expiré",
|
||
"active": "Actif"
|
||
},
|
||
"fields": {
|
||
"client": "Client",
|
||
"status": "Statut",
|
||
"detected": "Détecté",
|
||
"resolved": "Résolu",
|
||
"resolutionNotes": "Notes de résolution",
|
||
"issueType": "Type de problème",
|
||
"expectedBalance": "Solde attendu",
|
||
"actualBalance": "Solde réel",
|
||
"difference": "Différence",
|
||
"transactionId": "ID de transaction",
|
||
"createdAt": "Créé à",
|
||
"clientId": "Identifiant client",
|
||
"userId": "ID de l'utilisateur",
|
||
"invoiceId": "Numéro de facture",
|
||
"metadata": "Métadonnées",
|
||
"creditId": "Numéro de crédit",
|
||
"created": "Créé",
|
||
"amount": "Montant",
|
||
"remaining": "Restant",
|
||
"expiration": "Expiration",
|
||
"originalAmount": "Montant initial",
|
||
"remainingAmount": "Montant restant",
|
||
"expirationDate": "Date d'expiration",
|
||
"description": "Description",
|
||
"type": "Type",
|
||
"balanceAfter": "Solde après"
|
||
},
|
||
"empty": {
|
||
"transactions": "Aucune transaction associée trouvée.",
|
||
"creditTrackingEntries": "Aucune entrée de suivi de crédit trouvée.",
|
||
"issueDetails": "Aucun détail sur le problème disponible.",
|
||
"batchNotFound": "Lot introuvable.",
|
||
"noNotesProvided": "Aucune note fournie",
|
||
"noExpiration": "Pas d'expiration"
|
||
},
|
||
"issueTypes": {
|
||
"missingCreditTrackingEntry": "Entrée de suivi de crédit manquante",
|
||
"inconsistentCreditRemainingAmount": "Montant restant du crédit incohérent"
|
||
},
|
||
"recommendedFix": {
|
||
"title": "Correctif recommandé",
|
||
"missingTrackingDescription": "Créez une entrée de suivi du crédit basée sur les détails de la transaction d'origine et définissez le montant restant pour qu'il corresponde au montant de la transaction d'origine.",
|
||
"missingTrackingRemainingAmount": "Montant restant : calculez en fonction de toutes les demandes",
|
||
"inconsistentRemainingDescription": "Mettez à jour le montant restant de l'entrée de suivi du crédit pour qu'il corresponde au solde attendu calculé en fonction des demandes."
|
||
},
|
||
"resolutionDialog": {
|
||
"title": "Résoudre l'écart de crédit",
|
||
"notesPlaceholder": "Expliquez la raison de cette correction...",
|
||
"confirmButton": "Confirmer la résolution"
|
||
},
|
||
"actions": {
|
||
"applyFix": "Appliquer le correctif",
|
||
"resolveReport": "Résoudre le rapport"
|
||
},
|
||
"errors": {
|
||
"unknown": "Une erreur inconnue s'est produite"
|
||
}
|
||
},
|
||
"recommendedFix": {
|
||
"title": "Correctifs recommandés",
|
||
"panels": {
|
||
"recommendedFix": "Correctif recommandé",
|
||
"alternativeFix": "Solution alternative",
|
||
"noActionRequired": "Aucune action requise",
|
||
"customAdjustment": "Ajustement personnalisé"
|
||
},
|
||
"buttons": {
|
||
"createTrackingEntry": "Créer une entrée de suivi du crédit",
|
||
"updateRemainingAmount": "Mettre à jour le montant restant",
|
||
"applyAdjustment": "Appliquer un ajustement de crédit",
|
||
"applyCustomAdjustment": "Appliquer un ajustement personnalisé",
|
||
"markResolvedNoAction": "Marquer comme résolu (aucune action)",
|
||
"cancel": "Annuler",
|
||
"confirm": "Appliquer le correctif"
|
||
},
|
||
"descriptions": {
|
||
"createTrackingEntry": "Cela créera une nouvelle entrée de suivi du crédit pour la transaction.",
|
||
"updateRemainingAmount": "Cela mettra à jour le montant restant dans l’entrée de suivi du crédit.",
|
||
"applyAdjustment": "Cela créera une transaction d'ajustement de crédit pour corriger le solde.",
|
||
"customAdjustment": "Cela créera une transaction d'ajustement de crédit personnalisée.",
|
||
"noAction": "Cela marquera l’écart comme résolu sans apporter aucune modification.",
|
||
"missingTrackingRecommended": "Créez l'entrée de suivi du crédit manquante afin que la transaction soit reflétée dans le grand livre de suivi.",
|
||
"missingTrackingAlternative": "Créez plutôt un ajustement manuel si la transaction d'origine ne doit pas produire d'écriture de suivi.",
|
||
"missingTrackingNoAction": "Ne laissez l’écart non résolu que si la transaction a été intentionnellement exclue du suivi du crédit.",
|
||
"inconsistentRemainingRecommended": "Mettez à jour le montant restant suivi afin qu'il corresponde au solde attendu après les applications.",
|
||
"inconsistentRemainingAlternative": "Créez un ajustement d'équilibrage au lieu de modifier l'écriture de suivi existante.",
|
||
"inconsistentRemainingNoAction": "Ne laissez l’écart non résolu que si l’entrée de suivi est intentionnellement compensée ailleurs.",
|
||
"genericRecommended": "Appliquez la correction recommandée pour réaligner les soldes.",
|
||
"genericCustom": "Entrez un ajustement personnalisé si une correction manuelle est requise."
|
||
},
|
||
"dialog": {
|
||
"adjustmentAmount": "Montant de l'ajustement",
|
||
"adjustmentHint": "Saisissez un montant positif pour augmenter le solde ou un montant négatif pour le diminuer.",
|
||
"notes": "Remarques",
|
||
"notesPlaceholder": "Expliquez la raison de cette correction..."
|
||
},
|
||
"impactSummary": {
|
||
"title": "Résumé des impacts",
|
||
"currentBalance": "Solde actuel",
|
||
"newBalance": "Nouveau solde"
|
||
},
|
||
"resolved": {
|
||
"title": "Cet écart a été résolu",
|
||
"description": "Aucune autre action n'est requise, sauf si vous devez consulter l'historique de rapprochement."
|
||
},
|
||
"errors": {
|
||
"notesRequired": "Veuillez fournir des notes expliquant la raison de cette correction.",
|
||
"invalidAmount": "Veuillez entrer un montant valide",
|
||
"unknown": "Une erreur inconnue s'est produite"
|
||
}
|
||
},
|
||
"usage": {
|
||
"bucketHoursOverview": "Aperçu des heures de bucket",
|
||
"usageRecords": "Enregistrements d'utilisation",
|
||
"actions": {
|
||
"addUsage": "Ajouter une utilisation",
|
||
"updateUsage": "Mettre à jour l'utilisation",
|
||
"edit": "Modifier",
|
||
"delete": "Supprimer",
|
||
"resetFilters": "Réinitialiser"
|
||
},
|
||
"filters": {
|
||
"client": "Client",
|
||
"service": "Service",
|
||
"clientPlaceholder": "Filtrer par client",
|
||
"servicePlaceholder": "Filtrer par prestation",
|
||
"allClients": "Tous les clients",
|
||
"allServices": "Tous les services"
|
||
},
|
||
"table": {
|
||
"client": "Client",
|
||
"service": "Service",
|
||
"quantity": "Quantité",
|
||
"usageDate": "Date d'utilisation",
|
||
"contractLine": "Ligne de contrat",
|
||
"actions": "Actions",
|
||
"defaultContractLine": "Ligne de contrat par défaut",
|
||
"contractLineLabel": "Ligne de contrat : {{id}}..."
|
||
},
|
||
"states": {
|
||
"loadingRecords": "Chargement des enregistrements d'utilisation",
|
||
"noActiveBucketPlans": "Aucun plan de compartiment actif trouvé."
|
||
},
|
||
"dialog": {
|
||
"addTitle": "Ajouter un enregistrement d'utilisation",
|
||
"editTitle": "Modifier l'enregistrement d'utilisation",
|
||
"fields": {
|
||
"client": "Client",
|
||
"service": "Service",
|
||
"quantity": "Quantité",
|
||
"usageDate": "Date d'utilisation",
|
||
"comments": "Commentaires (facultatif)",
|
||
"contractLine": "Ligne de contrat"
|
||
},
|
||
"servicePlaceholder": "Sélectionnez une prestation"
|
||
},
|
||
"contractLineGuidance": {
|
||
"multipleLines": "Ce service apparaît dans plusieurs lignes de contrat. Veuillez sélectionner la ligne de contrat sur laquelle facturer.",
|
||
"tooltipNoClient": "Informations client non disponibles. L’utilisation sera acheminée vers le contrat par défaut géré par le système.",
|
||
"tooltipMultiple": "Ce service apparaît dans plusieurs lignes de contrat. Veuillez sélectionner la ligne de contrat à utiliser. Lorsqu'une seule d'entre elles est une ligne de contrat bucket, elle est sélectionnée par défaut.",
|
||
"tooltipSingle": "Cette utilisation sera facturée au titre de la ligne contractuelle « {{name}} ».",
|
||
"tooltipNone": "Aucune ligne de contrat éligible trouvée pour ce service.",
|
||
"placeholderNoClient": "Utilisation d'un contrat par défaut géré par le système",
|
||
"placeholderNone": "Aucune ligne de contrat éligible",
|
||
"placeholderSingle": "Utiliser {{name}}",
|
||
"placeholderSelect": "Sélectionnez une ligne de contrat",
|
||
"wrongContractLineWarning": "La sélection d'une mauvaise ligne de contrat peut entraîner une facturation incorrecte",
|
||
"noClientNotice": "Informations client non disponibles. L’utilisation sera acheminée vers le contrat par défaut géré par le système.",
|
||
"noEligibleNotice": "Aucune ligne de contrat éligible trouvée pour ce service."
|
||
},
|
||
"deleteDialog": {
|
||
"title": "Supprimer l'enregistrement d'utilisation",
|
||
"message": "Êtes-vous sûr de vouloir supprimer cet enregistrement d'utilisation ? Cette action ne peut pas être annulée."
|
||
},
|
||
"toast": {
|
||
"loadClientsError": "Échec du chargement des clients",
|
||
"loadUsageError": "Échec du chargement des enregistrements d'utilisation",
|
||
"createSuccess": "Enregistrement d'utilisation créé avec succès",
|
||
"createError": "Échec de la création de l'enregistrement d'utilisation",
|
||
"updateSuccess": "Enregistrement d'utilisation mis à jour avec succès",
|
||
"updateError": "Échec de la mise à jour de l'enregistrement d'utilisation",
|
||
"deleteSuccess": "Enregistrement d'utilisation supprimé avec succès",
|
||
"deleteError": "Échec de la suppression de l'enregistrement d'utilisation"
|
||
}
|
||
},
|
||
"lineItem": {
|
||
"collapsed": {
|
||
"itemDiscount": "Remise sur l'article",
|
||
"invoiceDiscount": "Remise sur facture",
|
||
"appliedTo": "Appliqué à : {{description}}",
|
||
"selectService": "Sélectionnez un service",
|
||
"taxable": "(Imposable)",
|
||
"nonTaxable": "(Non imposable)",
|
||
"calculatedOnSave": "(calculé lors de la sauvegarde)"
|
||
},
|
||
"expanded": {
|
||
"discount": "Rabais",
|
||
"item": "Article {{number}}",
|
||
"markedForRemoval": "Marqué pour suppression"
|
||
},
|
||
"fields": {
|
||
"service": "Service",
|
||
"quantity": "Quantité",
|
||
"discountType": "Type de remise",
|
||
"percentage": "Pourcentage",
|
||
"amount": "Montant ({{currencySymbol}})",
|
||
"discountDescription": "Description de la remise",
|
||
"applyDiscountTo": "Appliquer la réduction à",
|
||
"entireInvoice": "Facture entière",
|
||
"rate": "Taux ({{currencySymbol}})",
|
||
"description": "Description"
|
||
},
|
||
"placeholders": {
|
||
"discountDescription": "par exemple, remise pour paiement anticipé"
|
||
},
|
||
"actions": {
|
||
"add": "Ajouter",
|
||
"remove": "Retirer",
|
||
"restore": "Restaurer"
|
||
},
|
||
"hints": {
|
||
"removed": "Cet élément sera supprimé lorsque vous enregistrerez les modifications"
|
||
},
|
||
"summary": {
|
||
"percentageDiscount": "Pourcentage de réduction",
|
||
"fixedDiscount": "Remise fixe",
|
||
"itemTotal": "{{percentage}} % du total de l'article",
|
||
"invoiceTotal": "{{percentage}}% du total de la facture",
|
||
"amount": "Montant : -{{currencySymbol}}{{amount}}",
|
||
"appliedTo": "Appliqué à : {{description}}",
|
||
"subtotal": "Sous-total : {{currencySymbol}}{{amount}}"
|
||
},
|
||
"options": {
|
||
"percentage": "Pourcentage",
|
||
"fixedAmount": "Montant fixe"
|
||
}
|
||
},
|
||
"contractLineServices": {
|
||
"table": {
|
||
"serviceName": "Nom du service",
|
||
"category": "Catégorie",
|
||
"billingMethod": "Méthode de facturation",
|
||
"quantity": "Quantité",
|
||
"defaultRate": "Taux par défaut",
|
||
"actions": "Actions"
|
||
},
|
||
"billingMethods": {
|
||
"fixed": "Prix fixe",
|
||
"hourly": "Horaire",
|
||
"usageBased": "Basé sur l'utilisation",
|
||
"usage": "Utilisation"
|
||
},
|
||
"badges": {
|
||
"product": "Produit",
|
||
"service": "Service"
|
||
},
|
||
"actions": {
|
||
"editQuantity": "Modifier la quantité",
|
||
"remove": "Retirer",
|
||
"addSelectedServices": "Ajouter les services sélectionnés",
|
||
"addSelectedServicesWithCount": "Ajouter les services sélectionnés ({{count}})"
|
||
},
|
||
"tooltip": {
|
||
"defaultRate": "Taux standard du service, utilisé pour l'allocation de valeur interne et le reporting dans le cadre du total fixe du plan. Pas directement modifiable ici."
|
||
},
|
||
"states": {
|
||
"loading": "Chargement des services...",
|
||
"emptyAssociated": "Aucun service actuellement associé à cette ligne de contrat.",
|
||
"emptyAvailable": "Tous les services disponibles sont déjà associés à cette ligne de contrat.",
|
||
"missingPrice": "Prix {{currency}} manquant"
|
||
},
|
||
"addSection": {
|
||
"title": "Ajouter des services à la ligne de contrat",
|
||
"serviceType": "Type de service : {{value}}",
|
||
"method": "Méthode : {{value}}",
|
||
"rate": "Tarif : {{value}}",
|
||
"catalogPrice": "Prix {{currency}} : {{value}}",
|
||
"catalogPriceMissing": "Prix {{currency}} : manquant",
|
||
"customRate": "Tarif {{currency}} personnalisé",
|
||
"productMissingPrice": "Le produit « {{name}} » n’a pas de prix {{currency}}. Entrez un tarif personnalisé avant de l'ajouter."
|
||
},
|
||
"errors": {
|
||
"loadData": "Échec du chargement des données des services",
|
||
"addServices": "Échec de l'ajout de services",
|
||
"removeService": "Échec de la suppression du service"
|
||
},
|
||
"unknownService": "Service inconnu"
|
||
},
|
||
"presetServices": {
|
||
"warnings": {
|
||
"unsavedChanges": "Vous avez des modifications non enregistrées. Cliquez sur \"Enregistrer les modifications\" pour les appliquer."
|
||
},
|
||
"table": {
|
||
"serviceName": "Nom du service",
|
||
"category": "Catégorie",
|
||
"billingMethod": "Méthode de facturation",
|
||
"quantity": "Quantité",
|
||
"defaultRate": "Taux par défaut",
|
||
"actions": "Actions"
|
||
},
|
||
"tooltip": {
|
||
"defaultRate": "Taux standard du service, utilisé pour l'allocation de valeur interne et le reporting dans le cadre du total fixe du plan."
|
||
},
|
||
"states": {
|
||
"loading": "Chargement des services...",
|
||
"emptyAssociated": "Aucun service actuellement associé à cette ligne de contrat.",
|
||
"emptyAvailable": "Tous les services disponibles sont déjà associés à cette ligne de contrat."
|
||
},
|
||
"addSection": {
|
||
"title": "Ajouter des services à la ligne de contrat",
|
||
"serviceType": "Type de service : {{value}}",
|
||
"method": "Méthode : {{value}}",
|
||
"rate": "Tarif : ${{value}}"
|
||
},
|
||
"actions": {
|
||
"remove": "Retirer",
|
||
"addSelectedServices": "Ajouter les services sélectionnés",
|
||
"addSelectedServicesWithCount": "Ajouter les services sélectionnés ({{count}})",
|
||
"saveChanges": "Enregistrer les modifications",
|
||
"saveChangesDirty": "Enregistrer les modifications *",
|
||
"saving": "Enregistrement...",
|
||
"reset": "Réinitialiser"
|
||
},
|
||
"navigationDialog": {
|
||
"title": "Modifications non enregistrées",
|
||
"message": "Vous avez des modifications non enregistrées. Êtes-vous sûr de vouloir quitter cette page ? Toutes les modifications seront perdues.",
|
||
"confirmLabel": "Quitter la page",
|
||
"cancelLabel": "Restez sur la page"
|
||
},
|
||
"toast": {
|
||
"saveSuccess": "Services prédéfinis de ligne de contrat enregistrés avec succès",
|
||
"saveError": "Échec de l'enregistrement des services"
|
||
},
|
||
"unknownService": "Service inconnu"
|
||
},
|
||
"accountingExports": {
|
||
"title": "Exportations comptables",
|
||
"description": "Créez des lots d'exportation, validez les mappages et fournissez des fichiers pour une importation manuelle dans votre système comptable.",
|
||
"table": {
|
||
"batch": "Lot",
|
||
"adapter": "Adaptateur",
|
||
"status": "Statut",
|
||
"created": "Créé",
|
||
"updated": "Mis à jour",
|
||
"actions": "Actions"
|
||
},
|
||
"actions": {
|
||
"refresh": "Actualiser",
|
||
"newExport": "Nouvelle exportation",
|
||
"open": "Ouvrir",
|
||
"execute": "Exécuter",
|
||
"createBatch": "Créer un lot",
|
||
"creating": "Création...",
|
||
"cancelBatch": "Annuler le lot"
|
||
},
|
||
"states": {
|
||
"loadingBatches": "Chargement des lots...",
|
||
"empty": "Aucun lot d'exportation pour l'instant.",
|
||
"loadingDetails": "Chargement des détails du lot...",
|
||
"batchNotFound": "Lot introuvable."
|
||
},
|
||
"createDialog": {
|
||
"title": "Nouvel export comptable",
|
||
"fields": {
|
||
"adapter": "Adaptateur",
|
||
"startDate": "Date de début",
|
||
"endDate": "Date de fin",
|
||
"clientSearch": "Recherche de clients",
|
||
"invoiceStatuses": "Statuts des factures",
|
||
"notes": "Remarques",
|
||
"realm": "Société cible (realm)"
|
||
},
|
||
"placeholders": {
|
||
"clientSearch": "Filtre de nom de client facultatif",
|
||
"invoiceStatuses": "Séparés par des virgules (facultatif), par ex. finalisé, publié",
|
||
"notes": "Notes facultatives"
|
||
},
|
||
"defaultRealmLabel": "{{realmId}} (par défaut)"
|
||
},
|
||
"detailDialog": {
|
||
"title": "Lot d'export comptable",
|
||
"subtitle": "Détails du lot",
|
||
"fields": {
|
||
"batchId": "ID de lot",
|
||
"adapter": "Adaptateur",
|
||
"status": "Statut",
|
||
"created": "Créé",
|
||
"lines": "Lignes",
|
||
"errors": "Erreurs",
|
||
"delivered": "Livré",
|
||
"notes": "Notes"
|
||
},
|
||
"errorDetails": "Détails des erreurs"
|
||
},
|
||
"toast": {
|
||
"created": "Lot d'export comptable créé",
|
||
"executing": "L'exécution par lots a commencé",
|
||
"loadBatchesError": "Échec du chargement des lots d'exportation comptable",
|
||
"loadDetailError": "Échec du chargement des détails du lot",
|
||
"createError": "Échec de la création du lot d'exportation",
|
||
"executeError": "Échec de l'exécution du lot",
|
||
"cancelled": "Lot annulé",
|
||
"cancelError": "Échec de l'annulation du lot"
|
||
},
|
||
"status": {
|
||
"pending": "En attente",
|
||
"validating": "Validation en cours",
|
||
"ready": "Prêt",
|
||
"delivered": "Livré",
|
||
"posted": "Publié",
|
||
"failed": "Échec",
|
||
"cancelled": "Annulé",
|
||
"needsAttention": "Attention requise"
|
||
}
|
||
},
|
||
"templateRenderer": {
|
||
"loading": "Chargement de l'aperçu du modèle...",
|
||
"errorPrefix": "Erreur:",
|
||
"empty": "Veuillez sélectionner une facture et un modèle à prévisualiser."
|
||
},
|
||
"templateDesigner": {
|
||
"propertyEditor": {
|
||
"selectField": "Sélectionnez un champ",
|
||
"content": "Contenu",
|
||
"dataField": "Champ de données",
|
||
"width": "Largeur",
|
||
"height": "Hauteur",
|
||
"fontSize": "Taille de la police",
|
||
"color": "Couleur",
|
||
"columns": "{{count}} colonne(s)",
|
||
"rows": "{{count}} ligne(s)"
|
||
},
|
||
"conditionalRules": {
|
||
"title": "Règles d'affichage conditionnel",
|
||
"selectAction": "Sélectionnez une action",
|
||
"show": "Afficher",
|
||
"hide": "Masquer",
|
||
"format": "Format",
|
||
"conditionPlaceholder": "Condition",
|
||
"targetPlaceholder": "Cible",
|
||
"addRule": "Ajouter une règle"
|
||
}
|
||
},
|
||
"contractsHub": {
|
||
"title": "Contrats",
|
||
"tabs": {
|
||
"templates": "Modèles",
|
||
"clientContracts": "Contrats clients"
|
||
}
|
||
},
|
||
"editQuantityDialog": {
|
||
"title": "Modifier la quantité pour {{serviceName}}",
|
||
"fields": {
|
||
"quantity": "Quantité"
|
||
},
|
||
"validation": {
|
||
"empty": "La quantité ne peut pas être vide.",
|
||
"positiveWholeNumber": "La quantité doit être un nombre entier positif."
|
||
},
|
||
"actions": {
|
||
"cancel": "Annuler",
|
||
"saveQuantity": "Enregistrer la quantité",
|
||
"saving": "Enregistrement..."
|
||
},
|
||
"errors": {
|
||
"saveFailed": "Échec de la mise à jour de la quantité. Veuillez réessayer."
|
||
}
|
||
},
|
||
"templateRendererCore": {
|
||
"notAvailable": "S/O",
|
||
"unknownValue": "Valeur inconnue",
|
||
"noDataForList": "Aucune donnée pour la liste : {{name}}",
|
||
"uncategorized": "Non classé"
|
||
}
|
||
}
|