]> danix's work - danix.xyz-2.git/commitdiff
fix: sync footer styling and i18n translations
authorDanilo M. <redacted>
Mon, 20 Apr 2026 12:48:34 +0000 (14:48 +0200)
committerDanilo M. <redacted>
Mon, 20 Apr 2026 12:48:34 +0000 (14:48 +0200)
Add horizontal separators between footer blocks on narrow screens. Right-align quote author in fortune block. Synchronize theme i18n files with root translations (en.yaml and it.yaml).

Co-Authored-By: Claude Haiku 4.5 <redacted>
themes/danix-xyz-hacker/i18n/en.yaml
themes/danix-xyz-hacker/i18n/it.yaml
themes/danix-xyz-hacker/layouts/partials/footer.html

index faa75147912dfa75c1e96583c8cf374905c0c21f..7e8b71fe65669c5ffbe3e69521ca758e1fc359a4 100644 (file)
@@ -1,16 +1,40 @@
 # Navigation & UI
+home: "Home"
 articles: "Articles"
-is: "About"
+about: "About"
 here: "Contact"
+repo: "Repo"
 legal: "Privacy"
 language: "Language"
 toggleTheme: "Theme"
 toggleMenu: "Menu"
 closeMenu: "Close"
+skipToContent: "Skip to main content"
 email: "Email"
 contact: "Contact"
 links: "Links"
 allRightsReserved: "All rights reserved."
+footer_built_with: "built with"
+footer_features: "features"
+footer_made_with: "Made with"
+footer_lack_of: "lack of"
+footer_lots_of: "lots of"
+footer_by: "by"
+footer_love: "love"
+footer_sleep: "sleep"
+footer_coffee: "coffee"
+footer_about_name: "Name"
+footer_about_role: "role"
+footer_about_cert: "cert"
+footer_about_os: "os"
+footer_about_focus: "focus"
+footer_about_role_value: "Cybersecurity Specialist"
+footer_about_os_value: "Slackware"
+footer_about_os_year: "2005–present"
+footer_about_focus_value: "open-source · privacy"
+searchArticles: "Search Articles"
+searchPlaceholder: "Search by title or content..."
+noSearchResults: "No articles found matching your search."
 
 # Articles
 readMore: "Read more"
@@ -20,9 +44,14 @@ readingTime: "reading time"
 min: "min"
 author: "Author"
 category: "Category"
+categories: "Categories"
+tag: "Tag"
 tags: "Tags"
 relatedPosts: "Related articles"
 noRelated: "No related articles."
+postCount:
+  one: "1 post"
+  other: "{{ . }} posts"
 
 # Article types
 life: "Life"
@@ -53,21 +82,89 @@ sending: "Sending..."
 success: "Message sent successfully!"
 error: "An error occurred. Please try again."
 
+# Form Components
+form_invalid_email: "Please enter a valid email address"
+form_password_help: "Must be at least 8 characters"
+form_agree_terms: "I agree to the terms and conditions"
+form_select_interests: "Select your interests"
+form_interest_tech: "Technology"
+form_interest_design: "Design"
+form_select_preference: "Select a preference"
+form_option_a: "Option A"
+form_option_b: "Option B"
+form_first_name: "First Name"
+form_last_name: "Last Name"
+form_search: "Search"
+form_search_btn: "Search"
+form_open_alert: "Open Alert Modal"
+form_open_confirm: "Open Confirm Modal"
+form_open_content: "Open Content Modal"
+form_alert_title: "Alert"
+form_alert_message: "This is an alert modal. Click OK to dismiss."
+form_ok: "OK"
+form_confirm_title: "Confirm Action"
+form_confirm_message: "Are you sure you want to continue?"
+form_cancel: "Cancel"
+form_confirm: "Confirm"
+form_content_title: "Modal with Content"
+form_content_message: "This modal contains detailed content. You can add forms, lists, or any HTML here."
+form_close: "Close"
+form_save: "Save"
+
 # Social
 follow: "Follow me"
 contactMe: "Contact me"
 
 # 404 Page
-notFoundHeading: "404"
-notFound: "Page Not Found"
-notFoundMessage: "Sorry, the page you're looking for doesn't exist. Try searching or browse the articles below."
-searchPlaceholder: "Search articles..."
-noSearchResults: "No articles found matching your search."
-recentArticles: "Recent Articles"
-goHome: "Go Home"
-browseArticles: "Browse Articles"
-contactSupport: "Get in Touch"
-followWhiteRabbit: "Follow the white rabbit..."
-easterEggTitle: "Choose Your Path"
-bluePill: "Stay Here"
-redPill: "Show Me More"
+notFound:
+  other: "Page Not Found"
+notFoundHeading:
+  other: "404"
+notFoundMessage:
+  other: "Sorry, the page you're looking for doesn't exist. Try searching or browse the articles below."
+searchButton:
+  other: "Search"
+recentArticles:
+  other: "Recent Articles"
+goHome:
+  other: "Go Home"
+browseArticles:
+  other: "Browse Articles"
+contactSupport:
+  other: "Get in Touch"
+followWhiteRabbit:
+  other: "Follow the white rabbit"
+bluePill:
+  other: "Stay Here"
+redPill:
+  other: "Show Me More"
+easterEggTitle:
+  other: "Choose Your Path"
+
+# Repository Page
+repositoryTitle:
+  other: "Slackware Repository"
+repositorySubtitle:
+  other: "Download and install my curated Slackware packages"
+quickStartTitle:
+  other: "Quick Start"
+copyCommand:
+  other: "Copy"
+copiedMessage:
+  other: "Copied to clipboard!"
+installationTitle:
+  other: "Installation"
+usageTitle:
+  other: "Usage"
+availablePackagesTitle:
+  other: "Available Packages"
+githubReposTitle:
+  other: "GitHub SlackBuild Repositories"
+visitGithub:
+  other: "Visit GitHub"
+repo_example_1_desc:
+  other: "SlackBuild scripts for Example Package 1. Build system and tools for Slackware package management."
+repo_example_2_desc:
+  other: "SlackBuild scripts for Example Package 2. A comprehensive package with full documentation and support."
+repo_example_3_desc:
+  other: "SlackBuild scripts for Example Package 3. Utility package for system administration and configuration."
index d33acfeeaca8ae5df1c30a4e960e343a967c4993..43cb604a50f00fb397b85a34561029677e8c325d 100644 (file)
@@ -1,34 +1,63 @@
 # Navigation & UI
+home: "Home"
 articles: "Articoli"
-is: "Chi Sono"
+about: "Chi Sono"
 here: "Contatti"
+repo: "Repo"
 legal: "Privacy"
 language: "Lingua"
 toggleTheme: "Tema"
 toggleMenu: "Menu"
 closeMenu: "Chiudi"
+skipToContent: "Salta al contenuto principale"
 email: "Email"
 contact: "Contatti"
 links: "Link"
 allRightsReserved: "Tutti i diritti riservati."
+footer_built_with: "costruito con"
+footer_features: "caratteristiche"
+footer_made_with: "Fatto con"
+footer_lack_of: "mancanza di"
+footer_lots_of: "molti"
+footer_by: "da"
+footer_love: "amore"
+footer_sleep: "sonno"
+footer_coffee: "caffè"
+footer_about_name: "Nome"
+footer_about_role: "ruolo"
+footer_about_cert: "cert"
+footer_about_os: "os"
+footer_about_focus: "focus"
+footer_about_role_value: "Specialista in Cybersecurity"
+footer_about_os_value: "Slackware"
+footer_about_os_year: "2005–presente"
+footer_about_focus_value: "open-source · privacy"
+searchArticles: "Cerca Articoli"
+searchPlaceholder: "Cerca per titolo o contenuto..."
+noSearchResults: "Nessun articolo trovato per la tua ricerca."
 
 # Articles
-readMore: "Leggi di più"
+readMore: "Continua a leggere"
 published: "Pubblicato"
 updated: "Aggiornato"
 readingTime: "tempo di lettura"
 min: "min"
 author: "Autore"
 category: "Categoria"
+categories: "Categorie"
+tag: "Tag"
 tags: "Tag"
 relatedPosts: "Articoli correlati"
 noRelated: "Nessun articolo correlato."
+postCount:
+  one: "1 articolo"
+  other: "{{ . }} articoli"
 
 # Article types
 life: "Vita"
 photo: "Foto"
 link: "Link"
-quote: "Citazione"
+quote: "Citazioni"
 tech: "Tech"
 
 # Sharing
@@ -53,21 +82,91 @@ sending: "Invio in corso..."
 success: "Messaggio inviato con successo!"
 error: "Si è verificato un errore. Riprova."
 
+# Form Components
+form_invalid_email: "Inserire un indirizzo email valido"
+form_password_help: "Deve avere almeno 8 caratteri"
+form_agree_terms: "Accetto i termini e le condizioni"
+form_select_interests: "Seleziona i tuoi interessi"
+form_interest_tech: "Tecnologia"
+form_interest_design: "Design"
+form_select_preference: "Seleziona una preferenza"
+form_option_a: "Opzione A"
+form_option_b: "Opzione B"
+form_first_name: "Nome"
+form_last_name: "Cognome"
+form_search: "Cerca"
+form_search_btn: "Cerca"
+form_open_alert: "Apri modale di avviso"
+form_open_confirm: "Apri modale di conferma"
+form_open_content: "Apri modale contenuto"
+form_alert_title: "Avviso"
+form_alert_message: "Questo è un modale di avviso. Fai clic su OK per chiudere."
+form_ok: "OK"
+form_confirm_title: "Conferma azione"
+form_confirm_message: "Sei sicuro di voler continuare?"
+form_cancel: "Annulla"
+form_confirm: "Conferma"
+form_content_title: "Modale con contenuto"
+form_content_message: "Questo modale contiene contenuti dettagliati. Puoi aggiungere moduli, elenchi o qualsiasi HTML qui."
+form_close: "Chiudi"
+form_save: "Salva"
+
 # Social
 follow: "Seguimi"
 contactMe: "Contattami"
 
 # 404 Page
-notFoundHeading: "404"
-notFound: "Pagina Non Trovata"
-notFoundMessage: "Mi dispiace, la pagina che stai cercando non esiste. Prova a cercare o sfoglia gli articoli qui sotto."
-searchPlaceholder: "Cerca articoli..."
-noSearchResults: "Nessun articolo trovato che corrisponda alla tua ricerca."
-recentArticles: "Articoli Recenti"
-goHome: "Torna a Casa"
-browseArticles: "Sfoglia Articoli"
-contactSupport: "Contattami"
-followWhiteRabbit: "Segui il coniglio bianco..."
-easterEggTitle: "Scegli il Tuo Percorso"
-bluePill: "Rimani Qui"
-redPill: "Mostrami di Più"
+notFound:
+  other: "Pagina Non Trovata"
+notFoundHeading:
+  other: "404"
+notFoundMessage:
+  other: "Mi dispiace, la pagina che stai cercando non esiste. Prova a cercare o sfoglia gli articoli qui sotto."
+searchButton:
+  other: "Cerca"
+recentArticles:
+  other: "Articoli Recenti"
+goHome:
+  other: "Torna a Casa"
+browseArticles:
+  other: "Sfoglia Articoli"
+contactSupport:
+  other: "Contattami"
+followWhiteRabbit:
+  other: "Segui il coniglio bianco"
+bluePill:
+  other: "Rimani Qui"
+redPill:
+  other: "Mostrami di Più"
+easterEggTitle:
+  other: "Scegli il Tuo Percorso"
+
+# Repository Page
+repositoryTitle:
+  other: "Repository Slackware"
+repositorySubtitle:
+  other: "Scarica e installa i miei pacchetti Slackware curati"
+quickStartTitle:
+  other: "Inizio Rapido"
+copyCommand:
+  other: "Copia"
+copiedMessage:
+  other: "Copiato negli appunti!"
+installationTitle:
+  other: "Installazione"
+usageTitle:
+  other: "Utilizzo"
+availablePackagesTitle:
+  other: "Pacchetti Disponibili"
+githubReposTitle:
+  other: "Repository GitHub SlackBuild"
+visitGithub:
+  other: "Visita GitHub"
+
+# Repository Descriptions
+repo_example_1_desc:
+  other: "Script SlackBuild per Pacchetto Esempio 1. Sistema di compilazione e strumenti per la gestione dei pacchetti Slackware."
+repo_example_2_desc:
+  other: "Script SlackBuild per Pacchetto Esempio 2. Un pacchetto completo con documentazione e supporto completi."
+repo_example_3_desc:
+  other: "Script SlackBuild per Pacchetto Esempio 3. Pacchetto di utilità per amministrazione di sistema e configurazione."
index ffa9ad24b3814749fabc55dbd6a7456ed0c4be08..982b45bd998ac4f7d238cc4969870c130ac06c01 100644 (file)
@@ -6,22 +6,49 @@
 
       <!-- Column 1: Fortune Cookie -->
       <div>
-        <p class="font-mono text-xs text-text-dim mb-2">$ fortune danix</p>
+        <p class="font-mono text-xs text-text-dim mb-2">$ fortune</p>
         <div id="fortune-quote" aria-live="polite" data-quotes='{{ $quotes | jsonify }}'>
           <blockquote>
             <p class="fortune-text font-mono text-sm text-text italic leading-relaxed">
               "{{ (index $quotes 0).text }}"
             </p>
-            <cite class="fortune-author font-mono text-xs text-text-dim not-italic mt-2 block">
+            <cite class="fortune-author font-mono text-xs text-text-dim not-italic mt-2 block text-right">
               — {{ (index $quotes 0).author }}
             </cite>
           </blockquote>
         </div>
       </div>
+      <hr class="md:hidden border-border my-6" />
 
-      <!-- Column 2: About (Terminal Readout) -->
+      <!-- Column 2: Stack & Feature Badges -->
+      <div>
+        <p class="text-text-dim font-mono text-xs mb-1">{{ i18n "footer_built_with" }}</p>
+        <div class="flex flex-wrap gap-1.5 mb-3">
+          <span class="badge-footer-accent">Hugo</span>
+          <span class="badge-footer-accent">Tailwind CSS</span>
+          <span class="badge-footer-accent">Alpine.js</span>
+          <span class="badge-footer-accent">HTML5</span>
+          <span class="badge-footer-accent">CSS3</span>
+          <span class="badge-footer-accent">JavaScript</span>
+        </div>
+
+        <p class="text-text-dim font-mono text-xs mb-1">{{ i18n "footer_features" }}</p>
+        <div class="flex flex-wrap gap-1.5">
+          <span class="badge-footer-accent2">WCAG 2.1 AA</span>
+          <span class="badge-footer-accent2">Open Source</span>
+          <span class="badge-footer-accent2">Privacy Friendly</span>
+          <span class="badge-footer-accent2">Claude Code</span>
+        </div>
+      </div>
+      <hr class="md:hidden border-border my-6" />
+
+      <!-- Column 3: About (Terminal Readout) -->
       <div>
         <dl class="space-y-1">
+          <div class="flex gap-2">
+            <dt class="text-text-dim font-mono text-xs w-20 shrink-0">{{ i18n "footer_about_name" }}:</dt>
+            <dd class="text-text font-mono text-xs">{{ .Site.Params.author }}</dd>
+          </div>
           <div class="flex gap-2">
             <dt class="text-text-dim font-mono text-xs w-20 shrink-0">{{ i18n "footer_about_role" }}:</dt>
             <dd class="text-text font-mono text-xs">{{ i18n "footer_about_role_value" }}</dd>
           </div>
         </dl>
       </div>
-
-      <!-- Column 3: Stack & Feature Badges -->
-      <div>
-        <p class="text-text-dim font-mono text-xs mb-1">{{ i18n "footer_built_with" }}</p>
-        <div class="flex flex-wrap gap-1.5 mb-3">
-          <span class="badge-footer-accent">Hugo</span>
-          <span class="badge-footer-accent">Tailwind CSS</span>
-          <span class="badge-footer-accent">Alpine.js</span>
-          <span class="badge-footer-accent">HTML5</span>
-          <span class="badge-footer-accent">CSS3</span>
-          <span class="badge-footer-accent">JavaScript</span>
-        </div>
-
-        <p class="text-text-dim font-mono text-xs mb-1">{{ i18n "footer_features" }}</p>
-        <div class="flex flex-wrap gap-1.5">
-          <span class="badge-footer-accent2">WCAG 2.1 AA</span>
-          <span class="badge-footer-accent2">Open Source</span>
-          <span class="badge-footer-accent2">Privacy Friendly</span>
-          <span class="badge-footer-accent2">Claude Code</span>
-        </div>
-      </div>
     </div>
 
     <!-- Copyright Bar -->