Помогите пожалуйста сделать переключение языков.

VK
На сайте с 01.04.2009
Offline
77
663

Добрый день. Есть сайт без ЦМС просто на отдельных файлах. В основной директории сайт находится одна версия а в поддиректории находится версия на другом языке. Файлы обеих версий имеют одинаковые названия. Необходимо чтобы файлы из основной директории ссылались на файлы с таким же названием в поддиректории и обратно. В сети нашел вот такой вариант

<span class="style1">

<a href="eng/index.php<?php echo (isset($_GET['page']))?'?page='.$_GET['page']:'';?>">ENG</a> /

<a href="index.php<?php echo (isset($_GET['page']))?'?page='.$_GET['page']:'';?>">RUS</a>

</span>

но у меня он не заработал.

Подскажите пожалуйста дилетанту как сделать.

Евгений Крупченко
На сайте с 27.09.2003
Offline
168
#1

говорите, что сайт на отдельных файлах, а ссылки делаете на один и тот же index.php, но просто с ?page=

т.е. в этом варианте все разруливает index.php по переменной $_GET['page']

если правильно понял ТЗ, то нужно вам использовать переменную $_SERVER['SCRIPT_NAME']

и зачем по 2шт все время иметь на страницах, и ENG и RUS?

раз в корне RUS зеркало, то вешайте на всех его страницах только ссылки на ENG аналоги:

<a href="/eng<?=$_SERVER['SCRIPT_NAME']?>">ENG</a>

например со страницы /contact.php (переменная $_SERVER['SCRIPT_NAME'] будет равна /contact.php) приплюсуется /eng и получится ссылка на /eng/contact.php

а во всех файлах ENG оставьте только ссылки на RUS зеркало.

в этом случае получается нужно наоборот не добавить, а обрезать спереди /eng

обрезаем 4 символа спереди функцией substr:

<a href="<?=substr($_SERVER['SCRIPT_NAME'],4,strlen($_SERVER['SCRIPT_NAME']))?>">RUS</a>

VK
На сайте с 01.04.2009
Offline
77
#2

<a href="/eng<?=$_SERVER['SCRIPT_NAME']?>">ENG</a>

работает отлично.

А вот

<a href="<?=substr($_SERVER['SCRIPT_NAME'],4,strlen($_SERVER['SCRIPT_NAME']))?>">RUS</a>

почему то ссылается в итоге сама на себя.

Евгений Крупченко
На сайте с 27.09.2003
Offline
168
#3

куда вторую вставили?

в eng/index.php ?

или тоже в корень?

VK
На сайте с 01.04.2009
Offline
77
#4

4,strlen

заменил на

3,strlen

и все заработало.

ОГРОМНОЕ СПАСИБО, ВЫ ВОЛШЕБНИК.

в моем случае поддиректория ua поэтому убирать нужно было 3 символа. (ua/)

---------- Добавлено 24.03.2019 в 11:56 ----------

EvGenius:
и зачем по 2шт все время иметь на страницах, и ENG и RUS?

Гугл рекомендует:

Каждая языковая версия страницы должна содержать ссылку на остальные версии, а также на саму себя.

Я не пойму страница должна ссылаться сама на себя или имеется ввиду что должна быть ссылка обратно с другого варианта страницы?

SeVlad
На сайте с 03.11.2008
Offline
1456
#5
VladK:
Гугл рекомендует:
Каждая языковая версия страницы должна содержать ссылку на остальные версии, а также на саму себя.

Где он рекомендует саму на себя?

Кури матчасть https://support.google.com/webmasters/answer/182192?hl=ru

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Топики помощи с ⓌordPress (https://searchengines.guru/ru/forum/1032910 ) и основы безопасности сайтов ( https://searchengines.guru/ru/forum/774117 ). *** Помощь\консультации в топиках форума - БЕСПЛАТНО. Платные услуги ( https://wp.me/P3YHjQ-3 ) - с бюджетом от 150$ ***
VK
На сайте с 01.04.2009
Offline
77
#6

SeVlad,

Цитата вот отсюда: https://support.google.com/webmasters/answer/189077?hl=ru

Рекомендации для всех методов

Каждая языковая версия страницы должна содержать ссылку на остальные версии, а также на саму себя.

Я уже понял, что здесь имеется ввиду ссылки в тегах или в сайтмап, просто формулировка такая, что с первого раза не понял.

SeVlad
На сайте с 03.11.2008
Offline
1456
#7
VladK:
просто формулировка такая, что с первого раза не понял.

Да уж.. формулировка действительно ахтунг :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий