Я пытаюсь создать многоязычный веб-сайт, используя структуру Django , все содержимое по умолчанию - английский. Я добавил родной перевод (голландский).
https://mydomain.com/ redirects to the user request language setting. (This is default behaviour by adding Django's LocaleMiddleware)
LocaleMiddleware пытается определить предпочтительный язык пользователя
следуя этому алгоритму:
Во-первых, он ищет префикс языка в запрошенном URL-адресе. Это
выполняется только при использовании функции i18n_patterns в вашем
root URLconf. См. Интернационализация: в шаблонах URL для
информация о префиксе языка и о том, как интернационализировать URL-адрес
узоры.
В противном случае он ищет ключ django_language в текущем пользователе
сессии.
В противном случае он ищет файл cookie.
Имя используемого файла cookie устанавливается с помощью LANGUAGE_COOKIE_NAME
установка. (Имя по умолчанию - django_language.)
В противном случае он рассмотрит HTTP-заголовок Accept-Language. Этот заголовок
отправляется вашим браузером и сообщает серверу, на каком языке (языках) вы
предпочитают в порядке приоритета. Django пробует каждый язык в заголовке
пока не найдет один с доступными переводами.
В противном случае он использует глобальную настройку LANGUAGE_CODE.
Поэтому посещение «/» приведет к:
https://mydomain.com/en/ or
https://mydomain.com/nl/
Название, описание, ключевые слова и контент являются языковыми, поэтому каждая страница (почти) полностью переведена. Так:
https://mydomain.com/ru/my-awesome-page/
имеет голландский флаг (языковой переключатель), который содержит эту ссылку:
https://mydomain.com/nl/mijn-fantastische-pagina/
Это отлично работает. Также заголовок моей страницы содержит альтернативный контент на основе языковой переменной, вот псевдокод:
<head>
{% for lang_code in other_languages %}
<link rel="alternate" hreflang="{{ lang_code }}" href="{% url current_url language=lang_code %}"/>
{% endfor %}
</head>
Это приведет к тому, что английская страница будет выглядеть так:
<head>
<link rel="alternate" hreflang="nl" href="https://mydomain.com/nl/mijn-fantastische-pagina/"/>
</head>
Теперь моя проблема заключается в том, что Google индексирует мою домашнюю страницу на английском языке, в то время как я хочу, чтобы голландские посетители увидели голландское название и описание в результатах Google (если они не ищут перевод на английский язык).
Я считаю, что проблема может быть связана с автоматическим перенаправлением корневого url ('/') или автоматической установки языка, если я каким-то образом исключаю роботов? Я прочитал эту статью, но я не понял проблему:
http://googlewebmastercentral.blogspot.nl/2010/03/working -с-многоязычная-websites.html
Также, если я добавлю карту сайта на многоязычный сайт, было бы лучше добавить другую карту сайта для каждого языка или сделать одно большое дерево на основе корней языка?