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
+796 -1251

No files matched your search

+253 -408
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.',
]; ];
+261 -397
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',
@@ -892,19 +760,13 @@ return [
'bud_sav_selection' => 'Selection:', 'bud_sav_selection' => 'Selection:',
'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,99 +821,64 @@ 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',
'provision_label' => 'Expense description', 'provision_label' => 'Expense description',
'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', 'success_add_provision' => 'Forecasted expense added successfully!',
'error_generic' => 'An error occurred', 'no_provisions' => 'No forecasted expenses registered at the moment.',
'success_add_provision' => 'Forecasted expense added successfully!', 'savings_this_month' => 'Total savings to allocate this month',
'no_provisions' => 'No forecasted expenses registered at the moment.', 'calculate' => 'Calculate optimal strategy',
'btn_delete' => 'Delete', 'date_past_warning' => 'The selected date has already passed!',
'savings_this_month' => 'Total savings to allocate this month',
'calculate' => 'Calculate optimal strategy',
'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)',
'gift_settings_icon' => 'Icon', 'gift_settings_icon' => 'Icon',
'gift_settings_date' => 'Date (MM-DD)', 'gift_settings_date' => 'Date (MM-DD)',
'gift_settings_add_occ' => 'Add an occasion', 'gift_settings_add_occ' => 'Add an occasion',
'gift_settings_add_proche'=> 'Add a relative', 'gift_settings_add_proche' => 'Add a relative',
'gift_role_proche_adulte'=> 'Adult (Uncle, friend...)', 'gift_role_proche_adulte' => 'Adult (Uncle, friend...)',
'gift_role_proche_enfant'=> 'Child (Nephew, niece...)', 'gift_role_proche_enfant' => 'Child (Nephew, niece...)',
'gift_ph_proche_name' => 'First name', 'gift_ph_proche_name' => 'First name',
'gift_role_label' => 'Role', 'gift_role_label' => 'Role',
'gift_settings_saved' => 'Settings saved!', 'gift_settings_saved' => 'Settings saved!',
@@ -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.',
]; ];
+282 -446
View File
File diff suppressed because it is too large. Load diff