2010-05-05 6 views
10

Tengo un sitio que tiene todo su contenido traducido a varios idiomas y no tiene cuentas (para establecer el idioma preferido allí). Puedo detectar el idioma preferido usando Accept-Language, ip o cualquier otra cosa. tengo 3 formas de almacenar la selección del idioma de usuario:Dónde almacenar el idioma seleccionado en el sitio multilingüe: sesión/cookies o url?

  1. Detectar idioma y lo almacenan en la galleta/sesión y permitir el lenguaje de conmutación (y también la almacenan en la galleta/sesión)
  2. Uso detectado idioma si no hay idioma especificado en la URL, y mostrar los enlaces a URL con un lenguaje diferente
  3. enlaces de lenguaje y muestran
  4. uso del sitio por defecto a otros idiomas

Almacenamiento langage de URL puede ser de cualquier tipo: dominio diferente, subdominio, o en algún punto url

Pienso en el primer caso, ya que me permite enviar una url a cualquier persona y se le presentará en su idioma de preferencia. Pero otra opinión es que un idioma diferente significa datos diferentes, por lo que debe tener un vínculo diferente.

Respuesta

19

Guárdelo en la URL como parte de pathinfo, de preferencia lo más cerca posible del nombre de dominio. P.ej. http://example.com/en/page o http://en.example.com/page. No solo es SEO más amigable, sino que también se garantiza que funciona con cookies/clientes sin sesión.

También puede optar por una combinación. Si el cliente admite cookies, puede usarlo para almacenar el idioma "preferido". Si esta información está ausente en la sesión, redirija a una URL que muestre el idioma que coincide más con el encabezado Accept-Language y almacene este idioma en la sesión (que está en la mayoría de los lenguajes de programación/frameworks respaldados por una cookie) . Si el usuario cambia esta información, entonces también refleje el cambio en la sesión.

+0

Respuesta muy completa y razonable. –

Cuestiones relacionadas