First Commit

This commit is contained in:
2026-08-19 17:26:06 +01:00
parent f782c6f531
commit 121f788c28
25 changed files with 5132 additions and 73 deletions
+720
View File
@@ -0,0 +1,720 @@
<?php
/**
* Multilingual System Helper (IT, EN, ES, FR)
*/
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
/**
* Get current user language code.
*/
function get_current_lang() {
$user = $_SESSION['user'] ?? null;
$lang = $user['language'] ?? $_SESSION['guest_language'] ?? 'it';
if (!in_array($lang, ['it', 'en', 'es', 'fr'])) {
$lang = 'it';
}
return $lang;
}
/**
* Set guest/active language.
*/
function set_active_lang($lang) {
if (in_array($lang, ['it', 'en', 'es', 'fr'])) {
if (isset($_SESSION['user'])) {
$_SESSION['user']['language'] = $lang;
global $conn;
if (isset($conn) && !empty($_SESSION['user']['id'])) {
$stmt = $conn->prepare("UPDATE users SET language = ? WHERE id = ?");
$stmt->bind_param("si", $lang, $_SESSION['user']['id']);
$stmt->execute();
$stmt->close();
}
} else {
$_SESSION['guest_language'] = $lang;
}
}
}
/**
* Translations Dictionary
*/
function get_translations() {
return [
'it' => [
// Login Page
'login_title' => 'Accedi a Blocknotes',
'login_subtitle' => 'Gestisci le tue note e i tuoi comandi',
'label_username' => 'Nome Utente',
'label_password' => 'Password',
'placeholder_username' => 'Inserisci username',
'placeholder_password' => 'Inserisci password',
'btn_submit_login' => '🔑 Accedi',
'login_hint_footer' => 'Accredito predefinito per il primo accesso',
'login_installed_success' => '🎉 Setup completato! Accedi con le credenziali create.',
// Navbar
'nav_blocknotes' => '📓 Blocknotes',
'nav_colors_profile' => '🎨 Colori & Profilo',
'nav_admin' => '👑 Gestione Utenti',
'nav_logout' => '🚪 Esci',
'nav_login' => '🔑 Accedi',
'nav_language' => '🌐 Lingua',
// Dashboard (home)
'dashboard_title_user' => 'I Miei Blocknotes',
'dashboard_title_admin' => 'Tutti i Blocknotes (Vista Admin)',
'dashboard_desc_user' => 'Crea, organizza e consulta i tuoi blocknotes.',
'dashboard_desc_admin' => 'In qualità di Admin puoi visualizzare, gestire ed eliminare i blocknotes di tutti gli utenti.',
'btn_new_blocknote' => ' Nuovo Blocknote',
'btn_import_json' => '📥 Importa JSON',
'btn_export_json' => '💾 Esporta JSON',
'btn_open_edit' => '👁️ Apri & Modifica',
'btn_rename' => '✏️ Rinomina',
'btn_delete' => '🗑️ Elimina',
'empty_blocknotes_title' => 'Nessun Blocknote trovato',
'empty_blocknotes_desc_user' => 'Non hai ancora creato nessun blocknote. Inizia subito!',
'empty_blocknotes_desc_admin' => 'Non ci sono ancora blocknotes salvati nel sistema.',
'modal_create_title' => ' Crea Nuovo Blocknote',
'modal_rename_title' => '✏️ Rinomina Blocknote',
'modal_import_title' => '📥 Importa Blocknote (JSON)',
'label_title' => 'Titolo Blocknote',
'label_file_json' => 'Carica File .json',
'label_paste_json' => 'Oppure incolla qui il codice JSON',
'btn_cancel' => 'Annulla',
'btn_save' => 'Salva',
'btn_create' => 'Crea Blocknote',
'btn_import' => 'Importa Blocknote',
'note_single' => 'Nota',
'note_plural' => 'Note',
// View Blocknote
'btn_back_list' => '⬅️ Torna ai Blocknotes',
'btn_expand_all' => '📂 Espandi Tutte',
'btn_collapse_all' => '📁 Riduci Tutte',
'btn_new_note' => ' Nuova Nota',
'btn_add_subnote' => ' Sottonota',
'subnote_single' => 'sottonota',
'subnote_plural' => 'sottonote',
'badge_text' => '📄 Testo',
'badge_command' => '⚡ Comando',
'btn_copy' => '📋 Copia',
'btn_copied' => '✓ Copiato!',
'search_placeholder' => '🔍 Cerca note, sottonote o comandi in questo blocknote...',
'btn_clear_search' => '❌ Annulla Cerca',
'search_no_results' => 'Nessun risultato trovato',
'search_no_results_desc' => 'Nessuna nota o comando corrisponde al termine cercato in questo blocknote.',
'modal_add_note' => ' Nuova Nota a Blocchi',
'modal_edit_note' => '✏️ Modifica Nota',
'modal_add_subnote' => ' Aggiungi Sottonota',
'modal_edit_subnote' => '✏️ Modifica Sottonota',
'label_note_description' => 'Descrizione (opzionale)',
'label_subnote_title' => 'Titolo Sottonota',
'label_subnote_type' => 'Tipo di Sottonota',
'label_subnote_content' => 'Contenuto',
'type_option_text' => '📄 Testo generico',
'type_option_command' => '⚡ Comando (con pulsante Copia)',
// Profile & Settings
'profile_title' => '🎨 Impostazioni Profilo & Tema',
'profile_desc' => 'Personalizza password, colori dell\'interfaccia, lingua e pagina di avvio.',
'card_password_title' => '🔒 Cambio Password',
'card_colors_title' => '🎨 Personalizza Colori Interfaccia (HSL)',
'card_lang_title' => '🌍 Lingua dell\'Interfaccia',
'card_landing_title' => '🏠 Pagina di Primo Accesso (Landing Page)',
'label_new_pass' => 'Nuova Password',
'label_confirm_pass' => 'Conferma Nuova Password',
'label_select_lang' => 'Seleziona Lingua',
'label_select_landing' => 'Seleziona Pagina di Avvio',
'landing_option_dashboard' => '📋 Pagina Principale (Tutti i Blocknotes)',
'landing_option_bn_prefix' => '📌 Apri direttamente: ',
'btn_update_pass' => '🔑 Aggiorna Password',
'btn_save_colors' => '💾 Salva Preferenze Colori',
'btn_save_lang' => '🌍 Salva Lingua',
'btn_save_landing' => '🏠 Salva Pagina di Avvio',
// Admin Users
'admin_title' => '👑 Pannello Amministrazione Utenti',
'admin_desc' => 'Crea, gestisci e modifica i ruoli e gli accessi degli utenti.',
'btn_add_user' => ' Aggiungi Nuovo Utente',
'col_username' => 'Nome Utente',
'col_role' => 'Ruolo',
'col_bns' => 'Blocknotes Creati',
'col_created' => 'Data Registrazione',
'col_actions' => 'Azioni Admin',
'role_standard' => 'Standard User',
'role_admin' => 'Administrator',
'role_owner' => '👑 Owner (Proprietario)',
'badge_owner' => '👑 Owner',
'btn_reset_pass' => '🔑 Reset Pass',
'modal_create_user' => ' Registra Nuovo Utente',
'modal_reset_pass' => '🔑 Reset Password Utente',
// Confirm Dialogs
'confirm_delete_blocknote' => 'Sei sicuro di voler eliminare questo blocknote e tutte le sue note?',
'confirm_delete_note' => 'Sei sicuro di voler eliminare questa nota e tutte le sue sottonote?',
'confirm_delete_subnote' => 'Sei sicuro di voler eliminare questa sottonota?',
'confirm_delete_user' => 'Sei sicuro di voler eliminare questo utente?',
// Placeholders
'placeholder_bn_title' => 'Es. Comandi Server Linux, Note Progetto PHP...',
'placeholder_rename_title' => 'Nuovo titolo...',
'placeholder_import_title' => 'Es. Positive Internet',
'placeholder_paste_json' => 'Incolla qui il JSON nel vecchio o nuovo formato...',
'placeholder_note_title' => 'Es. Installazione MySQL, Server Setup...',
'placeholder_note_desc' => 'Breve descrizione di questo blocco di note...',
'placeholder_subnote_title' => 'Es. Comando creazione database, Note configurazione...',
'placeholder_subnote_content' => 'Inserisci il testo o le istruzioni del comando...',
'placeholder_site_title' => 'Es. Blocknotes, Enterprise Notes...',
'placeholder_username_new' => 'es. mario, giuseppe...',
'placeholder_password_new' => 'Inserisci nuova password',
'placeholder_password_confirm' => 'Ripeti nuova password',
// Extra Labels
'label_owner_prefix' => 'Proprietario: ',
'label_updated_prefix' => 'Ultimo aggiornamento: ',
'label_you' => 'Tu',
'label_unknown' => 'Sconosciuto',
'label_current_favicon' => 'Favicon Attuale: ',
// First Start Installer Setup
'setup_title' => '🚀 Setup Iniziale Blocknotes',
'setup_subtitle' => 'Configura il database MySQL e crea i primi utenti privilegiati (Owner & Admin).',
'setup_sec1_title' => '1. Configurazione Database MySQL',
'setup_db_host' => 'Host Database',
'setup_db_name' => 'Nome Database',
'setup_db_user' => 'Utente MySQL',
'setup_db_pass' => 'Password MySQL',
'setup_db_pass_placeholder' => 'Password (lascia vuoto se nessuna)',
'setup_sec2_title' => '2. Account Owner (Proprietario Unico)',
'setup_owner_user' => 'Username Owner',
'setup_owner_pass' => 'Password Owner',
'setup_owner_pass_placeholder' => 'Inserisci password per Owner',
'setup_sec3_title' => '3. Primo Account Amministratore (Admin)',
'setup_admin_user' => 'Username Admin',
'setup_admin_pass' => 'Password Admin',
'setup_admin_pass_placeholder' => 'Inserisci password per Admin',
'setup_btn_submit' => '⚡ Completa Installazione & Configura Sistema',
'err_setup_db_fields' => 'Compila tutti i dati di connessione al Database MySQL.',
'err_setup_owner_fields' => 'Inserisci username e password per l\'utente Owner (Proprietario).',
'err_setup_admin_fields' => 'Inserisci username e password per il primo utente Admin.',
'err_setup_same_user' => 'L\'utente Owner e l\'utente Admin devono avere nomi utente differenti.'
],
'en' => [
// Login Page
'login_title' => 'Login to Blocknotes',
'login_subtitle' => 'Manage your notes and commands',
'label_username' => 'Username',
'label_password' => 'Password',
'placeholder_username' => 'Enter username',
'placeholder_password' => 'Enter password',
'btn_submit_login' => '🔑 Login',
'login_hint_footer' => 'Default first login credential',
'login_installed_success' => '🎉 Setup completed! Login with your created credentials.',
// Navbar
'nav_blocknotes' => '📓 Blocknotes',
'nav_colors_profile' => '🎨 Colors & Profile',
'nav_admin' => '👑 User Management',
'nav_logout' => '🚪 Logout',
'nav_login' => '🔑 Login',
'nav_language' => '🌐 Language',
// Dashboard (home)
'dashboard_title_user' => 'My Blocknotes',
'dashboard_title_admin' => 'All Blocknotes (Admin View)',
'dashboard_desc_user' => 'Create, organize, and view your blocknotes.',
'dashboard_desc_admin' => 'As an Admin you can view, manage, and delete blocknotes of all users.',
'btn_new_blocknote' => ' New Blocknote',
'btn_import_json' => '📥 Import JSON',
'btn_export_json' => '💾 Export JSON',
'btn_open_edit' => '👁️ Open & Edit',
'btn_rename' => '✏️ Rename',
'btn_delete' => '🗑️ Delete',
'empty_blocknotes_title' => 'No Blocknotes found',
'empty_blocknotes_desc_user' => 'You haven\'t created any blocknote yet. Start now!',
'empty_blocknotes_desc_admin' => 'There are no blocknotes saved in the system yet.',
'modal_create_title' => ' Create New Blocknote',
'modal_rename_title' => '✏️ Rename Blocknote',
'modal_import_title' => '📥 Import Blocknote (JSON)',
'label_title' => 'Blocknote Title',
'label_file_json' => 'Upload .json File',
'label_paste_json' => 'Or paste JSON code here',
'btn_cancel' => 'Cancel',
'btn_save' => 'Save',
'btn_create' => 'Create Blocknote',
'btn_import' => 'Import Blocknote',
'note_single' => 'Note',
'note_plural' => 'Notes',
// View Blocknote
'btn_back_list' => '⬅️ Back to Blocknotes',
'btn_expand_all' => '📂 Expand All',
'btn_collapse_all' => '📁 Collapse All',
'btn_new_note' => ' New Note',
'btn_add_subnote' => ' Subnote',
'subnote_single' => 'subnote',
'subnote_plural' => 'subnotes',
'badge_text' => '📄 Text',
'badge_command' => '⚡ Command',
'btn_copy' => '📋 Copy',
'btn_copied' => '✓ Copied!',
'search_placeholder' => '🔍 Search notes, subnotes, or commands in this blocknote...',
'btn_clear_search' => '❌ Clear Search',
'search_no_results' => 'No results found',
'search_no_results_desc' => 'No notes or commands match your search term in this blocknote.',
'modal_add_note' => ' New Block Note',
'modal_edit_note' => '✏️ Edit Note',
'modal_add_subnote' => ' Add Subnote',
'modal_edit_subnote' => '✏️ Edit Subnote',
'label_note_description' => 'Description (optional)',
'label_subnote_title' => 'Subnote Title',
'label_subnote_type' => 'Subnote Type',
'label_subnote_content' => 'Content',
'type_option_text' => '📄 Generic Text',
'type_option_command' => '⚡ Command (with Copy button)',
// Profile & Settings
'profile_title' => '🎨 Profile & Theme Settings',
'profile_desc' => 'Customize password, UI colors, language, and default landing page.',
'card_password_title' => '🔒 Change Password',
'card_colors_title' => '🎨 Interface Colors (HSL)',
'card_lang_title' => '🌍 Interface Language',
'card_landing_title' => '🏠 Default Landing Page',
'label_new_pass' => 'New Password',
'label_confirm_pass' => 'Confirm New Password',
'label_select_lang' => 'Select Language',
'label_select_landing' => 'Select Landing Page',
'landing_option_dashboard' => '📋 Main Selection Page (All Blocknotes)',
'landing_option_bn_prefix' => '📌 Open directly: ',
'btn_update_pass' => '🔑 Update Password',
'btn_save_colors' => '💾 Save Color Preferences',
'btn_save_lang' => '🌍 Save Language',
'btn_save_landing' => '🏠 Save Landing Page',
// Admin Users
'admin_title' => '👑 User Administration Panel',
'admin_desc' => 'Create, manage, and edit user roles and access.',
'btn_add_user' => ' Add New User',
'col_username' => 'Username',
'col_role' => 'Role',
'col_bns' => 'Blocknotes Created',
'col_created' => 'Created Date',
'col_actions' => 'Admin Actions',
'role_standard' => 'Standard User',
'role_admin' => 'Administrator',
'role_owner' => '👑 Owner',
'badge_owner' => '👑 Owner',
'btn_reset_pass' => '🔑 Reset Pass',
'modal_create_user' => ' Register New User',
'modal_reset_pass' => '🔑 Reset User Password',
'card_site_settings_title' => '⚙️ Site Settings (Owner Only)',
'label_site_title' => 'Global Application / Site Title',
'label_favicon' => 'Site Favicon (High Resolution, min 64x64px)',
'btn_save_site_title' => '💾 Save Site Title',
'btn_upload_favicon' => '📤 Upload New Favicon',
// Confirm Dialogs
'confirm_delete_blocknote' => 'Are you sure you want to delete this blocknote and all its notes?',
'confirm_delete_note' => 'Are you sure you want to delete this note and all its subnotes?',
'confirm_delete_subnote' => 'Are you sure you want to delete this subnote?',
'confirm_delete_user' => 'Are you sure you want to delete this user?',
// Placeholders
'placeholder_bn_title' => 'E.g. Linux Server Commands, PHP Notes...',
'placeholder_rename_title' => 'New title...',
'placeholder_import_title' => 'E.g. Positive Internet',
'placeholder_paste_json' => 'Paste JSON here in old or new format...',
'placeholder_note_title' => 'E.g. MySQL Installation, Server Setup...',
'placeholder_note_desc' => 'Short description of this note block...',
'placeholder_subnote_title' => 'E.g. Database creation command...',
'placeholder_subnote_content' => 'Enter text or command instructions...',
'placeholder_site_title' => 'E.g. Blocknotes, Enterprise Notes...',
'placeholder_username_new' => 'e.g. john, mary...',
'placeholder_password_new' => 'Enter new password',
'placeholder_password_confirm' => 'Repeat new password',
// Extra Labels
'label_owner_prefix' => 'Owner: ',
'label_updated_prefix' => 'Last updated: ',
'label_you' => 'You',
'label_unknown' => 'Unknown',
'label_current_favicon' => 'Current Favicon: ',
// First Start Installer Setup
'setup_title' => '🚀 Blocknotes Initial Setup',
'setup_subtitle' => 'Configure MySQL database and create the initial privileged users (Owner & Admin).',
'setup_sec1_title' => '1. MySQL Database Configuration',
'setup_db_host' => 'Database Host',
'setup_db_name' => 'Database Name',
'setup_db_user' => 'MySQL User',
'setup_db_pass' => 'MySQL Password',
'setup_db_pass_placeholder' => 'Password (leave empty if none)',
'setup_sec2_title' => '2. Owner Account (Single Owner)',
'setup_owner_user' => 'Owner Username',
'setup_owner_pass' => 'Owner Password',
'setup_owner_pass_placeholder' => 'Enter password for Owner',
'setup_sec3_title' => '3. First Admin Account',
'setup_admin_user' => 'Admin Username',
'setup_admin_pass' => 'Admin Password',
'setup_admin_pass_placeholder' => 'Enter password for Admin',
'setup_btn_submit' => '⚡ Complete Installation & Configure System',
'err_setup_db_fields' => 'Please fill in all MySQL database connection fields.',
'err_setup_owner_fields' => 'Please enter username and password for the Owner user.',
'err_setup_admin_fields' => 'Please enter username and password for the first Admin user.',
'err_setup_same_user' => 'Owner user and Admin user must have different usernames.'
],
'es' => [
// Login Page
'login_title' => 'Iniciar sesión en Blocknotes',
'login_subtitle' => 'Gestiona tus notas y comandos',
'label_username' => 'Nombre de Usuario',
'label_password' => 'Contraseña',
'placeholder_username' => 'Introduce nombre de usuario',
'placeholder_password' => 'Introduce contraseña',
'btn_submit_login' => '🔑 Iniciar Sesión',
'login_hint_footer' => 'Credencial predeterminada para el primer acceso',
'login_installed_success' => '🎉 ¡Configuración completada! Inicia sesión con tus credenciales.',
// Navbar
'nav_blocknotes' => '📓 Blocknotes',
'nav_colors_profile' => '🎨 Colores y Perfil',
'nav_admin' => '👑 Gestión de Usuarios',
'nav_logout' => '🚪 Salir',
'nav_login' => '🔑 Iniciar Sesión',
'nav_language' => '🌐 Idioma',
// Dashboard (home)
'dashboard_title_user' => 'Mis Blocknotes',
'dashboard_title_admin' => 'Todos los Blocknotes (Vista Admin)',
'dashboard_desc_user' => 'Crea, organiza y consulta tus blocknotes.',
'dashboard_desc_admin' => 'Como Admin puedes ver, gestionar y eliminar los blocknotes de todos los usuarios.',
'btn_new_blocknote' => ' Nuevo Blocknote',
'btn_import_json' => '📥 Importar JSON',
'btn_export_json' => '💾 Exportar JSON',
'btn_open_edit' => '👁️ Abrir y Editar',
'btn_rename' => '✏️ Renombrar',
'btn_delete' => '🗑️ Eliminar',
'empty_blocknotes_title' => 'No se encontraron blocknotes',
'empty_blocknotes_desc_user' => 'Aún no has creado ningún blocknote. ¡Empieza ahora!',
'empty_blocknotes_desc_admin' => 'Aún no hay blocknotes guardados en el sistema.',
'modal_create_title' => ' Crear Nuevo Blocknote',
'modal_rename_title' => '✏️ Renombrar Blocknote',
'modal_import_title' => '📥 Importar Blocknote (JSON)',
'label_title' => 'Título del Blocknote',
'label_file_json' => 'Subir archivo .json',
'label_paste_json' => 'O pega el código JSON aquí',
'btn_cancel' => 'Cancelar',
'btn_save' => 'Guardar',
'btn_create' => 'Crear Blocknote',
'btn_import' => 'Importar Blocknote',
'note_single' => 'Nota',
'note_plural' => 'Notas',
// View Blocknote
'btn_back_list' => '⬅️ Volver a Blocknotes',
'btn_expand_all' => '📂 Expandir Todas',
'btn_collapse_all' => '📁 Contraer Todas',
'btn_new_note' => ' Nueva Nota',
'btn_add_subnote' => ' Subnota',
'subnote_single' => 'subnota',
'subnote_plural' => 'subnotas',
'badge_text' => '📄 Texto',
'badge_command' => '⚡ Comando',
'btn_copy' => '📋 Copiar',
'btn_copied' => '✓ ¡Copiado!',
'search_placeholder' => '🔍 Buscar notas, subnotas o comandos...',
'btn_clear_search' => '❌ Cancelar Búsqueda',
'search_no_results' => 'No se encontraron resultados',
'search_no_results_desc' => 'Ninguna nota o comando coincide con tu búsqueda.',
'modal_add_note' => ' Nueva Nota en Bloque',
'modal_edit_note' => '✏️ Editar Nota',
'modal_add_subnote' => ' Añadir Subnota',
'modal_edit_subnote' => '✏️ Editar Subnota',
'label_note_description' => 'Descripción (opcional)',
'label_subnote_title' => 'Título de Subnota',
'label_subnote_type' => 'Tipo de Subnota',
'label_subnote_content' => 'Contenido',
'type_option_text' => '📄 Texto genérico',
'type_option_command' => '⚡ Comando (con botón Copiar)',
// Profile & Settings
'profile_title' => '🎨 Ajustes de Perfil y Tema',
'profile_desc' => 'Personaliza contraseña, colores de interfaz, idioma y página de inicio.',
'card_password_title' => '🔒 Cambiar Contraseña',
'card_colors_title' => '🎨 Colores de Interfaz (HSL)',
'card_lang_title' => '🌍 Idioma de la Interfaz',
'card_landing_title' => '🏠 Página de Inicio Predeterminada',
'label_new_pass' => 'Nueva Contraseña',
'label_confirm_pass' => 'Confirmar Nueva Contraseña',
'label_select_lang' => 'Seleccionar Idioma',
'label_select_landing' => 'Seleccionar Página de Inicio',
'landing_option_dashboard' => '📋 Página Principal (Todos los Blocknotes)',
'landing_option_bn_prefix' => '📌 Abrir directamente: ',
'btn_update_pass' => '🔑 Actualizar Contraseña',
'btn_save_colors' => '💾 Guardar Colores',
'btn_save_lang' => '🌍 Guardar Idioma',
'btn_save_landing' => '🏠 Guardar Página de Inicio',
// Admin Users
'admin_title' => '👑 Panel de Administración de Usuarios',
'admin_desc' => 'Crea, gestiona y edita roles de usuarios y accesos.',
'btn_add_user' => ' Añadir Nuevo Usuario',
'col_username' => 'Nombre de Usuario',
'col_role' => 'Rol',
'col_bns' => 'Blocknotes Creados',
'col_created' => 'Fecha de Creación',
'col_actions' => 'Acciones de Admin',
'role_standard' => 'Usuario Estándar',
'role_admin' => 'Administrador',
'role_owner' => '👑 Propietario (Owner)',
'badge_owner' => '👑 Propietario',
'btn_reset_pass' => '🔑 Reset Pass',
'modal_create_user' => ' Registrar Nuevo Usuario',
'modal_reset_pass' => '🔑 Resetear Contraseña',
'card_site_settings_title' => '⚙️ Ajustes del Sitio (Solo Propietario)',
'label_site_title' => 'Título del Sitio / Aplicación',
'label_favicon' => 'Favicon del Sitio (Alta resolución, mín 64x64px)',
'btn_save_site_title' => '💾 Guardar Título',
'btn_upload_favicon' => '📤 Subir Nueva Favicon',
// Confirm Dialogs
'confirm_delete_blocknote' => '¿Estás seguro de que quieres eliminar este blocknote y todas sus notas?',
'confirm_delete_note' => '¿Estás seguro de que quieres eliminar esta nota y todas sus subnotas?',
'confirm_delete_subnote' => '¿Estás seguro de que quieres eliminar esta subnota?',
'confirm_delete_user' => '¿Estás seguro de que quieres eliminar este usuario?',
// Placeholders
'placeholder_bn_title' => 'Ej. Comandos Servidor Linux...',
'placeholder_rename_title' => 'Nuevo título...',
'placeholder_import_title' => 'Ej. Positive Internet',
'placeholder_paste_json' => 'Pega el JSON aquí en formato antiguo o nuevo...',
'placeholder_note_title' => 'Ej. Instalación MySQL...',
'placeholder_note_desc' => 'Breve descripción de este bloque de notas...',
'placeholder_subnote_title' => 'Ej. Comando creación base de datos...',
'placeholder_subnote_content' => 'Introduce el texto o instrucciones del comando...',
'placeholder_site_title' => 'Ej. Blocknotes...',
'placeholder_username_new' => 'ej. mario, juan...',
'placeholder_password_new' => 'Introduce nueva contraseña',
'placeholder_password_confirm' => 'Repite nueva contraseña',
// Extra Labels
'label_owner_prefix' => 'Propietario: ',
'label_updated_prefix' => 'Última actualización: ',
'label_you' => 'Tú',
'label_unknown' => 'Desconocido',
'label_current_favicon' => 'Favicon Actual: ',
// First Start Installer Setup
'setup_title' => '🚀 Configuración Inicial de Blocknotes',
'setup_subtitle' => 'Configura la base de datos MySQL y crea los primeros usuarios privilegiados (Propietario y Admin).',
'setup_sec1_title' => '1. Configuración de Base de Datos MySQL',
'setup_db_host' => 'Host de Base de Datos',
'setup_db_name' => 'Nombre de la Base de Datos',
'setup_db_user' => 'Usuario MySQL',
'setup_db_pass' => 'Contraseña MySQL',
'setup_db_pass_placeholder' => 'Contraseña (deja en blanco si no hay)',
'setup_sec2_title' => '2. Cuenta de Propietario (Único)',
'setup_owner_user' => 'Nombre de Usuario Propietario',
'setup_owner_pass' => 'Contraseña de Propietario',
'setup_owner_pass_placeholder' => 'Introduce contraseña para Propietario',
'setup_sec3_title' => '3. Primera Cuenta de Administrador (Admin)',
'setup_admin_user' => 'Nombre de Usuario Admin',
'setup_admin_pass' => 'Contraseña de Admin',
'setup_admin_pass_placeholder' => 'Introduce contraseña para Admin',
'setup_btn_submit' => '⚡ Completar Instalación y Configurar Sistema',
'err_setup_db_fields' => 'Por favor completa todos los campos de conexión a la base de datos MySQL.',
'err_setup_owner_fields' => 'Por favor introduce nombre de usuario y contraseña para el Propietario.',
'err_setup_admin_fields' => 'Por favor introduce nombre de usuario y contraseña para el primer Admin.',
'err_setup_same_user' => 'El usuario Propietario y el usuario Admin deben tener nombres diferentes.'
],
'fr' => [
// Login Page
'login_title' => 'Connexion à Blocknotes',
'login_subtitle' => 'Gérez vos notes et vos commandes',
'label_username' => 'Nom d\'Utilisateur',
'label_password' => 'Mot de Passe',
'placeholder_username' => 'Entrez nom d\'utilisateur',
'placeholder_password' => 'Entrez mot de passe',
'btn_submit_login' => '🔑 Connexion',
'login_hint_footer' => 'Identifiant par défaut pour le premier accès',
'login_installed_success' => '🎉 Configuration terminée! Connectez-vous avec vos identifiants.',
// Navbar
'nav_blocknotes' => '📓 Blocknotes',
'nav_colors_profile' => '🎨 Couleurs & Profil',
'nav_admin' => '👑 Gestion des Utilisateurs',
'nav_logout' => '🚪 Déconnexion',
'nav_login' => '🔑 Connexion',
'nav_language' => '🌐 Langue',
// Dashboard (home)
'dashboard_title_user' => 'Mes Blocknotes',
'dashboard_title_admin' => 'Tous les Blocknotes (Vue Admin)',
'dashboard_desc_user' => 'Créez, organisez et consultez vos blocknotes.',
'dashboard_desc_admin' => 'En tant qu\'Admin vous pouvez afficher, gérer et supprimer les blocknotes de tous les utilisateurs.',
'btn_new_blocknote' => ' Nouveau Blocknote',
'btn_import_json' => '📥 Importer JSON',
'btn_export_json' => '💾 Exporter JSON',
'btn_open_edit' => '👁️ Ouvrir & Modifier',
'btn_rename' => '✏️ Renommer',
'btn_delete' => '🗑️ Supprimer',
'empty_blocknotes_title' => 'Aucun blocknote trouvé',
'empty_blocknotes_desc_user' => 'Vous n\'avez pas encore créé de blocknote. Commencez dès maintenant!',
'empty_blocknotes_desc_admin' => 'Il n\'y a encore aucun blocknote enregistré dans le système.',
'modal_create_title' => ' Créer un Nouveau Blocknote',
'modal_rename_title' => '✏️ Renommer le Blocknote',
'modal_import_title' => '📥 Importer Blocknote (JSON)',
'label_title' => 'Titre du Blocknote',
'label_file_json' => 'Téléverser le fichier .json',
'label_paste_json' => 'Ou collez le code JSON ici',
'btn_cancel' => 'Annuler',
'btn_save' => 'Enregistrer',
'btn_create' => 'Créer Blocknote',
'btn_import' => 'Importer Blocknote',
'note_single' => 'Note',
'note_plural' => 'Notes',
// View Blocknote
'btn_back_list' => '⬅️ Retour aux Blocknotes',
'btn_expand_all' => '📂 Tout Développer',
'btn_collapse_all' => '📁 Tout Réduire',
'btn_new_note' => ' Nouvelle Note',
'btn_add_subnote' => ' Sous-note',
'subnote_single' => 'sous-note',
'subnote_plural' => 'sous-notes',
'badge_text' => '📄 Texte',
'badge_command' => '⚡ Commande',
'btn_copy' => '📋 Copier',
'btn_copied' => '✓ Copié!',
'search_placeholder' => '🔍 Rechercher notes, sous-notes ou commandes...',
'btn_clear_search' => '❌ Annuler la Recherche',
'search_no_results' => 'Aucun résultat trouvé',
'search_no_results_desc' => 'Aucune note ou commande ne correspond à votre recherche.',
'modal_add_note' => ' Nouvelle Note par Bloc',
'modal_edit_note' => '✏️ Modifier la Note',
'modal_add_subnote' => ' Ajouter une Sous-note',
'modal_edit_subnote' => '✏️ Modifier la Sous-note',
'label_note_description' => 'Description (facultatif)',
'label_subnote_title' => 'Titre de la Sous-note',
'label_subnote_type' => 'Type de Sous-note',
'label_subnote_content' => 'Contenu',
'type_option_text' => '📄 Texte générique',
'type_option_command' => '⚡ Commande (avec bouton Copier)',
// Profile & Settings
'profile_title' => '🎨 Paramètres Profil & Thème',
'profile_desc' => 'Personnalisez votre mot de passe, couleurs, langue et page d\'accueil.',
'card_password_title' => '🔒 Changer le Mot de Passe',
'card_colors_title' => '🎨 Couleurs de l\'Interface (HSL)',
'card_lang_title' => '🌍 Langue de l\'Interface',
'card_landing_title' => '🏠 Page d\'Accueil par Défaut',
'label_new_pass' => 'Nouveau Mot de Passe',
'label_confirm_pass' => 'Confirmer le Mot de Passe',
'label_select_lang' => 'Sélectionner la Langue',
'label_select_landing' => 'Sélectionner la Page d\'Accueil',
'landing_option_dashboard' => '📋 Page Principale (Tous les Blocknotes)',
'landing_option_bn_prefix' => '📌 Ouvrir directement: ',
'btn_update_pass' => '🔑 Mettre à Jour',
'btn_save_colors' => '💾 Enregistrer les Couleurs',
'btn_save_lang' => '🌍 Enregistrer la Langue',
'btn_save_landing' => '🏠 Enregistrer la Page d\'Accueil',
// Admin Users
'admin_title' => '👑 Panneau d\'Administration Utilisateurs',
'admin_desc' => 'Créez, gérez et modifiez les rôles et accès des utilisateurs.',
'btn_add_user' => ' Ajouter un Utilisateur',
'col_username' => 'Nom d\'Utilisateur',
'col_role' => 'Rôle',
'col_bns' => 'Blocknotes Créés',
'col_created' => 'Date de Création',
'col_actions' => 'Actions Admin',
'role_standard' => 'Utilisateur Standard',
'role_admin' => 'Administrateur',
'role_owner' => '👑 Propriétaire (Owner)',
'badge_owner' => '👑 Propriétaire',
'btn_reset_pass' => '🔑 Réinit Pass',
'modal_create_user' => ' Enregistrer un Utilisateur',
'modal_reset_pass' => '🔑 Réinitialiser le Mot de Passe',
'card_site_settings_title' => '⚙️ Paramètres du Site (Propriétaire Uniquement)',
'label_site_title' => 'Titre Global du Site',
'label_favicon' => 'Favicon du Site (Haute résolution, min 64x64px)',
'btn_save_site_title' => '💾 Enregistrer le Titre',
'btn_upload_favicon' => '📤 Téléverser la Favicon',
// Confirm Dialogs
'confirm_delete_blocknote' => 'Êtes-vous sûr de vouloir supprimer ce blocknote et toutes ses notes?',
'confirm_delete_note' => 'Êtes-vous sûr de vouloir supprimer cette note et toutes ses sous-notes?',
'confirm_delete_subnote' => 'Êtes-vous sûr de vouloir supprimer cette sous-note?',
'confirm_delete_user' => 'Êtes-vous sûr de vouloir supprimer cet utilisateur?',
// Placeholders
'placeholder_bn_title' => 'Ex. Commandes Serveur Linux...',
'placeholder_rename_title' => 'Nouveau titre...',
'placeholder_import_title' => 'Ex. Positive Internet',
'placeholder_paste_json' => 'Collez le JSON ici au format ancien ou nouveau...',
'placeholder_note_title' => 'Ex. Installation MySQL...',
'placeholder_note_desc' => 'Brève description de ce bloc de notes...',
'placeholder_subnote_title' => 'Ex. Commande création base de données...',
'placeholder_subnote_content' => 'Entrez le texte ou les instructions de la commande...',
'placeholder_site_title' => 'Ex. Blocknotes...',
'placeholder_username_new' => 'ex. pierre, marie...',
'placeholder_password_new' => 'Entrez nouveau mot de passe',
'placeholder_password_confirm' => 'Répétez le mot de passe',
// Extra Labels
'label_owner_prefix' => 'Propriétaire: ',
'label_updated_prefix' => 'Dernière mise à jour: ',
'label_you' => 'Vous',
'label_unknown' => 'Inconnu',
'label_current_favicon' => 'Favicon Actuelle: ',
// First Start Installer Setup
'setup_title' => '🚀 Configuration Initiale de Blocknotes',
'setup_subtitle' => 'Configurez la base de données MySQL et créez les premiers utilisateurs privilégiés (Propriétaire et Admin).',
'setup_sec1_title' => '1. Configuration de la Base de Données MySQL',
'setup_db_host' => 'Hôte de la Base de Données',
'setup_db_name' => 'Nom de la Base de Données',
'setup_db_user' => 'Utilisateur MySQL',
'setup_db_pass' => 'Mot de Passe MySQL',
'setup_db_pass_placeholder' => 'Mot de passe (laissez vide si aucun)',
'setup_sec2_title' => '2. Compte Propriétaire (Unique)',
'setup_owner_user' => 'Nom d\'Utilisateur Propriétaire',
'setup_owner_pass' => 'Mot de Passe Propriétaire',
'setup_owner_pass_placeholder' => 'Entrez le mot de passe pour le Propriétaire',
'setup_sec3_title' => '3. Premier Compte Administrateur (Admin)',
'setup_admin_user' => 'Nom d\'Utilisateur Admin',
'setup_admin_pass' => 'Mot de Passe Admin',
'setup_admin_pass_placeholder' => 'Entrez le mot de passe pour Admin',
'setup_btn_submit' => '⚡ Terminer l\'Installation et Configurer le Système',
'err_setup_db_fields' => 'Veuillez remplir tous les champs de connexion à la base de données MySQL.',
'err_setup_owner_fields' => 'Veuillez entrer le nom d\'utilisateur et le mot de passe pour le Propriétaire.',
'err_setup_admin_fields' => 'Veuillez entrer le nom d\'utilisateur et le mot de passe pour le premier Admin.',
'err_setup_same_user' => 'L\'utilisateur Propriétaire et l\'utilisateur Admin doivent avoir des noms différents.'
]
];
}
/**
* Translate key to current active language string.
*/
function __($key, $default = '') {
$lang = get_current_lang();
$translations = get_translations();
if (isset($translations[$lang][$key])) {
return $translations[$lang][$key];
}
if (isset($translations['it'][$key])) {
return $translations['it'][$key];
}
if (isset($translations['en'][$key])) {
return $translations['en'][$key];
}
return !empty($default) ? $default : $key;
}