Tell google about localized versions of your page
Содержание:
- A Simple HTML Document
- Генерирование локалей
- HTML Tutorial
- Variables
- Generating locales
- Код
- Blank Lines and Indentation
- The lang Attribute
- Синтаксис Pug
- HTML Tags
- HTML Теги
- HTML Tutorial
- Наследование шаблонов
- Выбор шаблона
- HTML Теги
- Constructing language tags
- HTML Теги
- Для чего
- HTML Reference
- HTML Tags
- Troubleshooting
- Примеры использования и ошибки lang
- Циклы
- Setting the locale
- Guidelines for all methods
- HTML History
A Simple HTML Document
Example
<!DOCTYPE html>
<html><head><title>Page Title</title>
</head>
<body><h1>My First Heading</h1><p>My first paragraph.</p>
</body></html>
Example Explained
- The declaration defines
that this document is an HTML5 document - The element is the root element of an HTML
page - The element contains meta information about the
HTML page - The element specifies a title for the
HTML page (which is shown in the browser’s title bar or in the page’s tab) - The element defines the
document’s body, and is a container for all the visible contents, such as
headings, paragraphs, images, hyperlinks, tables, lists, etc. - The element defines a large heading
- The element defines a paragraph
Генерирование локалей
Перед тем, как локаль сможет быть использована в системе, она должна быть сгенерирована. Чтобы вывести список всех доступных и сгенерированных локалей, выполните:
$ locale -a
Локали, которые вы можете сгенерировать перечислены в файле : их имена заданы в формате . Чтобы сгенерировать локаль, первым делом раскомментируйте соответствующую строку в файле (а для удаления наоборот, закомментируйте); вы можете раскомментировать несколько локалей, в зависимости от ваших потребностей. Например, для русской локали раскомментируйте . После сохранения файла сгенерируйте выбранные локали командой:
# locale-gen
Примечание: также запускается каждый раз при обновлении .
HTML Tutorial
HTML HOMEHTML IntroductionHTML EditorsHTML BasicHTML ElementsHTML AttributesHTML HeadingsHTML ParagraphsHTML StylesHTML FormattingHTML QuotationsHTML CommentsHTML Colors
Colors
RGB
HEX
HSL
HTML CSSHTML Links
Links
Link Colors
Link Bookmarks
HTML Images
Images
Image Map
Background Images
The Picture Element
HTML TablesHTML Lists
Lists
Unordered Lists
Ordered Lists
Other Lists
HTML Block & InlineHTML ClassesHTML IdHTML IframesHTML JavaScriptHTML File PathsHTML HeadHTML LayoutHTML ResponsiveHTML ComputercodeHTML SemanticsHTML Style GuideHTML EntitiesHTML SymbolsHTML EmojisHTML CharsetHTML URL EncodeHTML vs. XHTML
Variables
files support the following environment variables.
Full meaning of the above variables can be found on manpage , whereas details of their definition are described on .
locale.conf
LANG=en_AU.UTF-8 LANGUAGE=en_AU:en_GB:en
LC_TIME: date and time format
If is set to , for example, the date format will be «MM/DD/YYYY». If wanting to use the the ISO 8601 date format of «YYYY-MM-DD» use:
locale.conf
LC_TIME=en_DK.UTF-8
2.29 fixed a bug, started showing in 12-hour format, as was intended. If wanting to use 24-hour format, use .
LC_COLLATE: collation
This variable governs the collation rules used for sorting and regular expressions.
Setting the value to can for example make the ls command sort dotfiles first, followed by uppercase and lowercase filenames:
locale.conf
LC_COLLATE=C
To get around potential issues, Arch used to set in , but this method is now deprecated.
LC_ALL: troubleshooting
The locale set for this variable will always override and all the other variables, whether they are set or not.
is the only variable which cannot be set in files: it is meant to be used only for testing or troubleshooting purposes, for example in .
Generating locales
Locale names are typically of the form , where language is an ISO 639 language code, territory is an , and codeset is a character set or encoding identifier like ISO-8859-1 or UTF-8. See .
For a list of enabled locales, run:
$ locale -a
Before a locale can be enabled on the system, it must be generated. This can be achieved by uncommenting applicable entries in , and running locale-gen. Equivalently, commenting entries disables their respective locales. While making changes, consider any localisations required by other users on the system, as well as specific .
For example, uncomment for American-English:
/etc/locale.gen
... #en_SG ISO-8859-1 en_US.UTF-8 UTF-8 #en_US ISO-8859-1 ...
Save the file, and generate the locale:
# locale-gen
Note:
Код
Pug позволяет использовать встроенный JavaScript код в ваших шаблонах. Существует 3 вида кода: небуферизированный, буферизированный и неэкранированный буферизированный.
Небуферизированный код ничего не выводит и начинается с символа .
Небуферизированный код можно указать и как блок.
Буферизированный код
Буферизированный код вычисляет выражение JavaScript и выводит его результат. Начинается он со знака . В целях безопасности Html код перед выводом экранируется.
Выведет…
Неэкранированный буферизированный код
Неэкранированный буферизированный код также выводит результат выражения JavaScript, но спец. символы он не экранирует. Начинается с символа . Использование такого кода не безопасно.
Фуф… Не маленькая получилась статья. На этом скорее всего завершу. Пока писал данную документацию сам узнал много чего новенького
На этом все… Все спасибо за терпение (если дочитали до конца
Blank Lines and Indentation
Do not add blank lines, spaces, or indentations without a reason.
For readability, add blank lines to separate large or logical code blocks.
For readability, add two spaces of indentation. Do not use the tab key.
Good:
<body><h1>Famous Cities</h1><h2>Tokyo</h2>
<p>Tokyo is the capital of Japan, the
center of the Greater Tokyo Area,and the most
populous metropolitan area in the world.It is the
seat of the Japanese government and the Imperial Palace,
and the home of the Japanese Imperial Family.</p></body>
Bad:
<body> <h1>Famous Cities</h1> <h2>Tokyo</h2> <p> Tokyo is the capital of Japan, the
center of the Greater Tokyo Area, and the most
populous metropolitan area in the world. It is the
seat of the Japanese government and the Imperial Palace,
and the home of the Japanese Imperial Family. </p></body>
Good Table Example:
<table> <tr> <th>Name</th>
<th>Description</th>
</tr> <tr> <td>A</td>
<td>Description of A</td>
</tr> <tr> <td>B</td>
<td>Description of B</td> </tr></table>
The lang Attribute
You should always include the attribute
inside the tag, to declare the
language of the Web page. This is meant to assist search engines and browsers.
The following example specifies English as the language:
<!DOCTYPE html><html lang=»en»><body>…</body></html>
Country codes can also be added to the language code in the
attribute. So, the first two characters define the language of the HTML page,
and the last two characters define the country.
The following example specifies English as the language and United States as
the country:
<!DOCTYPE html><html lang=»en-US»><body>…</body></html>
You can see all the language codes in our
HTML Language Code Reference.
Синтаксис Pug
Код Pug достаточно прост. Он не имеет угловых скобок и закрывающих тегов. Вложенность элементов определяется отступом — Tab или пробел.
В качестве отступов следует использовать либо Tab, либо пробел! И то, и другое нельзя. Иначе мы получим ошибку интерпретатора.
Все это делает код лаконичным и легкочитаемым. И самое главное — ускоряется скорость написания кода.
Как было уже отмечено, синтаксис Pug чем-то напоминает синтаксис Sass:
- Вложенность определяется отступом (Tab или пробел)
- Классы задаются через точку (.)
- Id задаются через решетку (#)
- Однострочные комментарии задаются через //
Это в основном тот список, что нужно знать, чтобы начать работать с Pug. Сюда я бы добавил еще то, что атрибуты указываются в круглых скобках. Давайте теперь по порядку.
HTML Tags
<!—><!DOCTYPE><a><abbr><acronym><address><applet><area><article><aside><audio><b><base><basefont><bdi><bdo><big><blockquote><body><br><button><canvas><caption><center><cite><code><col><colgroup><data><datalist><dd><del><details><dfn><dialog><dir><div><dl><dt><em><embed><fieldset><figcaption><figure><font><footer><form><frame><frameset><h1> — <h6><head><header><hr><html><i><iframe><img><input><ins><kbd><label><legend><li><link><main><map><mark><meta><meter><nav><noframes><noscript><object><ol><optgroup><option><output><p><param><picture><pre><progress><q><rp><rt><ruby><s><samp><script><section><select><small><source><span><strike><strong><style><sub><summary><sup><svg><table><tbody><td><template><textarea><tfoot><th><thead><time><title><tr><track><tt><u><ul><var><video>
HTML Теги
<!—…—><!DOCTYPE><a><abbr><acronym><address><applet><area><article><aside><audio><b><base><basefont><bdi><bdo><big><blockquote><body><br><button><canvas><caption><center><cite><code><col><colgroup><data><datalist><dd><del><details><dfn><dialog><dir><div><dl><dt><em><embed><fieldset><figcaption><figure><font><footer><form><frame><frameset><h1> — <h6><head><header><hr><html><i><iframe><img><input><ins><kbd><label><legend><li><link><main><map><mark><menu><menuitem><meta><meter><nav><noframes><noscript><object><ol><optgroup><option><output><p><param><picture><pre><progress><q><rp><rt><ruby><s><samp><script><section><select><small><source><span><strike><strong><style><sub><summary><sup><svg><table><tbody><td><template><textarea><tfoot><th><thead><time><title><tr><track><tt><u><ul><var><video>
HTML Tutorial
HTML HOMEHTML IntroductionHTML EditorsHTML BasicHTML ElementsHTML AttributesHTML HeadingsHTML ParagraphsHTML StylesHTML FormattingHTML QuotationsHTML CommentsHTML Colors
Colors
RGB
HEX
HSL
HTML CSSHTML Links
Links
Link Colors
Link Bookmarks
HTML Images
Images
Image Map
Background Images
The Picture Element
HTML TablesHTML Lists
Lists
Unordered Lists
Ordered Lists
Other Lists
HTML Block & InlineHTML ClassesHTML IdHTML IframesHTML JavaScriptHTML File PathsHTML HeadHTML LayoutHTML ResponsiveHTML ComputercodeHTML SemanticsHTML Style GuideHTML EntitiesHTML SymbolsHTML EmojisHTML CharsetHTML URL EncodeHTML vs. XHTML
Наследование шаблонов
Pug позволяет создавать шаблоны страниц, то есть в последующем любую страницу сайта можно создать по заранее созданному шаблону. Таких шаблонов может быть сколько угодно.
Шаблон Pug
Страницы Pug
Наследование шаблона происходит через ключевое слово , далее через пробел указываем относительный путь до файла шаблона. Расширение файла указывать не обязательно, Pug подставит его сам.
Области в которых нам необходимо вывести содержимое обозначаются словом с указанием имени блока через пробел, например, . Содержимое блока на страницах заменяется дочерним шаблоном. Этот процесс является рекурсивным.
Из примера выше видим, что страницы «Главная» и «О нас» сделаны по одному шаблону. Ориентироваться в коде на таких страницах намного проще, ведь здесь только основное его содержимое.
Содержимое блока в шаблоне может быть и по умолчанию, но это не обязательно. Например, в шаблоне выше у нас существуют блоки и с содержимым по умолчанию. На созданных страницах мы их не выводили, так как их содержимое выведется по умолчанию. Если не нужен контент по умолчанию, то оставляем блок просто пустым, например .
Содержимое блока полностью заменяется дочерним шаблоном, но что, если нам необходимо просто добавить что-либо к содержимому по умолчанию?
Block append / prepend
В примере выше у нас есть блок в секции , в котором указано подключение библиотеки jquery. Теперь представьте, что на определенной странице нам необходимо подключить еще один скрипт в блоке . Можно поступить следующим образом:
То есть указывать везде заново подключение jquery, но можно поступить проще. Добавить в блок через или .
— добавляет в начало списка, — в конец списка. Вообще слово можно опустить, например — Он является не обязательным.
Вообще следует отметить, что создание шаблонов — это мощная функция, которая позволяет разделять наш проект на простые и сложные конструкции страниц. Так что пользуйтесь данной возможностью.
Выбор шаблона
Шаблон {{lang-en}} входит в систему языковых шаблонов, используемых для оформления иноязычных фрагментов внутри русского текста статей (и наоборот). Большинство языковых шаблонов построены на базе шаблонов {{lang}} и {{langi}} ({{langi}} отличается от {{lang}} тем, что текст в нём отображается курсивом).
Как правило, нет необходимости использовать шаблон {{lang}} или {{langi}} напрямую. Для каждого из языков существует свой шаблон, построенный на основе упомянутых. Названия таких шаблонов состоят из приставки «lang-» и кода языка в соответствии с стандартом ISO 639-1. Первым и, как правило, единственным параметром является текст на этом языке.
Этот шаблон {{lang-en}} используется для оформления первого вхождения на данном языке в статье или разделе статьи. Для оформления последующих вхождений на том же языке (если в статье или разделе нет иноязычных вставок на других языках) следует использовать шаблон {{lang-en2}}.
Когда не использовать
Не надо оборачивать данными шаблонами русский перевод с указанного языка. Для этого используйте шаблон из семейства {{tr}}. Транслитерация может быть другим случаем, см. и раздел «» ниже.
В заголовках (мешает ссылкам на такие разделы).
В шаблонах типа {{cite web}}, если текст атрибута используется в ссылке
С осторожностью — в карточках: ссылки от них могут быть не очень заметны.
Шаблоны, в которых текст выводится курсивом, не следует использовать, когда курсив не нужен (см. )
Используйте шаблон {{lang|код языка|текст}}.
HTML Теги
<!—><!DOCTYPE><a><abbr><acronym><address><applet><area><article><aside><audio><b><base><basefont><bdi><bdo><big><blockquote><body><br><button><canvas><caption><center><cite><code><col><colgroup><data><datalist><dd><del><details><dfn><dialog><dir><div><dl><dt><em><embed><fieldset><figcaption><figure><font><footer><form><frame><frameset><h1> — <h6><head><header><hr><html><i><iframe><img><input><ins><kbd><label><legend><li><link><main><map><mark><menu><menuitem><meta><meter><nav><noframes><noscript><object><ol><optgroup><option><output><p><param><picture><pre><progress><q><rp><rt><ruby><s><samp><script><section><select><small><source><span><strike><strong><style><sub><summary><sup><svg><table><tbody><td><template><textarea><tfoot><th><thead><time><title><tr><track><tt><u><ul><var><video>
Some of the key differences between RFC 5646 and earlier specifications such as RFC 3066 are:
- there is just one place to look for valid subtags, the new IANA
registry - subtags have fixed positions and lengths, which makes for easier matching of language tags
- there is more flexibility around the potential components of a language tag.
RFC 3066 essentially allowed you to compose language tags that were either a language
code on its own, a language code plus a country code, or one of a small number of specially registered values in the IANA language tag registry.
RFC 5646 caters for more types of subtag, and allows you to combine them in
various ways. While this may appear to make life much more complicated, generally speaking choosing language tags will continue to be a simple matter
— however, where you need additional power it will be available to you. In fact, for most people, RFC 5646 should actually make life simpler in
a number of ways – for one thing, there is only one place you need to look now for valid subtags.
Although it provides some additional options for identifying common language variations, RFC 5646 includes all of
the tags that were previously valid. If you have been using RFC 1766, RFC 3066, or RFC 4646 you do not need to make any changes to your tags.
The list below shows the various types of subtag that are available. We will work our way through these and how they are used in the
sections that follow.
language-extlang-script-region-variant-extension-privateuse
The entries in the registry follow certain conventions with regard to upper and lower letter-casing. For example, language tags are lower case,
alphabetic region subtags are upper case, and script tags begin with an initial capital. This is only a convention! When you use these subtags you
are free to do as you like, unless you are constrained by the rules of the system you are working with. For HTML and XML language markup, the case should not matter.
HTML Теги
<!—…—><!DOCTYPE><a><abbr><acronym><address><applet><area><article><aside><audio><b><base><basefont><bdi><bdo><big><blockquote><body><br><button><canvas><caption><center><cite><code><col><colgroup><data><datalist><dd><del><details><dfn><dialog><dir><div><dl><dt><em><embed><fieldset><figcaption><figure><font><footer><form><frame><frameset><h1> — <h6><head><header><hr><html><i><iframe><img><input><ins><kbd><label><legend><li><link><main><map><mark><menu><menuitem><meta><meter><nav><noframes><noscript><object><ol><optgroup><option><output><p><param><picture><pre><progress><q><rp><rt><ruby><s><samp><script><section><select><small><source><span><strike><strong><style><sub><summary><sup><svg><table><tbody><td><template><textarea><tfoot><th><thead><time><title><tr><track><tt><u><ul><var><video>
Для чего
- Имея информацию о языке, веб-браузеры могут выбирать шрифт, наиболее подходящий для указанного языка.
- Программы для озвучивания текста для людей с нарушениями зрения могут использовать эту информацию для проговаривания разных частей текста на нужном языке.
- Для программ проверки грамматики и орфографии.
- Пользователи могут применять к тексту CSS-стили по языку.
- Браузер может выбирать подходящие кавычки, а также подходящие правила переноса и соединения букв в лигатуры.
- Поисковые системы могут использовать информацию о языке при индексировании.
- Для статистики об использовании языков в Википедии.
Индивидуальные стили
Пример: применить шрифт к тексту на французском языке («» — «даже если после кода стоит „“ и что-то ещё»):
spanlang|=fr { font-family Garamond; } /* Синоним (код языка обязателен) */ spanlang(fr) { font-family Garamond; }
Для межъязыковых ссылок
Вы можете использовать коды языков для персонального оформления блока «На других языках» в левом меню. Для выделения определённого языка можно использовать примерно такой CSS-код:
/* Выделяем жирным нужные нам языки */ li.interwiki-en, /* английский */ li.interwiki-simple, /* упрощённый английский */ li.interwiki-uk /* украинский */ { font-weightbold; text-shadow 2px 1px 2px #a0a0a0; /* Тень */ }
Для того чтобы ненужные языки сделать менее заметными:
li.interwiki-as, /* ассамский */ li.interwiki-ba, /* башкирский */ li.interwiki-bcl, /* бикольский */ li.interwiki-vo /* волапюк */ { opacity 0.5; font-size 80%; line-height 90%; }
А чтобы при наведении курсора мыши на названии языка его было проще читать:
li.interwiki-enhover, /* английский */ li.interwiki-bahover, /* башкирский */ li.interwiki-yihover, /* идиш */ li.interwiki-xalhover, /* калмыцкий */ li.interwiki-lbehover, /* лакский */ li.interwiki-mhrhover, /* луговомарийский */ li.interwiki-mdfhover /* мокшанский */ { font-weightbold; opacity 1; font-size 110%; }
HTML Reference
HTML by AlphabetHTML by CategoryHTML Browser SupportHTML AttributesHTML Global AttributesHTML EventsHTML ColorsHTML CanvasHTML Audio/VideoHTML Character SetsHTML DoctypesHTML URL EncodeHTML Language CodesHTML Country CodesHTTP MessagesHTTP MethodsPX to EM ConverterKeyboard Shortcuts
HTML Tags
<!—>
<!DOCTYPE>
<a>
<abbr>
<acronym>
<address>
<applet>
<area>
<article>
<aside>
<audio>
<b>
<base>
<basefont>
<bdi>
<bdo>
<big>
<blockquote>
<body>
<br>
<button>
<canvas>
<caption>
<center>
<cite>
<code>
<col>
<colgroup>
<data>
<datalist>
<dd>
<del>
<details>
<dfn>
<dialog>
<dir>
<div>
<dl>
<dt>
<em>
<embed>
<fieldset>
<figcaption>
<figure>
<font>
<footer>
<form>
<frame>
<frameset>
<h1> — <h6>
<head>
<header>
<hr>
<html>
<i>
<iframe>
<img>
<input>
<ins>
<kbd>
<label>
<legend>
<li>
<link>
<main>
<map>
<mark>
<meta>
<meter>
<nav>
<noframes>
<noscript>
<object>
<ol>
<optgroup>
<option>
<output>
<p>
<param>
<picture>
<pre>
<progress>
<q>
<rp>
<rt>
<ruby>
<s>
<samp>
<script>
<section>
<select>
<small>
<source>
<span>
<strike>
<strong>
<style>
<sub>
<summary>
<sup>
<svg>
<table>
<tbody>
<td>
<template>
<textarea>
<tfoot>
<th>
<thead>
<time>
<title>
<tr>
<track>
<tt>
<u>
<ul>
<var>
<video>
<wbr>
Troubleshooting
Common Mistakes
Here are the most common mistakes with usage:
- Missing return links: If page X links to page Y, page Y must link back to page X. If this is not the case for all pages that use hreflang annotations, those annotations may be ignored or not interpreted correctly.
- Incorrect language codes: Make sure that all language codes you use identify the language (in ISO 639-1 format) and optionally the region (in ISO 3166-1 Alpha 2 format) of an alternate URL. Specifying the region alone is not valid.
Debugging hreflang errors
You can use the International Targeting report to debug the most common problems. Make sure that Google has had time to crawl your pages, then visit the Language tab on the report to see if any errors were detected.
There are also many third-party tools available. Here are a few popular tools. (These tools are not maintained or checked by Google.)
- Aleyda Solis’s hreflang tags generator tool for generating or modifying hreflang tags.
- Merkle SEO hreflang tag testing tool for validating hreflang tags on a single live page.
- HREFLang checker and validator for validating hreflang tags on a single live page.
Примеры использования и ошибки lang
Атрибут lang можно использовать в HTML для всего документа и отдельно для каждой части (пример части является цитата на другом языке)
Пример с блога
XHTML
<html lang=»ru-RU»>код сайта</html>
1 | <html lang=»ru-RU»>код сайта</html> |
Таким образом мы указываем, мы указываем страну Россию(RU) и русский язык(ru).
Для сайта на русской языке в Украине код будет выглядит так:
XHTML
<html lang=»ru-UA»>код сайта</html>
1 | <html lang=»ru-UA»>код сайта</html> |
В конце статьи я прикреплю список атрибутов lang для всех стран и языков
Данный код находиться и меняется в index.php или index.html, а также может быть в header.php в зависимости от движка сайта.
Пример использования для части текста или цитаты
<p lang=»en-US»>We do not remember days, we remember moments.</p>
1 | <plang=»en-US»>We donotremember days,we remember moments.<p> |
Ошибки:
Не рекомендуется использовать мета-тег, для указания языка документа:
<meta http-equiv=»content-language» content=»ru»>
1 | <meta http-equiv=»content-language»content=»ru»> |
Циклы
Циклы или итерации в Pug позволяют выполнять какие-то множественные операции, написав всего лишь несколько строк кода. Например, можно вывести список пунктов меню, написав код итерации следующим образом:
Html
Есть возможность также перебрать ключи в объекте.
Html
Вместо вы можете использовать в качестве псевдонима.
Как написано в документации, Pug поддерживает 2 основных вида итераций — это и . Each мы рассмотрели, теперь давайте посмотрим на .
Html
Как видим, циклы это обычный JavaScript и ничего сложного тут нет, хватает всего лишь знаний основ данного языка программирования.
Setting the locale
To display the currently set locale and its related environmental settings, type:
$ locale
The locale to be used, chosen among the previously generated ones, is set in files. Each of these files must contain a new-line separated list of environment variable assignments, having the same format as output by locale.
To list available locales which have been previously generated, run:
$ localedef --list-archive
Alternatively, using :
$ localectl list-locales
Setting the system locale
To set the system locale, write the variable to , where belongs to the first column of an uncommented entry in :
/etc/locale.conf
LANG=en_US.UTF-8
Alternatively, run:
# localectl set-locale LANG=en_US.UTF-8
See and for details.
Overriding system locale per user session
The system-wide locale can be overridden in each user session by creating or editing (or, in general, or ).
The precedence of these files is defined in .
Tip:
- This can also allow keeping the logs in in English while using the local language in the user environment.
- You can create a file so that any new users added using useradd and the option will have automatically generated.
Make locale changes immediate
Once system and user files have been created or edited, their new values will take effect for new sessions at login. To have the current environment use the new settings unset and source :
$ unset LANG $ source /etc/profile.d/locale.sh
Note: The variable has to be unset first, otherwise will not update the values from . Only new and changed variables will be updated; variables removed from will still be set in the session.
Other uses
Locale variables can also be defined with the standard methods as explained in Environment variables.
For example, in order to test or debug a particular application during development, it could be launched with something like:
$ LANG=C ./my_application.sh
Similarly, to set the locale for all processes run from the current shell (for example, during system installation):
$ export LANG=C
Guidelines for all methods
- Each language version must list itself as well as all other language versions.
- Alternate URLs must be fully-qualified, including the transport method (http/https), so:
https://example.com/foo, not //example.com/foo or /foo - Alternate URLs do not need to be in the same domain.
- If you have several alternate URLs targeted at users with the same language but in different locales, it’s a good idea also to provide a catchall URL for geographically unspecified users of that language. For example, you may have specific URLs for English speakers in Ireland (), Canada (), and Australia (), but should also provide a generic English () page for searchers in, say, the US, UK, and all other English-speaking locations. It can be one of the specific pages, if you choose.
- If two pages don’t both point to each other, the tags will be ignored. This is so that someone on another site can’t arbitrarily create a tag naming itself as an alternative version of one of your pages.
- If it becomes difficult to maintain a complete set of bidirectional links for every language, you can omit some languages on some pages; Google will still process the ones that point to each other. However, it is important to link newly expanded language pages bidirectionally to the originating/dominant language(s). For example, if your site was originally created in French with URLs on .fr, it’s more important to bidirectionally link newer Mexican (.mx) and Spanish (.es) pages to your strong .fr presence, rather than to bidirectionally link your new Spanish language variant pages (.mx and .es) to each other.
- Consider adding a fallback page for unmatched languages, especially on language/country selectors or auto-redirecting homepages. Use the :
HTML History
Since the early days of the World Wide Web, there have been many versions of HTML:
Year | Version |
---|---|
1989 | Tim Berners-Lee invented www |
1991 | Tim Berners-Lee invented HTML |
1993 | Dave Raggett drafted HTML+ |
1995 | HTML Working Group defined HTML 2.0 |
1997 | W3C Recommendation: HTML 3.2 |
1999 | W3C Recommendation: HTML 4.01 |
2000 | W3C Recommendation: XHTML 1.0 |
2008 | WHATWG HTML5 First Public Draft |
2012 | WHATWG HTML5 Living Standard |
2014 | W3C Recommendation: HTML5 |
2016 | W3C Candidate Recommendation: HTML 5.1 |
2017 | W3C Recommendation: HTML5.1 2nd Edition |
2017 | W3C Recommendation: HTML5.2 |
This tutorial follows the latest HTML5 standard.