Поэтому я пытаюсь предоставить свой сайт на нескольких языках.
Я хотел бы иметь возможность изменить язык на странице без изменения URL. (Так же, как YouTube)
Мой вопрос: как я могу предоставить свой веб-сайт на нескольких языках, сохраняя при этом URL-адрес? А также индексировать каждый язык поисковыми системами
Вот моя текущая идея:
Моя текущая идея состоит в том, чтобы каждая страница искала языковую переменную (будет установлена либо в файле cookie, либо в настройках пользователя)
Затем из этой переменной загрузите файл с массивом с текстом соответствующего языка.
Теперь я просто извлекаю значения из массива и помещаю их в элементы.
Для поисковых систем я могу установить параметр get в качестве переменной get.
Но этот метод не может быть лучшим
Вы храните язык в куки. Xou прямо там.
Затем вы загружаете файл на основе языка. Этот файл похож на XML или YAML.
XML (английский):
<string id="title">My Page</string>
XML (немецкий):
<string id="title">Meine Seite</string>
XML (клингон):
<string id="title">DutlhHo'</string> <!-- not actually klingon -->
Теперь вы просто разбираете это.
Есть несколько вещей, которые вы могли бы сделать, среди вариантов:
Недостатки каждого метода соответственно
Это усложняет добавление фактического субдомена, поскольку язык будет настроен как субдомен, хотя технически это тот же контент с другим языком.
Это делает анализ URL более сложным, если вы делаете это самостоятельно. Вы должны были бы принять во внимание то, что язык установлен или не установлен (возможно, затем установите язык по умолчанию). Если вы не установите язык по умолчанию, вам также нужно будет убедиться, что все ваши ссылки содержат язык в своем пути, если это еще не произошло автоматически.
Недостатком является то, что вы сохраняете данные на стороне клиента, например, пользователь может удалить куки, и настройки или языковые настройки исчезнут.
Из вышеперечисленных вариантов третий, безусловно, является наиболее простым решением для реализации. Никаких проблем с поддоменами или URL-адресами, просто чтение значения из файла cookie и загрузка языкового стандарта, если язык поддерживается, в противном случае загружается языковой стандарт по умолчанию.
Это, безусловно, ваш лучший вариант, который требует минимальных усилий, когда дело доходит до перестройки частей вашего приложения. (Предполагая, что у вас нет структуры, которую вы используете)
В этом случае нет никаких существенных недостатков безопасности при использовании файла cookie, если вы сохраняете языковые данные в файле cookie без другой информации. Это связано с тем, что вы не сохраняете конфиденциальные данные, поэтому любой, кто украдет этот файл cookie, не будет знать ничего, кроме языка, на котором он предпочитает видеть ваш сайт, что совершенно неактуально в 99,9999% случаев.
Это, конечно, слегка предвзятый ответ, так как этот вопрос опирается на опыт / мнения других людей, но факты были упомянуты выше (очень кратко, неполно, но суть понятна).