2026-07-14

Internazionalizzazione (i18n) per Applicazioni Web

Internazionalizzazione (i18n) per Applicazioni Web

L'internazionalizzazione (i18n) prepara la tua app per più lingue. La localizzazione (l10n) la adatta per regioni specifiche. Pianifica presto per evitare refactor costosi.

Rilevamento Locale

URL-based: /en/, /fr/ (SEO-friendly, esplicito). Domain-based: en.example.com, fr.example.com. Header-based: Accept-Language (implicito). Preferenza utente: Memorizzata in cookie/localStorage. Priorità: URL > Pref utente > Header > Default. Redirect root a locale rilevato.

Gestione Traduzioni

File JSON: Semplici, version-controlled (en.json, fr.json). ICU MessageFormat: Plurali, select, date/time, number. Piattaforme traduzione: Crowdin, Lokalise, Transifex, Phrase, Weblate. Integrazione CI: Auto-sync, PR checks. Chiavi: Namespaced (common:button.save), descrittive.

ICU MessageFormat

Plurali: {count, plural, one {# item} other {# items}}. Select: {gender, select, male {He} female {She} other {They}}. Date/Time: {date, date, short}, {date, time, medium}. Number: {price, number, currency}. Nested: Combina per messaggi complessi. Supportato da: FormatJS, i18next, next-intl, lingui.

Supporto Right-to-Left (RTL)

Lingue: Arabo, Ebraico, Persiano, Urdu. CSS: dir=rtl su html, logical properties (margin-inline-start vs margin-left), flex/grid auto-reverse. Icone: Mirror directional icone (frecce, chevron). Immagini: Flip se direzionali. Librerie: rtlcss (post-process), tailwindcss-rtl.

Formattazione Date, Ora e Numeri

Intl.DateTimeFormat: Date/ore locale-aware. Intl.NumberFormat: Decimali, valuta, percentuale, unità. Intl.RelativeTimeFormat: '2 days ago'. Intl.ListFormat: 'A, B, and C'. Fusi orari: IANA (America/New_York), UTC. Memorizza UTC, mostra locale.

Integrazione Framework

Next.js: next-intl (App Router), next-i18next (Pages). React: i18next + react-i18next, FormatJS (react-intl), lingui. Vue: vue-i18n. Svelte: svelte-i18n. Astro: astro-i18n. Remix: remix-i18n. Condiviso: Logica core in package platform-agnostico.

SEO per Siti Multilingue

hreflang:. Sitemap: Includi tutti i locale. Canonical: Per-locale canonical. x-default: Fallback per lingue non matchate. Contenuto: Traduci, non solo redirect. Evita: Auto-redirect basato su IP (rompe crawl).

Workflow Traduzione

Estrai: CLI tools (i18next-scanner, lingui extract). Review: Contesto (screenshot, commenti). Traduci: Umano + MT (machine translation) post-edit. QA: Revisione linguistica, pseudo-localizzazione (espandi testo 30%). Deploy: Atomico, versionato. Monitora: Chiavi mancanti, non tradotte.

Considerazioni Performance

Lazy load traduzioni: Dynamic import per locale. Bundle size: Tree-shake locale inutilizzati. Caching: TTL lungo per file traduzioni. Edge: Servi da CDN. SSR: Includi locale in HTML lang attribute. Evita: Client-side only rendering per contenuto SEO-critico.

Lavoriamo insieme

Hai bisogno di maggiori informazioni, aiuto con il tuo progetto o di sviluppare un'idea?

Che si tratti di una domanda semplice, un dubbio rapido o una chat di 5 minuti, mandami un messaggio—non costa nulla e sono sempre pronto ad aiutare. Mi piace ascoltare per capire il problema, essere creativo nelle soluzioni e puntare a idee semplici, affidabili e non complicate da realizzare rapidamente.

Contattami

Cambia Argomento

Scegli un argomento specializzato da esplorare: