Двухязычный статичный сайт без CMS

326
08 февраля 2017, 23:13

Господа, нужен Ваш совет, решение, etc.
Есть сайт простой сайт, без админки, просто набор страниц (штук 20), контент на укр. языке, нужно сделать его рос. версию, чтобы получилось типа: site.com.ua\index.php - на укр. языке и site.com.ua\ru\index.php на рос. языке.
Сделано: в корневой папке сайта созданы две папки \ua i \ru в каждой их них есть полностью готовый сайт на соответствующем языке со всеми страницами, картинками и т.д.
Вопрос: как объединить эти две версии? Нужно ли создать какой-то файл типа index.php в корневой папке сайта и там прописать чтоб при запросе в поисковике сайт выводился на соответствующем языке запроса и чтоб была дефолтная версия? Как это сделать?
И вопрос номер два: что прописать для переключения текущей страницы между языками.

Answer 1

Не нужно никакой "общей версии" - это прошлый век. Пользователь должен войти на сайт и сразу получить контент. Редиректите всех зашедших "не туда" с помощью .htaccess. Например, всех по умолчанию шлем сразу на украинскую версию:

RewriteEngine On
RewriteRule !^(ru/|ua/).* http://site.com/ua/$1 [R=301,L]

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

Что на счет перехода между версиями - сделайте на страницу ссылку на версию с противоположным языком. Она может быть текстовой (RU/UA) или в виде картинки с флажком.

Answer 2

Можете проверять язык браузера в .htaccess вот так:

#ru
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteCond %{HTTP:Accept-Language} (ru) [NC]
RewriteRule .* https://greatestsiteever.com/ru/ [R=302,L]
#ua
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteRule .* https://greatestsiteever.com/ua/ [R=302,L]

Юзер будет перенаправлен в папку с локализацией, соответствующей языку браузера пользователя.

READ ALSO
Как задать колонтитул в HTML-шаблоне что бы он выводился на печать

Как задать колонтитул в HTML-шаблоне что бы он выводился на печать

Есть шаблон на HTML, необходимо реализовать печать колонтитула на каждой из страниц внизу, сейчас такой код:

417
Встраивание изображения

Встраивание изображения

Есть скрипт graphphp, который создаёт график по характеристикам

354
Спрятать один елемент и показать второй после события

Спрятать один елемент и показать второй после события

Есть простой генератор (ссылка на codepen)Как после алерта спрятать кнопку "ask" и показать "new"?

351
owl-carousel 2 - не выводит элементы управления

owl-carousel 2 - не выводит элементы управления

Ребят! Кто юзает сей дивный плагинПочему не отображает кнопы влево/вправо? И не срабатывает автоплей

431