HTML: ¿Meta descripciones en varios idiomas?

4 minutos de lectura

Avatar de usuario de Zsolt Janes
zsolt janes

¿Cómo puedo establecer meta descripciones en dos idiomas para mi sitio web?

¿Es válido este código de Google?

<meta name="description" lang="en" content="english blablabla" />
<meta name="description" lang="hu" content="hungary blablabla" />

  • ¿Qué quieres decir con “google válido”?

    – unor

    31 de marzo de 2015 a las 14:02

  • cuando no tenemos un error de html y Google escribirá la descripción del idioma correcto, por ejemplo, si uso Google Chrome en húngaro, buscaré y solo veré descripciones en húngaro

    – Zsolt Janes

    31 de marzo de 2015 a las 14:34

avatar de usuario de exoddus
éxodo

Consulte esta publicación del Blog central para webmasters de Google: http://googlewebmastercentral.blogspot.com.es/2010/03/trabajando-con-sitios-web-multilingues.html

Google intenta determinar los idiomas principales de cada una de tus páginas. Puede ayudar a que el reconocimiento de idiomas sea más fácil si se limita a un solo idioma por página y evita las traducciones en paralelo. Aunque Google puede reconocer que una página está en más de un idioma, recomendamos usar el mismo idioma para todos los elementos de una página: encabezados, barras laterales, menús, etc.
Tenga en cuenta que Google ignora toda la información de idioma a nivel de código, desde los atributos “lang” hasta las definiciones de tipo de documento (DTD). Algunos programas de edición web crean estos atributos automáticamente y, por lo tanto, no son muy confiables cuando intentan determinar el idioma de una página web.

Alguna información sobre sitios web en varios idiomas:

Dado que el atributo html “lang” no permite definir varios idiomas, y el atributo meta para especificar el idioma está obsoleto, de acuerdo con las recomendaciones de W3, es mejor especificar el idioma en el encabezado HTTP.

HTTP/1.1·200·OK
Date:·Sat,·23·Jul·2011·07:28:50·GMT
Server:·Apache/2
Content-Location:·qa-http-and-lang.en.php
Vary:·negotiate,accept-language,Accept-Encoding
TCN:·choice
P3P:·policyref="http://www.w3.org/2001/05/P3P/p3p.xml"
Connection:·close
Transfer-Encoding:·chunked
Content-Type:·text/html; charset=utf-8
Content-Language:·en

Al igual que el metaelemento con el atributo http-equiv establecido en Content-Language, el valor del encabezado HTTP puede ser una lista de etiquetas de idioma separadas por comas.

Ver:
https://www.rfc-editor.org/rfc/rfc2616#section-14.12

Como dice RFC2616:

Multiple languages MAY be listed for content that is intended for
   multiple audiences. For example, a rendition of the "Treaty of
   Waitangi," presented simultaneously in the original Maori and English
   versions, would call for

       Content-Language: mi, en

Si vas a http://validator.w3.org/check e intenta validar esto:

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Language" content="en,hu">
<meta charset="UTF-8">
</head>
<body>
<p>Test</p>
</body>
</html>

Herramienta de validación W3 dice:

Line 5, Column 52: Using the meta element to specify the document-wide default language is obsolete. Consider specifying the language on the root element instead.

Entonces, si el atributo lang en la etiqueta html no permite varios idiomas, creo que su mejor intento será especificarlo en el encabezado HTTP

los lang El atributo se puede colocar en cualquier elemento, no solo en la raíz. html elemento o meta name="description". para que puedas escribir <html lang="en"><body>The Chinese translation of Stack Overflow is <span lang="zh-Hans">堆叠溢位</span></body></html> y es bueno poner esos lang atributos porque ayuda a los navegadores visuales a elegir las fuentes correctas y a los navegadores de audio para personas ciegas a elegir la voz correcta.

Algunos motores de búsqueda que no son de Google todavía quieren lo obsoleto <meta http-equiv="content-language"> marcado (en particular, Bing y Baidu, según se informa, todavía los quieren), pero no tengo idea de si sus implementaciones son lo suficientemente compatibles con los estándares para hacer frente a dos o más idiomas enumerados en http-equiv="content-language" (pruébalo y verás).

En cuanto a si los motores de búsqueda respetarán múltiples instancias de meta name="description" en varios idiomas (con las correspondientes lang atributos), eso depende del motor de búsqueda. Google ha indicado que no les gustan las traducciones en paralelo, lo cual es una lástima para aquellos de nosotros que hablamos de idiomas extranjeros.

¿Ha sido útil esta solución?