Sul web è sempre importante associare il contenuto alle informazioni linguistiche. Questo è importante, da un lato, affinché il contenuto possa essere elaborato o presentato correttamente al lettore, ma, dall'altro, può anche essere importante conoscere la lingua (o le lingue) del pubblico a cui è destinata la risorsa nel suo complesso. Queste sono due cose diverse: le tecnologie dovrebbero fornire modi separati di esprimere ciascuno di essi e gli autori dei contenuti dovrebbero utilizzarli in modo appropriato.
Questo articolo descrive come questi due tipi di informazioni linguistiche ('metadati' e 'elaborazione del testo') differiscono.
Un browser o un'applicazione deve generalmente tenere conto della lingua quando visualizza o manipola il contenuto. Questo include cose come leggere il testo in un browser vocale, eseguire un correttore ortografico, spezzare le linee di stile, applicare la sillabazione, scegliere i font predefiniti e molte altre cose che devono essere fatte in una lingua appropriata. Per questo, ha bisogno di sapere con quale lingua specifica si sta trattando per una specifica gamma di testo.
Quindi, per necessità, stiamo parlando di associare una singola lingua al testo, o a qualche intervallo di testo, all'interno della risorsa. Mentre il pubblico a cui ci si rivolge può parlare di più di una lingua, un'area specifica di testo può essere in una sola lingua alla volta.
In HTML l'attributo lang
è usato per specificare il linguaggio di elaborazione del testo. Può essere usato per impostare un valore predefinito per la pagina nel suo complesso e per i frammenti interni in cui la lingua cambia.
Questa necessità di specificità ha implicazioni su come si dichiara la lingua per l'elaborazione dei testi. Questo è il motivo per cui l'attributo lang
permette di usare solo un singolo valore di lingua.
I metadati che descrivono la lingua o le lingue del pubblico destinatario riguardano il documento/risorsa nel suo complesso. Tali metadati possono essere utilizzati per cercare, servire la versione linguistica corretta, la gestione del flusso di lavoro, la classificazione, ecc.
La lingua del pubblico destinatario non include necessariamente tutte le lingue utilizzate in un documento. Molti documenti sul Web contengono frammenti di contenuto in diverse lingue, mentre la pagina stessa è chiaramente rivolta a chi parla una lingua particolare. Ad esempio, una città-guida tedesca per Pechino può contenere frasi utili in cinese, ma è rivolta ad un pubblico di lingua tedesca, non cinese.
D'altra parte, è anche possibile che una pagina contenga lo stesso contenuto o contenuti paralleli in più di una lingua. Ad esempio, una pagina web canadese può accogliere lettori con contenuto francese nella colonna di sinistra e lo stesso contenuto in inglese nella colonna di destra. Qui il documento si rivolge in egual misura ai parlanti di entrambe le lingue, quindi ci sono due lingue di pubblico. Questa situazione non è così comune sul Web come nel materiale stampato, poiché è facile collegarsi a pagine web separate per pubblici diversi, ma si verifica quando ci sono comunità multilingue. Un altro caso d'uso è un blog o una pagina di notizie rivolta a una comunità multilingue, dove alcuni articoli di una pagina sono in una lingua e altri in un'altra. Ad esempio, un forum utilizzato da una comunità del Punjabi può contenere messaggi in inglese, hindi e punjabi in un unico thread.
Ci sono anche pagine in cui le informazioni di navigazione, compreso il titolo della pagina, sono in una lingua ma il vero contenuto della pagina è in un'altra. Anche se questa non è necessariamente una buona pratica, non cambia il fatto che la lingua del pubblico destinatario è di solito quella del contenuto, indipendentemente dalla lingua in cima alla fonte del documento.
Per una pagina HTML, i metadati sul pubblico potrebbero essere espressi in un'intestazione HTTP Content-Language
. Questa intestazione di contenuto può assumere valori multipli.
Le pagine HTML a volte contengono un meta
elemento che può dichiarare il linguaggio in modo simile, ad esempio <meta http-equiv="content-language" content="en, fr"/>
, ma questo costrutto è ora deprecato e non dovrebbe essere usato. (Per maggiori dettagli, vedere intestazioni HTTP, meta elementi e informazioni sulla lingua.)
In alcuni casi, può essere possibile dedurre la lingua di elaborazione del testo dai metadati della risorsa, ma non sempre.
Se il valore dei metadati è una lista di più di una lingua, ci deve essere un modo per identificare quale lingua utilizzare quando si tratta di elaborare il contenuto.
Inoltre, in caso di cambiamenti di lingua all'interno di un documento, le informazioni sulla lingua del destinatario non possono essere associate alla parte appropriata della pagina o del documento come sarebbe necessario per l'elaborazione del testo (ad esempio, in un modo che sarebbe necessario per la corretta applicazione della lingua specifica text-to-speech, styling, assegnazione automatica dei caratteri, ecc. a diverse parti del documento.)
Quando si sviluppa una nuova tecnologia o un nuovo formato per i dati, gli sviluppatori dovrebbero quindi fornire metodi separati per esprimere la lingua del pubblico a cui sono destinati rispetto alla lingua di elaborazione del testo.
Gli sviluppatori di contenuti dovrebbero utilizzare correttamente i costrutti disponibili.
Per informazioni su come impostare il linguaggio in HTML, vedere Linguaggio di dichiarazione in HTML.
Per iniziare? La lingua sul Web
Tutorial, Lavorare con il linguaggio in HTML
Creazione di HTML e CSS