Deploy HouseHub / deploy (push) Successful in 1s
- printvault.php: SPA with model grid, sidebar (categories + type filters), search - modules/printvault/api.php: PHP proxy to PrintVault API (auth + CORS) - modules/printvault/assets/printvault.js: model grid, upload modal, detail modal - modules/printvault/assets/printvault.css: full light/dark theme - Upload: drag&drop + form (name, category, tags) - Detail modal: metadata, dimensions, GCode info, download, delete, "Voir en 3D" → PrintVault - Integrated in header nav, home page, settings; translations fr/en/ca Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
663 lines
35 KiB
PHP
663 lines
35 KiB
PHP
<?php
|
||
// Dictionnaire Français
|
||
return [
|
||
// ==========================================
|
||
// TEST AUTO
|
||
// ==========================================
|
||
'test_running' => 'Tests en cours...',
|
||
'test_passed' => 'Test réussi',
|
||
'test_failed' => 'Test échoué',
|
||
'tests_title' => 'Laboratoire de Tests',
|
||
'tests_run_budget' => 'Tester le Budget',
|
||
'tests_run_all' => 'Lancer tous les tests',
|
||
'tests_copy_report' => 'Copier le rapport',
|
||
'tests_waiting' => 'En attente du lancement...',
|
||
'tests_report_copied' => 'Rapport copié dans le presse-papier !',
|
||
'tests_live_preview' => 'Aperçu en direct',
|
||
|
||
|
||
// ==========================================
|
||
// GLOBAL & NAVIGATION
|
||
// ==========================================
|
||
'menu_home' => 'Accueil',
|
||
'menu_calendar' => 'Calendrier',
|
||
'menu_budget' => 'Budget',
|
||
'menu_holidays' => 'Voyages',
|
||
'menu_gifts' => 'Cadeaux',
|
||
'menu_calendar_ios' => 'Calendrier iOS',
|
||
'nav_home' => 'Accueil',
|
||
'nav_calendar' => 'Calendrier',
|
||
'nav_budget' => 'Budget',
|
||
'nav_holidays' => 'Voyages',
|
||
'nav_gifts' => 'Cadeaux',
|
||
'aria_menu' => 'Menu mobile',
|
||
|
||
|
||
// Boutons et actions globales
|
||
'actions' => 'Actions',
|
||
'edit' => 'Modifier',
|
||
'delete' => 'Supprimer',
|
||
'save' => 'Enregistrer',
|
||
'cancel' => 'Annuler',
|
||
'btn_save' => 'Enregistrer',
|
||
'btn_cancel' => 'Annuler',
|
||
'btn_delete' => 'Supprimer',
|
||
'btn_close' => 'Fermer',
|
||
'btn_back' => '◀ Retour',
|
||
'btn_edit_bases' => '⚙️ Modifier les bases',
|
||
'btn_edit' => 'Modifier',
|
||
'error_occured' => 'Une erreur est survenue.',
|
||
|
||
// Mots génériques & Erreurs
|
||
'error' => 'Erreur.',
|
||
'confirm_delete' => 'Es-tu sûr de vouloir supprimer cet élément ?',
|
||
|
||
// Mois & Jours
|
||
'month_01' => 'Janvier', 'month_02' => 'Février', 'month_03' => 'Mars',
|
||
'month_04' => 'Avril', 'month_05' => 'Mai', 'month_06' => 'Juin',
|
||
'month_07' => 'Juillet', 'month_08' => 'Août', 'month_09' => 'Septembre',
|
||
'month_10' => 'Octobre', 'month_11' => 'Novembre','month_12' => 'Décembre',
|
||
'day_mon' => 'Lun', 'day_tue' => 'Mar', 'day_wed' => 'Mer',
|
||
'day_thu' => 'Jeu', 'day_fri' => 'Ven', 'day_sat' => 'Sam', 'day_sun' => 'Dim',
|
||
|
||
// ==========================================
|
||
// AUTHENTIFICATION / LOGIN
|
||
// ==========================================
|
||
'login_title' => 'Connexion - HouseHub',
|
||
'login_header' => 'Connexion',
|
||
'label_username' => 'Identifiant',
|
||
'label_password' => 'Mot de passe',
|
||
'placeholder_username' => 'ex: pacha',
|
||
'btn_login' => 'Connexion',
|
||
'btn_login_submit' => 'Se connecter',
|
||
'logout' => 'Déconnexion',
|
||
'btn_logout' => 'Déconnexion',
|
||
'error_missing_fields' => 'Champs obligatoires.',
|
||
'error_invalid_credentials' => 'Identifiants incorrects.',
|
||
'login_subtitle' => 'Veuillez vous identifier pour continuer',
|
||
|
||
// ==========================================
|
||
// ACCUEIL / INDEX
|
||
// ==========================================
|
||
'home_title' => 'HouseHub - Accueil',
|
||
'home_welcome' => 'Bienvenue sur HouseHub',
|
||
'home_subtitle' => "Centre de contrôle de l'organisation familiale.",
|
||
'home_logged_as' => 'Connecté en tant que',
|
||
'home_modules_title' => 'Modules',
|
||
'mod_calendar_name' => 'Calendrier Familial',
|
||
'mod_calendar_desc' => "Gérez les congés, les modes de garde et l'organisation hebdomadaire.",
|
||
'mod_holidays_name' => 'Vacances',
|
||
'mod_holidays_desc' => 'Planifiez vos prochaines escapades, destinations et idées de voyage.',
|
||
'mod_gifts_name' => 'Cadeaux',
|
||
'mod_gifts_desc' => 'Planifiez les cadeaux pour chaque enfant, pour Noël et les anniversaires.',
|
||
'mod_budget_name' => 'Budget',
|
||
'mod_budget_desc' => 'Suivi des dépenses fixes, revenus et équilibre du compte familial.',
|
||
'mod_garage_name' => 'Garage',
|
||
'mod_garage_desc' => 'Suivez l\'entretien de vos véhicules, les pièces utilisées et les coûts.',
|
||
'mod_memo_name' => 'Notes',
|
||
'mod_memo_desc' => 'Vos mémos, recettes, instructions et infos diverses avec Markdown et pièces jointes.',
|
||
'menu_memo' => 'Notes',
|
||
'mod_todo_name' => 'Todo',
|
||
'mod_todo_desc' => 'Gérez vos tâches, listes de courses et rappels en famille.',
|
||
'mod_calendar_ios_name' => 'Calendrier iOS',
|
||
'mod_calendar_ios_desc' => 'Synchronisez vos événements HouseHub avec votre calendrier iPhone (iCloud CalDAV).',
|
||
'menu_todo' => 'Todo',
|
||
'mod_groceries_name' => 'Courses',
|
||
'mod_groceries_desc' => 'Liste partagée : ajoutez des produits et cochez-les quand ils sont dans le caddie.',
|
||
'menu_groceries' => 'Courses',
|
||
'groceries_placeholder_add' => 'Ex : lait, pain, tomates…',
|
||
'groceries_btn_add' => 'Ajouter',
|
||
'groceries_btn_uncheck_all' => 'Tout remettre à prendre',
|
||
'groceries_btn_delete_picked' => 'Retirer du caddie (supprimer)',
|
||
'groceries_subtitle' => '{pending} à prendre · {cart} dans le caddie',
|
||
'groceries_added' => 'Ajouté',
|
||
'groceries_updated' => 'Mis à jour',
|
||
'groceries_deleted' => 'Supprimé',
|
||
'groceries_reset_next' => 'Liste prête pour la prochaine sortie',
|
||
'groceries_picked_removed' => 'Articles retirés',
|
||
'groceries_label_empty' => 'Libellé vide',
|
||
'groceries_confirm_del_title' => 'Supprimer ?',
|
||
'groceries_confirm_del_body' => 'Retirer ce produit de la liste ?',
|
||
'groceries_confirm_uncheck_title' => 'Tout remettre à prendre',
|
||
'groceries_confirm_uncheck_body' => 'Les coches « dans le caddie » seront effacées. Les produits restent dans la liste.',
|
||
'groceries_confirm_clear_title' => 'Retirer les produits du caddie',
|
||
'groceries_confirm_clear_body' => 'Tous les articles cochés seront supprimés de la liste.',
|
||
'groceries_empty' => 'Rien pour le moment. Ajoutez un produit ci-dessus.',
|
||
'groceries_aria_toggle' => 'Marquer comme dans le caddie ou à prendre',
|
||
'groceries_section_pending' => 'À prendre',
|
||
'groceries_section_cart' => 'Dans le caddie',
|
||
'groceries_prompt_edit' => 'Modifier le produit',
|
||
'groceries_btn_clear_list' => 'Vider la liste',
|
||
'groceries_confirm_empty_list_title' => 'Vider toute la liste ?',
|
||
'groceries_confirm_empty_list_body' => 'Tous les produits seront retirés. Ils resteront disponibles dans l’historique pour les rajouter vite.',
|
||
'groceries_list_cleared' => 'Liste vidée',
|
||
'groceries_history_title' => 'Historique — un clic pour rajouter',
|
||
'groceries_history_empty' => 'L’historique se remplit au fur et à mesure des produits ajoutés (jusqu’à la limite définie dans les paramètres).',
|
||
'groceries_history_meta' => 'Jusqu’à {max} produits · ',
|
||
'groceries_settings_link' => 'Réglages dans Paramètres',
|
||
'groceries_settings_title' => 'Liste de courses — historique',
|
||
'groceries_settings_intro' => 'Nombre maximum de produits mémorisés dans l’historique (sans doublon, insensible à la casse).',
|
||
'groceries_settings_history_max' => 'Taille de l’historique',
|
||
'groceries_settings_history_hint' => 'Entre 1 et 50. Les entrées les plus anciennes sont supprimées quand la limite est dépassée.',
|
||
'groceries_settings_saved' => 'Préférences courses enregistrées.',
|
||
'groceries_settings_error' => 'Impossible d’enregistrer :',
|
||
'groceries_err_duplicate' => 'Ce produit est déjà dans la liste.',
|
||
'cta_open' => 'Ouvrir',
|
||
'cta_explore' => 'Explorer',
|
||
'cta_view_lists' => 'Déballer',
|
||
'cta_manage' => 'Gérer',
|
||
'cta_service' => 'Réviser',
|
||
'cta_jot' => 'Griffonner',
|
||
'cta_check' => 'Cocher',
|
||
'cta_cart' => 'Faire les courses',
|
||
'cta_sync' => 'Synchroniser',
|
||
'mod_printvault_name' => 'PrintVault',
|
||
'mod_printvault_desc' => 'Gérez vos fichiers d\'impression 3D — STL, 3MF, GCode avec viewer interactif.',
|
||
'menu_printvault' => 'PrintVault',
|
||
'cta_print' => 'Imprimer',
|
||
|
||
// ==========================================
|
||
// FAMILY CALENDAR
|
||
// ==========================================
|
||
'fc_page_title' => 'HouseHub - Calendrier',
|
||
'fc_main_header' => 'Calendrier Familial',
|
||
'fc_btn_correct_balances' => 'Corriger les soldes',
|
||
'fc_btn_school_holidays' => 'Vacances scolaires',
|
||
'fc_modal_holidays_title' => 'Vacances Scolaires (Zone C)',
|
||
'fc_modal_snap_title' => 'Ajuster un solde',
|
||
'fc_col_period' => 'Période',
|
||
'fc_col_from' => 'Du',
|
||
'fc_col_to' => 'Au',
|
||
'fc_label_person' => 'Personne',
|
||
'fc_label_leave_type' => 'Type de congé',
|
||
'fc_label_apply_date' => "Date d'application",
|
||
'fc_snap_date_hint' => "Choisissez de préférence le 1er jour d'un mois",
|
||
'fc_label_remaining_balance'=> 'Solde restant à cette date',
|
||
'fc_placeholder_balance' => 'ex: 12.5',
|
||
'fc_btn_save_snap' => 'Enregistrer le correctif',
|
||
'fc_view_1m' => '1 mois',
|
||
'fc_view_2m' => '2 mois',
|
||
'fc_view_3m' => '3 mois',
|
||
'fc_view_year' => 'Année',
|
||
'fc_weekly_planning' => 'Planning hebdomadaire',
|
||
'fc_col_month' => 'Mois',
|
||
'fc_col_week_short' => 'Sem.',
|
||
'fc_col_av' => 'Av.',
|
||
'fc_col_use' => 'Use',
|
||
'fc_legend_title' => 'Légende',
|
||
'fc_summary_title' => 'Récapitulatif',
|
||
'fc_summ_year' => 'Année',
|
||
'fc_summ_month' => 'Mois',
|
||
'fc_school_year' => 'Année scolaire',
|
||
'fc_unit_days' => 'jours',
|
||
'fc_menu_carole' => 'Congés Carole',
|
||
'fc_clear' => 'Effacer',
|
||
'fc_menu_kids_leaves' => 'Congés Enfants',
|
||
'fc_err_save_snap' => 'Erreur lors de la sauvegarde du correctif.',
|
||
'fc_err_fetch_gov' => 'Erreur lors de la connexion à l\'API gouvernementale.',
|
||
'fc_err_no_data_gov' => 'Aucune donnée trouvée sur l\'API du gouvernement pour cette année.',
|
||
'fc_err_action' => 'Erreur lors de l\'action : ',
|
||
'fc_today_short' => 'Auj.',
|
||
'fc_today_title' => "Aujourd'hui",
|
||
|
||
'leg_presence' => 'Présence Pep',
|
||
'leg_school_holidays' => 'Vacances Scolaires',
|
||
'leg_public_holiday' => 'Férié',
|
||
'leg_off_carole' => 'Off Carole',
|
||
'leg_extra_off' => 'Extra Off',
|
||
'leg_centre' => 'Centre',
|
||
'leg_avis' => 'Avis',
|
||
'leg_pep_sick' => 'Pep Malade',
|
||
|
||
'vac_toussaint' => 'Vacances de la Toussaint',
|
||
'vac_noel' => 'Vacances de Noël',
|
||
'vac_hiver' => "Vacances d'Hiver",
|
||
'vac_printemps' => 'Vacances de Printemps',
|
||
'vac_ascension' => 'Pont de l\'Ascension',
|
||
'vac_ete' => "Vacances d'Été",
|
||
'btn_off' => 'Off',
|
||
'btn_extra' => 'Extra',
|
||
|
||
'fc_alert_burn_days' => '⚠️ Risque de perte : %s j à poser avant le %s',
|
||
'fc_alert_burn_jra' => '⚠️ JRA : Seuls 2j sont reportables après février !',
|
||
|
||
// ==========================================
|
||
// HOLIDAYS (VOYAGES)
|
||
// ==========================================
|
||
'hdl_title_list' => 'HouseHub - Mes Vacances',
|
||
'hdl_title_detail' => 'HouseHub - Détail du voyage',
|
||
'hdl_main_title' => 'Mes Vacances',
|
||
'hdl_filter_all' => 'Tout afficher',
|
||
'hdl_filter_year' => 'Année',
|
||
'hdl_left_to_pay_label' => 'Reste à payer',
|
||
'hdl_btn_create' => 'Créer un voyage',
|
||
'hdl_no_active_trips' => 'Aucun voyage en cours pour cette période. Planifions quelque chose !',
|
||
'hdl_history_title' => 'Historique',
|
||
'hdl_dates_to_define' => 'Dates à définir',
|
||
'hdl_total_budget' => 'Budget Total',
|
||
'hdl_paid' => 'Payé',
|
||
'hdl_saved' => 'Financé',
|
||
'hdl_left_to_pay' => 'Reste à payer',
|
||
'hdl_status_booked' => 'Confirmé',
|
||
'hdl_status_planned' => 'Planifié',
|
||
'hdl_status_draft' => 'Brouillon',
|
||
'hdl_status_passed' => 'Terminé',
|
||
'hdl_status_archived' => 'Archivé',
|
||
'hdl_modal_title' => 'Planifier le voyage',
|
||
'hdl_label_name' => 'Nom du voyage',
|
||
'hdl_ph_name' => 'Ex: Octobre - Portugal',
|
||
'hdl_label_status' => 'Statut',
|
||
'hdl_label_period' => 'Période (Texte libre)',
|
||
'hdl_ph_period' => 'Ex: Octobre 2026',
|
||
'hdl_label_from' => 'Du',
|
||
'hdl_label_to' => 'Au',
|
||
'hdl_cat_transport' => 'Transport',
|
||
'hdl_add_transport' => 'Ajouter un transport',
|
||
'hdl_cat_accommodation' => 'Hébergement',
|
||
'hdl_add_accommodation' => 'Ajouter un hébergement',
|
||
'hdl_cat_activity' => 'Activité',
|
||
'hdl_add_activity' => 'Ajouter une activité',
|
||
'hdl_label_budget_food' => 'Budget Food & Bev (€)',
|
||
'hdl_label_budget_extras' => 'Budget Extras (€)',
|
||
'hdl_label_notes' => 'Notes',
|
||
'hdl_ph_notes' => 'Idées en vrac...',
|
||
'hdl_label_budget_food_extras' => 'Budget Food & Extras',
|
||
'hdl_map_itinerary' => 'Itinéraire',
|
||
'hdl_outbound' => 'Aller',
|
||
'hdl_return' => 'Retour',
|
||
'hdl_btn_add_step' => 'Ajouter une étape',
|
||
'hdl_step_details' => 'Détails du roadtrip',
|
||
'hdl_no_steps' => 'Aucune étape définie. Commencez par en ajouter une !',
|
||
'hdl_general_costs' => 'Frais généraux & Budgets',
|
||
'hdl_food_bev' => 'Food & Bev',
|
||
'hdl_extras' => 'Extras',
|
||
'hdl_view_planning' => 'Voir le planning',
|
||
'hdl_passing_point' => 'Point de passage (sans frais)',
|
||
'hdl_search_location' => 'Chercher un lieu',
|
||
'hdl_ph_search' => 'Ville, hôtel, adresse...',
|
||
'hdl_label_step_name' => "Nom de l'étape",
|
||
'hdl_label_arrival' => 'Arrivée',
|
||
'hdl_label_departure' => 'Départ',
|
||
'hdl_planned_expenses' => 'Dépenses prévues pour cette étape',
|
||
'hdl_btn_add_expense' => '+ Ajouter une dépense',
|
||
'hdl_save_fav' => 'Enregistrer dans mes favoris',
|
||
'hdl_planning_title' => 'Planning de l\'étape',
|
||
'hdl_to_pay' => 'À payer',
|
||
'hdl_js_search_loading' => 'Recherche en cours...',
|
||
'hdl_js_no_result' => 'Aucun résultat trouvé.',
|
||
'hdl_js_network_error' => 'Erreur de connexion au service de carte.',
|
||
'hdl_js_confirm_del_trip' => 'Es-tu sûr de vouloir supprimer ce voyage entier ?',
|
||
'hdl_js_confirm_del_step' => 'Supprimer cette étape ?',
|
||
'hdl_js_step_label' => 'Étape',
|
||
'hdl_js_ph_expense_name' => 'Ex: Hôtel, Péage...',
|
||
'hdl_quick_edit_title' => 'Modification rapide',
|
||
'hdl_js_edit_step' => 'Modifier l\'étape',
|
||
'hdl_js_missing_dates_title'=> 'Dates manquantes',
|
||
'hdl_js_missing_dates_msg' => 'Veuillez définir une date d\'arrivée et de départ pour organiser le planning.',
|
||
'hdl_to_place' => 'À placer',
|
||
'hdl_from' => 'Du',
|
||
'hdl_to' => 'Au',
|
||
'hdl_btn_add_step' => 'Ajouter une étape',
|
||
'hdl_quick_edit_title' => 'Modification rapide',
|
||
'hdl_paid' => 'Payé',
|
||
'weather_forecast' => 'Prévisions météo',
|
||
'weather_not_available' => 'Météo indisponible',
|
||
'temp_max' => 'Temp. Max',
|
||
'weather_loading' => 'Chargement météo...',
|
||
'weather_error' => 'Météo indisponible',
|
||
'weather_sunny' => 'Ensoleillé',
|
||
'weather_cloudy' => 'Nuageux',
|
||
'weather_rainy' => 'Pluvieux',
|
||
'weather_snowy' => 'Neigeux',
|
||
'weather_historical' => 'Basé sur l\'historique (estimation)',
|
||
'err_invalid_holiday_id' => 'ID de voyage invalide.',
|
||
'hdl_default_exp_name' => 'Dépense',
|
||
'hdl_select_beneficiary' => '-- Sélectionner --',
|
||
|
||
// Anciennes clés Holidays non préfixées (conservées pour compatibilité si utilisées)
|
||
'outbound_trip' => 'Aller',
|
||
'return_trip' => 'Retour',
|
||
'period' => 'Période',
|
||
'budget_food' => 'Budget Food & Extras',
|
||
'total_cost' => 'Coût Total Estimé',
|
||
'paid' => 'Payé',
|
||
'provisioned' => 'Provisionné',
|
||
'left_to_pay' => 'Reste à payer',
|
||
'map_itinerary' => '🗺️ Itinéraire',
|
||
'place_step' => '📍 Placer une étape',
|
||
'step_details' => '📝 Détail des étapes',
|
||
'no_steps' => 'Aucune étape planifiée.',
|
||
'travel_notes' => '📝 Notes du voyage',
|
||
'to_be_defined' => 'À définir',
|
||
'funded' => 'Financé (Provision)',
|
||
'view_planning' => 'Voir le planning',
|
||
'to_pay' => 'À payer',
|
||
'from_date' => 'Du',
|
||
'to_date' => 'au',
|
||
'passing_point' => 'Point de passage (Aucune dépense)',
|
||
'search_location' => 'Rechercher un lieu géographique',
|
||
'search_placeholder' => 'Ex: Paris, Ibis Barcelone...',
|
||
'step_name' => 'Nom de l\'étape',
|
||
'arrival_optional' => 'Arrivée le (Optionnel)',
|
||
'departure_optional' => 'Départ le (Optionnel)',
|
||
'planned_expenses' => 'Dépenses prévues',
|
||
'add_expense' => '+ Ajouter une dépense',
|
||
'save_favorite' => 'Sauvegarder dans mes favoris',
|
||
'planning_title' => 'Planning',
|
||
'modal_plan_trip' => 'Planifier le voyage',
|
||
'modal_quick_edit' => 'Modification rapide',
|
||
'err_modal_missing' => 'Erreur : La modale holidayModal est introuvable.',
|
||
'placeholder_title' => 'Intitulé',
|
||
'placeholder_price' => 'Prix (€)',
|
||
'already_paid' => 'Déjà payé ?',
|
||
'remove_line' => 'Retirer cette ligne',
|
||
'confirm_delete_trip' => 'Voulez-vous vraiment supprimer définitivement ce voyage ? Cette action est irréversible.',
|
||
'step_number' => 'Étape',
|
||
'place_new_step' => '📍 Placer une nouvelle étape',
|
||
'edit_step' => '✏️ Modifier l\'étape',
|
||
'search_in_progress' => 'Recherche en cours... ⏳',
|
||
'no_result_found' => 'Aucun résultat trouvé.',
|
||
'network_error' => 'Erreur réseau.',
|
||
'placeholder_label' => 'Libellé',
|
||
'placeholder_notes_link' => '🔗 Lien de réservation ou notes (Optionnel)...',
|
||
'confirm_delete_step' => 'Supprimer cette étape et toutes les dépenses associées ?',
|
||
'planning_of' => '📅 Planning : ',
|
||
'missing_dates_title' => '⚠️ Dates manquantes',
|
||
'missing_dates_msg' => 'Veuillez modifier cette étape (✏️) et renseigner sa <strong>Date d\'arrivée et de départ</strong>.',
|
||
'to_place' => '📥 À Placer',
|
||
|
||
// ==========================================
|
||
// BUDGET (GLOBAL & CATEGORIES)
|
||
// ==========================================
|
||
'budget_page_title' => 'HouseHub - Budget',
|
||
'budget_main_header' => 'Gestion du Budget',
|
||
'budget_tab_tracking' => 'Suivi Mensuel',
|
||
'budget_tab_prev' => 'Budget 2026',
|
||
'budget_tab_savings' => 'Épargne',
|
||
'budget_tab_recap' => 'Récapitulatif',
|
||
'budget_err_file_not_found' => 'Oups ! Fichier introuvable.',
|
||
'budget_err_file_detail' => 'Vérifiez que le fichier views/%s.php existe bien.',
|
||
'budget_err_not_authorized' => 'Page non autorisée.',
|
||
'cat_income' => 'Revenus',
|
||
'cat_fmcg' => 'Courses (FMCG)',
|
||
'cat_fuel' => 'Essence',
|
||
'cat_school' => 'École / Garde',
|
||
'cat_fixed' => 'Charges Fixes',
|
||
'cat_others' => 'Autres / Imprévus',
|
||
'cat_savings' => 'Épargne',
|
||
|
||
// --- BUDGET : SUIVI ---
|
||
'bud_rem_school' => 'École (Reste estimé)',
|
||
'bud_rem_fmcg' => 'Courses (Reste estimé)',
|
||
'bud_rem_fuel' => 'Essence (Reste estimé)',
|
||
'bud_closed_archived' => 'Ce mois est clôturé et archivé.',
|
||
'bud_budget_of' => 'Budget :',
|
||
'bud_confirm_close' => 'Clôturer ce mois ? Cela figera les soldes actuels et basculera le suivi par défaut sur le mois prochain.',
|
||
'bud_close_btn' => 'Clôturer',
|
||
'bud_confirm_reopen' => 'Rouvrir ce mois ? Ses soldes seront recalculés en direct.',
|
||
'bud_reopen_btn' => 'Rouvrir',
|
||
'bud_active_month_btn' => 'Mois Actif',
|
||
'bud_bank_balance' => 'Solde bancaire',
|
||
'bud_frozen' => 'Figé',
|
||
'bud_current' => 'Actuel',
|
||
'bud_update_btn' => 'MàJ',
|
||
'bud_theoretical_balance' => 'Solde théorique fin de mois',
|
||
'bud_upcoming_charges' => 'Charges à venir',
|
||
'bud_all_paid' => 'Tout est payé !',
|
||
'bud_capacity_tooltip' => 'Calcul : Report Mois Précédent (%s€) + Salaires (%s€) + Autres rentrées (%s€)',
|
||
'bud_max_capacity' => 'Capacité Max',
|
||
'bud_actual' => 'Actuel',
|
||
'bud_theoretical' => 'Théorique',
|
||
'bud_import_csv' => 'Importer CSV',
|
||
'bud_csv_file' => 'Fichier CSV (Point-virgule)',
|
||
'bud_preview' => 'Prévisualiser',
|
||
'bud_validate_import' => 'Valider l\'importation',
|
||
'bud_assign_month' => 'Imputer au mois',
|
||
'bud_op_date' => 'Date Opération',
|
||
'bud_label' => 'Libellé',
|
||
'bud_amount' => 'Montant',
|
||
'bud_category' => 'Catégorie',
|
||
'bud_ignore' => 'Ignorer',
|
||
'bud_to_define' => 'À définir',
|
||
'bud_is_charge' => 'Charge ?',
|
||
'bud_is_income' => 'Revenu ?',
|
||
'btn_import' => 'Importer',
|
||
'bud_no_lines' => 'Aucune ligne.',
|
||
'bud_confirm_delete' => 'Supprimer cette ligne ?',
|
||
'bud_new_transaction' => 'Nouvelle transaction',
|
||
'bud_assign_to_month' => 'Imputer au mois de gestion',
|
||
'bud_real_date' => 'Date réelle de l\'opération',
|
||
'bud_type' => 'Type',
|
||
'bud_type_expense' => 'Dépense',
|
||
'bud_type_income' => 'Revenu / Remboursement',
|
||
'bud_beneficiary' => 'Bénéficiaire',
|
||
'bud_fixed_charge' => 'Charge Fixe',
|
||
'bud_expected_income' => 'Revenu Attendu',
|
||
'bud_amount_eur' => 'Montant (€)',
|
||
'bud_update_balance' => 'MàJ Solde Bancaire',
|
||
'bud_balance_eur' => 'Solde (€)',
|
||
'bud_add_title' => 'Ajouter',
|
||
'bud_edit_title' => 'Modifier la transaction',
|
||
'bud_to_define_js' => 'à définir',
|
||
'bud_bar_actual' => "Actuel",
|
||
'bud_bar_theoretical' => "Théorique",
|
||
'bud_bar_max_cap' => "Capacité Max",
|
||
'bud_import_csv' => "Importer CSV",
|
||
'bud_csv_file' => "Sélectionnez le fichier de votre banque (.csv)",
|
||
'bud_preview' => "Prévisualiser",
|
||
'bud_validate_import' => "Veuillez vérifier et catégoriser les lignes avant validation.",
|
||
'bud_assign_month' => "Mois de gestion",
|
||
'bud_op_date' => "Date",
|
||
'bud_amount' => "Montant",
|
||
'bud_ignore' => "Ignorer (Crédit)",
|
||
'bud_to_define' => "À définir",
|
||
'bud_is_charge' => "Est une charge fixe...",
|
||
'bud_is_income' => "Est un revenu...",
|
||
|
||
// --- BUDGET : RECAP ---
|
||
'bud_recap_monthly_title' => 'Récapitulatif Mensuel',
|
||
'bud_recap_btn_add' => 'Ajouter un frais / revenu',
|
||
'bud_planned_amount' => 'Montant Prévu',
|
||
'bud_day' => 'Jour',
|
||
'bud_month_state' => 'État du mois',
|
||
'bud_est_short' => 'Est.',
|
||
'bud_reg_planned_in' => 'Régul. prévue en %s',
|
||
'bud_bonus' => 'Bonus',
|
||
'bud_overrun' => 'Dépassement',
|
||
'bud_remaining' => 'Reste',
|
||
'bud_exact_amount' => 'Montant exact',
|
||
'bud_per_month_short' => 'Soit',
|
||
'bud_month_short' => 'mois',
|
||
'bud_freq_mensuel' => 'Mensuel',
|
||
'bud_freq_annuel' => 'Annuel',
|
||
'bud_state_validated' => 'Validé',
|
||
'bud_state_partial' => 'Partiel',
|
||
'bud_state_waiting' => 'En attente',
|
||
'bud_total_income_smoothed' => 'Total Revenus (Lissés)',
|
||
'bud_total_expenses_smoothed'=> 'Total Dépenses (Lissées)',
|
||
'bud_theoretical_balance_recap'=> 'Équilibre théorique',
|
||
'bud_recap_footer_note' => 'L\'état de paiement se met à jour automatiquement en fonction des opérations importées dans l\'onglet "Suivi Mensuel".',
|
||
'bud_recap_modal_add' => 'Ajouter un élément',
|
||
'bud_recap_modal_edit' => 'Modifier',
|
||
'bud_label_name' => 'Nom',
|
||
'bud_ph_item_name' => 'Ex: Loyer, Salaire...',
|
||
'bud_label_keywords' => 'Mots-clés (Détection Auto)',
|
||
'bud_ph_keywords' => 'Ex: NETFLIX, PRIME VIDEO (séparés par virgule)',
|
||
'bud_help_keywords' => 'Si une dépense du mois contient ce mot, la ligne passera en "Validé".',
|
||
'bud_label_day' => 'Jour (1-31)',
|
||
'bud_cat_income' => 'Épargne',
|
||
'bud_cat_expense' => 'Dépense (Frais)',
|
||
'bud_label_frequency' => 'Fréquence',
|
||
'bud_label_amount_type' => 'Type de montant',
|
||
'bud_type_fixed' => 'Fixe (Facture)',
|
||
'bud_type_variable' => 'Variable (Estimation)',
|
||
'bud_label_regularization' => 'Régularisation',
|
||
'bud_reg_none' => 'Aucune',
|
||
'bud_recap_confirm_delete' => 'Voulez-vous vraiment supprimer cet élément ?',
|
||
'bud_err_delete' => 'Erreur lors de la suppression.',
|
||
|
||
// --- BUDGET : EPARGNE ---
|
||
'bud_sav_add_month' => 'Saisir un mois',
|
||
'bud_sav_add_one_month' => '+1 Mois',
|
||
'bud_sav_no_data' => 'Aucune donnée pour %s.',
|
||
'bud_sav_post_month' => 'Poste / Mois',
|
||
'bud_sav_from_date' => 'Dès le %s',
|
||
'bud_sav_edit_modal' => 'Modifier avec Modale',
|
||
'bud_sav_delete_month' => 'Supprimer tout le mois',
|
||
'bud_sav_total_bank' => 'Total Banque',
|
||
'bud_sav_extra' => 'Extra',
|
||
'bud_sav_modal_title_add' => 'Saisir un mois',
|
||
'bud_sav_modal_title_edit' => 'Modifier :',
|
||
'bud_sav_month_concerned' => 'Mois concerné',
|
||
'bud_sav_total_bank_eur' => 'Total en Banque (€)',
|
||
'bud_sav_ventilation' => 'Ventilation',
|
||
'bud_sav_adj_help' => 'Utilisez l\'ajustement (+/-) pour recalculer automatiquement.',
|
||
'bud_sav_add_line' => 'Ligne',
|
||
'bud_sav_current' => 'Actuel',
|
||
'bud_sav_adjust' => 'Ajust (+/-)',
|
||
'bud_sav_new' => 'Nouveau',
|
||
'bud_sav_sum_mode_title' => 'Activer l\'addition rapide',
|
||
'bud_sav_selection' => 'Sélection :',
|
||
'bud_sav_ph_name' => 'Nom (ex: Vacances)',
|
||
'bud_sav_saving' => 'Enregistrement...',
|
||
'bud_err_tech' => 'Une erreur technique est survenue.',
|
||
'bud_sav_confirm_delete_month' => 'Supprimer TOUT le mois de %m pour %o ?',
|
||
'bud_sav_prompt_duplicate' => "Voulez-vous copier les données de %s vers %t1 ?\n\nSaisissez le nouveau TOTAL en banque (€) pour %t2 :",
|
||
'bud_err_server' => 'Erreur serveur : ',
|
||
'bud_err_network_dup' => 'Erreur réseau lors de la duplication.',
|
||
|
||
// --- BUDGET : PREVISIONNEL ---
|
||
'bud_prev_incomes' => 'Revenus',
|
||
'bud_prev_person' => 'Personne',
|
||
'bud_prev_salary' => 'Salaire',
|
||
'bud_prev_monthly_payment' => 'Mensualité',
|
||
'bud_prev_joint_account' => 'Cpt Commun',
|
||
'bud_prev_func_expenses' => 'Frais Func.',
|
||
'bud_prev_perso_savings' => 'Eco Perso',
|
||
'bud_prev_family_savings' => 'Eco Family',
|
||
'bud_prev_available' => 'Dispo',
|
||
'bud_prev_perso_remaining' => 'Restant Perso',
|
||
'bud_prev_budget_alloc' => 'Répartition Budgétaire',
|
||
'bud_prev_today' => 'Auj.',
|
||
'bud_prev_new_line' => 'Nouvelle Ligne',
|
||
'bud_prev_remaining' => 'Restant',
|
||
'bud_prev_confirm_del_line' => 'Supprimer cette ligne et tout son historique ?',
|
||
'bud_prev_notes_for' => 'Notes pour',
|
||
'bud_prev_saved' => 'Enregistré',
|
||
'bud_prev_notes_ph' => 'Écrivez vos remarques, rappels ou commentaires pour ce mois ici...',
|
||
'bud_prev_save_note' => 'Enregistrer la note',
|
||
'bud_prev_transfers_to_make' => 'Virements à effectuer',
|
||
'bud_prev_destination' => 'Destination',
|
||
'bud_prev_done' => 'FAIT',
|
||
'bud_prev_validate' => 'Valider',
|
||
'bud_prev_grand_total' => 'GRAND TOTAL',
|
||
'bud_prev_new_line_title' => 'Nouvelle Ligne de Budget',
|
||
'bud_prev_edit_line_title' => 'Modifier la ligne',
|
||
'bud_prev_label_target' => 'Cible (Destination)',
|
||
'bud_prev_choose' => 'Choisir',
|
||
'bud_prev_link_holiday' => 'Lier à un voyage (Optionnel)',
|
||
'bud_prev_no_link' => 'Ne pas associer',
|
||
'bud_prev_err_no_history' => 'Impossible : pas d\'historique disponible pour copier.',
|
||
'bud_prev_confirm_copy' => "Voulez-vous copier les données de %s vers %t ?\n\n⚠️ Cela écrasera toutes les valeurs déjà présentes pour %t.",
|
||
'bud_prev_confirm_transfers' => "Confirmer que %p a bien effectué tous ses virements pour %m ?\n\nCela mettra à jour l'Épargne automatiquement.",
|
||
'bud_sav_modal_title_add' => 'Saisir un mois',
|
||
'bud_sav_ph_name' => 'Nom (ex: Vacances)',
|
||
'bud_prev_label_name' => 'Nom',
|
||
|
||
// ==========================================
|
||
// CADEAUX (GIFTS)
|
||
// ==========================================
|
||
'gift_page_title' => 'HouseHub - Liste de cadeaux',
|
||
'gift_occ_tio' => 'Tió',
|
||
'gift_occ_noel' => 'Noël',
|
||
'gift_occ_rois' => 'Rois mages',
|
||
'gift_occ_anniv' => 'Anniversaire',
|
||
'gift_occ_sant' => 'Saint',
|
||
'gift_main_title' => 'Liste de cadeaux %s',
|
||
'gift_aria_change_view' => 'Changer la vue',
|
||
'gift_view_nadal' => 'Noël',
|
||
'gift_view_anniv' => 'Anniversaires',
|
||
'gift_view_by_party' => 'Vue par fête',
|
||
'gift_no_gifts' => 'Aucun cadeau enregistré pour %s dans cette vue.',
|
||
'gift_add_gift' => 'Ajouter un cadeau',
|
||
'gift_paid_by' => 'payé par %s',
|
||
'gift_summary_title' => 'Résumé du budget',
|
||
'gift_col_adult' => 'Adulte',
|
||
'gift_col_child' => 'Enfant',
|
||
'gift_col_party' => 'Fête',
|
||
'gift_debtor' => 'Débiteur',
|
||
'gift_creditor' => 'Créancier',
|
||
'gift_liquidations' => 'Tricount',
|
||
'gift_no_debt' => 'Aucune dette en cours.',
|
||
'gift_owes' => 'doit',
|
||
'gift_to' => 'à',
|
||
'gift_detailed_list' => 'Liste détaillée des cadeaux',
|
||
'gift_col_gift' => 'Cadeau',
|
||
'gift_col_link' => 'Lien',
|
||
'gift_modal_title_add' => 'Ajouter un cadeau pour %s',
|
||
'gift_modal_title_edit' => 'Modifier le cadeau',
|
||
'gift_modal_payer' => 'Payé par',
|
||
'gift_modal_gift_name' => 'Nom du cadeau',
|
||
'gift_modal_ph_name' => 'ex: Lego Star Wars',
|
||
'gift_modal_price' => 'Prix (€)',
|
||
'gift_modal_link' => 'Lien (optionnel)',
|
||
'gift_confirm_delete' => 'Voulez-vous vraiment supprimer ce cadeau ?',
|
||
'gift_filter_all_children' => 'Tous les enfants',
|
||
'gift_filter_all_adults' => 'Tous les adultes',
|
||
'gift_empty_state_no_gifts' => 'Aucun cadeau pour le moment.',
|
||
'gift_empty_state_no_filter' => 'Aucun cadeau ne correspond au filtre.',
|
||
'gift_view_matrix' => 'Voir la matrice détaillée',
|
||
// ==========================================
|
||
// GARAGE MANAGER
|
||
// ==========================================
|
||
'menu_garage' => 'Garage',
|
||
'garage_page_title' => 'HouseHub - Garage',
|
||
'garage_stat_vehicles' => 'Véhicules',
|
||
'garage_stat_maintenances' => 'Entretiens',
|
||
'garage_stat_parts' => 'Pièces',
|
||
'garage_stat_cost' => 'Coût total',
|
||
'garage_my_vehicles' => 'Mes véhicules',
|
||
'garage_reminders' => 'Rappels & prochains entretiens',
|
||
'garage_vehicles_title' => 'Mes véhicules',
|
||
'garage_all_parts' => 'Toutes les pièces',
|
||
'garage_parts_count' => 'pièces',
|
||
'garage_maintenances' => 'Entretiens',
|
||
'garage_parts' => 'Pièces',
|
||
'garage_add' => 'Ajouter',
|
||
'garage_add_vehicle' => 'Ajouter un véhicule',
|
||
'garage_add_maintenance' => 'Ajouter un entretien',
|
||
'garage_add_part' => 'Ajouter une pièce',
|
||
'garage_vehicle_name' => 'Nom du véhicule',
|
||
'garage_brand' => 'Marque',
|
||
'garage_model' => 'Modèle',
|
||
'garage_year' => 'Année',
|
||
'garage_plate' => 'Immatriculation',
|
||
'garage_fuel' => 'Carburant',
|
||
'garage_km' => 'Kilométrage actuel',
|
||
'garage_color' => 'Couleur',
|
||
'garage_purchase_date' => 'Date d\'achat',
|
||
'garage_purchase_price' => 'Prix d\'achat (€)',
|
||
'garage_photo' => 'Photo',
|
||
'garage_notes' => 'Notes',
|
||
'garage_maint_type' => 'Type d\'entretien',
|
||
'garage_date' => 'Date',
|
||
'garage_km_at' => 'Kilométrage au moment',
|
||
'garage_labor_cost' => 'Coût main d\'œuvre (€)',
|
||
'garage_description' => 'Description',
|
||
'garage_mechanic' => 'Mécanicien',
|
||
'garage_garage' => 'Garage / Atelier',
|
||
'garage_next_reminder' => 'Prochain entretien (rappel)',
|
||
'garage_next_date' => 'Date prévue',
|
||
'garage_next_km' => 'Kilométrage prévu',
|
||
'garage_part_name' => 'Nom de la pièce',
|
||
'garage_category' => 'Catégorie',
|
||
'garage_reference' => 'Référence',
|
||
'garage_unit_price' => 'Prix unitaire (€)',
|
||
'garage_quantity' => 'Quantité',
|
||
'garage_unit' => 'Unité',
|
||
'garage_supplier' => 'Fournisseur',
|
||
'garage_change_photo' => 'Changer la photo',
|
||
'garage_new_photo' => 'Nouvelle photo',
|
||
'garage_update_photo' => 'Mettre à jour',
|
||
];
|