Какое лучшее место для отображения языка в вашем URL?

StackOverflow https://stackoverflow.com/questions/2931597

Вопрос

У меня есть многоязычный веб-сайт, который использует симпатичные URL-адреса, так называемые поиском-двигательными URL-адресами.

Теперь есть несколько мест для определения языка в URL:

    • www.example.com/en/articles/random
    • www.example.com/nl/articles/random
    • en.example.com/articles/random
    • nl.example.com/articles/random
    • www.example.com/articles/random?lang=en
    • www.example.com/articles/random?lang=nl

Есть ли предпочтительный способ показать это или есть еще один лучший способ, которым я не включил?

Это было полезно?

Решение 4

Я нашел хорошее Ресурс из Google на выбор вы можете сделать. Существует раздел с плюсами и минусами каждого метода, который вы можете использовать.

Я был бороться с многоязычными сайтами некоторое время.

В статье определенно есть некоторые точки, которые не упоминаются в упомянутых ответах. Вот почему я почувствовал необходимость публиковать это как ответ. Я надеюсь, что это поможет кому-то.

Другие советы

Я скажу вам, что не лучшее практика - используя параметры (3RD One). Создание пользователей типа сложный URL просит неприятностей.

Ваши страницы могут внутренне использовать получать параметры, чтобы найти Lang, но используйте модуль Rewrite URL, доступный на вашем веб-сервере, чтобы сделать его простым, таким как 1-й - www.mydomain.com/en/articles/random

Даже второй в порядке, кроме большинства пользователей типа доменного имени и нажмите Ctrl + Enter.

https://addons.mozilla.org/en-us/firefox/

http://msdn.microsoft.com/en-us/default.aspx.

http://www.apple.com/in/

Mozilla, Microsoft и Apple находятся в трех разных уголках мира разработки программного обеспечения, с точки зрения .. Ну .. все. Иногда я склонен думать, что эти три больших парня делают вещи только для не согласны друг с другом. Но если Oни Следуют за обычной практикой, это должно иметь смысл ...

Если ваше беспокойство о симпатичных URL для поисковых систем, первое примечание Большинство основных поисковых систем могут обнаруживать язык во время анализа, Поэтому, если не находятся на конкретном языке, является действительно важным аспектом, вам не нужно беспокоиться о дружественной системе поисковой системы.

  • Подход 1: ИМХО хорошо, когда вы хотите запустить все статьи на всех языках одновременно. Но затем, когда вы вносите изменения в одном месте, вам нужно будет войти все места и делать то же самое.
  • Подход 2: Аккуратный для использования, как Wikipedia, где разные языки означают фактические веб-сайты (статьи не являются переводом друг от друга, а скорее другое содержание)
  • Подход 3: Хороший выбор, если вы обычно запускаете на некоторых языках, и переводы приходят позже (например, Google, например). Вы можете иметь язык по умолчанию, если язык не указан, или даже сохранить его на сеансе, чтобы он был сохранен среди изменений страницы.

Я хотел бы добавить один, который мы выбрали для www.openimages.eu:

4)
www.mydomain.com/articles/random.en
www.mydomain.com/articles/random.nl

Но лучше всего послушать предпочтительный язык, который браузер связывается в его запросе:

Accept-Language nl,en;q=0.7,en-us;q=0.3

И по умолчанию обслуживайте свои страницы на этом языке, если его доступно. Вы можете предоставить пользователей для пользователей сделать «.en» или '.NL'-вещь.

Я думаю, что это будет зависеть от вашей среды. Вы создаете те же страницы на нескольких языках, используя веб-каркас с базой данных или у вас есть статические страницы?

Во многих общих веб-каркасах (Rails или Symfony) вы можете настроить правила маршрутизации для # 1, которые автоматически заполняют параметр с языком, который контроллер будет затем использовать для генерации соответствующего контента. Три тоже работали, конечно, но это немного отвлекает на мой взгляд.

2 особенно подходит, если вы вызывали перенаправление на уровне веб-сервера и обладают преимуществом разрешения URL из / без потенциально «потерять» настройки языка вашего пользователя. Другими словами, ссылка на / home отвезует вас на правильную языковую версию страницы «Главная».

Последний вариант - хранить язык как пользовательские предпочтения в файле cookie и не заполнить его в URL-адрес вообще.

Первый имеет больше смысла. Потому что если кто-то хочет пойти прямо на вас страницу, и он / он может просто ввести в Blabla.com/en и добраться до того, что он / он хочет ...

Я не знаю, есть ли какая-то «лучшая практика» в этом случае, так как она, вероятно, просто сводится к личному мнению.

Для меня я бы хотел поддерживать третий вариант, поскольку это действительно такая же страница, которая загружается, вы просто модифицируете контент с параметром Get. Использование отдельного URL (вместо параметра) будет означать мне, что это полностью отдельная страница / ресурс, который в этом случае она не будет. Вы также можете получить поисковые системы, индексируя страницу несколько раз на разных языках и т. Д. (Хотя, возможно, это то, что вы хотите).

Поисковые системы рассматривают подгруппы, чтобы быть независимыми веб-сайтами. Я не уверен, как это влияет на SEO, хотя.

Я далеко не знал «правильный» ответ (я предполагаю, что нет), но, как вы спрашиваете комментарии, вот мой:

URL (или URI) - это то, что описывает или идентифицирует ресурс. Отказ Если я правильно помню, URL не должен зависеть от как Ресурс должен отображаться (HTML, XML, JSON и т. Д.).

Вы также можете рассмотреть язык как способ указать как Ресурс должен быть отображен.

Так что, на мой взгляд, последний вариант, а именно указав язык как параметр будет более подходящим.

Если вы ищете «дружелюбную систему поиска» и «красивые» URL-адреса, вы должны избегать разоблаченных параметров получения. Они не выглядят так хорошо для глаз как подделки или подсылок, и не совсем удобно.

С учетом этого я бы выбрал подпунктер. Вы получаете простой обычный «переключатель» для изменения отображаемого языка, и он не похоронен в середине вашего URL. Очень легко заметить и изменить.

Я бы определенно пошел на

www.mydomain.com/articles/random?lang=en
www.mydomain.com/articles/random?lang=nl 

Потому что более естественно, чтобы сказать: «Эта ссылка (полная ссылка) находится на английском или голландском».

В противном случае (URL домена / LANG / RESTOFOF) создает впечатление, что у вас есть какая-то структура, которая содержит разные вещи для EN и NL. То же самое относится и к lang.domain / ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top