Определить несколько языков в html

Я хочу определить более одного языка для документа, потому что он доступен на нескольких языках. Если я использую

<meta http-equiv="content-language" content="en,de,fr" />

это не W3C, и валидатор говорит, что я должен определить его в атрибуте root lang, но этот атрибут поддерживает только один langugage:

<html lang="en">

работает, но не

<html lang="de,en,fr">

Итак, где я должен его определять?

Спасибо за вашу помощь.

Ответ 1

все атрибуты поддерживают только 1 язык, поэтому я считаю, что вы должны определить только 1 язык, самый важный язык должен быть установлен, этого нельзя сделать, если у вас есть несколько языков в одном документе, поэтому вот информация для решения вашей проблемы:

Атрибуты lang и xml: lang не позволяют назначать несколько языков одному документу. Поэтому, если вы пишете веб-страницу на нескольких языках, у вас есть два варианта:

  1. Определите основной язык с атрибутом lang, а затем вызовите дополнительный язык (и) с атрибутами lang для элементов в документе
  2. Оставьте атрибут lang, не используйте его и определите его в различных разделах документа.

пример информации о языке в элементах:

    <div lang="fr-CA" xml:lang="fr-CA">
    Canadian French content...
    </div>
    <div lang="en-CA" xml:lang="en-CA">
    Canadian English content...
    </div>
    <div lang="nl-NL" xml:lang="nl-NL">
    Netherlands, Dutch content...
    </div>

У меня есть несколько языковых страниц, и я использую второй вариант...

Вы можете прочитать http://www.w3.org/TR/2007/NOTE-i18n-html-tech-lang-20070412/#ri20060630.133619987

Ответ 2

Вы не можете использовать его так.

Вам нужно либо использовать кодировку, которая включает все нужные символы (например, UTF-8), которая поддерживает весь диапазон Unicode), либо использовать именованные сущности или числовые ссылки для включения символов вне используемой кодировки.

http://bytes.com/topic/html-css/answers/154652-multiple-languages-one-document

ОБНОВЛЕНИЕ

Если вы используете HTML5, вы можете использовать lang для каждого элемента. Это означает, что если у вас есть div, который содержит в нем мандаринский китайский, просто определите атрибут lang = "zh-CN" для этого div, например. (Что такое альтернатива HTML5 для устаревшего мета-http-equiv = content-language.)

Ответ 3

Значение HTTP-заголовка Content-Language и, следовательно, его суррогат meta заключается в том, что он объявляет языки документа или языки целевой аудитории (соответствующие RFC противоречивы), а не языки некоторых других документов (например, перевод текущего документа). Практический эффект заголовка небольшой, вероятно, ограничен использованием первого языка, названного языком документа, если в HTML-разметке нет информации о языке.

Чтобы указать, что документ доступен на других языках, вы можете использовать теги, например

 <link rel="alternate" hreflang="de" href="foobar.de.html">

См. 12.3.3 Ссылки и поисковые системы в спецификации HTML 4.01.

Нет никакой гарантии, что это будет иметь эффект. Это может повлиять на поисковые системы, но не более, чем нормальная связь. В некоторых старых версиях браузера были команды для выбора альтернативных версий документа на основе таких элементов, но функция, похоже, была удалена.