Vai al contenuto
URL / Slug

Generatore slug multi-lingua

Trasforma testo libero in slug URL-friendly con gestione corretta degli accenti italiani (città -> citta-di-torino, perché -> perche-funziona) e diacritici di altre 4 lingue europee. Batch CSV per liste, separatore configurabile (-, _.), max length con word boundary intelligente. Client-side via Unicode NFD normalize.

Singolo slug

Batch CSV

Una stringa per riga. Output CSV con colonne original e slug.

Come usare il generatore

  1. 1

    Incolla il testo

    Titolo articolo, nome prodotto, frase libera. Il tool gestisce direttamente accenti italiani e diacritici di altre lingue europee senza pre-processing.

  2. 2

    Configura il separatore

    Default kebab-case (-) per URL slug. Underscore per filename (snake_case). Punto per nomenclatura specifica (es. dotted notation in alcuni package manager).

  3. 3

    Imposta max length

    Per SEO: titoli URL sotto 80 char sono ottimali. Il tool tronca al word boundary più vicino, evitando slug spezzati a metà parola.

  4. 4

    Batch CSV

    Per dataset (es. nomi categorie, titoli articoli da migrare), incolla nella textarea bulk una riga per voce. Output CSV con colonna originale e slug, importabile in Excel o pipeline ETL.

Perché un altro slug generator

Tre fattori distintivi vs i decine di slug generator generici.

Italian-aware. La maggior parte dei slug generator generici trattano gli accenti italiani in modo "creativo": perché diventa perche ma perche' diventa perche (perdita d'informazione). Oppure peggio: città diventa citta- (apostrofo trasformato in dash). Qui la pipeline e': lowercase locale-aware, applicazione translit map per caratteri speciali (ß->ss, æ->ae, ø->o), normalize Unicode NFD, strip combining diacriticals (\p{M}), replace separatori con kebab. Risultato: città -> citta (apostrofo droppato), perché -> perche (e+combining acute droppato), più -> piu.

Multi-lingua robusto. Spagnolo (ñ->n, ¿/¡ droppati), francese (ç->c, œ->oe, æ->ae), tedesco (ß->ss, ä/ö/ü->a/o/u), inglese (apostrophes droppati: it's -> its). Per ogni lingua il behaviour è deterministico e documentato nelle FAQ.

Word-boundary truncate. Default max 80 char. Quando lo slug supera, il tool tronca al separatore più vicino dopo la metà della lunghezza target. Così ricetta-pasta-al-pomodoro-classica-napoletana (47 char) con max 30 diventa ricetta-pasta-al-pomodoro, non ricetta-pasta-al-pomodoro-clas. Niente parole tagliate.

Glossario

Termini tecnici usati in questa pagina, spiegati in due righe.

Slug #
Versione URL-friendly di un titolo: lowercase, no spazi, no caratteri speciali, separatori normalizzati. Tipicamente usato come ultimo segmento di URL SEO-oriented.
Diacritic #
Segno grafico aggiunto a una lettera per modificare valore fonetico o significato. Italiano: accenti acuti/gravi (e/e', o/o'). Spagnolo: tilde (n/n+tilde). Francese: cedille (c/c+cedille).
Unicode NFD #
Normalization Form Decomposed: scompone i caratteri composti (es. e+acute) in base + combining (es. e + U+0301). Permette di rimuovere i combining preservando le lettere base.
Kebab-case #
Convenzione di naming con parole minuscole separate da trattini: my-tool-page. Standard per URL slug e CSS class.
Word boundary truncation #
Tecnica di troncamento che taglia al confine di parola più vicino, evitando di interrompere parole a metà.

Domande frequenti

Come gestisce 'perche'' (con apostrofo accento)?
Lo droppa. L'apostrofo come accento è un workaround tipografico italiano (errore ortografico in realtà), non Unicode. Il tool quindi lo rimuove insieme agli altri caratteri non-alphanumeric. Per evitare la perdita d'informazione, usa accento Unicode corretto: perché diventa perche via NFD strip, semantica preservata.
I caratteri cinesi/giapponesi/cirillici cosa fanno?
Vengono droppati. Il tool produce solo ASCII alphanumeric + separatore. Per slug multilingua reali (es. siti cinesi con URL cinesi), serve una pipeline diversa: encoding URL diretto (encodeURIComponent) o transliterazione pinyin (lib pypinyin per cinese, kuroshiro per giapponese).
Posso preservare maiuscole nello slug?
Si. Decheckare 'Lowercase' per mantenere il case originale. Tipico use case: identifier camelCase URL-safe (es. userFullName diventa userFullName dopo strip diacritics). Comunque non standard: la maggior parte dei web framework e CMS si aspettano slug lowercase.
Il batch CSV gestisce delimitatori custom?
L'input batch ammette una stringa per riga. Output è CSV standard RFC 4180 con quoted strings. Per import in Excel: salva come.csv, apri in Excel con encoding UTF-8 selezionato. Per import in DB: usa COPY Postgres o LOAD DATA INFILE MySQL specificando comma come delimitatore.
C'e' un limite di lunghezza imposto?
Niente di hardcoded. Il max length del campo è configurable (0 = nessun limite). Default 80 è un compromesso ragionevole per URL SEO. Google indica che URL sopra ~75 char riducono CTR a parita' di rank, sotto 60 è optimal. Slug è solo l'ultimo segmento, quindi 80 lascia spazio per il dominio + path prefix.
Funziona offline?
Si., niente fetch al server. Bookmark per uso offline.
Ci sono collisioni possibili?
Si, attese e by design. Esempio: Citta' di Roma e Citta di Roma producono entrambi citta-di-roma. Se serve unicita' negli slug del database, aggiungi un id numerico in coda (citta-di-roma-1, citta-di-roma-2) o usa un UUID separato come primary key e lo slug come campo non-unico.
Posso aggiungere un prefisso o suffisso allo slug?
Non in V1. Pero' è un text manipulation triviale: dopo aver generato lo slug, concatena come stringa: '/blog/' + slug o slug + '-2026'. Per workflow più complessi (es. timestamp prefix), uno script Python con la stessa pipeline è più adatto.

Chi sviluppa questi strumenti?

Maurizio Fonte, consulente IT senior con oltre 20 anni di esperienza in PHP, Laravel, infrastrutture Linux, cybersecurity e integrazione AI/LLM in azienda. Backend di produzione, modernizzazione di codice legacy, audit di sicurezza, agenti AI e MCP server custom: il lavoro che sta dietro a questi strumenti.

Conosci Maurizio Fonte