doublon lang
Deploy HouseHub / deploy (push) Successful in 2s

This commit is contained in:
FeFeClochette committed 2026-09-10 10:00:21 +02:00
1 parent 094a5b2b91
commit 3c615e3021
3 files changed
+733 -1188

No files matched your search

+251 -406
View File
@@ -1,28 +1,23 @@
<?php <?php
// Dictionnaire Catalan // Dictionnaire Catalan - HouseHub
return [ return [
// ========================================== // ==========================================
// TEST AUTO // 1. GLOBAL, NAVIGATION & ACTIONS
// ==========================================
'test_running' => 'Proves en curs...',
'test_passed' => 'Prova superada',
'test_failed' => 'Prova fallida',
'tests_title' => 'Laboratori de Proves',
'tests_run_budget' => 'Provar el Pressupost',
'tests_run_all' => 'Iniciar totes les proves',
'tests_copy_report' => 'Copiar l\'informe',
'tests_waiting' => 'Esperant l\'inici...',
'tests_report_copied' => 'Informe copiat al porta-retalls!',
'tests_live_preview' => 'Previsualització en viu',
// ==========================================
// GLOBAL & NAVIGATION
// ========================================== // ==========================================
'menu_home' => 'Inici', 'menu_home' => 'Inici',
'menu_calendar' => 'Calendari', 'menu_calendar' => 'Calendari',
'menu_budget' => 'Pressupost', 'menu_budget' => 'Pressupost',
'menu_holidays' => 'Viatges', 'menu_holidays' => 'Viatges',
'menu_gifts' => 'Regals', 'menu_gifts' => 'Regals',
'menu_garage' => 'Garatge',
'menu_memo' => 'Notes',
'menu_todo' => 'Todo',
'menu_liste' => 'Llistes',
'menu_groceries' => 'Compra',
'menu_calendar_ios' => 'Calendari iOS', 'menu_calendar_ios' => 'Calendari iOS',
'menu_printvault' => 'PrintVault',
'menu_planka' => 'Planka',
'nav_home' => 'Inici', 'nav_home' => 'Inici',
'nav_calendar' => 'Calendari', 'nav_calendar' => 'Calendari',
'nav_budget' => 'Pressupost', 'nav_budget' => 'Pressupost',
@@ -30,7 +25,6 @@ return [
'nav_gifts' => 'Regals', 'nav_gifts' => 'Regals',
'aria_menu' => 'Menú mòbil', 'aria_menu' => 'Menú mòbil',
// Boutons et actions globales
'actions' => 'Accions', 'actions' => 'Accions',
'edit' => 'Modificar', 'edit' => 'Modificar',
'delete' => 'Suprimir', 'delete' => 'Suprimir',
@@ -40,28 +34,33 @@ return [
'btn_cancel' => 'Cancel·lar', 'btn_cancel' => 'Cancel·lar',
'btn_delete' => 'Eliminar', 'btn_delete' => 'Eliminar',
'btn_close' => 'Tancar', 'btn_close' => 'Tancar',
'btn_add' => 'Afegir',
'btn_back' => '◀ Tornar', 'btn_back' => '◀ Tornar',
'btn_edit_bases' => '⚙️ Modificar les bases', 'btn_edit_bases' => '⚙️ Modificar les bases',
'btn_edit' => 'Modificar', 'btn_edit' => 'Modificar',
'error_occured' => 'S\'ha produït un error.',
// Mots génériques & Erreurs
'error' => 'Error.', 'error' => 'Error.',
'error_occured' => 'S\'ha produït un error.',
'error_network' => 'Error de xarxa',
'error_generic' => 'S\'ha produït un error',
'confirm_delete' => 'Estàs segur que vols suprimir aquest element?', 'confirm_delete' => 'Estàs segur que vols suprimir aquest element?',
'loading' => 'Carregant...',
'date' => 'Data',
'settings' => 'Configuració',
// Mois & Jours // Mesos & Dies
'month_01' => 'Gener', 'month_02' => 'Febrer', 'month_03' => 'Març', 'month_01' => 'Gener', 'month_02' => 'Febrer', 'month_03' => 'Març', 'month_04' => 'Abril', 'month_05' => 'Maig', 'month_06' => 'Juny',
'month_04' => 'Abril', 'month_05' => 'Maig', 'month_06' => 'Juny', 'month_07' => 'Juliol','month_08' => 'Agost', 'month_09' => 'Setembre', 'month_10' => 'Octubre','month_11' => 'Novembre','month_12' => 'Desembre',
'month_07' => 'Juliol','month_08' => 'Agost', 'month_09' => 'Setembre', 'month_jan' => 'Gener', 'month_feb' => 'Febrer', 'month_mar' => 'Març', 'month_apr' => 'Abril', 'month_may' => 'Maig', 'month_jun' => 'Juny',
'month_10' => 'Octubre','month_11' => 'Novembre','month_12' => 'Desembre', 'month_jul' => 'Juliol', 'month_aug' => 'Agost', 'month_sep' => 'Setembre', 'month_oct' => 'Octubre', 'month_nov' => 'Novembre', 'month_dec' => 'Desembre',
'day_mon' => 'Dl', 'day_tue' => 'Dt', 'day_wed' => 'Dc', 'day_mon' => 'Dl', 'day_tue' => 'Dt', 'day_wed' => 'Dc', 'day_thu' => 'Dj', 'day_fri' => 'Dv', 'day_sat' => 'Ds', 'day_sun' => 'Dg',
'day_thu' => 'Dj', 'day_fri' => 'Dv', 'day_sat' => 'Ds', 'day_sun' => 'Dg',
// ========================================== // ==========================================
// AUTHENTIFICATION / LOGIN // 2. AUTHENTICATION / LOGIN
// ========================================== // ==========================================
'login_title' => 'Connexió - HouseHub', 'login_title' => 'Connexió - HouseHub',
'login_header' => 'Connexió', 'login_header' => 'Connexió',
'login_subtitle' => 'Si us plau, identifiqueu-vos per continuar',
'label_username' => "Nom d'usuari", 'label_username' => "Nom d'usuari",
'label_password' => 'Contrasenya', 'label_password' => 'Contrasenya',
'placeholder_username' => 'ex: pacha', 'placeholder_username' => 'ex: pacha',
@@ -69,19 +68,19 @@ return [
'btn_login_submit' => 'Connectar-se', 'btn_login_submit' => 'Connectar-se',
'logout' => 'Tancar sessió', 'logout' => 'Tancar sessió',
'btn_logout' => 'Tancar sessió', 'btn_logout' => 'Tancar sessió',
'login_remember_me' => "Recorda'm",
'error_missing_fields' => 'Camps obligatoris.', 'error_missing_fields' => 'Camps obligatoris.',
'error_invalid_credentials' => 'Identificadors incorrectes.', 'error_invalid_credentials' => 'Identificadors incorrectes.',
'login_subtitle' => 'Si us plau, identifiqueu-vos per continuar',
'login_remember_me' => "Recorda'm",
// ========================================== // ==========================================
// ACCUEIL / INDEX // 3. HOME & DASHBOARD
// ========================================== // ==========================================
'home_title' => 'HouseHub - Inici', 'home_title' => 'HouseHub - Inici',
'home_welcome' => 'Benvinguts a HouseHub', 'home_welcome' => 'Benvinguts a HouseHub',
'home_subtitle' => "Centre de control de l'organització familiar.", 'home_subtitle' => "Centre de control de l'organització familiar.",
'home_logged_as' => 'Connectat com a', 'home_logged_as' => 'Connectat com a',
'home_modules_title' => 'Mòduls', 'home_modules_title' => 'Mòduls',
'mod_calendar_name' => 'Calendari Familiar', 'mod_calendar_name' => 'Calendari Familiar',
'mod_calendar_desc' => "Gestioneu les vacances, les modalitats de cura i l'organització setmanal.", 'mod_calendar_desc' => "Gestioneu les vacances, les modalitats de cura i l'organització setmanal.",
'mod_holidays_name' => 'Vacances', 'mod_holidays_name' => 'Vacances',
@@ -94,52 +93,19 @@ return [
'mod_garage_desc' => 'Seguiu el manteniment dels vostres vehicles, les peces i els costos.', 'mod_garage_desc' => 'Seguiu el manteniment dels vostres vehicles, les peces i els costos.',
'mod_memo_name' => 'Notes', 'mod_memo_name' => 'Notes',
'mod_memo_desc' => 'Els vostres memos, receptes, instruccions i informació diversa amb Markdown.', 'mod_memo_desc' => 'Els vostres memos, receptes, instruccions i informació diversa amb Markdown.',
'menu_memo' => 'Notes',
'mod_todo_name' => 'Todo', 'mod_todo_name' => 'Todo',
'mod_todo_desc' => 'Gestioneu les vostres tasques, llistes de la compra i recordatoris familiars.', 'mod_todo_desc' => 'Gestioneu les vostres tasques, llistes de la compra i recordatoris familiars.',
'mod_calendar_ios_name' => 'Calendari iOS', 'mod_liste_name' => 'Llistes',
'mod_calendar_ios_desc' => 'Sincronitzeu els esdeveniments de HouseHub amb el calendari de l\'iPhone (iCloud CalDAV).', 'mod_liste_desc' => 'Llistes compartides — compres, bricolatge, farmàcia… Tantes llistes com convingui.',
'menu_todo' => 'Todo',
'mod_groceries_name' => 'Compra', 'mod_groceries_name' => 'Compra',
'mod_groceries_desc' => 'Llista compartida: afegiu productes i marqueu-los quan siguin al carretó.', 'mod_groceries_desc' => 'Llista compartida: afegiu productes i marqueu-los quan siguin al carretó.',
'menu_groceries' => 'Compra', 'mod_calendar_ios_name' => 'Calendari iOS',
'groceries_placeholder_add' => 'Ex : llet, pa, tomàquets…', 'mod_calendar_ios_desc' => 'Sincronitzeu els esdeveniments de HouseHub amb el calendari de l\'iPhone (iCloud CalDAV).',
'groceries_btn_add' => 'Afegir', 'mod_printvault_name'=> 'PrintVault',
'groceries_btn_uncheck_all' => 'Tornar a marcar com a pendents', 'mod_printvault_desc'=> 'Gestioneu els vostres fitxers d\'impressió 3D — STL, 3MF, GCode.',
'groceries_btn_delete_picked' => 'Eliminar els marcats', 'mod_planka_name' => 'Planka',
'groceries_subtitle' => '{pending} pendents · {cart} al carretó', 'mod_planka_desc' => 'Gestioneu els vostres projectes en mode Kanban amb Planka.',
'groceries_added' => 'Afegit',
'groceries_updated' => 'Actualitzat',
'groceries_deleted' => 'Eliminat',
'groceries_reset_next' => 'Llista llesta per a la propera compra',
'groceries_picked_removed' => 'Articles eliminats',
'groceries_label_empty' => 'El text no pot ser buit',
'groceries_confirm_del_title' => 'Eliminar?',
'groceries_confirm_del_body' => 'Voleu treure aquest producte de la llista?',
'groceries_confirm_uncheck_title' => 'Tornar a marcar com a pendents',
'groceries_confirm_uncheck_body' => 'Es netejaran les marques del carretó. Els productes es mantindran a la llista.',
'groceries_confirm_clear_title' => 'Eliminar els marcats',
'groceries_confirm_clear_body' => 'Tots els articles marcats se suprimiran de la llista.',
'groceries_empty' => 'Encara no hi ha res. Afegiu un producte a dalt.',
'groceries_aria_toggle' => 'Marcar com al carretó o pendent',
'groceries_section_pending' => 'Pendents',
'groceries_section_cart' => 'Al carretó',
'groceries_prompt_edit' => 'Editar el producte',
'groceries_btn_clear_list' => 'Buidar la llista',
'groceries_confirm_empty_list_title' => 'Buidar tota la llista?',
'groceries_confirm_empty_list_body' => 'Es trauran tots els productes. Romandran a l’historial per tornar-los a afegir ràpidament.',
'groceries_list_cleared' => 'Llista buidada',
'groceries_history_title' => 'Historial — un clic per afegir',
'groceries_history_empty' => 'L’historial es va omplint amb els productes que afegiu (fins al límit definit als paràmetres).',
'groceries_history_meta' => 'Fins a {max} productes · ',
'groceries_settings_link' => 'Paràmetres',
'groceries_settings_title' => 'Compra — historial',
'groceries_settings_intro' => 'Nombre màxim de productes recordats a l’historial (sense duplicats, sense distingir majúscules).',
'groceries_settings_history_max' => 'Mida de l’historial',
'groceries_settings_history_hint' => 'Entre 1 i 50. Les entrades més antigues se suprimeixen quan es supera el límit.',
'groceries_settings_saved' => 'Preferències de la compra desades.',
'groceries_settings_error' => 'No s’ha pogut desar:',
'groceries_err_duplicate' => 'Aquest producte ja és a la llista.',
'cta_open' => 'Obrir', 'cta_open' => 'Obrir',
'cta_explore' => 'Explorar', 'cta_explore' => 'Explorar',
'cta_view_lists' => 'Desembolicar', 'cta_view_lists' => 'Desembolicar',
@@ -149,79 +115,11 @@ return [
'cta_check' => 'Marcar', 'cta_check' => 'Marcar',
'cta_cart' => 'Anar a comprar', 'cta_cart' => 'Anar a comprar',
'cta_sync' => 'Sincronitzar', 'cta_sync' => 'Sincronitzar',
'mod_printvault_name' => 'PrintVault',
'mod_printvault_desc' => 'Gestioneu els vostres fitxers d\'impressió 3D — STL, 3MF, GCode.',
'menu_printvault' => 'PrintVault',
'cta_print' => 'Imprimir', 'cta_print' => 'Imprimir',
'mod_planka_name' => 'Planka',
'mod_planka_desc' => 'Gestioneu els vostres projectes en mode Kanban amb Planka.',
'menu_planka' => 'Planka',
// --- SETTINGS : ENFANTS --- // ==========================================
'set_kids_title' => 'Nens de la llar', // 4. SETTINGS
'set_kids_desc' => 'Gestioneu la llista de nens per associar-los a l\'estalvi, als regals, etc.', // ==========================================
'set_add_kid_placeholder' => 'Nom del nen',
'set_btn_add_kid' => 'Afegir',
'set_err_kid_name' => 'El nom és obligatori.',
'set_confirm_del_kid' => 'Vols eliminar aquest nen? (El seu historial financer es conservarà als arxius).',
'set_no_kids' => 'Cap nen configurat per a aquesta llar.',
'set_family_config' => 'Configuració de la llar',
'set_global_params' => 'Paràmetres globals',
'set_care_modes' => 'Modalitats de cura habituals',
'set_add_care_mode' => 'Afegir una modalitat',
'btn_save' => 'Desar',
'settings_profile_added' => 'Perfil de %s afegit amb èxit.',
'settings_err_name_required' => 'El nom és obligatori.',
'settings_attached_profiles_title' => 'Perfils adjunts',
'settings_attached_profiles_desc' => 'Membres de la llar (Nens, mainaderes, familiars) sense accés directe.',
'settings_no_attached_profiles' => 'Cap perfil adjunt.',
'label_firstname' => 'Nom',
'placeholder_firstname_ex' => 'Ex: Pol, Carole...',
'label_role' => 'Rol',
'role_child_icon' => '👶 Nen/a',
'role_helper_icon' => '💼 Ajudant',
'role_relative_icon' => '👵 Familiar',
'role_unknown' => 'Desconegut',
'label_color' => 'Color',
'confirm_delete_profile' => 'Voleu eliminar definitivament aquest perfil?',
'change_color' => 'Canviar el color',
'color_updated' => 'Color actualitzat!',
'set_success_color_profile' => 'Color del perfil actualitzat.',
'set_success_color_update' => 'Color actualitzat!',
'set_desc_profile_color' => 'Aquest color s\'utilitzarà per a les teves graelles de pressupost, calendaris i indicadors personals.',
'placeholder_apple_id' => 'nom@icloud.com',
'placeholder_apple_pwd' => 'xxxx-xxxx-xxxx-xxxx',
// --- SETTINGS ---
'error_csrf' => 'Sessió invàlida (CSRF). Si us plau, recarrega la pàgina.',
'set_err_min_module' => 'Has de mantenir almenys un mòdul actiu.',
'set_success_modules' => 'Mòduls actualitzats amb èxit.',
'set_success_lang' => 'Idioma actualitzat.',
'set_err_empty_name' => 'El nom no pot estar buit.',
'set_success_profile' => 'Perfil actualitzat amb èxit.',
'set_err_wrong_pwd' => 'Contrasenya actual incorrecta.',
'set_err_pwd_length' => 'La nova contrasenya ha de tenir almenys 6 caràcters.',
'set_err_pwd_match' => 'Les contrasenyes no coincideixen.',
'set_success_pwd' => 'Contrasenya canviada amb èxit.',
'set_success_family' => 'Nom de l\'espai actualitzat.',
'set_success_invite' => 'Nou codi d\'invitació generat.',
'set_err_bg_format' => 'Format no compatible (jpg, png, webp).',
'set_success_bg' => 'Imatge d\'inici actualitzada.',
'set_err_upload' => 'Error durant la càrrega.',
'set_success_bg_reset' => 'Imatge d\'inici restablerta.',
'set_err_db_unavailable' => 'Base de dades familiar no disponible.',
'set_err_ios_missing' => 'Si us plau, proporciona un ID d\'iCloud, contrasenya d\'aplicació i URL CalDAV.',
'set_success_ios' => 'Connexió de calendari iOS desada.',
'set_success_ios_auto' => ' URL del calendari detectada automàticament.',
'set_err_ios_save' => 'No es pot desar la connexió iOS: ',
'set_err_ios_none' => 'Cap connexió iOS configurada.',
'set_success_ios_test' => 'Connexió iCloud CalDAV vàlida (HTTP %s).',
'set_err_ios_test' => 'La prova de connexió ha fallat (HTTP %s). Revisa les teves credencials.',
'set_err_ios_test_fail' => 'Prova de connexió no disponible: ',
'set_success_ios_del' => 'Connexió iOS eliminada.',
'set_success_profile_add' => 'Perfil de %s afegit amb èxit.',
'set_err_name_required' => 'El nom és obligatori.',
'set_success_profile_del' => 'Perfil suprimit.',
'set_title_page' => '⚙️ Configuració', 'set_title_page' => '⚙️ Configuració',
'set_title_lang' => '🌐 Idioma', 'set_title_lang' => '🌐 Idioma',
'set_title_modules' => '🧩 Mòduls Actius', 'set_title_modules' => '🧩 Mòduls Actius',
@@ -260,22 +158,80 @@ return [
'set_title_members' => 'Membres', 'set_title_members' => 'Membres',
'set_badge_admin' => 'Admin', 'set_badge_admin' => 'Admin',
'set_title_attached' => '🧸 Perfils Adjunts', 'set_title_attached' => '🧸 Perfils Adjunts',
'set_desc_attached' => 'Membres gestionats per la llar (Nens, Mainaderes, Familiars) sense accés directe.', 'set_desc_attached' => 'Membres gestionats per la llar sense accés directe.',
'role_unknown' => 'Desconegut',
'role_child' => '👶 Nen/a',
'role_helper' => '💼 Ajudant',
'role_relative' => '👵 Familiar',
'set_confirm_del_profile' => 'Eliminar definitivament aquest perfil?',
'set_empty_attached' => 'Cap perfil adjunt.', 'set_empty_attached' => 'Cap perfil adjunt.',
'set_label_firstname' => 'Nom',
'set_label_role' => 'Rol',
'set_label_color' => 'Color',
'set_link_admin' => '→ Tauler d\'Administració', 'set_link_admin' => '→ Tauler d\'Administració',
'set_kids_title' => 'Nens de la llar',
'set_kids_desc' => 'Gestioneu la llista de nens per associar-los a l\'estalvi, als regals, etc.',
'set_add_kid_placeholder' => 'Nom del nen',
'set_btn_add_kid' => 'Afegir',
'set_err_kid_name' => 'El nom és obligatori.',
'set_confirm_del_kid' => 'Vols eliminar aquest nen? (El seu historial financer es conservarà als arxius).',
'set_no_kids' => 'Cap nen configurat per a aquesta llar.',
'set_family_config' => 'Configuració de la llar',
'set_global_params' => 'Paràmetres globals',
'set_care_modes' => 'Modalitats de cura habituals',
'set_add_care_mode' => 'Afegir una modalitat',
// Labels Profiles
'label_firstname' => 'Nom',
'placeholder_firstname_ex' => 'Ex: Pol, Carole...',
'label_role' => 'Rol',
'role_child' => '👶 Nen/a',
'role_child_icon' => '👶 Nen/a',
'role_helper' => '💼 Ajudant',
'role_helper_icon' => '💼 Ajudant',
'role_relative' => '👵 Familiar',
'role_relative_icon' => '👵 Familiar',
'role_unknown' => 'Desconegut',
'label_color' => 'Color',
'change_color' => 'Canviar el color',
'confirm_delete_profile' => 'Voleu eliminar definitivament aquest perfil?',
// Settings Messages
'error_csrf' => 'Sessió invàlida (CSRF). Si us plau, recarrega la pàgina.',
'set_err_min_module' => 'Has de mantenir almenys un mòdul actiu.',
'set_success_modules' => 'Mòduls actualitzats amb èxit.',
'set_success_lang' => 'Idioma actualitzat.',
'set_err_empty_name' => 'El nom no pot estar buit.',
'set_success_profile' => 'Perfil actualitzat amb èxit.',
'set_err_wrong_pwd' => 'Contrasenya actual incorrecta.',
'set_err_pwd_length' => 'La nova contrasenya ha de tenir almenys 6 caràcters.',
'set_err_pwd_match' => 'Les contrasenyes no coincideixen.',
'set_success_pwd' => 'Contrasenya canviada amb èxit.',
'set_success_family' => 'Nom de l\'espai actualitzat.',
'set_success_invite' => 'Nou codi d\'invitació generat.',
'set_err_bg_format' => 'Format no compatible (jpg, png, webp).',
'set_success_bg' => 'Imatge d\'inici actualitzada.',
'set_err_upload' => 'Error durant la càrrega.',
'set_success_bg_reset' => 'Imatge d\'inici restablerta.',
'set_err_db_unavailable' => 'Base de dades familiar no disponible.',
'set_err_ios_missing' => 'Si us plau, proporciona un ID d\'iCloud, contrasenya d\'aplicació i URL CalDAV.',
'set_success_ios' => 'Connexió de calendari iOS desada.',
'set_success_ios_auto' => ' URL del calendari detectada automàticament.',
'set_err_ios_save' => 'No es pot desar la connexió iOS: ',
'set_err_ios_none' => 'Cap connexió iOS configurada.',
'set_success_ios_test' => 'Connexió iCloud CalDAV vàlida (HTTP %s).',
'set_err_ios_test' => 'La prova de connexió ha fallat (HTTP %s). Revisa les teves credencials.',
'set_err_ios_test_fail' => 'Prova de connexió no disponible: ',
'set_success_ios_del' => 'Connexió iOS eliminada.',
'set_success_profile_add' => 'Perfil de %s afegit amb èxit.',
'set_err_name_required' => 'El nom és obligatori.',
'set_success_profile_del' => 'Perfil suprimit.',
'set_success_color' => 'Color actualitzat!', 'set_success_color' => 'Color actualitzat!',
'error_network' => 'Error de xarxa', 'set_success_color_profile' => 'Color del perfil actualitzat.',
'set_success_color_update' => 'Color actualitzat!',
'color_updated' => 'Color actualitzat!',
'settings_profile_added' => 'Perfil de %s afegit amb èxit.',
'settings_err_name_required' => 'El nom és obligatori.',
'settings_attached_profiles_title' => 'Perfils adjunts',
'settings_attached_profiles_desc' => 'Membres de la llar sense accés directe.',
'settings_no_attached_profiles' => 'Cap perfil adjunt.',
'placeholder_apple_id' => 'nom@icloud.com',
'placeholder_apple_pwd' => 'xxxx-xxxx-xxxx-xxxx',
// ========================================== // ==========================================
// FAMILY CALENDAR // 5. FAMILY CALENDAR
// ========================================== // ==========================================
'fc_page_title' => 'HouseHub - Calendari', 'fc_page_title' => 'HouseHub - Calendari',
'fc_main_header' => 'Calendari Familiar', 'fc_main_header' => 'Calendari Familiar',
@@ -316,9 +272,7 @@ return [
'fc_err_fetch_gov' => 'Error en la connexió amb l\'API governamental.', 'fc_err_fetch_gov' => 'Error en la connexió amb l\'API governamental.',
'fc_err_no_data_gov' => 'No s\'han trobat dades a l\'API del govern per a aquest any.', 'fc_err_no_data_gov' => 'No s\'han trobat dades a l\'API del govern per a aquest any.',
'fc_err_action' => 'Error en l\'acció: ', 'fc_err_action' => 'Error en l\'acció: ',
'fc_err_select_leave' => "Si us plau, selecciona un tipus de permís.", 'fc_err_select_leave' => 'Si us plau, selecciona un tipus de permís.',
'fc_confirm_del_catalog' => "Voleu eliminar definitivament el permís %s del catàleg? Això també el retirarà dels membres que l'utilitzen.",
'fc_confirm_del_member_leave' => "Estàs segur que vols retirar aquest permís per a aquest membre?",
'fc_today_short' => 'Avui', 'fc_today_short' => 'Avui',
'fc_today_title' => 'Anar a avui', 'fc_today_title' => 'Anar a avui',
'fc_tab_foyer' => '🏡 Llar', 'fc_tab_foyer' => '🏡 Llar',
@@ -326,24 +280,31 @@ return [
'fc_select_member' => 'Selecciona un membre de la família:', 'fc_select_member' => 'Selecciona un membre de la família:',
'fc_role_adult' => 'Adult', 'fc_role_adult' => 'Adult',
'fc_role_child' => 'Nen', 'fc_role_child' => 'Nen',
'fc_care_modes_title' => '👶 Modes de cura associats', 'fc_role_helper' => 'Ajudant',
'fc_care_modes_desc' => 'Marca els modes de cura que s\'apliquen a aquest nen.', 'fc_role_unknown' => 'Desconegut',
'fc_no_care_mode' => 'Cap mode configurat.', 'fc_care_modes_title' => 'Modes de Cura Predeterminats',
'fc_matrix_title' => '👨‍👩‍👦 Matriu de Drets de Permís', 'fc_care_modes_desc' => 'Quins modes de cura s\'apliquen a aquest nen/a?',
'fc_no_care_mode' => 'No hi ha modes de cura configurats a la llar.',
'fc_matrix_title' => 'Matriu de Drets de Permís',
'fc_matrix_desc' => 'Declara els codis de comptadors i les dates de renovació.', 'fc_matrix_desc' => 'Declara els codis de comptadors i les dates de renovació.',
'fc_matrix_code' => 'Codi', 'fc_matrix_code' => 'Codi',
'fc_matrix_date' => 'Data de Reset', 'fc_matrix_date' => 'Data de Reset',
'fc_matrix_empty' => 'Cap comptador configurat.', 'fc_matrix_empty' => 'No hi ha comptadors definits.',
'fc_matrix_saved' => 'Matriu de drets actualitzada! 💼', 'fc_matrix_saved' => 'Matriu de drets actualitzada! 💼',
'fc_child_saved' => 'Subscripció del nen desada!', 'fc_child_saved' => 'Desat!',
'btn_add_counter' => '➕ Afegir', 'btn_add_counter' => '➕ Afegir',
'btn_save_rights' => '💾 Desar', 'btn_save_rights' => 'Guardar',
'fc_modal_settings_title' => 'Configuració del Calendari', 'fc_modal_settings_title' => 'Configuració del Calendari',
'fc_zone_label' => 'Zona Escolar (Vacances)', 'fc_zone_label' => 'Zona escolar',
'fc_zone_desc' => 'Determina el calendari automàtic de vacances escolars.', 'fc_zone_a' => 'Zona A',
'fc_care_modes_label' => 'Modes de Cura de la Llar', 'fc_zone_b' => 'Zona B',
'fc_care_modes_desc' => 'Gestiona la llista global de modes de cura possibles per a la família.', 'fc_zone_c' => 'Zona C',
'fc_add_mode_placeholder' => 'Ex: Mainadera, Casal, Avis...', 'fc_zone_other' => 'Altra / Fora de França',
'fc_zone_desc' => 'Permet mostrar correctament les vacances escolars.',
'fc_care_modes_label' => 'Modalitats de cura',
'fc_add_mode_placeholder' => 'Ex: Mainadera, Llar d\'infants...',
'fc_empty_kids_msg' => 'Actualment no hi ha cap infant configurat a la teva família.',
'fc_link_settings' => 'Anar a la configuració general',
'fc_settings_updated' => 'Configuració actualitzada correctament!', 'fc_settings_updated' => 'Configuració actualitzada correctament!',
'fc_first_day' => 'Primer dia de la setmana', 'fc_first_day' => 'Primer dia de la setmana',
'fc_helper_recap' => 'Resum Interventor', 'fc_helper_recap' => 'Resum Interventor',
@@ -354,56 +315,32 @@ return [
'fc_full_year' => 'Any sencer', 'fc_full_year' => 'Any sencer',
'fc_custom_period' => 'Període específic...', 'fc_custom_period' => 'Període específic...',
'fc_worked_days' => 'Treballats (Est.)', 'fc_worked_days' => 'Treballats (Est.)',
'fc_presence' => 'Presència',
'fc_working_days' => 'Feiners',
'fc_absences' => 'Abs.',
'fc_recap_title' => 'Resum',
'fc_worked_est' => 'Treballats (Est.)',
'fc_invalid_dates' => 'Selecciona dates vàlides.',
'fc_no_leaves_taken' => 'Cap permís sol·licitat.',
// --- CALENDARI : PARÀMETRES (MEMBRES I VISUALITZACIÓ) ---
'fc_tab_display' => '🖥️ Visualització', 'fc_tab_display' => '🖥️ Visualització',
'fc_display_title' => 'Ajustos de visualització', 'fc_display_title' => 'Ajustos de visualització',
'fc_display_desc' => 'Personalitza l\'aparença i el comportament predeterminat del teu calendari.', 'fc_display_desc' => 'Personalitza l\'aparença i el comportament predeterminat del teu calendari.',
'fc_default_view' => 'Vista per defecte', 'fc_default_view' => 'Vista per defecte',
'fc_view_month' => '1 mes',
'fc_view_2months' => '2 mesos',
'fc_view_3months' => '3 mesos',
'fc_working_hours' => 'Horari de cura (Per defecte)', 'fc_working_hours' => 'Horari de cura (Per defecte)',
'fc_working_hours_desc' => 'Exemple: 08:30-18:00', 'fc_working_hours_desc' => 'Exemple: 08:30-18:00',
'fc_role_unknown' => 'Desconegut',
'fc_role_adult' => 'Adult',
'fc_role_child' => 'Nen/a',
'fc_role_helper' => 'Ajudant',
'fc_error' => 'Error: ', 'fc_error' => 'Error: ',
'fc_leave_catalog_title' => 'Catàleg de permisos',
'fc_care_modes_title' => 'Modes de Cura Predeterminats', 'fc_leave_catalog_desc' => 'Defineix els tipus de permisos possibles per a tota la família.',
'fc_care_modes_desc' => 'Quins modes de cura s\'apliquen a aquest nen/a?', 'fc_add_leave_type' => 'Afegir un tipus de permís',
'fc_no_care_mode' => 'No hi ha modes de cura configurats a la llar.', 'fc_col_code' => 'Codi',
'fc_child_saved' => 'Desat!', 'fc_code_irreversible' => 'Irreversible',
'fc_col_label' => 'Etiqueta',
'fc_matrix_title' => 'Matriu de Permisos', 'fc_leave_label_ph' => 'Ex: Vacances, Assumptes propis...',
'fc_matrix_desc' => 'Defineix les quotes i dates de renovació.', 'fc_quota_default' => 'Quota per defecte',
'fc_matrix_empty' => 'No hi ha comptadors definits.', 'fc_reset_month' => 'Mes de renovació',
'fc_matrix_saved' => 'Matriu desada!',
'fc_leave_obsolete' => 'Obsolet', 'fc_leave_obsolete' => 'Obsolet',
'fc_leave_code_placeholder' => 'Codi...', 'fc_leave_code_placeholder' => 'Codi...',
'fc_leave_method_fixed' => 'Fix', 'fc_leave_method_fixed' => 'Fix',
'fc_leave_method_accumulated'=> 'Acumulat', 'fc_leave_method_accumulated'=> 'Acumulat',
'fc_date_format_placeholder'=> 'DD/MM', 'fc_date_format_placeholder'=> 'DD/MM',
'fc_date_format_title' => 'Format DD/MM', 'fc_date_format_title' => 'Format DD/MM',
'fc_table_code' => 'Codi', 'fc_table_code' => 'Codi',
'fc_table_method' => 'Mètode', 'fc_table_method' => 'Mètode',
'fc_table_quota' => 'Quota', 'fc_table_quota' => 'Quota',
'fc_table_renewal' => 'Renov.', 'fc_table_renewal' => 'Renov.',
'btn_save_rights' => 'Guardar',
'fc_label_carry_over' => 'Inclou dies reportats (Caducables) ⚠️', 'fc_label_carry_over' => 'Inclou dies reportats (Caducables) ⚠️',
'fc_carry_over_note' => 'Part del saldo global que caducarà a la data límit.', 'fc_carry_over_note' => 'Part del saldo global que caducarà a la data límit.',
'fc_carry_max' => 'Màx Reportable', 'fc_carry_max' => 'Màx Reportable',
@@ -418,57 +355,10 @@ return [
'fc_catalog_updated' => 'Catàleg actualitzat!', 'fc_catalog_updated' => 'Catàleg actualitzat!',
'fc_balance_corrected' => 'Saldo corregit!', 'fc_balance_corrected' => 'Saldo corregit!',
'fc_no_leave_configured' => 'Cap permís configurat.', 'fc_no_leave_configured' => 'Cap permís configurat.',
'fc_confirm_del_catalog' => 'Voleu eliminar definitivament el permís %s del catàleg? Això també el retirarà dels membres que l\'utilitzen.',
'fc_confirm_del_member_leave'=> 'Estàs segur que vols retirar aquest permís per a aquest membre?',
// ========================================== // Llegendes
// MODAL DE CONFIGURACIÓ DEL CALENDARI
// ==========================================
'fc_modal_settings_title' => 'Configuració del calendari',
'fc_tab_foyer' => 'Llar',
'fc_tab_members' => 'Membres i Drets',
// Llar: Zona escolar
'fc_zone_label' => 'Zona escolar',
'fc_zone_a' => 'Zona A',
'fc_zone_b' => 'Zona B',
'fc_zone_c' => 'Zona C',
'fc_zone_other' => 'Altra / Fora de França',
'fc_zone_desc' => 'Permet mostrar correctament les vacances escolars.',
// Llar: Opcions de cura (Modes de garde)
'fc_care_modes_label' => 'Modalitats de cura',
'fc_add_mode_placeholder' => 'Ex: Mainadera, Llar d\'infants...',
'fc_care_modes_desc' => 'Afegeix les diferents modalitats de cura per als teus fills.',
'fc_empty_kids_msg' => 'Actualment no hi ha cap infant configurat a la teva família.',
'fc_link_settings' => 'Anar a la configuració general',
// Llar: Catàleg de permisos (Congés)
'fc_leave_catalog_title' => 'Catàleg de permisos',
'fc_leave_catalog_desc' => 'Defineix els tipus de permisos possibles per a tota la família.',
'fc_add_leave_type' => 'Afegir un tipus de permís',
'fc_col_code' => 'Codi',
'fc_code_irreversible' => 'Irreversible',
'fc_col_label' => 'Etiqueta',
'fc_leave_label_ph' => 'Ex: Vacances, Assumptes propis...',
'fc_quota_default' => 'Quota per defecte',
'fc_reset_month' => 'Mes de renovació',
// Membres
'fc_select_member' => 'Selecciona un membre:',
// Mesos
'month_jan' => 'Gener',
'month_feb' => 'Febrer',
'month_mar' => 'Març',
'month_apr' => 'Abril',
'month_may' => 'Maig',
'month_jun' => 'Juny',
'month_jul' => 'Juliol',
'month_aug' => 'Agost',
'month_sep' => 'Setembre',
'month_oct' => 'Octubre',
'month_nov' => 'Novembre',
'month_dec' => 'Desembre',
'leg_presence' => 'Presència Pep', 'leg_presence' => 'Presència Pep',
'leg_school_holidays' => 'Vacances Escolars', 'leg_school_holidays' => 'Vacances Escolars',
'leg_public_holiday' => 'Festiu', 'leg_public_holiday' => 'Festiu',
@@ -480,7 +370,6 @@ return [
'care_nounou' => 'Kangur', 'care_nounou' => 'Kangur',
'care_centre' => 'Casal', 'care_centre' => 'Casal',
'care_avis' => 'Avis', 'care_avis' => 'Avis',
'vac_toussaint' => 'Vacances de Tots Sants', 'vac_toussaint' => 'Vacances de Tots Sants',
'vac_noel' => 'Vacances de Nadal', 'vac_noel' => 'Vacances de Nadal',
'vac_hiver' => "Vacances d'Hivern", 'vac_hiver' => "Vacances d'Hivern",
@@ -489,12 +378,11 @@ return [
'vac_ete' => "Vacances d'Estiu", 'vac_ete' => "Vacances d'Estiu",
'btn_off' => 'Off', 'btn_off' => 'Off',
'btn_extra' => 'Extra', 'btn_extra' => 'Extra',
'fc_alert_burn_days' => '⚠️ Risc de pèrdua : %s d a gastar abans del final del cicle',
'fc_alert_burn_days' => '⚠️ Risc de pèrdua : %s d a gastar abans del %s',
'fc_alert_burn_jra' => '⚠️ JRA: Només 2d es poden reportar després de febrer!', 'fc_alert_burn_jra' => '⚠️ JRA: Només 2d es poden reportar després de febrer!',
// ========================================== // ==========================================
// HOLIDAYS (VOYAGES) // 6. HOLIDAYS (VOYAGES)
// ========================================== // ==========================================
'hdl_title_list' => 'HouseHub - Les meves vacances', 'hdl_title_list' => 'HouseHub - Les meves vacances',
'hdl_title_detail' => 'HouseHub - Detall del viatge', 'hdl_title_detail' => 'HouseHub - Detall del viatge',
@@ -569,9 +457,6 @@ return [
'hdl_to_place' => 'Per situar', 'hdl_to_place' => 'Per situar',
'hdl_from' => 'Des del', 'hdl_from' => 'Des del',
'hdl_to' => 'Fins al', 'hdl_to' => 'Fins al',
'hdl_btn_add_step' => 'Afegir una etapa',
'hdl_quick_edit_title' => 'Modificació ràpida',
'hdl_paid' => 'Pagat',
'weather_forecast' => 'Previsions meteorològiques', 'weather_forecast' => 'Previsions meteorològiques',
'weather_not_available' => 'Temps no disponible', 'weather_not_available' => 'Temps no disponible',
'temp_max' => 'Temp. Màxima', 'temp_max' => 'Temp. Màxima',
@@ -586,7 +471,7 @@ return [
'hdl_default_exp_name' => 'Despesa', 'hdl_default_exp_name' => 'Despesa',
'hdl_select_beneficiary' => '-- Seleccionar --', 'hdl_select_beneficiary' => '-- Seleccionar --',
// Anciennes clés Holidays non préfixées (conservades) // Anciennes clés (conservades)
'outbound_trip' => 'Anada', 'outbound_trip' => 'Anada',
'return_trip' => 'Tornada', 'return_trip' => 'Tornada',
'period' => 'Període', 'period' => 'Període',
@@ -639,7 +524,7 @@ return [
'to_place' => '📥 A col·locar', 'to_place' => '📥 A col·locar',
// ========================================== // ==========================================
// BUDGET (GLOBAL & CATEGORIES) // 7. BUDGET (GLOBAL, SUIVI, PREV, EPARGNE, PROVISIONS)
// ========================================== // ==========================================
'budget_page_title' => 'HouseHub - Pressupost', 'budget_page_title' => 'HouseHub - Pressupost',
'budget_main_header' => 'Gestió del Pressupost', 'budget_main_header' => 'Gestió del Pressupost',
@@ -647,9 +532,16 @@ return [
'budget_tab_prev' => 'Pressupost 2026', 'budget_tab_prev' => 'Pressupost 2026',
'budget_tab_savings' => 'Estalvis', 'budget_tab_savings' => 'Estalvis',
'budget_tab_recap' => 'Resum', 'budget_tab_recap' => 'Resum',
'budget_tab_provisions' => 'Provisions',
'budget_tab_kids' => 'Nens',
'budget_err_file_not_found' => 'Vaja! Fitxer no trobat.', 'budget_err_file_not_found' => 'Vaja! Fitxer no trobat.',
'budget_err_file_detail' => 'Comproveu que el fitxer views/%s.php existeix.', 'budget_err_file_detail' => 'Comproveu que el fitxer views/%s.php existeix.',
'budget_err_not_authorized' => 'Pàgina no autoritzada.', 'budget_err_not_authorized' => 'Pàgina no autoritzada.',
'bud_err_tech' => 'S\'ha produït un error tècnic.',
'bud_err_server' => 'Error del servidor: ',
'bud_err_delete' => 'Error en suprimir.',
// Categories
'cat_income' => 'Ingressos', 'cat_income' => 'Ingressos',
'cat_fmcg' => 'Compres (FMCG)', 'cat_fmcg' => 'Compres (FMCG)',
'cat_fuel' => 'Benzina', 'cat_fuel' => 'Benzina',
@@ -657,12 +549,14 @@ return [
'cat_fixed' => 'Despeses Fixes', 'cat_fixed' => 'Despeses Fixes',
'cat_others' => 'Altres / Imprevistos', 'cat_others' => 'Altres / Imprevistos',
'cat_savings' => 'Estalvis', 'cat_savings' => 'Estalvis',
'budget_tab_kids' => 'Nens',
// Settings
'budget_settings_title' => 'Configuració del Pressupost', 'budget_settings_title' => 'Configuració del Pressupost',
'bs_tab_accounts' => '💳 Comptes', 'bs_tab_accounts' => '💳 Comptes',
'bs_tab_categories' => '🏷️ Categories', 'bs_tab_categories' => '🏷️ Categories',
'bs_tab_rules' => '🤖 Regles d\'importació', 'bs_tab_rules' => '🤖 Regles d\'importació',
'bs_tab_salaries' => '💼 Salaris', 'bs_tab_salaries' => '💼 Salaris',
'bs_tab_csv' => '📥 Importació CSV',
'bs_empty_accounts' => 'Cap compte configurat.', 'bs_empty_accounts' => 'Cap compte configurat.',
'bs_type_checking' => 'Corrent', 'bs_type_checking' => 'Corrent',
'bs_type_savings' => 'Estalvi', 'bs_type_savings' => 'Estalvi',
@@ -692,7 +586,8 @@ return [
'bs_currency_label' => 'Divisa de la llar', 'bs_currency_label' => 'Divisa de la llar',
'bs_currency_desc' => 'Divisa principal utilitzada per mostrar els vostres comptes i pressupostos.', 'bs_currency_desc' => 'Divisa principal utilitzada per mostrar els vostres comptes i pressupostos.',
'bs_currency_updated' => 'Divisa actualitzada correctament!', 'bs_currency_updated' => 'Divisa actualitzada correctament!',
// ONGLET CSV MAPPING
// CSV
'bs_csv_title' => 'Format de la importació CSV', 'bs_csv_title' => 'Format de la importació CSV',
'bs_csv_desc' => 'Configureu aquí les columnes que corresponen a l\'exportació del vostre banc.', 'bs_csv_desc' => 'Configureu aquí les columnes que corresponen a l\'exportació del vostre banc.',
'bs_csv_delimiter' => 'Separador', 'bs_csv_delimiter' => 'Separador',
@@ -713,7 +608,6 @@ return [
'bs_csv_col_ref' => 'Núm Col: Referència única (Opcional)', 'bs_csv_col_ref' => 'Núm Col: Referència única (Opcional)',
'btn_save_format' => 'Desar el format', 'btn_save_format' => 'Desar el format',
'bs_csv_saved' => 'Format CSV desat', 'bs_csv_saved' => 'Format CSV desat',
'bs_tab_csv' => '📥 Importació CSV',
'bs_csv_settings_title' => 'Configuració del format', 'bs_csv_settings_title' => 'Configuració del format',
'bs_csv_drop_title' => 'Arrossegueu el vostre fitxer CSV aquí', 'bs_csv_drop_title' => 'Arrossegueu el vostre fitxer CSV aquí',
'bs_csv_drop_desc' => 'o feu clic per cercar fitxers', 'bs_csv_drop_desc' => 'o feu clic per cercar fitxers',
@@ -723,7 +617,22 @@ return [
'bs_csv_empty_col' => 'Buit', 'bs_csv_empty_col' => 'Buit',
'bs_csv_no_data' => 'No s\'ha trobat cap línia de transacció en aquest fitxer.', 'bs_csv_no_data' => 'No s\'ha trobat cap línia de transacció en aquest fitxer.',
// --- BUDGET : SUIVI --- // Onboarding
'bs_onb_title' => 'Benvinguts! Configurem el teu pressupost:',
'bs_onb_desc' => 'Completa aquests passos perquè l\'aplicació pugui calcular el teu pressupost disponible:',
'bs_onb_cat_link' => 'Categories',
'bs_onb_cat_desc' => 'Crea almenys una categoria de despeses.',
'bs_onb_acc_link' => 'Comptes Bancaris',
'bs_onb_acc_desc' => 'Afegeix almenys un compte corrent o d\'estalvi.',
'bs_onb_sal_link' => 'Sous',
'bs_onb_sal_desc' => 'Introdueix els ingressos de l\'any en curs.',
'bs_onb_items_link' => 'Línies de Pressupost',
'bs_onb_items_desc' => 'Ves a la pestanya Resum per llistar les teves despeses fixes (Lloguer, Assegurances...).',
'bs_rule_search_ph' => '🔍 Cercar una paraula clau (ex: AUCHAN)...',
'error_loading_settings' => 'Error en carregar la configuració',
'bud_err_delete_system_cat' => 'Impossible de suprimir una categoria de sistema essencial.',
// Budget : Suivi
'bud_rem_school' => 'Escola (Resta estimada)', 'bud_rem_school' => 'Escola (Resta estimada)',
'bud_rem_fmcg' => 'Compres (Resta estimada)', 'bud_rem_fmcg' => 'Compres (Resta estimada)',
'bud_rem_fuel' => 'Benzina (Resta estimada)', 'bud_rem_fuel' => 'Benzina (Resta estimada)',
@@ -748,16 +657,16 @@ return [
'bud_import_csv' => 'Importar CSV', 'bud_import_csv' => 'Importar CSV',
'bud_csv_file' => 'Fitxer CSV (Punt i coma)', 'bud_csv_file' => 'Fitxer CSV (Punt i coma)',
'bud_preview' => 'Previsualitzar', 'bud_preview' => 'Previsualitzar',
'bud_validate_import' => 'Validar importació', 'bud_validate_import' => 'Si us plau, comproveu i categoritzeu les línies abans de validar.',
'bud_assign_month' => 'Assignar al mes', 'bud_assign_month' => 'Mes de gestió',
'bud_op_date' => 'Data Operació', 'bud_op_date' => 'Data',
'bud_label' => 'Concepte', 'bud_label' => 'Concepte',
'bud_amount' => 'Import', 'bud_amount' => 'Import',
'bud_category' => 'Categoria', 'bud_category' => 'Categoria',
'bud_ignore' => 'Ignorar', 'bud_ignore' => 'Ignorar (Crèdit)',
'bud_to_define' => 'Per definir', 'bud_to_define' => 'Per definir',
'bud_is_charge' => 'Despesa?', 'bud_is_charge' => 'És un càrrec fix...',
'bud_is_income' => 'Ingrés?', 'bud_is_income' => 'És un ingrés...',
'btn_import' => 'Importar', 'btn_import' => 'Importar',
'bud_no_lines' => 'Cap línia.', 'bud_no_lines' => 'Cap línia.',
'bud_confirm_delete' => 'Suprimir aquesta línia?', 'bud_confirm_delete' => 'Suprimir aquesta línia?',
@@ -776,44 +685,12 @@ return [
'bud_add_title' => 'Afegir', 'bud_add_title' => 'Afegir',
'bud_edit_title' => 'Modificar la transacció', 'bud_edit_title' => 'Modificar la transacció',
'bud_to_define_js' => 'per definir', 'bud_to_define_js' => 'per definir',
'bud_bar_actual' => "Actual",
'bud_bar_theoretical' => "Teòric",
'bud_bar_max_cap' => "Capacitat Màx.",
'bud_edit_title' => 'Modificar la transacció',
'bud_to_define_js' => 'per definir',
'bud_select_beneficiary' => 'Triar un ingrés esperat',
'bud_bar_actual' => 'Actual', 'bud_bar_actual' => 'Actual',
'bud_bar_theoretical' => 'Teòric',
'bud_bar_max_cap' => 'Capacitat Màx.',
'bud_select_beneficiary' => 'Triar un ingrés esperat',
// ONBOARDING BUDGET // Budget : Recap
'bs_onb_title' => 'Benvinguts! Configurem el teu pressupost:',
'bs_onb_desc' => 'Completa aquests passos perquè l\'aplicació pugui calcular el teu pressupost disponible:',
'bs_onb_cat_link' => 'Categories',
'bs_onb_cat_desc' => 'Crea almenys una categoria de despeses.',
'bs_onb_acc_link' => 'Comptes Bancaris',
'bs_onb_acc_desc' => 'Afegeix almenys un compte corrent o d\'estalvi.',
'bs_onb_sal_link' => 'Sous',
'bs_onb_sal_desc' => 'Introdueix els ingressos de l\'any en curs.',
'bs_onb_items_link' => 'Línies de Pressupost',
'bs_onb_items_desc' => 'Ves a la pestanya Resum per llistar les teves despeses fixes (Lloguer, Assegurances...).',
'bs_rule_search_ph' => '🔍 Cercar una paraula clau (ex: AUCHAN)...',
'error_loading_settings' => 'Error en carregar la configuració',
'settings' => 'Configuració',
'bud_err_delete_system_cat' => 'Cannot delete a core system category.',
// --- MODULE BUDGET : IMPORT CSV ---
'bud_import_csv' => "Importar CSV",
'bud_csv_file' => "Seleccioneu el fitxer del vostre banc (.csv)",
'bud_preview' => "Previsualitzar",
'bud_validate_import' => "Si us plau, comproveu i categoritzeu les línies abans de validar.",
'bud_assign_month' => "Mes de gestió",
'bud_op_date' => "Data",
'bud_amount' => "Import",
'bud_ignore' => "Ignorar (Crèdit)",
'bud_to_define' => "Per definir",
'bud_is_charge' => "És un càrrec fix...",
'bud_is_income' => "És un ingrés...",
// --- BUDGET : RECAP ---
'bud_recap_monthly_title' => 'Resum Mensual', 'bud_recap_monthly_title' => 'Resum Mensual',
'bud_recap_btn_add' => 'Afegir una despesa / ingrés', 'bud_recap_btn_add' => 'Afegir una despesa / ingrés',
'bud_planned_amount' => 'Import Previst', 'bud_planned_amount' => 'Import Previst',
@@ -853,51 +730,16 @@ return [
'bud_label_regularization' => 'Regularització', 'bud_label_regularization' => 'Regularització',
'bud_reg_none' => 'Cap', 'bud_reg_none' => 'Cap',
'bud_recap_confirm_delete' => 'Segur que vols suprimir aquest element?', 'bud_recap_confirm_delete' => 'Segur que vols suprimir aquest element?',
'bud_err_delete' => 'Error en suprimir.',
'bud_sav_modal_title_add' => 'Introduir un mes',
'bud_sav_ph_name' => 'Nom (ex: Vacances)',
'bud_prev_label_name' => 'Nom',
'bud_prev_monthly_target' => 'Import objectiu / Mensualitat (€)', 'bud_prev_monthly_target' => 'Import objectiu / Mensualitat (€)',
'bud_prev_transfer_dest' => 'Destinació de la transferència', 'bud_prev_transfer_dest' => 'Destinació de la transferència',
'bud_prev_none' => 'Cap destinació (Despesa estàndard)', 'bud_prev_none' => 'Cap destinació (Despesa estàndard)',
'bud_sav_new_line' => 'New line',
'bud_sav_prompt_new_line' => 'Name of the new savings line:',
// --- BUDGET : EPARGNE --- // Budget : Epargne
'bud_sav_add_month' => 'Introduir un mes', 'bud_sav_add_month' => 'Introduir un mes',
'bud_sav_add_one_month' => '+1 Mes', 'bud_sav_add_one_month' => '+1 Mes',
'bud_sav_no_data' => 'Cap dada per a %s.', 'bud_sav_no_data' => 'Cap dada per a %s.',
'bud_sav_post_month' => 'Concepte / Mes', 'bud_sav_post_month' => 'Concepte / Mes',
'bud_sav_from_date' => 'Des del %s', 'bud_sav_from_date' => 'Des del %s',
'bud_sav_edit_modal' => 'Modificar amb Modal',
'bud_sav_delete_month' => 'Suprimir tot el mes',
'bud_sav_total_bank' => 'Total Banc',
'bud_sav_extra' => 'Extra',
'bud_sav_modal_title_add' => 'Introduir un mes',
'bud_sav_modal_title_edit' => 'Modificar:',
'bud_sav_month_concerned' => 'Mes afectat',
'bud_sav_total_bank_eur' => 'Total al Banc (€)',
'bud_sav_ventilation' => 'Desglossament',
'bud_sav_adj_help' => 'Utilitzeu l\'ajust (+/-) per recalcular automàticament.',
'bud_sav_add_line' => 'Línia',
'bud_sav_current' => 'Actual',
'bud_sav_adjust' => 'Ajust (+/-)',
'bud_sav_new' => 'Nou',
'bud_sav_sum_mode_title' => 'Activar la suma ràpida',
'bud_sav_selection' => 'Selecció:',
'bud_sav_ph_name' => 'Nom (ex: Vacances)',
'bud_sav_saving' => 'Desant...',
'bud_err_tech' => 'S\'ha produït un error tècnic.',
'bud_sav_confirm_delete_month' => 'Suprimir TOT el mes de %m per a %o?',
'bud_sav_prompt_duplicate' => "Vols copiar les dades de %s a %t1?\n\nIntrodueix el nou TOTAL al banc (€) per a %t2:",
'bud_err_server' => 'Error del servidor: ',
'bud_err_network_dup' => 'Error de xarxa en duplicar.',
'budget_tab_kids' => 'Infants 👶',
'bud_sav_add_one_month' => '+1 Mes',
'bud_sav_add_month' => 'Afegir un mes',
'bud_sav_no_data' => 'Cap dada d\'estalvi per a %s.',
'bud_sav_post_month' => 'Concepte / Mes',
'bud_sav_from_date' => 'Des del %s',
'bud_sav_edit_modal' => 'Editar aquest mes', 'bud_sav_edit_modal' => 'Editar aquest mes',
'bud_sav_delete_month' => 'Suprimir aquest mes', 'bud_sav_delete_month' => 'Suprimir aquest mes',
'bud_sav_total_bank' => 'TOTAL BANC', 'bud_sav_total_bank' => 'TOTAL BANC',
@@ -909,45 +751,20 @@ return [
'bud_sav_ventilation' => 'Desglossament de comptes', 'bud_sav_ventilation' => 'Desglossament de comptes',
'bud_sav_adj_help' => 'Utilitzeu l\'ajust (+/-) per recalcular automàticament.', 'bud_sav_adj_help' => 'Utilitzeu l\'ajust (+/-) per recalcular automàticament.',
'bud_sav_add_line' => 'Afegir una línia', 'bud_sav_add_line' => 'Afegir una línia',
'bud_category' => 'Categoria',
'bud_sav_current' => 'Actual', 'bud_sav_current' => 'Actual',
'bud_sav_adjust' => 'Ajust', 'bud_sav_adjust' => 'Ajust',
'bud_sav_new' => 'Nou', 'bud_sav_new' => 'Nou',
'bud_sav_sum_mode_title' => 'Activar/Desactivar la calculadora', 'bud_sav_sum_mode_title' => 'Activar/Desactivar la calculadora',
'bud_sav_selection' => 'Selecció:', 'bud_sav_selection' => 'Selecció:',
'bud_sav_ph_name' => 'Nom del compte', 'bud_sav_ph_name' => 'Nom del compte',
'bud_sav_new_line' => 'Nova línia',
'bud_sav_prompt_new_line' => 'Nom de la nova línia d\'estalvi:',
// --- Module Budget : Provisions & Optimisation ---
'budget_provisions_title' => 'Provisions & Optimisation de Trésorerie',
'btn_optimize_cashflow' => 'Optimiser mes Économies',
'add_new_provision' => 'Anticiper une grosse dépense à venir',
'provision_label' => 'Libellé de la dépense',
'provision_placeholder_wood' => 'Ex: Commande de bois, Révision de l\'auto...',
'amount' => 'Montant',
'expected_date' => 'Date prévue',
'btn_add' => 'Ajouter',
'upcoming_provisions_list' => 'Dépenses prévues au calendrier',
'optimization_assistant_title' => 'Assistant d\'Optimisation des Quinzaines',
'error_generic' => 'Une erreur est survenue',
'success_add_provision' => 'Dépense prévisionnelle ajoutée !',
'no_provisions' => 'Aucune dépense prévisionnelle enregistrée pour le moment.',
'btn_delete' => 'Supprimer',
'savings_this_month' => 'Économies globales à placer ce mois-ci',
'calculate' => 'Calculer la stratégie optimale',
'date_past_warning' => 'La date sélectionnée est déjà passée !',
'budget_tab_provisions' => 'Provisions',
// JS & Errors
'bud_sav_confirm_delete_month' => 'Estàs segur que vols suprimir totes les dades de %m per a %o?', 'bud_sav_confirm_delete_month' => 'Estàs segur que vols suprimir totes les dades de %m per a %o?',
'bud_sav_prompt_duplicate' => "Vols duplicar les dades de %s cap a %t1?\n\nIntrodueix el nou TOTAL al banc (€) per a %t2:", 'bud_sav_prompt_duplicate' => "Vols duplicar les dades de %s cap a %t1?\n\nIntrodueix el nou TOTAL al banc (€) per a %t2:",
'bud_err_tech' => 'S\'ha produït un error tècnic.',
'bud_err_server' => 'Error del servidor: ',
'bud_err_network_dup' => 'Error de xarxa en duplicar.', 'bud_err_network_dup' => 'Error de xarxa en duplicar.',
'bud_sav_saving' => 'Desant...', 'bud_sav_saving' => 'Desant...',
'bud_err_delete' => 'Error en suprimir.',
// --- BUDGET : PREVISIONNEL --- // Budget : Previsionnel
'bud_prev_incomes' => 'Ingressos', 'bud_prev_incomes' => 'Ingressos',
'bud_prev_person' => 'Persona', 'bud_prev_person' => 'Persona',
'bud_prev_salary' => 'Sou', 'bud_prev_salary' => 'Sou',
@@ -981,10 +798,11 @@ return [
'bud_prev_err_no_history' => 'Impossible: no hi ha historial disponible per copiar.', 'bud_prev_err_no_history' => 'Impossible: no hi ha historial disponible per copiar.',
'bud_prev_confirm_copy' => "Vols copiar les dades de %s a %t?\n\n⚠️ Això sobreescriurà tots els valors ja presents per a %t.", 'bud_prev_confirm_copy' => "Vols copiar les dades de %s a %t?\n\n⚠️ Això sobreescriurà tots els valors ja presents per a %t.",
'bud_prev_confirm_transfers' => "Confirmes que %p ha fet totes les transferències per a %m?\n\nAixò actualitzarà l'Estalvi automàticament.", 'bud_prev_confirm_transfers' => "Confirmes que %p ha fet totes les transferències per a %m?\n\nAixò actualitzarà l'Estalvi automàticament.",
'bud_prev_label_name' => 'Nom',
'bud_prev_target_ph' => 'Ex: 150', 'bud_prev_target_ph' => 'Ex: 150',
'bud_prev_transfer_to' => 'Cap a', 'bud_prev_transfer_to' => 'Cap a',
// --- MODULE BUDGET : AVANCES & TRICOUNT --- // Budget : Tricount / Avances
'bud_adv_title' => 'Avançaments i Tricount Familiar', 'bud_adv_title' => 'Avançaments i Tricount Familiar',
'bud_adv_add' => 'Afegir un avançament', 'bud_adv_add' => 'Afegir un avançament',
'bud_adv_edit' => 'Modificar l\'avançament', 'bud_adv_edit' => 'Modificar l\'avançament',
@@ -994,7 +812,7 @@ return [
'bud_adv_cc_label' => 'al compte comú', 'bud_adv_cc_label' => 'al compte comú',
'bud_adv_livret_label' => 'des del seu llibre d\'estalvis', 'bud_adv_livret_label' => 'des del seu llibre d\'estalvis',
'bud_adv_cc_balance_title' => 'Equilibri del Compte Comú', 'bud_adv_cc_balance_title' => 'Equilibri del Compte Comú',
'bud_adv_owed_to' => 'S\'han de pagar **%s €** a **%s**', 'bud_adv_owed_to' => 'S\'han de pagar <strong>%s €</strong> a <strong>%s</strong>',
'bud_adv_balanced' => 'Els comptes estan perfectament equilibrats!', 'bud_adv_balanced' => 'Els comptes estan perfectament equilibrats!',
'bud_adv_saved_badge' => 'Estalvis', 'bud_adv_saved_badge' => 'Estalvis',
'bud_adv_already_saved' => 'Aquests diners provenen d\'un llibre d\'estalvis', 'bud_adv_already_saved' => 'Aquests diners provenen d\'un llibre d\'estalvis',
@@ -1002,59 +820,54 @@ return [
'bud_adv_confirm_resolve' => 'Confirmar el reemborsament complet d\'aquest avançament?', 'bud_adv_confirm_resolve' => 'Confirmar el reemborsament complet d\'aquest avançament?',
'bud_adv_confirm_delete' => 'Eliminar definitivament aquest avançament?', 'bud_adv_confirm_delete' => 'Eliminar definitivament aquest avançament?',
// ========================================== // Budget : Provisions & Optimisation
// MÒDUL: REGALS (gift-list) 'budget_provisions_title' => 'Provisions & Optimisation de Trésorerie',
// ========================================== 'btn_optimize_cashflow' => 'Optimiser mes Économies',
'add_new_provision' => 'Anticiper une grosse dépense à venir',
'provision_label' => 'Libellé de la dépense',
'provision_placeholder_wood' => 'Ex: Commande bois de chauffage, Révision voiture...',
'amount' => 'Montant',
'expected_date' => 'Date prévue',
'upcoming_provisions_list' => 'Dépenses prévues au calendrier',
'optimization_assistant_title' => 'Assistant d\'Optimisation des Quinzaines',
'success_add_provision' => 'Dépense prévisionnelle ajoutée !',
'no_provisions' => 'Aucune dépense prévisionnelle enregistrée pour le moment.',
'savings_this_month' => 'Économies globales à placer ce mois-ci',
'calculate' => 'Calculer la stratégie optimale',
'date_past_warning' => 'La date sélectionnée est déjà passée !',
// 1. Títols i capçaleres // ==========================================
// 8. CADEAUX (GIFTS)
// ==========================================
'gift_page_title' => 'Llista de Regals', 'gift_page_title' => 'Llista de Regals',
'gift_main_title' => 'Regals de %s', // %s serà substituït per l'any (ex: Regals de 2026) 'gift_main_title' => 'Regals de %s',
'settings' => 'Configuració',
// 2. Filtres
'gift_filter_all_children' => 'Tots els nens', 'gift_filter_all_children' => 'Tots els nens',
'gift_filter_all_adults' => 'Tots els adults', 'gift_filter_all_adults' => 'Tots els adults',
// 3. Contingut i estats buits
'gift_add_gift' => 'Afegir', 'gift_add_gift' => 'Afegir',
'gift_empty_state_no_gifts' => 'Cap regal registrat per a aquesta ocasió.', 'gift_empty_state_no_gifts' => 'Cap regal registrat per a aquesta ocasió.',
'gift_empty_state_no_filter' => 'Cap regal coincideix amb els teus filtres.', 'gift_empty_state_no_filter' => 'Cap regal coincideix amb els teus filtres.',
'gift_paid_by' => 'Pagat per %s', // %s serà substituït pel nom del pagador 'gift_paid_by' => 'Pagat per %s',
// 4. Secció Tricount (Balanç i Reemborsaments)
'gift_liquidations' => 'Balanç i Reemborsaments', 'gift_liquidations' => 'Balanç i Reemborsaments',
'gift_no_debt' => 'Tot està al dia, cap deute!', 'gift_no_debt' => 'Tot està al dia, cap deute!',
'gift_owes' => 'deu', 'gift_owes' => 'deu',
'gift_view_matrix' => 'Veure la matriu detallada', 'gift_view_matrix' => 'Veure la matriu detallada',
'gift_debtor' => 'Deutor', 'gift_debtor' => 'Deutor',
'gift_creditor' => 'Creditor', 'gift_creditor' => 'Creditor',
// 5. Modal: Afegir/Modificar Regal
'gift_col_adult' => 'Per compte de', 'gift_col_adult' => 'Per compte de',
'gift_modal_payer' => 'Pagat per', 'gift_modal_payer' => 'Pagat per',
'gift_modal_gift_name' => 'Descripció del regal', 'gift_modal_gift_name' => 'Descripció del regal',
'gift_modal_price' => 'Preu estimat / pagat (€)', 'gift_modal_price' => 'Preu estimat / pagat (€)',
'gift_modal_link' => 'Enllaç del producte (URL)', 'gift_modal_link' => 'Enllaç del producte (URL)',
'gift_modal_title_add' => 'Afegir per a %s', // JS: %s = nom del nen 'gift_modal_title_add' => 'Afegir per a %s',
'gift_modal_title_edit' => 'Modificar el regal', // JS 'gift_modal_title_edit' => 'Modificar el regal',
'gift_confirm_delete' => 'Vols eliminar realment aquest regal?', // JS 'gift_confirm_delete' => 'Vols eliminar realment aquest regal?',
// 6. Modal: Configuració de les Festes
'gift_settings_title' => 'Configuració de les Festes', 'gift_settings_title' => 'Configuració de les Festes',
'gift_settings_add_title' => '+ Afegir una ocasió', 'gift_settings_add_title' => '+ Afegir una ocasió',
'gift_settings_name_placeholder' => 'Nom (ex: Sant Valentí)', 'gift_settings_name_placeholder' => 'Nom (ex: Sant Valentí)',
'gift_settings_date_placeholder' => 'MM-DD', 'gift_settings_date_placeholder' => 'MM-DD',
'gift_settings_date_help' => 'La data (MM-DD) és opcional. Deixa en blanc per a una festa mòbil.', 'gift_settings_date_help' => 'La data (MM-DD) és opcional. Deixa en blanc per a una festa mòbil.',
'gift_settings_empty' => 'Cap festa configurada.', // JS 'gift_settings_empty' => 'Cap festa configurada.',
'gift_settings_active' => 'Actiu', // JS 'gift_settings_active' => 'Actiu',
// 7. Botons genèrics
'btn_cancel' => 'Cancel·lar',
'btn_save' => 'Desar',
'btn_add' => 'Afegir',
'loading' => 'Carregant...', //
// --- MODULE CADEAUX : SETTINGS ---
'gift_settings' => 'Configuració', 'gift_settings' => 'Configuració',
'gift_tab_occasions' => 'Festes i Ocasions', 'gift_tab_occasions' => 'Festes i Ocasions',
'gift_tab_proches' => 'Familiars (Fora de la llar)', 'gift_tab_proches' => 'Familiars (Fora de la llar)',
@@ -1071,9 +884,8 @@ return [
'gift_settings_edit_proche' => 'Modificar el familiar', 'gift_settings_edit_proche' => 'Modificar el familiar',
// ========================================== // ==========================================
// GARAGE MANAGER // 9. GARAGE
// ========================================== // ==========================================
'menu_garage' => 'Garatge',
'garage_page_title' => 'HouseHub - Garatge', 'garage_page_title' => 'HouseHub - Garatge',
'garage_stat_vehicles' => 'Vehicles', 'garage_stat_vehicles' => 'Vehicles',
'garage_stat_maintenances' => 'Manteniments', 'garage_stat_maintenances' => 'Manteniments',
@@ -1082,7 +894,7 @@ return [
'garage_my_vehicles' => 'Els meus vehicles', 'garage_my_vehicles' => 'Els meus vehicles',
'garage_reminders' => 'Recordatoris i propers manteniments', 'garage_reminders' => 'Recordatoris i propers manteniments',
'garage_vehicles_title' => 'Els meus vehicles', 'garage_vehicles_title' => 'Els meus vehicles',
'garage_all_parts' => 'Totes les peces', 'garage_all_parts' => 'Toutes les peces',
'garage_parts_count' => 'peces', 'garage_parts_count' => 'peces',
'garage_maintenances' => 'Manteniments', 'garage_maintenances' => 'Manteniments',
'garage_parts' => 'Peces', 'garage_parts' => 'Peces',
@@ -1103,7 +915,6 @@ return [
'garage_photo' => 'Foto', 'garage_photo' => 'Foto',
'garage_notes' => 'Notes', 'garage_notes' => 'Notes',
'garage_maint_type' => 'Tipus de manteniment', 'garage_maint_type' => 'Tipus de manteniment',
'garage_date' => 'Data',
'garage_km_at' => 'Quilometratge en el moment', 'garage_km_at' => 'Quilometratge en el moment',
'garage_labor_cost' => 'Cost mà d\'obra (€)', 'garage_labor_cost' => 'Cost mà d\'obra (€)',
'garage_description' => 'Descripció', 'garage_description' => 'Descripció',
@@ -1122,4 +933,38 @@ return [
'garage_change_photo' => 'Canviar la foto', 'garage_change_photo' => 'Canviar la foto',
'garage_new_photo' => 'Nova foto', 'garage_new_photo' => 'Nova foto',
'garage_update_photo' => 'Actualitzar', 'garage_update_photo' => 'Actualitzar',
// ==========================================
// 10. LISTES & COURSES
// ==========================================
'liste_placeholder_add' => 'Afegir un article...',
'liste_btn_add' => 'Afegir',
'liste_btn_uncheck_all' => 'Tot desmarcar',
'liste_btn_delete_picked' => 'Suprimir els marcats',
'liste_btn_clear_all' => 'Buidar la llista',
'liste_subtitle' => '{pending} pendents · {cart} marcats',
'liste_added' => 'Afegit',
'liste_updated' => 'Modificat',
'liste_deleted' => 'Suprimit',
'liste_already_in' => 'Ja a la llista',
'liste_confirm_clear' => 'Buidar tota la llista?',
'liste_confirm_delete_list' => 'Suprimir aquesta llista i tots els articles?',
'liste_history_title' => 'Recents — clic per afegir',
'liste_new_list' => 'Nova llista',
'liste_list_name_placeholder'=> 'Nom de la llista...',
'liste_create' => 'Crear',
'liste_rename_list' => 'Renombrar',
'liste_new_name' => 'Nou nom:',
'liste_list_deleted' => 'Llista suprimida',
'liste_list_created' => 'Llista creada',
'liste_list_renamed' => 'Llista renombrada',
'liste_edit_placeholder' => 'Modificar l\'article:',
'liste_empty_state' => 'Creeu la primera llista amb el botó + de dalt.',
'liste_settings_title' => 'Llistes — historial',
'liste_settings_intro' => 'Nombre màxim d\'articles memoritzats a l\'historial (comú per a totes).',
'liste_settings_history_max' => 'Mida de l\'historial',
'liste_settings_history_hint'=> 'Entre 1 i 50.',
'groceries_settings_saved' => 'Preferències desades.',
'groceries_settings_error' => 'Impossible de desar:',
'groceries_err_duplicate' => 'Aquest producte ja és a la llista.',
]; ];
+241 -377
View File
@@ -1,29 +1,23 @@
<?php <?php
// English Dictionary // English Dictionary - HouseHub
return [ return [
// ========================================== // ==========================================
// TEST AUTO // 1. GLOBAL, NAVIGATION & ACTIONS
// ==========================================
'test_running' => 'Running tests...',
'test_passed' => 'Test passed',
'test_failed' => 'Test failed',
'tests_title' => 'Test Lab',
'tests_run_budget' => 'Test Budget',
'tests_run_all' => 'Run all tests',
'tests_copy_report' => 'Copy report',
'tests_waiting' => 'Waiting to start...',
'tests_report_copied' => 'Report copied to clipboard!',
'tests_live_preview' => 'Live preview',
// ==========================================
// GLOBAL & NAVIGATION
// ========================================== // ==========================================
'menu_home' => 'Home', 'menu_home' => 'Home',
'menu_calendar' => 'Calendar', 'menu_calendar' => 'Calendar',
'menu_budget' => 'Budget', 'menu_budget' => 'Budget',
'menu_holidays' => 'Trips', 'menu_holidays' => 'Trips',
'menu_gifts' => 'Gifts', 'menu_gifts' => 'Gifts',
'menu_garage' => 'Garage',
'menu_memo' => 'Notes',
'menu_todo' => 'Todo',
'menu_liste' => 'Lists',
'menu_groceries' => 'Groceries',
'menu_calendar_ios' => 'iOS Calendar', 'menu_calendar_ios' => 'iOS Calendar',
'menu_printvault' => 'PrintVault',
'menu_planka' => 'Planka',
'nav_home' => 'Home', 'nav_home' => 'Home',
'nav_calendar' => 'Calendar', 'nav_calendar' => 'Calendar',
'nav_budget' => 'Budget', 'nav_budget' => 'Budget',
@@ -31,7 +25,6 @@ return [
'nav_gifts' => 'Gifts', 'nav_gifts' => 'Gifts',
'aria_menu' => 'Mobile menu', 'aria_menu' => 'Mobile menu',
// Buttons & global actions
'actions' => 'Actions', 'actions' => 'Actions',
'edit' => 'Edit', 'edit' => 'Edit',
'delete' => 'Delete', 'delete' => 'Delete',
@@ -41,28 +34,33 @@ return [
'btn_cancel' => 'Cancel', 'btn_cancel' => 'Cancel',
'btn_delete' => 'Delete', 'btn_delete' => 'Delete',
'btn_close' => 'Close', 'btn_close' => 'Close',
'btn_add' => 'Add',
'btn_back' => '◀ Back', 'btn_back' => '◀ Back',
'btn_edit_bases' => '⚙️ Edit base values', 'btn_edit_bases' => '⚙️ Edit base values',
'btn_edit' => 'Edit', 'btn_edit' => 'Edit',
'error_occured' => 'An error occurred.',
// Generic words & errors
'error' => 'Error.', 'error' => 'Error.',
'error_occured' => 'An error occurred.',
'error_network' => 'Network error',
'error_generic' => 'An error occurred',
'confirm_delete' => 'Are you sure you want to delete this item?', 'confirm_delete' => 'Are you sure you want to delete this item?',
'loading' => 'Loading...',
'date' => 'Date',
'settings' => 'Settings',
// Months & Days // Months & Days
'month_01' => 'January', 'month_02' => 'February', 'month_03' => 'March', 'month_01' => 'January', 'month_02' => 'February', 'month_03' => 'March', 'month_04' => 'April', 'month_05' => 'May', 'month_06' => 'June',
'month_04' => 'April', 'month_05' => 'May', 'month_06' => 'June', 'month_07' => 'July', 'month_08' => 'August', 'month_09' => 'September', 'month_10' => 'October', 'month_11' => 'November', 'month_12' => 'December',
'month_07' => 'July', 'month_08' => 'August', 'month_09' => 'September', 'month_jan' => 'January', 'month_feb' => 'February', 'month_mar' => 'March', 'month_apr' => 'April', 'month_may' => 'May', 'month_jun' => 'June',
'month_10' => 'October', 'month_11' => 'November', 'month_12' => 'December', 'month_jul' => 'July', 'month_aug' => 'August', 'month_sep' => 'September', 'month_oct' => 'October', 'month_nov' => 'November', 'month_dec' => 'December',
'day_mon' => 'Mon', 'day_tue' => 'Tue', 'day_wed' => 'Wed', 'day_mon' => 'Mon', 'day_tue' => 'Tue', 'day_wed' => 'Wed', 'day_thu' => 'Thu', 'day_fri' => 'Fri', 'day_sat' => 'Sat', 'day_sun' => 'Sun',
'day_thu' => 'Thu', 'day_fri' => 'Fri', 'day_sat' => 'Sat', 'day_sun' => 'Sun',
// ========================================== // ==========================================
// AUTHENTICATION / LOGIN // 2. AUTHENTICATION / LOGIN
// ========================================== // ==========================================
'login_title' => 'Login - HouseHub', 'login_title' => 'Login - HouseHub',
'login_header' => 'Login', 'login_header' => 'Login',
'login_subtitle' => 'Please sign in to continue',
'label_username' => 'Username', 'label_username' => 'Username',
'label_password' => 'Password', 'label_password' => 'Password',
'placeholder_username' => 'e.g. john', 'placeholder_username' => 'e.g. john',
@@ -70,12 +68,127 @@ return [
'btn_login_submit' => 'Sign in', 'btn_login_submit' => 'Sign in',
'logout' => 'Logout', 'logout' => 'Logout',
'btn_logout' => 'Logout', 'btn_logout' => 'Logout',
'login_remember_me' => 'Remember me',
'error_missing_fields' => 'All fields are required.', 'error_missing_fields' => 'All fields are required.',
'error_invalid_credentials' => 'Invalid credentials.', 'error_invalid_credentials' => 'Invalid credentials.',
'login_subtitle' => 'Please sign in to continue',
'login_remember_me' => 'Remember me',
// --- SETTINGS --- // ==========================================
// 3. HOME & DASHBOARD
// ==========================================
'home_title' => 'HouseHub - Home',
'home_welcome' => 'Welcome to HouseHub',
'home_subtitle' => 'Family organisation control centre.',
'home_logged_as' => 'Logged in as',
'home_modules_title' => 'Modules',
'mod_calendar_name' => 'Family Calendar',
'mod_calendar_desc' => 'Manage leave, childcare arrangements and weekly planning.',
'mod_holidays_name' => 'Trips',
'mod_holidays_desc' => 'Plan your next getaways, destinations and travel ideas.',
'mod_gifts_name' => 'Gifts',
'mod_gifts_desc' => 'Plan gifts for each child, for Christmas and birthdays.',
'mod_budget_name' => 'Budget',
'mod_budget_desc' => 'Track fixed expenses, income and family account balance.',
'mod_garage_name' => 'Garage',
'mod_garage_desc' => 'Track vehicle maintenance, parts used and costs.',
'mod_memo_name' => 'Notes',
'mod_memo_desc' => 'Your memos, recipes, instructions and miscellaneous info with Markdown and attachments.',
'mod_todo_name' => 'Todo',
'mod_todo_desc' => 'Manage tasks, shopping lists and family reminders.',
'mod_liste_name' => 'Lists',
'mod_liste_desc' => 'Shared named lists — groceries, DIY, pharmacy… As many lists as needed.',
'mod_groceries_name' => 'Groceries',
'mod_groceries_desc' => 'Shared list: add items and check them off when they are in your cart.',
'mod_calendar_ios_name' => 'iOS Calendar',
'mod_calendar_ios_desc' => 'Sync HouseHub events with your iPhone calendar (iCloud CalDAV).',
'mod_printvault_name'=> 'PrintVault',
'mod_printvault_desc'=> 'Manage your 3D print files — STL, 3MF, GCode with interactive viewer.',
'mod_planka_name' => 'Planka',
'mod_planka_desc' => 'Manage your projects in Kanban mode with Planka.',
'cta_open' => 'Open',
'cta_explore' => 'Explore',
'cta_view_lists' => 'Unwrap',
'cta_manage' => 'Manage',
'cta_service' => 'Service',
'cta_jot' => 'Jot down',
'cta_check' => 'Check off',
'cta_cart' => 'Go shopping',
'cta_sync' => 'Sync',
'cta_print' => 'Print',
// ==========================================
// 4. SETTINGS
// ==========================================
'set_title_page' => '⚙️ Settings',
'set_title_lang' => '🌐 Language',
'set_title_modules' => '🧩 Active Modules',
'set_desc_modules' => 'Choose the modules visible in the navigation.',
'set_title_ios' => '📱 iOS Calendar Integration (CalDAV)',
'set_desc_ios' => 'Configure your iCloud calendar here to sync events.',
'set_label_apple_id' => 'Apple ID (iCloud email)',
'set_label_apple_pwd' => 'Apple app password',
'set_label_apple_url' => 'CalDAV calendar URL',
'set_btn_test_ios' => 'Test connection',
'set_btn_disconnect_ios' => 'Disconnect',
'set_title_bg' => '🖼️ Home Image',
'set_desc_bg' => 'Background photo displayed on the homepage.',
'set_badge_custom_bg' => 'Custom image',
'set_label_new_bg' => 'New image (jpg, png, webp — max 10 MB)',
'set_btn_reset_bg' => '🔄 Reset to default image',
'set_confirm_reset_bg' => 'Revert to default image?',
'set_title_profile' => '👤 My Profile',
'set_label_username' => 'Username',
'set_label_display_name' => 'First name / Display name',
'set_label_profile_color' => 'My profile theme color',
'set_desc_profile_color' => 'This color will be used for your budget grids, calendars, and personal indicators.',
'set_title_pwd' => '🔒 Change Password',
'set_label_cur_pwd' => 'Current password',
'set_label_new_pwd' => 'New password',
'set_label_confirm_pwd' => 'Confirm',
'set_btn_edit' => 'Edit',
'set_title_family' => '🏠 My Family Space',
'set_label_family_name' => 'Space name',
'set_desc_invite' => 'Invitation code — share it to invite someone',
'set_title_copy' => 'Click to copy',
'set_msg_copied' => '✓ Copied!',
'set_btn_new_code' => '🔄 New code',
'set_confirm_new_code' => 'Regenerate code? The old one will be invalidated.',
'set_desc_register_link' => 'Registration link:',
'set_title_members' => 'Members',
'set_badge_admin' => 'Admin',
'set_title_attached' => '🧸 Attached Profiles',
'set_desc_attached' => 'Household members without direct access.',
'set_empty_attached' => 'No attached profiles.',
'set_link_admin' => '→ Administration Panel',
'set_kids_title' => 'Household Kids',
'set_kids_desc' => 'Manage the list of kids to associate them with savings, gifts, etc.',
'set_add_kid_placeholder' => 'Kid\'s first name',
'set_btn_add_kid' => 'Add',
'set_err_kid_name' => 'The first name is required.',
'set_confirm_del_kid' => 'Delete this kid? (Their financial history will remain visible in the archives).',
'set_no_kids' => 'No kids configured for this household.',
'set_family_config' => 'Family Structure',
'set_global_params' => 'Global settings',
'set_care_modes' => 'Common childcare arrangements',
'set_add_care_mode' => 'Add a mode',
// Labels Profiles
'label_firstname' => 'First Name',
'placeholder_firstname_ex' => 'e.g., Pol, Carole...',
'label_role' => 'Role',
'role_child' => '👶 Child',
'role_child_icon' => '👶 Child',
'role_helper' => '💼 Helper',
'role_helper_icon' => '💼 Helper',
'role_relative' => '👵 Relative',
'role_relative_icon' => '👵 Relative',
'role_unknown' => 'Unknown',
'label_color' => 'Color',
'change_color' => 'Change color',
'confirm_delete_profile' => 'Permanently delete this profile?',
// Settings Messages
'error_csrf' => 'Invalid session (CSRF). Please reload the page.', 'error_csrf' => 'Invalid session (CSRF). Please reload the page.',
'set_err_min_module' => 'You must keep at least one active module.', 'set_err_min_module' => 'You must keep at least one active module.',
'set_success_modules' => 'Modules successfully updated.', 'set_success_modules' => 'Modules successfully updated.',
@@ -105,178 +218,20 @@ return [
'set_success_profile_add' => 'Profile for %s successfully added.', 'set_success_profile_add' => 'Profile for %s successfully added.',
'set_err_name_required' => 'First name is required.', 'set_err_name_required' => 'First name is required.',
'set_success_profile_del' => 'Profile deleted.', 'set_success_profile_del' => 'Profile deleted.',
'set_title_page' => '⚙️ Settings',
'set_title_lang' => '🌐 Language',
'set_title_modules' => '🧩 Active Modules',
'set_desc_modules' => 'Choose the modules visible in the navigation (shared with all space members).',
'set_title_ios' => '📱 iOS Calendar Integration (CalDAV)',
'set_desc_ios' => 'Configure your iCloud calendar here to sync events created in HouseHub.',
'set_label_apple_id' => 'Apple ID (iCloud email)',
'set_label_apple_pwd' => 'Apple app password',
'set_label_apple_url' => 'CalDAV calendar URL',
'set_btn_test_ios' => 'Test connection',
'set_btn_disconnect_ios' => 'Disconnect',
'set_title_bg' => '🖼️ Home Image',
'set_desc_bg' => 'Background photo displayed on the homepage (shared with all members).',
'set_badge_custom_bg' => 'Custom image',
'set_label_new_bg' => 'New image (jpg, png, webp — max 10 MB)',
'set_btn_reset_bg' => '🔄 Reset to default image',
'set_confirm_reset_bg' => 'Revert to default image?',
'set_title_profile' => '👤 My Profile',
'set_label_username' => 'Username',
'set_label_display_name' => 'First name / Display name',
'set_label_profile_color' => 'My profile theme color',
'set_desc_profile_color' => 'This color will be used for your budget grids, calendars, and personal indicators.',
'set_title_pwd' => '🔒 Change Password',
'set_label_cur_pwd' => 'Current password',
'set_label_new_pwd' => 'New password',
'set_label_confirm_pwd' => 'Confirm',
'set_btn_edit' => 'Edit',
'set_title_family' => '🏠 My Family Space',
'set_label_family_name' => 'Space name',
'set_desc_invite' => 'Invitation code — share it to invite someone',
'set_title_copy' => 'Click to copy',
'set_msg_copied' => '✓ Copied!',
'set_btn_new_code' => '🔄 New code',
'set_confirm_new_code' => 'Regenerate code? The old one will be invalidated.',
'set_desc_register_link' => 'Registration link:',
'set_title_members' => 'Members',
'set_badge_admin' => 'Admin',
'set_title_attached' => '🧸 Attached Profiles',
'set_desc_attached' => 'Members managed by the household (Children, Nannies, Relatives) without direct access.',
'role_unknown' => 'Unknown',
'role_child' => '👶 Child',
'role_helper' => '💼 Helper',
'role_relative' => '👵 Relative',
'set_confirm_del_profile' => 'Permanently delete this profile?',
'set_empty_attached' => 'No attached profiles.',
'set_label_firstname' => 'First name',
'set_label_role' => 'Role',
'set_label_color' => 'Color',
'set_link_admin' => '→ Administration Panel',
'set_success_color' => 'Color updated!', 'set_success_color' => 'Color updated!',
'error_network' => 'Network error', 'set_success_color_profile' => 'Profile color updated.',
'set_success_color_update' => 'Color updated!',
// ========================================== 'color_updated' => 'Color updated!',
// HOME / INDEX
// ==========================================
'home_title' => 'HouseHub - Home',
'home_welcome' => 'Welcome to HouseHub',
'home_subtitle' => 'Family organisation control centre.',
'home_logged_as' => 'Logged in as',
'home_modules_title' => 'Modules',
'mod_calendar_name' => 'Family Calendar',
'mod_calendar_desc' => 'Manage leave, childcare arrangements and weekly planning.',
'mod_holidays_name' => 'Trips',
'mod_holidays_desc' => 'Plan your next getaways, destinations and travel ideas.',
'mod_gifts_name' => 'Gifts',
'mod_gifts_desc' => 'Plan gifts for each child, for Christmas and birthdays.',
'mod_budget_name' => 'Budget',
'mod_budget_desc' => 'Track fixed expenses, income and family account balance.',
'mod_garage_name' => 'Garage',
'mod_garage_desc' => 'Track vehicle maintenance, parts used and costs.',
'mod_memo_name' => 'Notes',
'mod_memo_desc' => 'Your memos, recipes, instructions and miscellaneous info with Markdown and attachments.',
'menu_memo' => 'Notes',
'mod_todo_name' => 'Todo',
'mod_todo_desc' => 'Manage tasks, shopping lists and family reminders.',
'mod_calendar_ios_name' => 'iOS Calendar',
'mod_calendar_ios_desc' => 'Sync HouseHub events with your iPhone calendar (iCloud CalDAV).',
'menu_todo' => 'Todo',
'mod_groceries_name' => 'Groceries',
'mod_groceries_desc' => 'Shared list: add items and check them off when they are in your cart.',
'menu_groceries' => 'Groceries',
'groceries_placeholder_add' => 'e.g. milk, bread, tomatoes…',
'groceries_btn_add' => 'Add',
'groceries_btn_uncheck_all' => 'Reset cart checks',
'groceries_btn_delete_picked' => 'Remove checked items',
'groceries_subtitle' => '{pending} to pick up · {cart} in cart',
'groceries_added' => 'Added',
'groceries_updated' => 'Updated',
'groceries_deleted' => 'Removed',
'groceries_reset_next' => 'List ready for your next trip',
'groceries_picked_removed' => 'Checked items removed',
'groceries_label_empty' => 'Label cannot be empty',
'groceries_confirm_del_title' => 'Delete?',
'groceries_confirm_del_body' => 'Remove this product from the list?',
'groceries_confirm_uncheck_title' => 'Reset cart checks',
'groceries_confirm_uncheck_body' => 'All “in cart” checkmarks will be cleared. Items stay on the list.',
'groceries_confirm_clear_title' => 'Remove checked items',
'groceries_confirm_clear_body' => 'Every checked item will be deleted from the list.',
'groceries_empty' => 'Nothing yet. Add a product above.',
'groceries_aria_toggle' => 'Mark as in cart or still to pick up',
'groceries_section_pending' => 'To pick up',
'groceries_section_cart' => 'In cart',
'groceries_prompt_edit' => 'Edit product',
'groceries_btn_clear_list' => 'Clear list',
'groceries_confirm_empty_list_title' => 'Clear the entire list?',
'groceries_confirm_empty_list_body' => 'All products will be removed. They stay in history so you can add them again quickly.',
'groceries_list_cleared' => 'List cleared',
'groceries_history_title' => 'History — click to add',
'groceries_history_empty' => 'History fills as you add products (up to the limit set in Settings).',
'groceries_history_meta' => 'Up to {max} products · ',
'groceries_settings_link' => 'Settings',
'groceries_settings_title' => 'Groceries — history',
'groceries_settings_intro' => 'Maximum number of products remembered in history (no duplicates, case-insensitive).',
'groceries_settings_history_max' => 'History size',
'groceries_settings_history_hint' => 'Between 1 and 50. Oldest entries are removed when the limit is exceeded.',
'groceries_settings_saved' => 'Grocery preferences saved.',
'groceries_settings_error' => 'Could not save:',
'groceries_err_duplicate' => 'This product is already on the list.',
'cta_open' => 'Open',
'cta_explore' => 'Explore',
'cta_view_lists' => 'Unwrap',
'cta_manage' => 'Manage',
'cta_service' => 'Service',
'cta_jot' => 'Jot down',
'cta_check' => 'Check off',
'cta_cart' => 'Go shopping',
'cta_sync' => 'Sync',
'mod_printvault_name' => 'PrintVault',
'mod_printvault_desc' => 'Manage your 3D print files — STL, 3MF, GCode with interactive viewer.',
'menu_printvault' => 'PrintVault',
'cta_print' => 'Print',
'mod_planka_name' => 'Planka',
'mod_planka_desc' => 'Manage your projects in Kanban mode with Planka.',
'menu_planka' => 'Planka',
// --- SETTINGS : KIDS ---
'set_kids_title' => 'Household Kids',
'set_kids_desc' => 'Manage the list of kids to associate them with savings, gifts, etc.',
'set_add_kid_placeholder' => 'Kid\'s first name',
'set_btn_add_kid' => 'Add',
'set_err_kid_name' => 'The first name is required.',
'set_confirm_del_kid' => 'Delete this kid? (Their financial history will remain visible in the archives).',
'set_no_kids' => 'No kids configured for this household.',
'set_family_config' => 'Family Structure',
'set_global_params' => 'Global settings',
'set_care_modes' => 'Common childcare arrangements',
'set_add_care_mode' => 'Ajouter un modeAdd a mode',
'btn_save' => 'Save',
'settings_profile_added' => 'Profile of %s added successfully.', 'settings_profile_added' => 'Profile of %s added successfully.',
'settings_err_name_required' => 'First name is required.', 'settings_err_name_required' => 'First name is required.',
'settings_attached_profiles_title' => 'Attached Profiles', 'settings_attached_profiles_title' => 'Attached Profiles',
'settings_attached_profiles_desc' => 'Household members (Children, Nannies, Relatives) without direct access.', 'settings_attached_profiles_desc' => 'Household members without direct access.',
'settings_no_attached_profiles' => 'No attached profiles.', 'settings_no_attached_profiles' => 'No attached profiles.',
'label_firstname' => 'First Name',
'placeholder_firstname_ex' => 'e.g., Pol, Carole...',
'label_role' => 'Role',
'role_child_icon' => '👶 Child',
'role_helper_icon' => '💼 Helper',
'role_relative_icon' => '👵 Relative',
'role_unknown' => 'Unknown',
'label_color' => 'Color',
'confirm_delete_profile' => 'Permanently delete this profile?',
'change_color' => 'Change color',
'color_updated' => 'Color updated!',
'set_success_color_profile' => 'Profile color updated.',
'set_success_color_update' => 'Color updated!',
'set_desc_profile_color' => 'This color will be used for your budget grids, calendars, and personal indicators.',
'placeholder_apple_id' => 'name@icloud.com', 'placeholder_apple_id' => 'name@icloud.com',
'placeholder_apple_pwd' => 'xxxx-xxxx-xxxx-xxxx', 'placeholder_apple_pwd' => 'xxxx-xxxx-xxxx-xxxx',
// ========================================== // ==========================================
// FAMILY CALENDAR // 5. FAMILY CALENDAR
// ========================================== // ==========================================
'fc_page_title' => 'HouseHub - Calendar', 'fc_page_title' => 'HouseHub - Calendar',
'fc_main_header' => 'Family Calendar', 'fc_main_header' => 'Family Calendar',
@@ -317,9 +272,7 @@ return [
'fc_err_fetch_gov' => 'Error connecting to the government API.', 'fc_err_fetch_gov' => 'Error connecting to the government API.',
'fc_err_no_data_gov' => 'No data found on the government API for this year.', 'fc_err_no_data_gov' => 'No data found on the government API for this year.',
'fc_err_action' => 'Error during action: ', 'fc_err_action' => 'Error during action: ',
'fc_err_select_leave' => "Please select a leave type.", 'fc_err_select_leave' => 'Please select a leave type.',
'fc_confirm_del_catalog' => "Permanently delete leave %s from the catalog? This will also remove it from members using it.",
'fc_confirm_del_member_leave' => "Do you really want to remove this leave for this member?",
'fc_today_short' => 'Today', 'fc_today_short' => 'Today',
'fc_today_title' => 'Today', 'fc_today_title' => 'Today',
'fc_tab_foyer' => '🏡 Household', 'fc_tab_foyer' => '🏡 Household',
@@ -327,8 +280,9 @@ return [
'fc_select_member' => 'Select a family member:', 'fc_select_member' => 'Select a family member:',
'fc_role_adult' => 'Adult', 'fc_role_adult' => 'Adult',
'fc_role_child' => 'Child', 'fc_role_child' => 'Child',
'fc_role_helper' => 'Helper',
'fc_role_unknown' => 'Unknown',
'fc_care_modes_title' => 'Associated Care Modes', 'fc_care_modes_title' => 'Associated Care Modes',
'fc_care_modes_desc' => 'Check the care modes that apply to this child.',
'fc_no_care_mode' => 'No care mode configured.', 'fc_no_care_mode' => 'No care mode configured.',
'fc_matrix_title' => '👨‍👩‍👦 Leave Rights Matrix', 'fc_matrix_title' => '👨‍👩‍👦 Leave Rights Matrix',
'fc_matrix_desc' => 'Declare your counter codes and renewal dates.', 'fc_matrix_desc' => 'Declare your counter codes and renewal dates.',
@@ -341,10 +295,16 @@ return [
'btn_save_rights' => '💾 Save', 'btn_save_rights' => '💾 Save',
'fc_modal_settings_title' => 'Calendar Settings', 'fc_modal_settings_title' => 'Calendar Settings',
'fc_zone_label' => 'School Zone (Holidays)', 'fc_zone_label' => 'School Zone (Holidays)',
'fc_zone_a' => 'Zone A',
'fc_zone_b' => 'Zone B',
'fc_zone_c' => 'Zone C',
'fc_zone_other' => 'Other / Outside France',
'fc_zone_desc' => 'Determines the automatic school holiday calendar.', 'fc_zone_desc' => 'Determines the automatic school holiday calendar.',
'fc_care_modes_label' => 'Household Care Modes', 'fc_care_modes_label' => 'Household Care Modes',
'fc_care_modes_desc' => 'Manage the global list of possible care modes for the family.', 'fc_care_modes_desc' => 'Manage the global list of possible care modes for the family.',
'fc_add_mode_placeholder' => 'E.g., Nanny, Center, Grandparents...', 'fc_add_mode_placeholder' => 'E.g., Nanny, Center, Grandparents...',
'fc_empty_kids_msg' => 'No children are configured in your household yet.',
'fc_link_settings' => 'Go to general settings',
'fc_settings_updated' => 'Settings updated successfully!', 'fc_settings_updated' => 'Settings updated successfully!',
'fc_first_day' => 'First day of the week', 'fc_first_day' => 'First day of the week',
'fc_helper_recap' => 'Helper Summary', 'fc_helper_recap' => 'Helper Summary',
@@ -355,56 +315,32 @@ return [
'fc_full_year' => 'Full year', 'fc_full_year' => 'Full year',
'fc_custom_period' => 'Custom period...', 'fc_custom_period' => 'Custom period...',
'fc_worked_days' => 'Worked (Est.)', 'fc_worked_days' => 'Worked (Est.)',
'fc_presence' => 'Presence',
'fc_working_days' => 'Working days',
'fc_absences' => 'Abs.',
'fc_recap_title' => 'Summary',
'fc_worked_est' => 'Worked (Est.)',
'fc_invalid_dates' => 'Please select valid dates.',
'fc_no_leaves_taken' => 'No leave taken.',
// --- CALENDAR: SETTINGS (MEMBERS & DISPLAY) ---
'fc_tab_display' => '🖥️ Display', 'fc_tab_display' => '🖥️ Display',
'fc_display_title' => 'Display Settings', 'fc_display_title' => 'Display Settings',
'fc_display_desc' => 'Customize the default appearance and behavior of your calendar.', 'fc_display_desc' => 'Customize the default appearance and behavior of your calendar.',
'fc_default_view' => 'Default View', 'fc_default_view' => 'Default View',
'fc_view_month' => '1 month',
'fc_view_2months' => '2 months',
'fc_view_3months' => '3 months',
'fc_working_hours' => 'Default Care Hours', 'fc_working_hours' => 'Default Care Hours',
'fc_working_hours_desc' => 'Example: 08:30-18:00', 'fc_working_hours_desc' => 'Example: 08:30-18:00',
'fc_role_unknown' => 'Unknown',
'fc_role_adult' => 'Adult',
'fc_role_child' => 'Child',
'fc_role_helper' => 'Helper',
'fc_error' => 'Error: ', 'fc_error' => 'Error: ',
'fc_leave_catalog_title' => 'Leave Catalog',
'fc_care_modes_title' => 'Default Care Modes', 'fc_leave_catalog_desc' => 'Define the possible leave types for the whole family.',
'fc_care_modes_desc' => 'Which care modes apply to this child?', 'fc_add_leave_type' => 'Add a leave type',
'fc_no_care_mode' => 'No care mode configured for this household.', 'fc_col_code' => 'Code',
'fc_child_saved' => 'Saved!', 'fc_code_irreversible' => 'Irreversible',
'fc_col_label' => 'Label',
'fc_matrix_title' => 'Leave Matrix', 'fc_leave_label_ph' => 'Ex: PTO, Sick leave...',
'fc_matrix_desc' => 'Define quotas and renewal dates.', 'fc_quota_default' => 'Default quota',
'fc_matrix_empty' => 'No counters defined.', 'fc_reset_month' => 'Reset month',
"fc_matrix_saved" => "Matrix saved!",
'fc_leave_obsolete' => 'Obsolete', 'fc_leave_obsolete' => 'Obsolete',
'fc_leave_code_placeholder' => 'Code...', 'fc_leave_code_placeholder' => 'Code...',
'fc_leave_method_fixed' => 'Fixed', 'fc_leave_method_fixed' => 'Fixed',
'fc_leave_method_accumulated'=> 'Accrued', 'fc_leave_method_accumulated'=> 'Accrued',
'fc_date_format_placeholder'=> 'DD/MM', 'fc_date_format_placeholder'=> 'DD/MM',
'fc_date_format_title' => 'DD/MM Format', 'fc_date_format_title' => 'DD/MM Format',
'fc_table_code' => 'Code', 'fc_table_code' => 'Code',
'fc_table_method' => 'Method', 'fc_table_method' => 'Method',
'fc_table_quota' => 'Quota', 'fc_table_quota' => 'Quota',
'fc_table_renewal' => 'Renewal', 'fc_table_renewal' => 'Renewal',
'btn_save_rights' => 'Save',
'fc_label_carry_over' => 'Incl. carried over days (Expiring) ⚠️', 'fc_label_carry_over' => 'Incl. carried over days (Expiring) ⚠️',
'fc_carry_over_note' => 'Portion of the overall balance that will expire on the deadline.', 'fc_carry_over_note' => 'Portion of the overall balance that will expire on the deadline.',
'fc_carry_max' => 'Max Carry Over', 'fc_carry_max' => 'Max Carry Over',
@@ -419,57 +355,10 @@ return [
'fc_catalog_updated' => 'Catalog updated!', 'fc_catalog_updated' => 'Catalog updated!',
'fc_balance_corrected' => 'Balance corrected!', 'fc_balance_corrected' => 'Balance corrected!',
'fc_no_leave_configured' => 'No leave configured.', 'fc_no_leave_configured' => 'No leave configured.',
'fc_confirm_del_catalog' => 'Permanently delete leave %s from the catalog? This will also remove it from members using it.',
'fc_confirm_del_member_leave'=> 'Do you really want to remove this leave for this member?',
// ========================================== // Calendar Legends
// CALENDAR SETTINGS MODAL
// ==========================================
'fc_modal_settings_title' => 'Calendar Settings',
'fc_tab_foyer' => 'Household',
'fc_tab_members' => 'Members & Rights',
// Household: School Zone
'fc_zone_label' => 'School zone',
'fc_zone_a' => 'Zone A',
'fc_zone_b' => 'Zone B',
'fc_zone_c' => 'Zone C',
'fc_zone_other' => 'Other / Outside France',
'fc_zone_desc' => 'Used to accurately display school holidays.',
// Household: Care Modes
'fc_care_modes_label' => 'Childcare options',
'fc_add_mode_placeholder' => 'Ex: Nanny, Daycare...',
'fc_care_modes_desc' => 'Add the different childcare options for your children.',
'fc_empty_kids_msg' => 'No children are configured in your household yet.',
'fc_link_settings' => 'Go to general settings',
// Household: Leave Catalog
'fc_leave_catalog_title' => 'Leave Catalog',
'fc_leave_catalog_desc' => 'Define the possible leave types for the whole family.',
'fc_add_leave_type' => 'Add a leave type',
'fc_col_code' => 'Code',
'fc_code_irreversible' => 'Irreversible',
'fc_col_label' => 'Label',
'fc_leave_label_ph' => 'Ex: PTO, Sick leave...',
'fc_quota_default' => 'Default quota',
'fc_reset_month' => 'Reset month',
// Members
'fc_select_member' => 'Select a member:',
// Months
'month_jan' => 'January',
'month_feb' => 'February',
'month_mar' => 'March',
'month_apr' => 'April',
'month_may' => 'May',
'month_jun' => 'June',
'month_jul' => 'July',
'month_aug' => 'August',
'month_sep' => 'September',
'month_oct' => 'October',
'month_nov' => 'November',
'month_dec' => 'December',
'leg_presence' => 'Pep presence', 'leg_presence' => 'Pep presence',
'leg_school_holidays' => 'School holidays', 'leg_school_holidays' => 'School holidays',
'leg_public_holiday' => 'Public holiday', 'leg_public_holiday' => 'Public holiday',
@@ -481,7 +370,6 @@ return [
'care_nounou' => 'Nanny', 'care_nounou' => 'Nanny',
'care_centre' => 'Daycare', 'care_centre' => 'Daycare',
'care_avis' => 'Grandparents', 'care_avis' => 'Grandparents',
'vac_toussaint' => 'All Saints\' holidays', 'vac_toussaint' => 'All Saints\' holidays',
'vac_noel' => 'Christmas holidays', 'vac_noel' => 'Christmas holidays',
'vac_hiver' => 'Winter holidays', 'vac_hiver' => 'Winter holidays',
@@ -490,12 +378,11 @@ return [
'vac_ete' => 'Summer holidays', 'vac_ete' => 'Summer holidays',
'btn_off' => 'Off', 'btn_off' => 'Off',
'btn_extra' => 'Extra', 'btn_extra' => 'Extra',
'fc_alert_burn_days' => '⚠️ Risk of losing: %s d to take before end of cycle',
'fc_alert_burn_days' => '⚠️ Risk of losing: %s d to take before %s', 'fc_alert_burn_jra' => '⚠️ Alert: Carried over days expire at the end of this month!',
'fc_alert_burn_jra' => '⚠️ JRA: Only 2 days can be carried over after February!',
// ========================================== // ==========================================
// HOLIDAYS (TRIPS) // 6. HOLIDAYS (TRIPS)
// ========================================== // ==========================================
'hdl_title_list' => 'HouseHub - My Trips', 'hdl_title_list' => 'HouseHub - My Trips',
'hdl_title_detail' => 'HouseHub - Trip details', 'hdl_title_detail' => 'HouseHub - Trip details',
@@ -570,6 +457,8 @@ return [
'hdl_to_place' => 'To place', 'hdl_to_place' => 'To place',
'hdl_from' => 'From', 'hdl_from' => 'From',
'hdl_to' => 'To', 'hdl_to' => 'To',
// Weather & Holidays specific
'weather_forecast' => 'Weather forecast', 'weather_forecast' => 'Weather forecast',
'weather_not_available' => 'Weather unavailable', 'weather_not_available' => 'Weather unavailable',
'temp_max' => 'Max temp.', 'temp_max' => 'Max temp.',
@@ -637,7 +526,7 @@ return [
'to_place' => '📥 To place', 'to_place' => '📥 To place',
// ========================================== // ==========================================
// BUDGET (GLOBAL & CATEGORIES) // 7. BUDGET (GLOBAL, SUIVI, PREV, EPARGNE, PROVISIONS)
// ========================================== // ==========================================
'budget_page_title' => 'HouseHub - Budget', 'budget_page_title' => 'HouseHub - Budget',
'budget_main_header' => 'Budget Management', 'budget_main_header' => 'Budget Management',
@@ -645,9 +534,16 @@ return [
'budget_tab_prev' => 'Budget 2026', 'budget_tab_prev' => 'Budget 2026',
'budget_tab_savings' => 'Savings', 'budget_tab_savings' => 'Savings',
'budget_tab_recap' => 'Summary', 'budget_tab_recap' => 'Summary',
'budget_tab_provisions' => 'Provisions',
'budget_tab_kids' => 'Kids',
'budget_err_file_not_found' => 'Oops! File not found.', 'budget_err_file_not_found' => 'Oops! File not found.',
'budget_err_file_detail' => 'Check that the file views/%s.php exists.', 'budget_err_file_detail' => 'Check that the file views/%s.php exists.',
'budget_err_not_authorized' => 'Page not authorised.', 'budget_err_not_authorized' => 'Page not authorised.',
'bud_err_tech' => 'A technical error occurred.',
'bud_err_server' => 'Server error: ',
'bud_err_delete' => 'Error while deleting.',
// Categories (Budget)
'cat_income' => 'Income', 'cat_income' => 'Income',
'cat_fmcg' => 'Groceries (FMCG)', 'cat_fmcg' => 'Groceries (FMCG)',
'cat_fuel' => 'Fuel', 'cat_fuel' => 'Fuel',
@@ -655,12 +551,14 @@ return [
'cat_fixed' => 'Fixed costs', 'cat_fixed' => 'Fixed costs',
'cat_others' => 'Other / Unexpected', 'cat_others' => 'Other / Unexpected',
'cat_savings' => 'Savings', 'cat_savings' => 'Savings',
'budget_tab_kids' => 'Kids',
// Settings (Budget)
'budget_settings_title' => 'Budget Settings', 'budget_settings_title' => 'Budget Settings',
'bs_tab_accounts' => '💳 Accounts', 'bs_tab_accounts' => '💳 Accounts',
'bs_tab_categories' => '🏷️ Categories', 'bs_tab_categories' => '🏷️ Categories',
'bs_tab_rules' => '🤖 Import Rules', 'bs_tab_rules' => '🤖 Import Rules',
'bs_tab_salaries' => '💼 Salaries', 'bs_tab_salaries' => '💼 Salaries',
'bs_tab_csv' => '📥 CSV Import',
'bs_empty_accounts' => 'No accounts configured.', 'bs_empty_accounts' => 'No accounts configured.',
'bs_type_checking' => 'Checking', 'bs_type_checking' => 'Checking',
'bs_type_savings' => 'Savings', 'bs_type_savings' => 'Savings',
@@ -690,7 +588,8 @@ return [
'bs_currency_label' => 'Household Currency', 'bs_currency_label' => 'Household Currency',
'bs_currency_desc' => 'Main currency used for displaying your accounts and budgets.', 'bs_currency_desc' => 'Main currency used for displaying your accounts and budgets.',
'bs_currency_updated' => 'Currency updated successfully!', 'bs_currency_updated' => 'Currency updated successfully!',
// ONGLET CSV MAPPING
// CSV Mapping (Budget)
'bs_csv_title' => 'CSV Import Format', 'bs_csv_title' => 'CSV Import Format',
'bs_csv_desc' => 'Configure the columns that match your bank\'s export file.', 'bs_csv_desc' => 'Configure the columns that match your bank\'s export file.',
'bs_csv_delimiter' => 'Delimiter', 'bs_csv_delimiter' => 'Delimiter',
@@ -711,7 +610,6 @@ return [
'bs_csv_col_ref' => 'Col #: Unique Reference (Optional)', 'bs_csv_col_ref' => 'Col #: Unique Reference (Optional)',
'btn_save_format' => 'Save format', 'btn_save_format' => 'Save format',
'bs_csv_saved' => 'CSV format saved', 'bs_csv_saved' => 'CSV format saved',
'bs_tab_csv' => '📥 CSV Import',
'bs_csv_settings_title' => 'Format Configuration', 'bs_csv_settings_title' => 'Format Configuration',
'bs_csv_drop_title' => 'Drop your CSV file here', 'bs_csv_drop_title' => 'Drop your CSV file here',
'bs_csv_drop_desc' => 'or click to browse your files', 'bs_csv_drop_desc' => 'or click to browse your files',
@@ -721,7 +619,7 @@ return [
'bs_csv_empty_col' => 'Empty', 'bs_csv_empty_col' => 'Empty',
'bs_csv_no_data' => 'No transaction row found in this file.', 'bs_csv_no_data' => 'No transaction row found in this file.',
// ONBOARDING BUDGET // Onboarding Budget
'bs_onb_title' => 'Welcome! Let\'s set up your budget:', 'bs_onb_title' => 'Welcome! Let\'s set up your budget:',
'bs_onb_desc' => 'Complete these steps so the app can calculate your remaining budget:', 'bs_onb_desc' => 'Complete these steps so the app can calculate your remaining budget:',
'bs_onb_cat_link' => 'Categories', 'bs_onb_cat_link' => 'Categories',
@@ -734,9 +632,9 @@ return [
'bs_onb_items_desc' => 'Go to the Summary tab to list your fixed expenses (Rent, Insurance...).', 'bs_onb_items_desc' => 'Go to the Summary tab to list your fixed expenses (Rent, Insurance...).',
'bs_rule_search_ph' => '🔍 Search for a keyword (e.g. WALMART)...', 'bs_rule_search_ph' => '🔍 Search for a keyword (e.g. WALMART)...',
'error_loading_settings' => 'Error loading settings', 'error_loading_settings' => 'Error loading settings',
'settings' => 'Settings', 'bud_err_delete_system_cat' => 'Cannot delete a core system category.',
// --- BUDGET: TRACKING --- // Budget : Tracking
'bud_rem_school' => 'School (estimated remaining)', 'bud_rem_school' => 'School (estimated remaining)',
'bud_rem_fmcg' => 'Groceries (estimated remaining)', 'bud_rem_fmcg' => 'Groceries (estimated remaining)',
'bud_rem_fuel' => 'Fuel (estimated remaining)', 'bud_rem_fuel' => 'Fuel (estimated remaining)',
@@ -792,8 +690,9 @@ return [
'bud_bar_actual' => 'Actual', 'bud_bar_actual' => 'Actual',
'bud_bar_theoretical' => 'Theoretical', 'bud_bar_theoretical' => 'Theoretical',
'bud_bar_max_cap' => 'Max capacity', 'bud_bar_max_cap' => 'Max capacity',
'bud_select_beneficiary' => 'Choose an expected income',
// --- BUDGET: RECAP --- // Budget : Recap
'bud_recap_monthly_title' => 'Monthly summary', 'bud_recap_monthly_title' => 'Monthly summary',
'bud_recap_btn_add' => 'Add a cost / income', 'bud_recap_btn_add' => 'Add a cost / income',
'bud_planned_amount' => 'Planned amount', 'bud_planned_amount' => 'Planned amount',
@@ -833,46 +732,16 @@ return [
'bud_label_regularization' => 'Regularisation', 'bud_label_regularization' => 'Regularisation',
'bud_reg_none' => 'None', 'bud_reg_none' => 'None',
'bud_recap_confirm_delete' => 'Are you sure you want to delete this item?', 'bud_recap_confirm_delete' => 'Are you sure you want to delete this item?',
'bud_err_delete' => 'Error while deleting.',
'bud_prev_monthly_target' => 'Target amount / Monthly payment (€)', 'bud_prev_monthly_target' => 'Target amount / Monthly payment (€)',
'bud_prev_transfer_dest' => 'Transfer destination', 'bud_prev_transfer_dest' => 'Transfer destination',
'bud_prev_none' => 'No destination (Standard expense)', 'bud_prev_none' => 'No destination (Standard expense)',
// --- BUDGET: SAVINGS --- // Budget : Savings
'bud_sav_add_month' => 'Enter a month', 'bud_sav_add_month' => 'Enter a month',
'bud_sav_add_one_month' => '+1 Month', 'bud_sav_add_one_month' => '+1 Month',
'bud_sav_no_data' => 'No data for %s.', 'bud_sav_no_data' => 'No data for %s.',
'bud_sav_post_month' => 'Category / Month', 'bud_sav_post_month' => 'Category / Month',
'bud_sav_from_date' => 'From %s', 'bud_sav_from_date' => 'From %s',
'bud_sav_edit_modal' => 'Edit with modal',
'bud_sav_delete_month' => 'Delete entire month',
'bud_sav_total_bank' => 'Total bank',
'bud_sav_extra' => 'Extra',
'bud_sav_modal_title_add' => 'Enter a month',
'bud_sav_modal_title_edit' => 'Edit:',
'bud_sav_month_concerned' => 'Month concerned',
'bud_sav_total_bank_eur' => 'Total in bank (€)',
'bud_sav_ventilation' => 'Breakdown',
'bud_sav_adj_help' => 'Use the adjustment (+/-) to recalculate automatically.',
'bud_sav_add_line' => 'Line',
'bud_sav_current' => 'Current',
'bud_sav_adjust' => 'Adj. (+/-)',
'bud_sav_new' => 'New',
'bud_sav_sum_mode_title' => 'Enable quick addition',
'bud_sav_selection' => 'Selection:',
'bud_sav_ph_name' => 'Name (e.g. Holidays)',
'bud_sav_saving' => 'Saving...',
'bud_err_tech' => 'A technical error occurred.',
'bud_sav_confirm_delete_month' => 'Delete ALL of month %m for %o?',
'bud_sav_prompt_duplicate' => "Do you want to copy data from %s to %t1?\n\nEnter the new TOTAL bank balance (€) for %t2:",
'bud_err_server' => 'Server error: ',
'bud_err_network_dup' => 'Network error during duplication.',
'budget_tab_kids' => 'Kids 👶',
'bud_sav_add_one_month' => '+1 Month',
'bud_sav_add_month' => 'Add a month',
'bud_sav_no_data' => 'No savings data for %s.',
'bud_sav_post_month' => 'Item / Month',
'bud_sav_from_date' => 'From %s',
'bud_sav_edit_modal' => 'Edit this month', 'bud_sav_edit_modal' => 'Edit this month',
'bud_sav_delete_month' => 'Delete this month', 'bud_sav_delete_month' => 'Delete this month',
'bud_sav_total_bank' => 'TOTAL BANK', 'bud_sav_total_bank' => 'TOTAL BANK',
@@ -884,7 +753,6 @@ return [
'bud_sav_ventilation' => 'Accounts breakdown', 'bud_sav_ventilation' => 'Accounts breakdown',
'bud_sav_adj_help' => 'Enter adjustments (+/-) to auto-calculate.', 'bud_sav_adj_help' => 'Enter adjustments (+/-) to auto-calculate.',
'bud_sav_add_line' => 'Add line', 'bud_sav_add_line' => 'Add line',
'bud_category' => 'Category',
'bud_sav_current' => 'Current', 'bud_sav_current' => 'Current',
'bud_sav_adjust' => 'Adjustment', 'bud_sav_adjust' => 'Adjustment',
'bud_sav_new' => 'New', 'bud_sav_new' => 'New',
@@ -893,18 +761,12 @@ return [
'bud_sav_ph_name' => 'Account name', 'bud_sav_ph_name' => 'Account name',
'bud_sav_new_line' => 'New line', 'bud_sav_new_line' => 'New line',
'bud_sav_prompt_new_line' => 'Name of the new savings line:', 'bud_sav_prompt_new_line' => 'Name of the new savings line:',
// JS & Errors
'bud_sav_confirm_delete_month' => 'Are you sure you want to delete all data of %m for %o?', 'bud_sav_confirm_delete_month' => 'Are you sure you want to delete all data of %m for %o?',
'bud_sav_prompt_duplicate' => "Do you want to duplicate data from %s to %t1?\n\nEnter the new BANK TOTAL (€) for %t2:", 'bud_sav_prompt_duplicate' => "Do you want to duplicate data from %s to %t1?\n\nEnter the new BANK TOTAL (€) for %t2:",
'bud_err_tech' => 'A technical error occurred.',
'bud_err_server' => 'Server error: ',
'bud_err_network_dup' => 'Network error during duplication.', 'bud_err_network_dup' => 'Network error during duplication.',
'bud_sav_saving' => 'Saving...', 'bud_sav_saving' => 'Saving...',
'bud_err_delete' => 'Error during deletion.',
'bud_err_delete_system_cat' => 'Cannot delete a core system category.',
// --- BUDGET: FORECAST --- // Budget : Forecast
'bud_prev_incomes' => 'Income', 'bud_prev_incomes' => 'Income',
'bud_prev_person' => 'Person', 'bud_prev_person' => 'Person',
'bud_prev_salary' => 'Salary', 'bud_prev_salary' => 'Salary',
@@ -939,6 +801,10 @@ return [
'bud_prev_confirm_copy' => "Do you want to copy data from %s to %t?\n\n⚠️ This will overwrite all values already present for %t.", 'bud_prev_confirm_copy' => "Do you want to copy data from %s to %t?\n\n⚠️ This will overwrite all values already present for %t.",
'bud_prev_confirm_transfers' => "Confirm that %p has made all their transfers for %m?\n\nThis will automatically update Savings.", 'bud_prev_confirm_transfers' => "Confirm that %p has made all their transfers for %m?\n\nThis will automatically update Savings.",
'bud_prev_label_name' => 'Name', 'bud_prev_label_name' => 'Name',
'bud_prev_target_ph' => 'E.g., 150',
'bud_prev_transfer_to' => 'To',
// Budget : Tricount / Advances
'bud_adv_title' => 'Advances & Family Tricount', 'bud_adv_title' => 'Advances & Family Tricount',
'bud_adv_add' => 'Add an Advance', 'bud_adv_add' => 'Add an Advance',
'bud_adv_edit' => 'Edit Advance', 'bud_adv_edit' => 'Edit Advance',
@@ -955,18 +821,8 @@ return [
'bud_adv_ph_desc' => 'e.g., Groceries, Electricity bill...', 'bud_adv_ph_desc' => 'e.g., Groceries, Electricity bill...',
'bud_adv_confirm_resolve' => 'Confirm the complete reimbursement of this advance?', 'bud_adv_confirm_resolve' => 'Confirm the complete reimbursement of this advance?',
'bud_adv_confirm_delete' => 'Permanently delete this advance?', 'bud_adv_confirm_delete' => 'Permanently delete this advance?',
'date' => 'Date',
'bud_label_name' => 'Description',
'bud_amount' => 'Amount',
'actions' => 'Actions',
'edit' => 'Edit',
'delete' => 'Delete',
'btn_cancel' => 'Cancel',
'btn_save' => 'Save',
'bud_prev_target_ph' => 'E.g., 150',
'bud_prev_transfer_to' => 'To',
// --- Module Budget : Provisions & Optimisation --- // Budget : Provisions & Optimization
'budget_provisions_title' => 'Provisions & Cashflow Optimization', 'budget_provisions_title' => 'Provisions & Cashflow Optimization',
'btn_optimize_cashflow' => 'Optimize My Savings', 'btn_optimize_cashflow' => 'Optimize My Savings',
'add_new_provision' => 'Anticipate an upcoming major expense', 'add_new_provision' => 'Anticipate an upcoming major expense',
@@ -974,71 +830,46 @@ return [
'provision_placeholder_wood' => 'E.g., Firewood order, Car service...', 'provision_placeholder_wood' => 'E.g., Firewood order, Car service...',
'amount' => 'Amount', 'amount' => 'Amount',
'expected_date' => 'Expected date', 'expected_date' => 'Expected date',
'btn_add' => 'Add',
'upcoming_provisions_list' => 'Scheduled expenses', 'upcoming_provisions_list' => 'Scheduled expenses',
'optimization_assistant_title' => 'Fortnightly Interest Optimization Assistant', 'optimization_assistant_title' => 'Fortnightly Interest Optimization Assistant',
'error_generic' => 'An error occurred',
'success_add_provision' => 'Forecasted expense added successfully!', 'success_add_provision' => 'Forecasted expense added successfully!',
'no_provisions' => 'No forecasted expenses registered at the moment.', 'no_provisions' => 'No forecasted expenses registered at the moment.',
'btn_delete' => 'Delete',
'savings_this_month' => 'Total savings to allocate this month', 'savings_this_month' => 'Total savings to allocate this month',
'calculate' => 'Calculate optimal strategy', 'calculate' => 'Calculate optimal strategy',
'date_past_warning' => 'The selected date has already passed!', 'date_past_warning' => 'The selected date has already passed!',
'budget_tab_provisions' => 'Forecasts',
// ========================================== // ==========================================
// MODULE: GIFTS (gift-list) // 8. GIFTS
// ========================================== // ==========================================
// 1. Titles and headers
'gift_page_title' => 'Gift List', 'gift_page_title' => 'Gift List',
'gift_main_title' => 'Gifts of %s', // %s will be replaced by the year (e.g., Gifts of 2026) 'gift_main_title' => 'Gifts of %s',
'settings' => 'Settings',
// 2. Filters
'gift_filter_all_children' => 'All children', 'gift_filter_all_children' => 'All children',
'gift_filter_all_adults' => 'All adults', 'gift_filter_all_adults' => 'All adults',
// 3. Content and empty states
'gift_add_gift' => 'Add', 'gift_add_gift' => 'Add',
'gift_empty_state_no_gifts' => 'No gifts recorded for this occasion.', 'gift_empty_state_no_gifts' => 'No gifts recorded for this occasion.',
'gift_empty_state_no_filter' => 'No gifts match your filters.', 'gift_empty_state_no_filter' => 'No gifts match your filters.',
'gift_paid_by' => 'Paid by %s', // %s will be replaced by the payer's name 'gift_paid_by' => 'Paid by %s',
// 4. Tricount Section (Balance & Refunds)
'gift_liquidations' => 'Balance & Refunds', 'gift_liquidations' => 'Balance & Refunds',
'gift_no_debt' => 'Everything is settled, no debts!', 'gift_no_debt' => 'Everything is settled, no debts!',
'gift_owes' => 'owes', 'gift_owes' => 'owes',
'gift_view_matrix' => 'View detailed matrix', 'gift_view_matrix' => 'View detailed matrix',
'gift_debtor' => 'Debtor', 'gift_debtor' => 'Debtor',
'gift_creditor' => 'Creditor', 'gift_creditor' => 'Creditor',
// 5. Modal: Add/Edit Gift
'gift_col_adult' => 'On behalf of', 'gift_col_adult' => 'On behalf of',
'gift_modal_payer' => 'Paid by', 'gift_modal_payer' => 'Paid by',
'gift_modal_gift_name' => 'Gift description', 'gift_modal_gift_name' => 'Gift description',
'gift_modal_price' => 'Estimated / paid price (€)', 'gift_modal_price' => 'Estimated / paid price (€)',
'gift_modal_link' => 'Product link (URL)', 'gift_modal_link' => 'Product link (URL)',
'gift_modal_title_add' => 'Add for %s', // JS: %s = child's name 'gift_modal_title_add' => 'Add for %s',
'gift_modal_title_edit' => 'Edit gift', // JS 'gift_modal_title_edit' => 'Edit gift',
'gift_confirm_delete' => 'Are you sure you want to delete this gift?', // JS 'gift_confirm_delete' => 'Are you sure you want to delete this gift?',
// 6. Modal: Occasions Settings
'gift_settings_title' => 'Occasions Settings', 'gift_settings_title' => 'Occasions Settings',
'gift_settings_add_title' => '+ Add an occasion', 'gift_settings_add_title' => '+ Add an occasion',
'gift_settings_name_placeholder' => 'Name (e.g. Valentine\'s Day)', 'gift_settings_name_placeholder' => 'Name (e.g. Valentine\'s Day)',
'gift_settings_date_placeholder' => 'MM-DD', 'gift_settings_date_placeholder' => 'MM-DD',
'gift_settings_date_help' => 'Date (MM-DD) is optional. Leave empty for a floating date.', 'gift_settings_date_help' => 'Date (MM-DD) is optional. Leave empty for a floating date.',
'gift_settings_empty' => 'No occasion configured.', // JS 'gift_settings_empty' => 'No occasion configured.',
'gift_settings_active' => 'Active', // JS 'gift_settings_active' => 'Active',
// 7. Generic buttons
'btn_cancel' => 'Cancel',
'btn_save' => 'Save',
'btn_add' => 'Add',
'loading' => 'Loading...',
// --- MODULE CADEAUX : SETTINGS ---
'gift_settings' => 'Settings', 'gift_settings' => 'Settings',
'gift_tab_occasions' => 'Occasions & Events', 'gift_tab_occasions' => 'Occasions & Events',
'gift_tab_proches' => 'Relatives (Outside household)', 'gift_tab_proches' => 'Relatives (Outside household)',
@@ -1055,9 +886,8 @@ return [
'gift_settings_edit_proche' => 'Edit relative', 'gift_settings_edit_proche' => 'Edit relative',
// ========================================== // ==========================================
// GARAGE MANAGER // 9. GARAGE
// ========================================== // ==========================================
'menu_garage' => 'Garage',
'garage_page_title' => 'HouseHub - Garage', 'garage_page_title' => 'HouseHub - Garage',
'garage_stat_vehicles' => 'Vehicles', 'garage_stat_vehicles' => 'Vehicles',
'garage_stat_maintenances' => 'Services', 'garage_stat_maintenances' => 'Services',
@@ -1106,4 +936,38 @@ return [
'garage_change_photo' => 'Change photo', 'garage_change_photo' => 'Change photo',
'garage_new_photo' => 'New photo', 'garage_new_photo' => 'New photo',
'garage_update_photo' => 'Update', 'garage_update_photo' => 'Update',
// ==========================================
// 10. LISTS & GROCERIES
// ==========================================
'liste_placeholder_add' => 'Add an item...',
'liste_btn_add' => 'Add',
'liste_btn_uncheck_all' => 'Uncheck all',
'liste_btn_delete_picked' => 'Delete checked items',
'liste_btn_clear_all' => 'Clear list',
'liste_subtitle' => '{pending} to do · {cart} checked',
'liste_added' => 'Added',
'liste_updated' => 'Updated',
'liste_deleted' => 'Deleted',
'liste_already_in' => 'Already in the list',
'liste_confirm_clear' => 'Clear the entire list?',
'liste_confirm_delete_list' => 'Delete this list and all its items?',
'liste_history_title' => 'Recently used — click to add',
'liste_new_list' => 'New list',
'liste_list_name_placeholder'=> 'List name...',
'liste_create' => 'Create',
'liste_rename_list' => 'Rename',
'liste_new_name' => 'New name:',
'liste_list_deleted' => 'List deleted',
'liste_list_created' => 'List created',
'liste_list_renamed' => 'List renamed',
'liste_edit_placeholder' => 'Edit item:',
'liste_empty_state' => 'Create your first list using the + button above.',
'liste_settings_title' => 'Lists — history',
'liste_settings_intro' => 'Maximum number of items remembered in history (shared across lists).',
'liste_settings_history_max' => 'History size',
'liste_settings_history_hint'=> 'Between 1 and 50.',
'groceries_settings_saved' => 'Preferences saved.',
'groceries_settings_error' => 'Could not save:',
'groceries_err_duplicate' => 'This product is already on the list.',
]; ];
+241 -405
View File
@@ -1,32 +1,23 @@
<?php <?php
// Dictionnaire Français // Dictionnaire Français - HouseHub (Optimisé & Dédupliqué)
return [ return [
// ========================================== // ==========================================
// TEST AUTO // 1. GLOBAL, NAVIGATION & ACTIONS
// ==========================================
'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_home' => 'Accueil',
'menu_calendar' => 'Calendrier', 'menu_calendar' => 'Calendrier',
'menu_budget' => 'Budget', 'menu_budget' => 'Budget',
'menu_holidays' => 'Voyages', 'menu_holidays' => 'Voyages',
'menu_gifts' => 'Cadeaux', 'menu_gifts' => 'Cadeaux',
'menu_garage' => 'Garage',
'menu_memo' => 'Notes',
'menu_todo' => 'Todo',
'menu_liste' => 'Listes',
'menu_groceries' => 'Courses',
'menu_calendar_ios' => 'Calendrier iOS', 'menu_calendar_ios' => 'Calendrier iOS',
'menu_printvault' => 'PrintVault',
'menu_planka' => 'Planka',
'nav_home' => 'Accueil', 'nav_home' => 'Accueil',
'nav_calendar' => 'Calendrier', 'nav_calendar' => 'Calendrier',
'nav_budget' => 'Budget', 'nav_budget' => 'Budget',
@@ -34,8 +25,6 @@ return [
'nav_gifts' => 'Cadeaux', 'nav_gifts' => 'Cadeaux',
'aria_menu' => 'Menu mobile', 'aria_menu' => 'Menu mobile',
// Boutons et actions globales
'actions' => 'Actions', 'actions' => 'Actions',
'edit' => 'Modifier', 'edit' => 'Modifier',
'delete' => 'Supprimer', 'delete' => 'Supprimer',
@@ -45,28 +34,33 @@ return [
'btn_cancel' => 'Annuler', 'btn_cancel' => 'Annuler',
'btn_delete' => 'Supprimer', 'btn_delete' => 'Supprimer',
'btn_close' => 'Fermer', 'btn_close' => 'Fermer',
'btn_add' => 'Ajouter',
'btn_back' => '◀ Retour', 'btn_back' => '◀ Retour',
'btn_edit_bases' => '⚙️ Modifier les bases', 'btn_edit_bases' => '⚙️ Modifier les bases',
'btn_edit' => 'Modifier', 'btn_edit' => 'Modifier',
'error_occured' => 'Une erreur est survenue.',
// Mots génériques & Erreurs
'error' => 'Erreur.', 'error' => 'Erreur.',
'error_occured' => 'Une erreur est survenue.',
'error_network' => 'Erreur réseau',
'error_generic' => 'Une erreur est survenue',
'confirm_delete' => 'Es-tu sûr de vouloir supprimer cet élément ?', 'confirm_delete' => 'Es-tu sûr de vouloir supprimer cet élément ?',
'loading' => 'Chargement...',
'date' => 'Date',
'settings' => 'Paramètres',
// Mois & Jours // Mois & Jours
'month_01' => 'Janvier', 'month_02' => 'Février', 'month_03' => 'Mars', 'month_01' => 'Janvier', 'month_02' => 'Février', 'month_03' => 'Mars', 'month_04' => 'Avril', 'month_05' => 'Mai', 'month_06' => 'Juin',
'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',
'month_07' => 'Juillet', 'month_08' => 'Août', 'month_09' => 'Septembre', 'month_jan' => 'Janvier', 'month_feb' => 'Février', 'month_mar' => 'Mars', 'month_apr' => 'Avril', 'month_may' => 'Mai', 'month_jun' => 'Juin',
'month_10' => 'Octobre', 'month_11' => 'Novembre','month_12' => 'Décembre', 'month_jul' => 'Juillet', 'month_aug' => 'Août', 'month_sep' => 'Septembre', 'month_oct' => 'Octobre', 'month_nov' => 'Novembre', 'month_dec' => 'Décembre',
'day_mon' => 'Lun', 'day_tue' => 'Mar', 'day_wed' => 'Mer', 'day_mon' => 'Lun', 'day_tue' => 'Mar', 'day_wed' => 'Mer', 'day_thu' => 'Jeu', 'day_fri' => 'Ven', 'day_sat' => 'Sam', 'day_sun' => 'Dim',
'day_thu' => 'Jeu', 'day_fri' => 'Ven', 'day_sat' => 'Sam', 'day_sun' => 'Dim',
// ========================================== // ==========================================
// AUTHENTIFICATION / LOGIN // 2. AUTHENTIFICATION / LOGIN
// ========================================== // ==========================================
'login_title' => 'Connexion - HouseHub', 'login_title' => 'Connexion - HouseHub',
'login_header' => 'Connexion', 'login_header' => 'Connexion',
'login_subtitle' => 'Veuillez vous identifier pour continuer',
'label_username' => 'Identifiant', 'label_username' => 'Identifiant',
'label_password' => 'Mot de passe', 'label_password' => 'Mot de passe',
'placeholder_username' => 'ex: pacha', 'placeholder_username' => 'ex: pacha',
@@ -74,19 +68,19 @@ return [
'btn_login_submit' => 'Se connecter', 'btn_login_submit' => 'Se connecter',
'logout' => 'Déconnexion', 'logout' => 'Déconnexion',
'btn_logout' => 'Déconnexion', 'btn_logout' => 'Déconnexion',
'login_remember_me' => 'Se souvenir de moi',
'error_missing_fields' => 'Champs obligatoires.', 'error_missing_fields' => 'Champs obligatoires.',
'error_invalid_credentials' => 'Identifiants incorrects.', 'error_invalid_credentials' => 'Identifiants incorrects.',
'login_subtitle' => 'Veuillez vous identifier pour continuer',
'login_remember_me' => 'Se souvenir de moi',
// ========================================== // ==========================================
// ACCUEIL / INDEX // 3. ACCUEIL & DASHBOARD
// ========================================== // ==========================================
'home_title' => 'HouseHub - Accueil', 'home_title' => 'HouseHub - Accueil',
'home_welcome' => 'Bienvenue sur HouseHub', 'home_welcome' => 'Bienvenue sur HouseHub',
'home_subtitle' => "Centre de contrôle de l'organisation familiale.", 'home_subtitle' => "Centre de contrôle de l'organisation familiale.",
'home_logged_as' => 'Connecté en tant que', 'home_logged_as' => 'Connecté en tant que',
'home_modules_title' => 'Modules', 'home_modules_title' => 'Modules',
'mod_calendar_name' => 'Calendrier Familial', 'mod_calendar_name' => 'Calendrier Familial',
'mod_calendar_desc' => "Gérez les congés, les modes de garde et l'organisation hebdomadaire.", 'mod_calendar_desc' => "Gérez les congés, les modes de garde et l'organisation hebdomadaire.",
'mod_holidays_name' => 'Vacances', 'mod_holidays_name' => 'Vacances',
@@ -99,49 +93,19 @@ return [
'mod_garage_desc' => 'Suivez l\'entretien de vos véhicules, les pièces utilisées et les coûts.', '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_name' => 'Notes',
'mod_memo_desc' => 'Vos mémos, recettes, instructions et infos diverses avec Markdown et pièces jointes.', '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_name' => 'Todo',
'mod_todo_desc' => 'Gérez vos tâches, listes de courses et rappels en famille.', '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',
// Module Liste (remplace Courses)
'mod_liste_name' => 'Listes', 'mod_liste_name' => 'Listes',
'mod_liste_desc' => 'Listes partagées nommées — courses, bricolage, pharmacie… Autant de listes que nécessaire.', 'mod_liste_desc' => 'Listes partagées nommées — courses, bricolage, pharmacie… Autant de listes que nécessaire.',
'menu_liste' => 'Listes', 'mod_groceries_name' => 'Courses',
'liste_placeholder_add' => 'Ajouter un article…', 'mod_groceries_desc' => 'Liste partagée : ajoutez des produits et cochez-les quand ils sont dans le caddie.',
'liste_btn_add' => 'Ajouter', 'mod_calendar_ios_name' => 'Calendrier iOS',
'liste_btn_uncheck_all' => 'Tout décocher', 'mod_calendar_ios_desc' => 'Synchronisez vos événements HouseHub avec votre calendrier iPhone (iCloud CalDAV).',
'liste_btn_delete_picked' => 'Supprimer les cochés', 'mod_printvault_name'=> 'PrintVault',
'liste_btn_clear_all' => 'Vider la liste', 'mod_printvault_desc'=> 'Gérez vos fichiers d\'impression 3D — STL, 3MF, GCode avec viewer interactif.',
'liste_subtitle' => '{pending} à faire · {cart} cochés', 'mod_planka_name' => 'Planka',
'liste_added' => 'Ajouté', 'mod_planka_desc' => 'Gérez vos projets en mode Kanban avec Planka.',
'liste_updated' => 'Modifié',
'liste_deleted' => 'Supprimé',
'liste_already_in' => 'Déjà dans la liste',
'liste_confirm_clear' => 'Vider toute la liste ?',
'liste_confirm_delete_list' => 'Supprimer cette liste et tous ses articles ?',
'liste_history_title' => 'Récemment utilisés — clic pour rajouter',
'liste_new_list' => 'Nouvelle liste',
'liste_list_name_placeholder'=> 'Nom de la liste…',
'liste_create' => 'Créer',
'liste_rename_list' => 'Renommer',
'liste_new_name' => 'Nouveau nom :',
'liste_list_deleted' => 'Liste supprimée',
'liste_list_created' => 'Liste créée',
'liste_list_renamed' => 'Liste renommée',
'liste_edit_placeholder' => 'Modifier l\'article :',
'liste_empty_state' => 'Créez votre première liste avec le bouton + ci-dessus.',
'liste_settings_title' => 'Listes — historique',
'liste_settings_intro' => 'Nombre maximum d\'articles mémorisés dans l\'historique (commun à toutes les listes).',
'liste_settings_history_max' => 'Taille de l\'historique',
'liste_settings_history_hint'=> 'Entre 1 et 50.',
'groceries_settings_saved' => 'Préférences enregistrées.',
'groceries_settings_error' => 'Impossible d\'enregistrer :',
'groceries_err_duplicate' => 'Ce produit est déjà dans la liste.',
'cta_open' => 'Ouvrir', 'cta_open' => 'Ouvrir',
'cta_explore' => 'Explorer', 'cta_explore' => 'Explorer',
'cta_view_lists' => 'Déballer', 'cta_view_lists' => 'Déballer',
@@ -151,15 +115,52 @@ return [
'cta_check' => 'Cocher', 'cta_check' => 'Cocher',
'cta_cart' => 'Faire les courses', 'cta_cart' => 'Faire les courses',
'cta_sync' => 'Synchroniser', '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', 'cta_print' => 'Imprimer',
'mod_planka_name' => 'Planka',
'mod_planka_desc' => 'Gérez vos projets en mode Kanban avec Planka.',
'menu_planka' => 'Planka',
// --- SETTINGS : ENFANTS --- // ==========================================
// 4. PARAMÈTRES (SETTINGS)
// ==========================================
'set_title_page' => '⚙️ Paramètres',
'set_title_lang' => '🌐 Langue / Language',
'set_title_modules' => '🧩 Modules actifs',
'set_desc_modules' => 'Choisissez les modules visibles dans la navigation.',
'set_title_ios' => '📱 Intégration Calendrier iOS (CalDAV)',
'set_desc_ios' => 'Configurez ici votre calendrier iCloud pour synchroniser les événements.',
'set_label_apple_id' => 'Identifiant Apple (email iCloud)',
'set_label_apple_pwd' => 'Mot de passe d\'app Apple',
'set_label_apple_url' => 'URL du calendrier CalDAV',
'set_btn_test_ios' => 'Tester la connexion',
'set_btn_disconnect_ios' => 'Déconnecter',
'set_title_bg' => '🖼️ Image d\'accueil',
'set_desc_bg' => 'Photo de fond affichée sur la page d\'accueil.',
'set_badge_custom_bg' => 'Image personnalisée',
'set_label_new_bg' => 'Nouvelle image (jpg, png, webp — max 10 Mo)',
'set_btn_reset_bg' => '🔄 Remettre l\'image par défaut',
'set_confirm_reset_bg' => 'Revenir à l\'image par défaut ?',
'set_title_profile' => '👤 Mon profil',
'set_label_username' => 'Nom d\'utilisateur',
'set_label_display_name' => 'Prénom / Pseudo affiché',
'set_label_profile_color' => 'Couleur thématique de mon profil',
'set_desc_profile_color' => 'Cette couleur sera utilisée pour vos grilles de budget, calendriers et indicateurs personnels.',
'set_title_pwd' => '🔒 Changer le mot de passe',
'set_label_cur_pwd' => 'Mot de passe actuel',
'set_label_new_pwd' => 'Nouveau mot de passe',
'set_label_confirm_pwd' => 'Confirmer',
'set_btn_edit' => 'Modifier',
'set_title_family' => '🏠 Mon espace familial',
'set_label_family_name' => 'Nom de l\'espace',
'set_desc_invite' => 'Code d\'invitation — partagez-le pour inviter quelqu\'un',
'set_title_copy' => 'Cliquer pour copier',
'set_msg_copied' => '✓ Copié !',
'set_btn_new_code' => '🔄 Nouveau code',
'set_confirm_new_code' => 'Regénérer le code ? L\'ancien sera invalidé.',
'set_desc_register_link' => 'Lien d\'inscription :',
'set_title_members' => 'Membres',
'set_badge_admin' => 'Admin',
'set_title_attached' => '🧸 Profils rattachés',
'set_desc_attached' => 'Membres gérés par le foyer n\'ayant pas d\'accès direct.',
'set_empty_attached' => 'Aucun profil rattaché.',
'set_link_admin' => '→ Panneau d\'administration',
'set_kids_title' => 'Enfants du foyer', 'set_kids_title' => 'Enfants du foyer',
'set_kids_desc' => 'Gérez la liste des enfants pour les associer à l\'épargne, aux cadeaux, etc.', 'set_kids_desc' => 'Gérez la liste des enfants pour les associer à l\'épargne, aux cadeaux, etc.',
'set_add_kid_placeholder' => 'Prénom de l\'enfant', 'set_add_kid_placeholder' => 'Prénom de l\'enfant',
@@ -172,29 +173,23 @@ return [
'set_care_modes' => 'Modes de garde usuels', 'set_care_modes' => 'Modes de garde usuels',
'set_add_care_mode' => 'Ajouter un mode', 'set_add_care_mode' => 'Ajouter un mode',
'btn_save_config' => 'Enregistrer', 'btn_save_config' => 'Enregistrer',
'settings_profile_added' => 'Profil de %s ajouté avec succès.',
'settings_err_name_required' => 'Le prénom est obligatoire.', // Labels Profils
'settings_attached_profiles_title' => 'Profils rattachés',
'settings_attached_profiles_desc' => 'Membres gérés par le foyer (Enfants, Nounous, Proches) n\'ayant pas d\'accès direct.',
'settings_no_attached_profiles' => 'Aucun profil rattaché.',
'label_firstname' => 'Prénom', 'label_firstname' => 'Prénom',
'placeholder_firstname_ex' => 'Ex: Pol, Carole...', 'placeholder_firstname_ex' => 'Ex: Pol, Carole...',
'label_role' => 'Rôle', 'label_role' => 'Rôle',
'role_child' => '👶 Enfant',
'role_child_icon' => '👶 Enfant', 'role_child_icon' => '👶 Enfant',
'role_helper' => '💼 Intervenant',
'role_helper_icon' => '💼 Intervenant', 'role_helper_icon' => '💼 Intervenant',
'role_relative' => '👵 Proche',
'role_relative_icon' => '👵 Proche', 'role_relative_icon' => '👵 Proche',
'role_unknown' => 'Inconnu', 'role_unknown' => 'Inconnu',
'label_color' => 'Couleur', 'label_color' => 'Couleur',
'confirm_delete_profile' => 'Supprimer définitivement ce profil ?',
'change_color' => 'Changer la couleur', 'change_color' => 'Changer la couleur',
'color_updated' => 'Couleur mise à jour !', 'confirm_delete_profile' => 'Supprimer définitivement ce profil ?',
'set_success_color_profile' => 'Couleur du profil mise à jour.',
'set_success_color_update' => 'Couleur mise à jour !',
'set_desc_profile_color' => 'Cette couleur sera utilisée pour vos grilles de budget, calendriers et indicateurs personnels.',
'placeholder_apple_id' => 'nom@icloud.com',
'placeholder_apple_pwd' => 'xxxx-xxxx-xxxx-xxxx',
// Fichier : includes/lang/fr.php // Messages Settings
'error_csrf' => 'Session invalide (CSRF). Rechargez la page.', 'error_csrf' => 'Session invalide (CSRF). Rechargez la page.',
'set_err_min_module' => 'Vous devez garder au moins un module actif.', 'set_err_min_module' => 'Vous devez garder au moins un module actif.',
'set_success_modules' => 'Modules mis à jour avec succès.', 'set_success_modules' => 'Modules mis à jour avec succès.',
@@ -224,60 +219,20 @@ return [
'set_success_profile_add' => 'Profil de %s ajouté avec succès.', 'set_success_profile_add' => 'Profil de %s ajouté avec succès.',
'set_err_name_required' => 'Le prénom est obligatoire.', 'set_err_name_required' => 'Le prénom est obligatoire.',
'set_success_profile_del' => 'Profil supprimé.', 'set_success_profile_del' => 'Profil supprimé.',
'set_title_page' => '⚙️ Paramètres',
'set_title_lang' => '🌐 Langue / Language',
'set_title_modules' => '🧩 Modules actifs',
'set_desc_modules' => 'Choisissez les modules visibles dans la navigation (partagé avec tous les membres de l\'espace).',
'set_title_ios' => '📱 Intégration Calendrier iOS (CalDAV)',
'set_desc_ios' => 'Configurez ici votre calendrier iCloud pour synchroniser les événements créés dans HouseHub.',
'set_label_apple_id' => 'Identifiant Apple (email iCloud)',
'set_label_apple_pwd' => 'Mot de passe d\'app Apple',
'set_label_apple_url' => 'URL du calendrier CalDAV',
'set_btn_test_ios' => 'Tester la connexion',
'set_btn_disconnect_ios' => 'Déconnecter',
'set_title_bg' => '🖼️ Image d\'accueil',
'set_desc_bg' => 'Photo de fond affichée sur la page d\'accueil (partagée avec tous les membres).',
'set_badge_custom_bg' => 'Image personnalisée',
'set_label_new_bg' => 'Nouvelle image (jpg, png, webp — max 10 Mo)',
'set_btn_reset_bg' => '🔄 Remettre l\'image par défaut',
'set_confirm_reset_bg' => 'Revenir à l\'image par défaut ?',
'set_title_profile' => '👤 Mon profil',
'set_label_username' => 'Nom d\'utilisateur',
'set_label_display_name' => 'Prénom / Pseudo affiché',
'set_label_profile_color' => 'Couleur thématique de mon profil',
'set_desc_profile_color' => 'Cette couleur sera utilisée pour vos grilles de budget, calendriers et indicateurs personnels.',
'set_title_pwd' => '🔒 Changer le mot de passe',
'set_label_cur_pwd' => 'Mot de passe actuel',
'set_label_new_pwd' => 'Nouveau mot de passe',
'set_label_confirm_pwd' => 'Confirmer',
'set_btn_edit' => 'Modifier',
'set_title_family' => '🏠 Mon espace familial',
'set_label_family_name' => 'Nom de l\'espace',
'set_desc_invite' => 'Code d\'invitation — partagez-le pour inviter quelqu\'un',
'set_title_copy' => 'Cliquer pour copier',
'set_msg_copied' => '✓ Copié !',
'set_btn_new_code' => '🔄 Nouveau code',
'set_confirm_new_code' => 'Regénérer le code ? L\'ancien sera invalidé.',
'set_desc_register_link' => 'Lien d\'inscription :',
'set_title_members' => 'Membres',
'set_badge_admin' => 'Admin',
'set_title_attached' => '🧸 Profils rattachés',
'set_desc_attached' => 'Membres gérés par le foyer (Enfants, Nounous, Proches) n\'ayant pas d\'accès direct.',
'role_unknown' => 'Inconnu',
'role_child' => '👶 Enfant',
'role_helper' => '💼 Intervenant',
'role_relative' => '👵 Proche',
'set_confirm_del_profile' => 'Supprimer définitivement ce profil ?',
'set_empty_attached' => 'Aucun profil rattaché.',
'set_label_firstname' => 'Prénom',
'set_label_role' => 'Rôle',
'set_label_color' => 'Couleur',
'set_link_admin' => '→ Panneau d\'administration',
'set_success_color' => 'Couleur mise à jour !', 'set_success_color' => 'Couleur mise à jour !',
'error_network' => 'Erreur réseau', 'set_success_color_profile' => 'Couleur du profil mise à jour.',
'set_success_color_update' => 'Couleur mise à jour !',
'color_updated' => 'Couleur mise à jour !',
'settings_profile_added' => 'Profil de %s ajouté avec succès.',
'settings_err_name_required' => 'Le prénom est obligatoire.',
'settings_attached_profiles_title' => 'Profils rattachés',
'settings_attached_profiles_desc' => 'Membres gérés par le foyer (Enfants, Nounous, Proches) n\'ayant pas d\'accès direct.',
'settings_no_attached_profiles' => 'Aucun profil rattaché.',
'placeholder_apple_id' => 'nom@icloud.com',
'placeholder_apple_pwd' => 'xxxx-xxxx-xxxx-xxxx',
// ========================================== // ==========================================
// FAMILY CALENDAR // 5. CALENDRIER FAMILIAL
// ========================================== // ==========================================
'fc_page_title' => 'HouseHub - Calendrier', 'fc_page_title' => 'HouseHub - Calendrier',
'fc_main_header' => 'Calendrier Familial', 'fc_main_header' => 'Calendrier Familial',
@@ -318,37 +273,37 @@ return [
'fc_err_fetch_gov' => 'Erreur lors de la connexion à l\'API gouvernementale.', '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_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_err_action' => 'Erreur lors de l\'action : ',
'fc_err_select_leave' => "Veuillez sélectionner un type de congé.", 'fc_err_select_leave' => 'Veuillez sélectionner un type de congé.',
'fc_confirm_del_catalog' => "Supprimer définitivement le congé %s du catalogue ? Cela le retirera également des membres qui l'utilisent.",
'fc_confirm_del_member_leave' => "Voulez-vous vraiment retirer ce congé pour ce membre ?",
'fc_today_short' => 'Auj.', 'fc_today_short' => 'Auj.',
'fc_today_title' => "Aujourd'hui", 'fc_today_title' => "Aujourd'hui",
'care_nounou' => 'Nounou',
'care_centre' => 'Centre de loisirs',
'care_avis' => 'Avis',
'fc_tab_foyer' => '🏡 Foyer', 'fc_tab_foyer' => '🏡 Foyer',
'fc_tab_members' => '👥 Membres & Droits', 'fc_tab_members' => '👥 Membres & Droits',
'fc_select_member' => 'Sélectionner un membre de la famille :', 'fc_select_member' => 'Sélectionner un membre :',
'fc_role_adult' => 'Adulte', 'fc_role_adult' => 'Adulte',
'fc_role_child' => 'Enfant', 'fc_role_child' => 'Enfant',
'fc_care_modes_title' => 'Modes de garde associés', 'fc_role_helper' => 'Intervenant',
'fc_care_modes_desc' => 'Cochez les modes de garde qui concernent cet enfant.', 'fc_role_unknown' => 'Inconnu',
'fc_no_care_mode' => 'Aucun mode configuré.', 'fc_care_modes_title' => 'Modes de Garde Par Défaut',
'fc_matrix_title' => '👨‍👩‍👦 Matrice des Droits aux Congés', 'fc_care_modes_desc' => 'Quels modes de garde s\'appliquent à cet enfant ?',
'fc_matrix_desc' => 'Déclarez les codes de compteurs et dates de renouvellement.', 'fc_no_care_mode' => 'Aucun mode de garde configuré dans le foyer.',
'fc_matrix_title' => 'Matrice des Congés',
'fc_matrix_desc' => 'Définissez les quotas et la date de renouvellement.',
'fc_matrix_code' => 'Code', 'fc_matrix_code' => 'Code',
'fc_matrix_date' => 'Date Reset', 'fc_matrix_date' => 'Date Reset',
'fc_matrix_empty' => 'Aucun compteur configuré.', 'fc_matrix_empty' => 'Aucun compteur défini.',
'fc_matrix_saved' => 'Matrice des droits mise à jour ! 💼', 'fc_matrix_saved' => 'Matrice enregistrée !',
'fc_child_saved' => 'Abonnement enfant enregistré !', 'fc_child_saved' => 'Sauvegardé !',
'btn_add_counter' => '➕ Ajouter', 'fc_modal_settings_title' => 'Paramètres du calendrier',
'btn_save_rights' => '💾 Enregistrer', 'fc_zone_label' => 'Zone scolaire',
'fc_modal_settings_title' => 'Paramètres du Calendrier', 'fc_zone_a' => 'Zone A',
'fc_zone_label' => 'Zone Scolaire (Vacances)', 'fc_zone_b' => 'Zone B',
'fc_zone_desc' => 'Détermine le calendrier automatique des vacances scolaires.', 'fc_zone_c' => 'Zone C',
'fc_care_modes_label' => 'Modes de Garde du Foyer', 'fc_zone_other' => 'Autre / Hors France',
'fc_care_modes_desc' => 'Gérez la liste globale des modes de garde possibles pour la famille.', 'fc_zone_desc' => 'Permet d\'afficher correctement les vacances scolaires.',
'fc_add_mode_placeholder' => 'Ex: Nounou, Casal, Grands-parents...', 'fc_care_modes_label' => 'Modes de garde',
'fc_add_mode_placeholder' => 'Ex: Nounou, Crèche...',
'fc_empty_kids_msg' => 'Aucun enfant n\'est configuré dans votre famille pour le moment.',
'fc_link_settings' => 'Aller aux paramètres généraux',
'fc_settings_updated' => 'Paramètres mis à jour avec succès !', 'fc_settings_updated' => 'Paramètres mis à jour avec succès !',
'fc_first_day' => 'Premier jour de la semaine', 'fc_first_day' => 'Premier jour de la semaine',
'fc_helper_recap' => 'Récapitulatif Intervenant', 'fc_helper_recap' => 'Récapitulatif Intervenant',
@@ -359,56 +314,32 @@ return [
'fc_full_year' => 'Année complète', 'fc_full_year' => 'Année complète',
'fc_custom_period' => 'Période spécifique...', 'fc_custom_period' => 'Période spécifique...',
'fc_worked_days' => 'Travaillés (Est.)', 'fc_worked_days' => 'Travaillés (Est.)',
'fc_presence' => 'Présence',
'fc_working_days' => 'J. Ouvrés',
'fc_absences' => 'Abs.',
'fc_recap_title' => 'Récapitulatif',
'fc_worked_est' => 'Travaillés (Est.)',
'fc_invalid_dates' => 'Sélectionnez des dates valides.',
'fc_no_leaves_taken' => 'Aucun congé posé.',
// --- CALENDRIER : PARAMÈTRES (MEMBRES & AFFICHAGE) ---
'fc_tab_display' => '🖥️ Affichage', 'fc_tab_display' => '🖥️ Affichage',
'fc_display_title' => 'Paramètres d\'affichage', 'fc_display_title' => 'Paramètres d\'affichage',
'fc_display_desc' => 'Personnalisez l\'apparence et le comportement par défaut de votre calendrier.', 'fc_display_desc' => 'Personnalisez l\'apparence et le comportement par défaut de votre calendrier.',
'fc_default_view' => 'Vue par défaut', 'fc_default_view' => 'Vue par défaut',
'fc_view_month' => '1 mois',
'fc_view_2months' => '2 mois',
'fc_view_3months' => '3 mois',
'fc_working_hours' => 'Horaires de garde (Défaut)', 'fc_working_hours' => 'Horaires de garde (Défaut)',
'fc_working_hours_desc' => 'Exemple : 08:30-18:00', 'fc_working_hours_desc' => 'Exemple : 08:30-18:00',
'fc_role_unknown' => 'Inconnu',
'fc_role_adult' => 'Adulte',
'fc_role_child' => 'Enfant',
'fc_role_helper' => 'Intervenant',
'fc_error' => 'Erreur : ', 'fc_error' => 'Erreur : ',
'fc_leave_catalog_title' => 'Catalogue des congés',
'fc_care_modes_title' => 'Modes de Garde Par Défaut', 'fc_leave_catalog_desc' => 'Définissez les types de congés possibles pour toute la famille.',
'fc_care_modes_desc' => 'Quels modes de garde s\'appliquent à cet enfant ?', 'fc_add_leave_type' => 'Ajouter un type de congé',
'fc_no_care_mode' => 'Aucun mode de garde configuré dans le foyer.', 'fc_col_code' => 'Code',
'fc_child_saved' => 'Sauvegardé !', 'fc_code_irreversible' => 'Irréversible',
'fc_col_label' => 'Label',
'fc_matrix_title' => 'Matrice des Congés', 'fc_leave_label_ph' => 'Ex: RTT, Récup...',
'fc_matrix_desc' => 'Définissez les quotas et la date de renouvellement.', 'fc_quota_default' => 'Quota par défaut',
'fc_matrix_empty' => 'Aucun compteur défini.', 'fc_reset_month' => 'Mois de renouv.',
'fc_matrix_saved' => 'Matrice enregistrée !',
'fc_leave_obsolete' => 'Obsolète', 'fc_leave_obsolete' => 'Obsolète',
'fc_leave_code_placeholder' => 'Code...', 'fc_leave_code_placeholder' => 'Code...',
'fc_leave_method_fixed' => 'Fixe', 'fc_leave_method_fixed' => 'Fixe',
'fc_leave_method_accumulated'=> 'Cumul', 'fc_leave_method_accumulated'=> 'Cumul',
'fc_date_format_placeholder'=> 'JJ/MM', 'fc_date_format_placeholder'=> 'JJ/MM',
'fc_date_format_title' => 'Format JJ/MM', 'fc_date_format_title' => 'Format JJ/MM',
'fc_table_code' => 'Code', 'fc_table_code' => 'Code',
'fc_table_method' => 'Méthode', 'fc_table_method' => 'Méthode',
'fc_table_quota' => 'Quota', 'fc_table_quota' => 'Quota',
'fc_table_renewal' => 'Renouv.', 'fc_table_renewal' => 'Renouv.',
'btn_save_rights' => 'Enregistrer',
'fc_label_carry_over' => 'Dont jours reportés (Périssables) ⚠️', 'fc_label_carry_over' => 'Dont jours reportés (Périssables) ⚠️',
'fc_carry_over_note' => 'Partie du solde global qui expirera à la date butoir définie.', 'fc_carry_over_note' => 'Partie du solde global qui expirera à la date butoir définie.',
'fc_carry_max' => 'Max Reportable', 'fc_carry_max' => 'Max Reportable',
@@ -423,58 +354,10 @@ return [
'fc_catalog_updated' => 'Catalogue mis à jour !', 'fc_catalog_updated' => 'Catalogue mis à jour !',
'fc_balance_corrected' => 'Solde corrigé !', 'fc_balance_corrected' => 'Solde corrigé !',
'fc_no_leave_configured' => 'Aucun congé configuré.', 'fc_no_leave_configured' => 'Aucun congé configuré.',
'fc_confirm_del_catalog' => 'Supprimer définitivement le congé %s du catalogue ? Cela le retirera également des membres qui l\'utilisent.',
'fc_confirm_del_member_leave'=> 'Voulez-vous vraiment retirer ce congé pour ce membre ?',
// ========================================== // Légendes Calendrier
// MODALE PARAMÈTRES CALENDRIER
// ==========================================
'fc_modal_settings_title' => 'Paramètres du calendrier',
'fc_tab_foyer' => 'Foyer',
'fc_tab_members' => 'Membres & Droits',
// Foyer : Zone scolaire
'fc_zone_label' => 'Zone scolaire',
'fc_zone_a' => 'Zone A',
'fc_zone_b' => 'Zone B',
'fc_zone_c' => 'Zone C',
'fc_zone_other' => 'Autre / Hors France',
'fc_zone_desc' => 'Permet d\'afficher correctement les vacances scolaires.',
// Foyer : Modes de garde
'fc_care_modes_label' => 'Modes de garde',
'fc_add_mode_placeholder' => 'Ex: Nounou, Crèche...',
'fc_care_modes_desc' => 'Ajoutez les différents modes de garde pour vos enfants.',
'fc_empty_kids_msg' => 'Aucun enfant n\'est configuré dans votre famille pour le moment.',
'fc_link_settings' => 'Aller aux paramètres généraux',
// Foyer : Catalogue des congés
'fc_leave_catalog_title' => 'Catalogue des congés',
'fc_leave_catalog_desc' => 'Définissez les types de congés possibles pour toute la famille.',
'fc_add_leave_type' => 'Ajouter un type de congé',
'fc_col_code' => 'Code',
'fc_code_irreversible' => 'Irréversible',
'fc_col_label' => 'Label',
'fc_leave_label_ph' => 'Ex: RTT, Récup...',
'fc_quota_default' => 'Quota par défaut',
'fc_reset_month' => 'Mois de renouv.',
// Membres
'fc_select_member' => 'Sélectionner un membre :',
// Mois (S'ils n'existent pas déjà dans ton système)
'month_jan' => 'Janvier',
'month_feb' => 'Février',
'month_mar' => 'Mars',
'month_apr' => 'Avril',
'month_may' => 'Mai',
'month_jun' => 'Juin',
'month_jul' => 'Juillet',
'month_aug' => 'Août',
'month_sep' => 'Septembre',
'month_oct' => 'Octobre',
'month_nov' => 'Novembre',
'month_dec' => 'Décembre',
'leg_presence' => 'Présence Pep', 'leg_presence' => 'Présence Pep',
'leg_school_holidays' => 'Vacances Scolaires', 'leg_school_holidays' => 'Vacances Scolaires',
'leg_public_holiday' => 'Férié', 'leg_public_holiday' => 'Férié',
@@ -483,6 +366,9 @@ return [
'leg_centre' => 'Centre', 'leg_centre' => 'Centre',
'leg_avis' => 'Avis', 'leg_avis' => 'Avis',
'fc_menu_sick' => 'Malade', 'fc_menu_sick' => 'Malade',
'care_nounou' => 'Nounou',
'care_centre' => 'Centre de loisirs',
'care_avis' => 'Avis',
'vac_toussaint' => 'Vacances de la Toussaint', 'vac_toussaint' => 'Vacances de la Toussaint',
'vac_noel' => 'Vacances de Noël', 'vac_noel' => 'Vacances de Noël',
@@ -492,12 +378,11 @@ return [
'vac_ete' => "Vacances d'Été", 'vac_ete' => "Vacances d'Été",
'btn_off' => 'Off', 'btn_off' => 'Off',
'btn_extra' => 'Extra', 'btn_extra' => 'Extra',
'fc_alert_burn_days' => '⚠️ Risque de perte : %s j à poser avant la fin de cycle',
'fc_alert_burn_days' => '⚠️ Risque de perte : %s j à poser avant le %s', 'fc_alert_burn_jra' => '⚠️ Alerte : Jours reportés expirent à la fin de ce mois !',
'fc_alert_burn_jra' => '⚠️ JRA : Seuls 2j sont reportables après février !',
// ========================================== // ==========================================
// HOLIDAYS (VOYAGES) // 6. VOYAGES (HOLIDAYS)
// ========================================== // ==========================================
'hdl_title_list' => 'HouseHub - Mes Vacances', 'hdl_title_list' => 'HouseHub - Mes Vacances',
'hdl_title_detail' => 'HouseHub - Détail du voyage', 'hdl_title_detail' => 'HouseHub - Détail du voyage',
@@ -572,9 +457,8 @@ return [
'hdl_to_place' => 'À placer', 'hdl_to_place' => 'À placer',
'hdl_from' => 'Du', 'hdl_from' => 'Du',
'hdl_to' => 'Au', 'hdl_to' => 'Au',
'hdl_btn_add_step' => 'Ajouter une étape',
'hdl_quick_edit_title' => 'Modification rapide', // Météo et spécifiques Holidays
'hdl_paid' => 'Payé',
'weather_forecast' => 'Prévisions météo', 'weather_forecast' => 'Prévisions météo',
'weather_not_available' => 'Météo indisponible', 'weather_not_available' => 'Météo indisponible',
'temp_max' => 'Temp. Max', 'temp_max' => 'Temp. Max',
@@ -589,7 +473,7 @@ return [
'hdl_default_exp_name' => 'Dépense', 'hdl_default_exp_name' => 'Dépense',
'hdl_select_beneficiary' => '-- Sélectionner --', 'hdl_select_beneficiary' => '-- Sélectionner --',
// Anciennes clés Holidays non préfixées (conservées pour compatibilité si utilisées) // Anciennes clés (conservées au cas où)
'outbound_trip' => 'Aller', 'outbound_trip' => 'Aller',
'return_trip' => 'Retour', 'return_trip' => 'Retour',
'period' => 'Période', 'period' => 'Période',
@@ -642,7 +526,7 @@ return [
'to_place' => '📥 À Placer', 'to_place' => '📥 À Placer',
// ========================================== // ==========================================
// BUDGET (GLOBAL & CATEGORIES) // 7. BUDGET (GLOBAL, SUIVI, PREV, EPARGNE, PROVISIONS)
// ========================================== // ==========================================
'budget_page_title' => 'HouseHub - Budget', 'budget_page_title' => 'HouseHub - Budget',
'budget_main_header' => 'Gestion du Budget', 'budget_main_header' => 'Gestion du Budget',
@@ -650,9 +534,16 @@ return [
'budget_tab_prev' => 'Budget 2026', 'budget_tab_prev' => 'Budget 2026',
'budget_tab_savings' => 'Épargne', 'budget_tab_savings' => 'Épargne',
'budget_tab_recap' => 'Récapitulatif', 'budget_tab_recap' => 'Récapitulatif',
'budget_tab_provisions' => 'Provisions',
'budget_tab_kids' => 'Enfants',
'budget_err_file_not_found' => 'Oups ! Fichier introuvable.', 'budget_err_file_not_found' => 'Oups ! Fichier introuvable.',
'budget_err_file_detail' => 'Vérifiez que le fichier views/%s.php existe bien.', 'budget_err_file_detail' => 'Vérifiez que le fichier views/%s.php existe bien.',
'budget_err_not_authorized' => 'Page non autorisée.', 'budget_err_not_authorized' => 'Page non autorisée.',
'bud_err_tech' => 'Une erreur technique est survenue.',
'bud_err_server' => 'Erreur serveur : ',
'bud_err_delete' => 'Erreur lors de la suppression.',
// Catégories (Budget)
'cat_income' => 'Revenus', 'cat_income' => 'Revenus',
'cat_fmcg' => 'Courses (FMCG)', 'cat_fmcg' => 'Courses (FMCG)',
'cat_fuel' => 'Essence', 'cat_fuel' => 'Essence',
@@ -660,12 +551,14 @@ return [
'cat_fixed' => 'Charges Fixes', 'cat_fixed' => 'Charges Fixes',
'cat_others' => 'Autres / Imprévus', 'cat_others' => 'Autres / Imprévus',
'cat_savings' => 'Épargne', 'cat_savings' => 'Épargne',
'budget_tab_kids' => 'Enfants',
// Paramètres (Budget Settings)
'budget_settings_title' => 'Paramètres du Budget', 'budget_settings_title' => 'Paramètres du Budget',
'bs_tab_accounts' => '💳 Comptes', 'bs_tab_accounts' => '💳 Comptes',
'bs_tab_categories' => '🏷️ Catégories', 'bs_tab_categories' => '🏷️ Catégories',
'bs_tab_rules' => '🤖 Règles d\'import', 'bs_tab_rules' => '🤖 Règles d\'import',
'bs_tab_salaries' => '💼 Salaires', 'bs_tab_salaries' => '💼 Salaires',
'bs_tab_csv' => '📥 Import CSV',
'bs_empty_accounts' => 'Aucun compte configuré.', 'bs_empty_accounts' => 'Aucun compte configuré.',
'bs_type_checking' => 'Courant', 'bs_type_checking' => 'Courant',
'bs_type_savings' => 'Épargne', 'bs_type_savings' => 'Épargne',
@@ -695,7 +588,8 @@ return [
'bs_currency_label' => 'Devise du Foyer', 'bs_currency_label' => 'Devise du Foyer',
'bs_currency_desc' => 'Devise principale utilisée pour l\'affichage de vos comptes et budgets.', 'bs_currency_desc' => 'Devise principale utilisée pour l\'affichage de vos comptes et budgets.',
'bs_currency_updated' => 'Devise mise à jour avec succès !', 'bs_currency_updated' => 'Devise mise à jour avec succès !',
// ONGLET CSV MAPPING
// CSV Mapping (Budget)
'bs_csv_title' => 'Format de l\'import CSV', 'bs_csv_title' => 'Format de l\'import CSV',
'bs_csv_desc' => 'Configurez ici les colonnes correspondantes à l\'export de votre banque.', 'bs_csv_desc' => 'Configurez ici les colonnes correspondantes à l\'export de votre banque.',
'bs_csv_delimiter' => 'Séparateur', 'bs_csv_delimiter' => 'Séparateur',
@@ -716,7 +610,6 @@ return [
'bs_csv_col_ref' => 'N° Col : Référence unique (Optionnel)', 'bs_csv_col_ref' => 'N° Col : Référence unique (Optionnel)',
'btn_save_format' => 'Enregistrer le format', 'btn_save_format' => 'Enregistrer le format',
'bs_csv_saved' => 'Format CSV enregistré', 'bs_csv_saved' => 'Format CSV enregistré',
'bs_tab_csv' => '📥 Import CSV',
'bs_csv_settings_title' => 'Configuration du format', 'bs_csv_settings_title' => 'Configuration du format',
'bs_csv_drop_title' => 'Glissez votre fichier CSV ici', 'bs_csv_drop_title' => 'Glissez votre fichier CSV ici',
'bs_csv_drop_desc' => 'ou cliquez pour parcourir vos fichiers', 'bs_csv_drop_desc' => 'ou cliquez pour parcourir vos fichiers',
@@ -726,7 +619,22 @@ return [
'bs_csv_empty_col' => 'Vide', 'bs_csv_empty_col' => 'Vide',
'bs_csv_no_data' => 'Aucune ligne de transaction trouvée dans ce fichier.', 'bs_csv_no_data' => 'Aucune ligne de transaction trouvée dans ce fichier.',
// --- BUDGET : SUIVI --- // Onboarding Budget
'bs_onb_title' => 'Bienvenue ! Configurons votre budget :',
'bs_onb_desc' => 'Complétez ces étapes pour que l\'application puisse calculer votre Reste à Vivre :',
'bs_onb_cat_link' => 'Catégories',
'bs_onb_cat_desc' => 'Créez au moins une catégorie de dépenses.',
'bs_onb_acc_link' => 'Comptes Bancaires',
'bs_onb_acc_desc' => 'Ajoutez au moins un compte courant ou épargne.',
'bs_onb_sal_link' => 'Salaires',
'bs_onb_sal_desc' => 'Renseignez les rentrées d\'argent de l\'année en cours.',
'bs_onb_items_link' => 'Lignes de Budget',
'bs_onb_items_desc' => 'Rendez-vous dans l\'onglet Récapitulatif pour lister vos charges fixes (Loyer, Assurances...).',
'bs_rule_search_ph' => '🔍 Rechercher un mot-clé (ex: AUCHAN)...',
'error_loading_settings' => 'Erreur lors du chargement des paramètres',
'bud_err_delete_system_cat' => 'Impossible de supprimer une catégorie système essentielle.',
// Budget : Suivi
'bud_rem_school' => 'École (Reste estimé)', 'bud_rem_school' => 'École (Reste estimé)',
'bud_rem_fmcg' => 'Courses (Reste estimé)', 'bud_rem_fmcg' => 'Courses (Reste estimé)',
'bud_rem_fuel' => 'Essence (Reste estimé)', 'bud_rem_fuel' => 'Essence (Reste estimé)',
@@ -779,42 +687,12 @@ return [
'bud_add_title' => 'Ajouter', 'bud_add_title' => 'Ajouter',
'bud_edit_title' => 'Modifier la transaction', 'bud_edit_title' => 'Modifier la transaction',
'bud_to_define_js' => 'à définir', '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...",
'bud_edit_title' => 'Modifier la transaction',
'bud_to_define_js' => 'à définir',
'bud_select_beneficiary' => 'Choisir un revenu attendu',
'bud_bar_actual' => 'Actuel', 'bud_bar_actual' => 'Actuel',
'bud_bar_theoretical' => 'Théorique',
'bud_bar_max_cap' => 'Capacité Max',
'bud_select_beneficiary' => 'Choisir un revenu attendu',
// ONBOARDING BUDGET // Budget : Récapitulatif
'bs_onb_title' => 'Bienvenue ! Configurons votre budget :',
'bs_onb_desc' => 'Complétez ces étapes pour que l\'application puisse calculer votre Reste à Vivre :',
'bs_onb_cat_link' => 'Catégories',
'bs_onb_cat_desc' => 'Créez au moins une catégorie de dépenses.',
'bs_onb_acc_link' => 'Comptes Bancaires',
'bs_onb_acc_desc' => 'Ajoutez au moins un compte courant ou épargne.',
'bs_onb_sal_link' => 'Salaires',
'bs_onb_sal_desc' => 'Renseignez les rentrées d\'argent de l\'année en cours.',
'bs_onb_items_link' => 'Lignes de Budget',
'bs_onb_items_desc' => 'Rendez-vous dans l\'onglet Récapitulatif pour lister vos charges fixes (Loyer, Assurances...).',
'bs_rule_search_ph' => '🔍 Rechercher un mot-clé (ex: AUCHAN)...',
'error_loading_settings' => 'Erreur lors du chargement des paramètres',
'settings' => 'Paramètres',
'bud_err_delete_system_cat' => 'Impossible de supprimer une catégorie système essentielle.',
// --- BUDGET : RECAP ---
'bud_recap_monthly_title' => 'Récapitulatif Mensuel', 'bud_recap_monthly_title' => 'Récapitulatif Mensuel',
'bud_recap_btn_add' => 'Ajouter un frais / revenu', 'bud_recap_btn_add' => 'Ajouter un frais / revenu',
'bud_planned_amount' => 'Montant Prévu', 'bud_planned_amount' => 'Montant Prévu',
@@ -854,44 +732,10 @@ return [
'bud_label_regularization' => 'Régularisation', 'bud_label_regularization' => 'Régularisation',
'bud_reg_none' => 'Aucune', 'bud_reg_none' => 'Aucune',
'bud_recap_confirm_delete' => 'Voulez-vous vraiment supprimer cet élément ?', 'bud_recap_confirm_delete' => 'Voulez-vous vraiment supprimer cet élément ?',
'bud_err_delete' => 'Erreur lors de la suppression.',
'bud_prev_monthly_target' => 'Montant cible / Mensualité (€)',
'bud_prev_transfer_dest' => 'Destination du virement',
'bud_prev_none' => 'Aucune destination (Charge standard)',
// Budget : Épargne
// --- 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_tab_kids' => 'Enfants 👶',
'bud_sav_add_one_month' => '+1 Mois',
'bud_sav_add_month' => 'Ajouter un mois', 'bud_sav_add_month' => 'Ajouter un mois',
'bud_sav_add_one_month' => '+1 Mois',
'bud_sav_no_data' => 'Aucune donnée d\'épargne pour %s.', 'bud_sav_no_data' => 'Aucune donnée d\'épargne pour %s.',
'bud_sav_post_month' => 'Poste / Mois', 'bud_sav_post_month' => 'Poste / Mois',
'bud_sav_from_date' => 'Dès le %s', 'bud_sav_from_date' => 'Dès le %s',
@@ -906,7 +750,6 @@ return [
'bud_sav_ventilation' => 'Ventilation des comptes', 'bud_sav_ventilation' => 'Ventilation des comptes',
'bud_sav_adj_help' => 'Saisissez les ajustements (+/-) pour recalculer automatiquement.', 'bud_sav_adj_help' => 'Saisissez les ajustements (+/-) pour recalculer automatiquement.',
'bud_sav_add_line' => 'Ajouter une ligne', 'bud_sav_add_line' => 'Ajouter une ligne',
'bud_category' => 'Catégorie',
'bud_sav_current' => 'Actuel', 'bud_sav_current' => 'Actuel',
'bud_sav_adjust' => 'Ajustement', 'bud_sav_adjust' => 'Ajustement',
'bud_sav_new' => 'Nouveau', 'bud_sav_new' => 'Nouveau',
@@ -915,46 +758,12 @@ return [
'bud_sav_ph_name' => 'Nom du compte', 'bud_sav_ph_name' => 'Nom du compte',
'bud_sav_new_line' => 'Nouvelle ligne', 'bud_sav_new_line' => 'Nouvelle ligne',
'bud_sav_prompt_new_line' => 'Nom de la nouvelle ligne d\'épargne :', 'bud_sav_prompt_new_line' => 'Nom de la nouvelle ligne d\'épargne :',
// --- BUDGET : PREVISION ---
'budget_provisions_title' => 'Provisions & Optimisation de Trésorerie',
'btn_optimize_cashflow' => 'Optimiser mes Économies',
'add_new_provision' => 'Anticiper une grosse dépense à venir',
'provision_label' => 'Libellé de la dépense',
'provision_placeholder_wood' => 'Ex: Commande bois de chauffage, Révision voiture...',
'amount' => 'Montant',
'expected_date' => 'Date prévue',
'btn_add' => 'Ajouter',
'upcoming_provisions_list' => 'Dépenses prévues au calendrier',
'optimization_assistant_title' => 'Assistant d\'Optimisation des Quinzaines',
'error_generic' => 'Une erreur est survenue',
'success_add_provision' => 'Dépense prévisionnelle ajoutée !',
'no_provisions' => 'Aucune dépense prévisionnelle enregistrée pour le moment.',
'btn_delete' => 'Supprimer',
'savings_this_month' => 'Économies globales à placer ce mois-ci',
'calculate' => 'Calculer la stratégie optimale',
'date_past_warning' => 'La date sélectionnée est déjà passée !',
'budget_tab_provisions' => 'Provisions',
'budget_opti_base' => 'Base',
'budget_opti_debt' => 'Dette compensée',
'budget_opti_no_config' => 'Aucune configuration de salaire trouvée pour cette année.',
'budget_opti_recap_apports' => 'Résumé des apports (Clearing) :',
'budget_opti_total_disp' => 'Total disponible pour l\'optimisation :',
'budget_opti_must_pay' => 'doit verser',
// JS & Erreurs
'bud_sav_confirm_delete_month' => 'Voulez-vous vraiment supprimer toutes les données de %m pour %o ?', 'bud_sav_confirm_delete_month' => 'Voulez-vous vraiment supprimer toutes les données de %m pour %o ?',
'bud_sav_prompt_duplicate' => "Voulez-vous dupliquer les données de %s vers %t1 ?\n\nSaisissez le nouveau TOTAL en banque (€) pour %t2 :", 'bud_sav_prompt_duplicate' => "Voulez-vous dupliquer les données de %s vers %t1 ?\n\nSaisissez le nouveau TOTAL en banque (€) pour %t2 :",
'bud_err_tech' => 'Une erreur technique est survenue.',
'bud_err_server' => 'Erreur serveur : ',
'bud_err_network_dup' => 'Erreur réseau lors de la duplication.', 'bud_err_network_dup' => 'Erreur réseau lors de la duplication.',
'bud_sav_saving' => 'Sauvegarde en cours...', 'bud_sav_saving' => 'Sauvegarde en cours...',
'bud_err_delete' => 'Erreur lors de la suppression.',
// --- BUDGET : PREVISIONNEL --- // Budget : Prévisionnel
'bud_prev_incomes' => 'Revenus', 'bud_prev_incomes' => 'Revenus',
'bud_prev_person' => 'Personne', 'bud_prev_person' => 'Personne',
'bud_prev_salary' => 'Salaire', 'bud_prev_salary' => 'Salaire',
@@ -988,9 +797,11 @@ return [
'bud_prev_err_no_history' => 'Impossible : pas d\'historique disponible pour copier.', '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_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_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', 'bud_prev_label_name' => 'Nom',
'bud_prev_target_ph' => 'Ex: 150',
'bud_prev_transfer_to' => 'Vers',
// Budget : Tricount / Avances
'bud_adv_title' => 'Avances & Tricount Familial', 'bud_adv_title' => 'Avances & Tricount Familial',
'bud_adv_add' => 'Ajouter une avance', 'bud_adv_add' => 'Ajouter une avance',
'bud_adv_edit' => 'Modifier l\'avance', 'bud_adv_edit' => 'Modifier l\'avance',
@@ -1007,62 +818,55 @@ return [
'bud_adv_ph_desc' => 'Ex: Courses, Facture Électricité...', 'bud_adv_ph_desc' => 'Ex: Courses, Facture Électricité...',
'bud_adv_confirm_resolve' => 'Confirmer le remboursement complet de cette avance ?', 'bud_adv_confirm_resolve' => 'Confirmer le remboursement complet de cette avance ?',
'bud_adv_confirm_delete' => 'Supprimer définitivement cette avance ?', 'bud_adv_confirm_delete' => 'Supprimer définitivement cette avance ?',
'bud_prev_target_ph' => 'Ex: 150',
'bud_prev_transfer_to' => 'Vers', // Budget : Provisions & Optimisation
'budget_provisions_title' => 'Provisions & Optimisation de Trésorerie',
'btn_optimize_cashflow' => 'Optimiser mes Économies',
'add_new_provision' => 'Anticiper une grosse dépense à venir',
'provision_label' => 'Libellé de la dépense',
'provision_placeholder_wood' => 'Ex: Commande bois de chauffage, Révision voiture...',
'amount' => 'Montant',
'expected_date' => 'Date prévue',
'upcoming_provisions_list' => 'Dépenses prévues au calendrier',
'optimization_assistant_title' => 'Assistant d\'Optimisation des Quinzaines',
'success_add_provision' => 'Dépense prévisionnelle ajoutée !',
'no_provisions' => 'Aucune dépense prévisionnelle enregistrée pour le moment.',
'savings_this_month' => 'Économies globales à placer ce mois-ci',
'calculate' => 'Calculer la stratégie optimale',
'date_past_warning' => 'La date sélectionnée est déjà passée !',
// ========================================== // ==========================================
// MODULE : CADEAUX (gift-list) // 8. CADEAUX (GIFTS)
// ========================================== // ==========================================
// 1. Titres et en-têtes
'gift_page_title' => 'Liste des Cadeaux', 'gift_page_title' => 'Liste des Cadeaux',
'gift_main_title' => 'Cadeaux de %s', // %s sera remplacé par l'année (ex: Cadeaux de 2026) 'gift_main_title' => 'Cadeaux de %s',
'settings' => 'Paramètres',
// 2. Filtres
'gift_filter_all_children' => 'Tous les enfants', 'gift_filter_all_children' => 'Tous les enfants',
'gift_filter_all_adults' => 'Tous les adultes', 'gift_filter_all_adults' => 'Tous les adultes',
// 3. Contenu et états vides
'gift_add_gift' => 'Ajouter', 'gift_add_gift' => 'Ajouter',
'gift_empty_state_no_gifts' => 'Aucun cadeau enregistré pour cette fête.', 'gift_empty_state_no_gifts' => 'Aucun cadeau enregistré pour cette fête.',
'gift_empty_state_no_filter' => 'Aucun cadeau ne correspond à vos filtres.', 'gift_empty_state_no_filter' => 'Aucun cadeau ne correspond à vos filtres.',
'gift_paid_by' => 'Payé par %s', // %s sera remplacé par le nom du payeur 'gift_paid_by' => 'Payé par %s',
// 4. Section Tricount (Bilan & Remboursements)
'gift_liquidations' => 'Bilan & Remboursements', 'gift_liquidations' => 'Bilan & Remboursements',
'gift_no_debt' => 'Tout est à jour, aucune dette !', 'gift_no_debt' => 'Tout est à jour, aucune dette !',
'gift_owes' => 'doit', 'gift_owes' => 'doit',
'gift_view_matrix' => 'Voir la matrice détaillée', 'gift_view_matrix' => 'Voir la matrice détaillée',
'gift_debtor' => 'Débiteur', 'gift_debtor' => 'Débiteur',
'gift_creditor' => 'Créancier', 'gift_creditor' => 'Créancier',
// 5. Modale : Ajout/Modification de Cadeau
'gift_col_adult' => 'Pour le compte de', 'gift_col_adult' => 'Pour le compte de',
'gift_modal_payer' => 'Payé par', 'gift_modal_payer' => 'Payé par',
'gift_modal_gift_name' => 'Description du cadeau', 'gift_modal_gift_name' => 'Description du cadeau',
'gift_modal_price' => 'Prix estimé / payé (€)', 'gift_modal_price' => 'Prix estimé / payé (€)',
'gift_modal_link' => 'Lien du produit (URL)', 'gift_modal_link' => 'Lien du produit (URL)',
'gift_modal_title_add' => 'Ajouter pour %s', // JS : %s = nom de l'enfant 'gift_modal_title_add' => 'Ajouter pour %s',
'gift_modal_title_edit' => 'Modifier le cadeau', // JS 'gift_modal_title_edit' => 'Modifier le cadeau',
'gift_confirm_delete' => 'Voulez-vous vraiment supprimer ce cadeau ?', // JS 'gift_confirm_delete' => 'Voulez-vous vraiment supprimer ce cadeau ?',
// 6. Modale : Paramètres des Fêtes (Nouveau !)
'gift_settings_title' => 'Configuration des Fêtes', 'gift_settings_title' => 'Configuration des Fêtes',
'gift_settings_add_title' => '+ Ajouter une occasion', 'gift_settings_add_title' => '+ Ajouter une occasion',
'gift_settings_name_placeholder' => 'Nom (ex: Saint Valentin)', 'gift_settings_name_placeholder' => 'Nom (ex: Saint Valentin)',
'gift_settings_date_placeholder' => 'MM-JJ', 'gift_settings_date_placeholder' => 'MM-JJ',
'gift_settings_date_help' => 'La date (MM-JJ) est optionnelle. Laissez vide pour une fête mobile.', 'gift_settings_date_help' => 'La date (MM-JJ) est optionnelle. Laissez vide pour une fête mobile.',
'gift_settings_empty' => 'Aucune fête configurée.', // JS 'gift_settings_empty' => 'Aucune fête configurée.',
'gift_settings_active' => 'Actif', // JS 'gift_settings_active' => 'Actif',
// 7. Boutons génériques (si tu ne les as pas déjà en global)
'btn_cancel' => 'Annuler',
'btn_save' => 'Enregistrer',
'btn_add' => 'Ajouter',
'loading' => 'Chargement...',
// --- MODULE CADEAUX : SETTINGS ---
'gift_settings' => 'Configuration', 'gift_settings' => 'Configuration',
'gift_tab_occasions' => 'Fêtes & Occasions', 'gift_tab_occasions' => 'Fêtes & Occasions',
'gift_tab_proches' => 'Proches (Hors foyer)', 'gift_tab_proches' => 'Proches (Hors foyer)',
@@ -1079,9 +883,8 @@ return [
'gift_settings_edit_proche' => 'Modifier le proche', 'gift_settings_edit_proche' => 'Modifier le proche',
// ========================================== // ==========================================
// GARAGE MANAGER // 9. GARAGE
// ========================================== // ==========================================
'menu_garage' => 'Garage',
'garage_page_title' => 'HouseHub - Garage', 'garage_page_title' => 'HouseHub - Garage',
'garage_stat_vehicles' => 'Véhicules', 'garage_stat_vehicles' => 'Véhicules',
'garage_stat_maintenances' => 'Entretiens', 'garage_stat_maintenances' => 'Entretiens',
@@ -1111,7 +914,6 @@ return [
'garage_photo' => 'Photo', 'garage_photo' => 'Photo',
'garage_notes' => 'Notes', 'garage_notes' => 'Notes',
'garage_maint_type' => 'Type d\'entretien', 'garage_maint_type' => 'Type d\'entretien',
'garage_date' => 'Date',
'garage_km_at' => 'Kilométrage au moment', 'garage_km_at' => 'Kilométrage au moment',
'garage_labor_cost' => 'Coût main d\'œuvre (€)', 'garage_labor_cost' => 'Coût main d\'œuvre (€)',
'garage_description' => 'Description', 'garage_description' => 'Description',
@@ -1130,4 +932,38 @@ return [
'garage_change_photo' => 'Changer la photo', 'garage_change_photo' => 'Changer la photo',
'garage_new_photo' => 'Nouvelle photo', 'garage_new_photo' => 'Nouvelle photo',
'garage_update_photo' => 'Mettre à jour', 'garage_update_photo' => 'Mettre à jour',
// ==========================================
// 10. LISTES & COURSES
// ==========================================
'liste_placeholder_add' => 'Ajouter un article…',
'liste_btn_add' => 'Ajouter',
'liste_btn_uncheck_all' => 'Tout décocher',
'liste_btn_delete_picked' => 'Supprimer les cochés',
'liste_btn_clear_all' => 'Vider la liste',
'liste_subtitle' => '{pending} à faire · {cart} cochés',
'liste_added' => 'Ajouté',
'liste_updated' => 'Modifié',
'liste_deleted' => 'Supprimé',
'liste_already_in' => 'Déjà dans la liste',
'liste_confirm_clear' => 'Vider toute la liste ?',
'liste_confirm_delete_list' => 'Supprimer cette liste et tous ses articles ?',
'liste_history_title' => 'Récemment utilisés — clic pour rajouter',
'liste_new_list' => 'Nouvelle liste',
'liste_list_name_placeholder'=> 'Nom de la liste…',
'liste_create' => 'Créer',
'liste_rename_list' => 'Renommer',
'liste_new_name' => 'Nouveau nom :',
'liste_list_deleted' => 'Liste supprimée',
'liste_list_created' => 'Liste créée',
'liste_list_renamed' => 'Liste renommée',
'liste_edit_placeholder' => 'Modifier l\'article :',
'liste_empty_state' => 'Créez votre première liste avec le bouton + ci-dessus.',
'liste_settings_title' => 'Listes — historique',
'liste_settings_intro' => 'Nombre maximum d\'articles mémorisés dans l\'historique (commun à toutes les listes).',
'liste_settings_history_max' => 'Taille de l\'historique',
'liste_settings_history_hint'=> 'Entre 1 et 50.',
'groceries_settings_saved' => 'Préférences enregistrées.',
'groceries_settings_error' => 'Impossible d\'enregistrer :',
'groceries_err_duplicate' => 'Ce produit est déjà dans la liste.',
]; ];