Определить несколько языков в 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 не позволяют назначать несколько языков одному документу. Поэтому, если вы пишете веб-страницу на нескольких языках, у вас есть два варианта:
- Определите основной язык с атрибутом lang, а затем вызовите дополнительный язык (и) с атрибутами lang для элементов в документе
- Оставьте атрибут 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.
Нет никакой гарантии, что это будет иметь эффект. Это может повлиять на поисковые системы, но не более, чем нормальная связь. В некоторых старых версиях браузера были команды для выбора альтернативных версий документа на основе таких элементов, но функция, похоже, была удалена.
Ответ 4
Какую версию HTML вы используете? В HTML 4.01 использование Content-Language
с несколькими языками допустимо. В HTML5, это не.
Но даже для HTML 4.01 использование Content-Language
для элемента meta
не рекомендуется: HTTP-заголовки, мета-элементы и информация о языке (W3C )