2010-05-05 5 views
10

Ho un sito che ha tutto il suo contenuto tradotto in più lingue e non ha account (per impostare la lingua preferita lì). Sono in grado di rilevare la lingua preferita usando Accept-Language, ip o qualsiasi altra cosa. Ho 3 modi per memorizzare la selezione della lingua utente:Dove memorizzare la lingua selezionata sul sito multilingue: sessione/cookie o url?

  1. Rileva lingua e conservarla in cookie/sessione e consentire il linguaggio di commutazione (e anche memorizzarlo in cookie/sessione)
  2. Usa rilevato lingua se non c'è lingua specificato nella URL, e mostrare i collegamenti a URL con lingua diversa
  3. Usa lingua sito e mostrare i collegamenti ad altre lingue

Memorizzazione langage in URL può essere di qualsiasi tipo: dominio diverso, sottodominio, o da qualche parte in url

Penso al primo caso in quanto mi consente di inviare un URL a chiunque e verrà presentato a loro nella lingua preferita. Ma un'altra opinione è che un linguaggio diverso significa dati diversi, quindi deve avere un link diverso.

risposta

19

Memorizzarlo nell'URL come parte di pathinfo, preferibilmente il più vicino possibile al nome di dominio. Per esempio. http://example.com/en/page o http://en.example.com/page. Non è solo un amico SEO, ma è anche garantito che funzioni con i client cookie/session-less.

Puoi anche scegliere una combinazione. Se il client supporta i cookie, è possibile utilizzarlo per memorizzare la lingua "preferita". Se questa informazione è assente nella sessione, quindi reindirizzare a un URL che visualizza la lingua che corrisponde all'intestazione Accept-Language e memorizzare questa lingua nella sessione (che è nella maggior parte dei linguaggi di programmazione/framework come già supportato da un cookie) . Se l'utente modifica queste informazioni, riflette anche le modifiche nella sessione.

+0

Risposta molto completa e ragionevole. –