chore(i18n): auto-update translations via LLM

This commit is contained in:
Christian Krakau-Louis
2026-03-16 17:15:40 +00:00
parent 872ff6c53b
commit 3cd895d57c
79 changed files with 27228 additions and 78 deletions
+173
View File
@@ -41,6 +41,161 @@
"about.story_heading": "Notre Histoire",
"about.story_p1": "DocuElevate a été créé avec un objectif en tête : simplifier et rationaliser la gestion des documents pour tout le monde, que vous soyez une petite startup ou une grande entreprise.",
"about.story_p2": "Nous exploitons la puissance des fournisseurs d'IA extensibles (OpenAI, Anthropic Claude, Google Gemini, Ollama, OpenRouter, Portkey, et plus) pour l'extraction de métadonnées et le raffinement de texte, intégrons de manière transparente avec Dropbox, Nextcloud, et Paperless NGX pour le stockage et l'indexation, utilisons Azure Document Intelligence pour l'OCR, et utilisons même Gotenberg pour les conversions de fichiers en PDF.",
"admin_files.admin_only_badge": "Admin uniquement",
"admin_files.aria_breadcrumb": "Fil d'Ariane",
"admin_files.badge_delta_detected": "Delta détecté",
"admin_files.badge_duplicate": "dup",
"admin_files.badge_in_db": "dans la BDD",
"admin_files.badge_on_disk": "sur disque",
"admin_files.breadcrumb_workdir": "répertoire de travail",
"admin_files.btn_download": "Télécharger",
"admin_files.col_actions": "Actions",
"admin_files.col_db": "BDD",
"admin_files.col_health": "Santé",
"admin_files.col_id": "ID",
"admin_files.col_ingested": "Ingéré",
"admin_files.col_local_filename": "nom_fichier_local",
"admin_files.col_missing_paths": "Chemins manquants",
"admin_files.col_modified": "Modifié",
"admin_files.col_name": "Nom",
"admin_files.col_original_file_path": "chemin_fichier_original",
"admin_files.col_original_filename": "Nom de fichier original",
"admin_files.col_path_relative": "Chemin (par rapport au répertoire de travail)",
"admin_files.col_processed_file_path": "chemin_fichier_traité",
"admin_files.col_size": "Taille",
"admin_files.delta_detected_detail": "Trouvé {orphan_count} fichier(s) orphelin(s) sur le disque sans enregistrement DB, et {ghost_count} enregistrement(s) DB avec des fichiers manquants sur le disque.",
"admin_files.delta_detected_title": "Delta détecté.",
"admin_files.empty_database": "Aucun enregistrement de fichier trouvé dans la base de données.",
"admin_files.empty_directory": "Ce répertoire est vide.",
"admin_files.ghost_records_desc": "(dans la DB, fichier(s) manquant(s) sur le disque)",
"admin_files.ghost_records_heading": "Enregistrements fantômes",
"admin_files.heading": "Gestionnaire de fichiers",
"admin_files.health_missing": "Manquant",
"admin_files.health_ok": "OK",
"admin_files.legend_file_exists": "Le fichier existe sur le disque",
"admin_files.legend_file_missing": "Fichier manquant du disque",
"admin_files.legend_found_in_db": "Trouvé dans la DB",
"admin_files.legend_not_in_db": "Non dans la DB (orphelin)",
"admin_files.legend_path_not_set": "Chemin non défini",
"admin_files.no_delta": "Aucun delta trouvé — le système de fichiers et la base de données sont synchronisés.",
"admin_files.no_ghost_records": "Aucun enregistrement fantôme trouvé.",
"admin_files.no_orphan_files": "Aucun fichier orphelin trouvé.",
"admin_files.orphan_files_desc": "(sur le disque, aucun enregistrement DB)",
"admin_files.orphan_files_heading": "Fichiers orphelins",
"admin_files.page_title": "Gestionnaire de fichiers Admin",
"admin_files.status_in_db": "Dans la DB",
"admin_files.status_orphan": "Orphelin",
"admin_files.tab_database": "Enregistrements de la base de données",
"admin_files.tab_filesystem": "Système de fichiers",
"admin_files.tab_reconcile": "Réconcilier",
"admin_plans.aria_delete_plan": "Supprimer {name}",
"admin_plans.aria_edit_plan": "Modifier {name}",
"admin_plans.aria_feature_n": "Fonctionnalité {n}",
"admin_plans.aria_move_down": "Déplacer {name} vers le bas",
"admin_plans.aria_move_up": "Déplacer {name} vers le haut",
"admin_plans.aria_remove_feature_n": "Supprimer la fonctionnalité {n}",
"admin_plans.btn_add_feature": "Ajouter une fonctionnalité",
"admin_plans.btn_add_plan": "Ajouter un plan",
"admin_plans.btn_cancel": "Annuler",
"admin_plans.btn_create": "Créer un plan",
"admin_plans.btn_delete": "Supprimer",
"admin_plans.btn_edit": "Modifier",
"admin_plans.btn_restore_defaults": "Restaurer les valeurs par défaut",
"admin_plans.btn_restore_defaults_title": "Restaurer les quatre plans par défaut (uniquement si aucun plan n'existe encore)",
"admin_plans.btn_restoring": "Restauration\u001020;",
"admin_plans.btn_save_changes": "Enregistrer les modifications",
"admin_plans.btn_save_order": "Enregistrer l'ordre",
"admin_plans.btn_saving": "Enregistrement\u001020;",
"admin_plans.btn_stripe_setup": "Configuration de Stripe",
"admin_plans.btn_stripe_setup_title": "Ouvrir l'assistant de configuration de Stripe pour configurer les clés API et synchroniser les plans",
"admin_plans.col_actions": "Actions",
"admin_plans.col_active": "Actif",
"admin_plans.col_monthly": "Mensuel",
"admin_plans.col_monthly_limit": "Limite mensuelle",
"admin_plans.col_order": "Ordre",
"admin_plans.col_overage_pct": "Pourcentage de dépassement",
"admin_plans.col_plan": "Plan",
"admin_plans.col_yearly": "Annuel",
"admin_plans.coming_soon": "À venir bientôt",
"admin_plans.featured_badge": "En vedette",
"admin_plans.field_active": "Actif",
"admin_plans.field_allow_overage": "Autoriser la facturation de dépassement",
"admin_plans.field_api_access": "Accès API",
"admin_plans.field_badge_text": "Texte de badge",
"admin_plans.field_buffer": "Tampon :",
"admin_plans.field_cta_text": "Texte du bouton CTA",
"admin_plans.field_docs_month": "Docs / Mois",
"admin_plans.field_featured": "En vedette / Mis en avant",
"admin_plans.field_lifetime_docs": "Docs à vie",
"admin_plans.field_mailboxes": "Boîtes aux lettres email",
"admin_plans.field_max_file_size": "Taille de fichier maximale (Mo)",
"admin_plans.field_name": "Nom",
"admin_plans.field_ocr_pages": "Pages OCR / mois",
"admin_plans.field_overage_doc_price": "Prix supplémentaire / doc ($)",
"admin_plans.field_overage_ocr_price": "Prix supplémentaire / page OCR ($)",
"admin_plans.field_plan_id": "ID du plan",
"admin_plans.field_price_monthly": "Prix mensuel ($)",
"admin_plans.field_price_yearly": "Prix annuel ($)",
"admin_plans.field_sort_order": "Ordre de tri",
"admin_plans.field_storage_dests": "Destinations de stockage",
"admin_plans.field_stripe_monthly": "ID de prix Stripe (mensuel)",
"admin_plans.field_stripe_yearly": "ID de prix Stripe (annuel)",
"admin_plans.field_tagline": "Slogan",
"admin_plans.field_trial_days": "Jours d'essai",
"admin_plans.free_label": "Gratuit",
"admin_plans.heading": "Concepteur de plan",
"admin_plans.hint_features": "Ces points apparaissent sur la carte de la page de prix pour ce plan.",
"admin_plans.hint_plan_id": "Slug en minuscules, ne peut pas être modifié après la création.",
"admin_plans.hint_zero_unlimited": "Entrez 0 pour illimité.",
"admin_plans.js_delete_confirm": "Supprimer le plan \"{id}\" ? Cela ne peut pas être annulé.",
"admin_plans.js_delete_failed": "Échec de la suppression",
"admin_plans.js_failed_load": "Échec du chargement des plans",
"admin_plans.js_order_saved": "Commande enregistrée !",
"admin_plans.js_plan_created": "Plan créé !",
"admin_plans.js_plan_deleted": "Plan \"{id}\" supprimé.",
"admin_plans.js_plan_updated": "Plan mis à jour !",
"admin_plans.js_reorder_failed": "Échec de la réorganisation",
"admin_plans.js_save_failed": "Échec de l'enregistrement",
"admin_plans.js_seed_confirm": "Semer les quatre plans par défaut ? Cela n'a aucun effet si les plans existent déjà.",
"admin_plans.js_seed_failed": "Échec de la semence",
"admin_plans.js_yearly_enter": "Entrez le prix annuel pour montrer les économies",
"admin_plans.js_yearly_save": "Économisez {pct}% par rapport au mensuel",
"admin_plans.loading": "Chargement des plans\u0019",
"admin_plans.modal_close_aria": "Fermer le modal",
"admin_plans.modal_create_title": "Ajouter un plan",
"admin_plans.modal_edit_title_prefix": "Modifier le plan : ",
"admin_plans.no_plans_intro": "Pas encore de plans. Cliquez",
"admin_plans.no_plans_suffix": "pour semer les quatre plans intégrés.",
"admin_plans.overage_0pct": "0% (exact)",
"admin_plans.overage_100pct": "100%",
"admin_plans.overage_50pct": "50%",
"admin_plans.overage_announce": "→ annoncer",
"admin_plans.overage_buffer_body_prefix": "Le tampon de dépassement est",
"admin_plans.overage_buffer_body_suffix": "Nous annonçons X docs/mois mais n'appliquons qu'à",
"admin_plans.overage_buffer_formula": "X × (1 + pourcentage de tampon)",
"admin_plans.overage_buffer_invisible": "invisible aux utilisateurs",
"admin_plans.overage_buffer_tail": "docs. Par exemple, un plan de 150 docs/mois avec un tampon de 20 % s'applique à 180 docs. Cela empêche les coupures brusques à la limite annoncée, offrant aux utilisateurs un atterrissage en douceur.",
"admin_plans.overage_buffer_title": "À propos du tampon de dépassement",
"admin_plans.overage_docs": "docs,",
"admin_plans.overage_docs_end": "docs",
"admin_plans.overage_enforce_at": "s'applique à",
"admin_plans.page_title": "Concepteur de plan — DocuElevate Admin",
"admin_plans.section_basic_info": "Informations de base",
"admin_plans.section_display": "Affichage",
"admin_plans.section_features": "Liste des fonctionnalités",
"admin_plans.section_overage": "Concepteur de dépassement",
"admin_plans.section_pricing": "Tarification",
"admin_plans.section_stripe": "Intégration Stripe",
"admin_plans.section_volume": "Limites de volume",
"admin_plans.status_active": "Actif",
"admin_plans.status_inactive": "Inactif",
"admin_plans.stripe_desc_after": "pour les créer automatiquement. Les plans gratuits n'ont pas besoin d'ID de prix Stripe.",
"admin_plans.stripe_desc_before": "Entrez les ID de prix Stripe pour ce plan, ou utilisez le",
"admin_plans.stripe_wizard_aria": "Ouvrir l'assistant de configuration Stripe dans un nouvel onglet",
"admin_plans.stripe_wizard_link": "Assistant Stripe",
"admin_plans.stripe_wizard_text": "Assistant de configuration Stripe",
"admin_plans.subheading": "Gérer les plans d'abonnement affichés sur la page de tarification publique.",
"admin_plans.table_aria_label": "Plans d'abonnement",
"admin_users.add_user_profile_btn": "Ajouter un profil d'utilisateur",
"admin_users.admin_only_badge": "Réservé aux administrateurs",
"admin_users.btn_password": "Mot de passe",
@@ -1222,6 +1377,9 @@
"profile.contact_email_label": "E-mail de contact / notification",
"profile.contact_email_placeholder": "vous@example.com",
"profile.current_password": "Mot de passe actuel",
"profile.default_document_language_auto": "Utiliser la valeur par défaut du système",
"profile.default_document_language_hint": "Les documents dans d'autres langues sont automatiquement traduits dans cette langue. Laissez vide pour utiliser la valeur par défaut du système (anglais).",
"profile.default_document_language_label": "Langue par défaut du document",
"profile.dismiss": "Ignorer",
"profile.display_name_hint": "Laissez vide pour utiliser votre nom d'utilisateur ou email de compte.",
"profile.display_name_label": "Nom d'affichage",
@@ -1549,6 +1707,21 @@
"terms.s6_p3_mid": ". Pour des informations sur les licences, veuillez vous référer à notre",
"terms.s6_p3_post": ".",
"terms.s6_p3_pre": "Pour des informations sur la manière dont nous utilisons les cookies, veuillez consulter notre",
"translation.copied": "COPIÉ!",
"translation.copy": "Copier",
"translation.default_language_version": "Version de langue par défaut",
"translation.detected_language": "Langue détectée",
"translation.hide_text": "Masquer le texte",
"translation.load_translation": "Charger la traduction",
"translation.no_translation": "Aucune traduction disponible pour le moment \u0000a0\u0000\u0000\u0000— elle peut encore être en cours de traitement",
"translation.select_language": "Sélectionner la langue\u0000a0...",
"translation.select_target": "Veuillez sélectionner une langue cible.",
"translation.show_text": "Afficher le texte",
"translation.translate_btn": "Traduire",
"translation.translate_to": "Traduire en une autre langue",
"translation.translated_to": "Traduit en",
"translation.translating": "Traduction\u0000a0...",
"translation.translation_failed": "La traduction a échoué",
"upload.browse_button": "Parcourir les Fichiers",
"upload.button_processing": "Traitement...",
"upload.camera_button": "Prendre une Photo / Scanner un Document",