Autore Topic: Header e .htaccess per un sito multilingue  (Letto 3382 volte)

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Header e .htaccess per un sito multilingue
« il: 27 Dicembre, 2011, 18:30:40 »
Come molti sapranno, quando un browser esegue una richiesta di visualizzazione di una pagina ad un webserver, deve instaurare un dialogo con lui e stabilire alcune regole. Queste regole fondamentali vengono inviate mediante gli header HTTP di cui mostro un esempio

Codice:
Only registered users can see contents. Please click here to Register or Login.
in cui vengono stabilite alcune cose tra cui la lingua supportata dal browser, il tipo di charset, l'eventuale possibilità di ricevere i dati compressi ed altre cose per cui rimando ad altri articoli più tecnici.

Se volete verificare cosa viene inviato dal vostro browser, potete chiedere la seguente pagina >> QUI << e leggerne il contenuto a video.

In particolare, siamo interessati all' Header Accept-Language che riporta la lingua accettata dal nostro browser, ma questo non significa che se settata con IT non si possano leggere le pagine in inglese, ma semplicemente che il nostro browser comunica di essere impostato per la lingua italiana.

A questo punto, se disponiamo di un webserver Apache, ovvero su piattaforma linux, dobbiamo creare un file .htaccess nella directory in cui prevediamo di inserire le nostre pagine html contenente, ad esempio, le seguenti righe:

Codice:
Only registered users can see contents. Please click here to Register or Login.
Con cui diciamo al webserver di fornire pagine con estensione .it per l'header accept-language: it oppure pagine con estensione .en per l'header accept-language:en e così via.

Per concludere, possiamo realizzare le nostre pagine, ad esempio le varie index.html, nei diversi linguaggi, come segue:

FILE index.html.it
Codice:
Only registered users can see contents. Please click here to Register or Login.

FILE index.html.en
Codice:
Only registered users can see contents. Please click here to Register or Login.
e così via per le altre lingue che ci interessano, facendo attenzione a non inserire pagine che non abbiano l'estensione della lingua e tenendo conto che la lingua di default è l'inglese.

Per fare qualche esperimento ho preparato tre pagine (italiano, francese ed inglese) richiamabili tramite il link:

http://www.serzio.it/lang/index.html

tenendo conto che la pagina visualizzata sarà quella relativa alla lingua che il nostro browser comunicherà di accettare.

PS.
Con Firefox c'e' un'interessante estensione chiamata "Modify Headers" che permette di effettuare le modifiche necessarie per testare il metodo appena illustrato:

[ Guests cannot view attachments ]
« Ultima modifica: 28 Dicembre, 2011, 01:18:50 da serzio »

peppe990

  • Nuovo arrivato
  • *
  • Post: 63
Re:Header e .htaccess per un sito multilingue
« Risposta #1 il: 14 Giugno, 2012, 11:40:18 »
Molto interessante questo tutorial, ma vorrei farti una domanda:
è possibile che un browser accetti o sia volutamente impostato dall'utente ad accettare più lingue? tipo:
Codice:
Only registered users can see contents. Please click here to Register or Login.
in questo caso, seguendo il tuo metodo, il browser quale pagina andrebbe a scaricare?

Grazie

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:Header e .htaccess per un sito multilingue
« Risposta #2 il: 14 Giugno, 2012, 17:01:16 »
Molto interessante questo tutorial, ma vorrei farti una domanda:
è possibile che un browser accetti o sia volutamente impostato dall'utente ad accettare più lingue? tipo:
Codice:
Only registered users can see contents. Please click here to Register or Login.
in questo caso, seguendo il tuo metodo, il browser quale pagina andrebbe a scaricare?

Grazie

Il browser è in grado di inviare una sola informazione sul linguaggio nell'header e pertanto pur essendo teoricamente in grado di accettare qualsiasi linguaggio, riceverà solo la pagina relativa alla sua impostazione.