Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/12: Рейтинг темы: голосов - 12, средняя оценка - 4.83
nashvek
15 / 3 / 3
Регистрация: 26.04.2013
Сообщений: 41
1

Перевод конкретной страницы на другой язык

03.05.2014, 07:20. Просмотров 2382. Ответов 12
Метки нет (Все метки)

Здравствуйте!

В общем, скажем есть такая структура страниц сайта:
site.ru/rus/category/section/title/

(Языки и страницы получаем параметром $_GET['переменная']

И эту страницу нужно перевести на английский и немецкий. Чтобы при клике на данной странице, вместо rus, подставлялось eng или deu не зависимо, на какой странице будем находится, будь это site.ru/rus/category/section/title/ или site.ru/rus/category/section/ или site.ru/rus/category/ или site.ru/rus/.

Что прописать в
<a href="<? echo "какой динамический скрипт нужно прописать?" ?>">Русский</a>
<a href="<? echo "какой динамический скрипт нужно прописать?" ?>">English</a>
<a href="<? echo "какой динамический скрипт нужно прописать?" ?>">Deutsch</a>

Что-то вроде этого может
PHP
1
echo $URL="http://". $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
Только дело в том, что данный код показывает ссылку на текущую страницу...

Если что-либо не понятно в вопросе, пожалуйста сообщите и объясню подробнее.


Всем спасибо.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2014, 07:20
Ответы с готовыми решениями:

Как отключить кэширование только 1 конкретной страницы?
Здравствуйте! Как отключить кэширование только 1 конкретной страницы?

Перевод сайта на другой язык
Как сделать, чтобы при нажатии на флаг происходил перевод сайта на определенный язык?

Перевод контента на другой язык
Здравствуйте. Необходимо сделать сайт на нескольких языках(Контент и заголовки). Автоматического...

Локализация / интернационализация / перевод приложения на другой язык
Помогите разобраться. Хочу сделать динамическое переключение языков. Доку читал, примеры смотрел,...

Редирект конкретной страницы - JS
Мне нужно сделать редирект, конкретной страницы с помощью JS. Например редирект выглядит вот так. ...

12
pav1uxa
1887 / 1732 / 813
Регистрация: 23.01.2014
Сообщений: 6,132
Завершенные тесты: 1
03.05.2014, 12:58 2
Лучший ответ Сообщение было отмечено nashvek как решение

Решение

Цитата Сообщение от nashvek Посмотреть сообщение
И эту страницу нужно перевести на английский и немецкий. Чтобы при клике на данной странице, вместо rus, подставлялось eng или deu не зависимо, на какой странице будем находится, будь это site.ru/rus/category/section/title/ или site.ru/rus/category/section/ или site.ru/rus/category/ или site.ru/rus/.
PHP
1
2
3
4
5
6
7
8
9
10
11
<?
$str = $_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
//$str = "site.ru/rus/category/section/title/";
$a = preg_match("/^([^\/]+)\/([^\/]+)\/?(.*)$/", $str, $v);
$uri_rus = $v[1]."/rus/".$v[3]; // 
$uri_eng = $v[1]."/eng/".$v[3];
$uri_ger = $v[1]."/ger/".$v[3];
echo "<a href='http://".$uri_rus."'>rus</a><br>\r\n";
echo "<a href='http://".$uri_eng."'>eng</a><br>\r\n";
echo "<a href='http://".$uri_ger."'>ger</a><br>\r\n";
?>
Наверное как то так. Вывод:
HTML5
1
2
3
<a href='http://site.ru/rus/category/section/title/'>rus</a><br>
<a href='http://site.ru/eng/category/section/title/'>eng</a><br>
<a href='http://site.ru/ger/category/section/title/'>ger</a><br>
1
nashvek
15 / 3 / 3
Регистрация: 26.04.2013
Сообщений: 41
03.05.2014, 13:33  [ТС] 3
pav1uxa, ОГРОМНОЕ спасибо! Всё работает отлично!

Добавлено через 21 минуту
pav1uxa, Скажите пожалуйста, можно ли сделать так, чтобы данный скрипт работал с главной страницы?
Т.е. если сейчас находится на site.ru, то при наведении на ссылки появляются только названия языков, например rus. Но после site.ru/rus/ и все последующие работают отлично.

Заранее спасибо.
0
pav1uxa
1887 / 1732 / 813
Регистрация: 23.01.2014
Сообщений: 6,132
Завершенные тесты: 1
03.05.2014, 18:04 4
Цитата Сообщение от nashvek Посмотреть сообщение
pav1uxa, Скажите пожалуйста, можно ли сделать так, чтобы данный скрипт работал с главной страницы?
Т.е. если сейчас находится на site.ru, то при наведении на ссылки появляются только названия языков, например rus. Но после site.ru/rus/ и все последующие работают отлично.
Попробуйте заменить строку с регулярным выражением на
PHP
1
$a = preg_match("/^([^\/]+)\/?([^\/]*)\/?(.*)?$/", $str, $v);
1
03.05.2014, 18:04
nashvek
15 / 3 / 3
Регистрация: 26.04.2013
Сообщений: 41
03.05.2014, 18:47  [ТС] 5
pav1uxa, огромнейшее спасибо! Всё работает на УРА! Вы гений!
0
nashvek
15 / 3 / 3
Регистрация: 26.04.2013
Сообщений: 41
06.05.2014, 15:03  [ТС] 6
pav1uxa, отправил Вам личное сообщение. Если можно, посмотрите пожалуйста и ответьте.

Заранее спасибо.
0
pav1uxa
1887 / 1732 / 813
Регистрация: 23.01.2014
Сообщений: 6,132
Завершенные тесты: 1
06.05.2014, 19:26 7
Цитата Сообщение от nashvek Посмотреть сообщение
pav1uxa, отправил Вам личное сообщение. Если можно, посмотрите пожалуйста и ответьте.
Я не отвечаю на личные сообщения. Да и зачем спрашивать у меня лично, если можно спросить тут? Тут гораздо больше людей увидят Ваше сообщение, нежели у меня в личке, уверяю.
0
nashvek
15 / 3 / 3
Регистрация: 26.04.2013
Сообщений: 41
06.05.2014, 23:13  [ТС] 8
Цитата Сообщение от pav1uxa Посмотреть сообщение
Я не отвечаю на личные сообщения. Да и зачем спрашивать у меня лично, если можно спросить тут? Тут гораздо больше людей увидят Ваше сообщение, нежели у меня в личке, уверяю.
Написал Вам в ЛС, т.к. не хотел писать в решенной теме.


pav1uxa, если можно, еще один вопрос задам.

Для мультирегиональности, по рекомендации Google, использую:
<link rel="alternate" href="тут ссылка не текущую страницу English" hreflang="eng" />
<link rel="alternate" href="тут ссылка не текущую страницу Germany" hreflang="ger" />

При вставке кода <?="$uri_ger"?> или <?="$uri_eng"?> в данный href, ничего не выводится, только пустота.
Как можно сделать так, чтобы они выводились? Нужно, чтобы они вывелись с условиями if else. Т.е. если язык Русский, в данные href-ы вставляем ссылку на Английский и Немецкий. Надеюсь, Вы поняли...

Помогите, пожалуйста, справится с данным вопросом тоже, а с меня промо-код на регистрацию домена в зоне RU или РФ на год в подарок.

Заранее благодарю Вас.
0
pav1uxa
1887 / 1732 / 813
Регистрация: 23.01.2014
Сообщений: 6,132
Завершенные тесты: 1
06.05.2014, 23:19 9
Цитата Сообщение от nashvek Посмотреть сообщение
При вставке кода <?="$uri_ger"?> или <?="$uri_eng"?> в данный href, ничего не выводится, только пустота.
Как можно сделать так, чтобы они выводились? Нужно, чтобы они вывелись с условиями if else. Т.е. если язык Русский, в данные href-ы вставляем ссылку на Английский и Немецкий. Надеюсь, Вы поняли...
Не понял, и не пойму пока не увижу кода Как это - там выводилось, а тут вдруг не выводится.
0
nashvek
15 / 3 / 3
Регистрация: 26.04.2013
Сообщений: 41
06.05.2014, 23:44  [ТС] 10
PHP
1
2
3
4
5
6
7
$str = $_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
//$str = "site.ru/rus/category/section/title/";
//$a = preg_match("/^([^\/]+)\/([^\/]+)\/?(.*)$/", $str, $v);
$a = preg_match("/^([^\/]+)\/?([^\/]*)\/?(.*)?$/", $str, $v);
$uri_rus = $v[1]."/rus/".$v[3]; // 
$uri_eng = $v[1]."/eng/".$v[3];
$uri_ger = $v[1]."/geo/".$v[3];
Это Ваш код.

Вот этот код для вывода ссылки для переключения языков
PHP
1
2
3
4
5
<a href="http://<?="$uri_ger"?>" <? if ($_GET['lang'] == '' || $_GET['lang'] == 'ger') echo "class=\"lang-active\"";?>><span>GER</span></a>
 
<a href="http://<?="$uri_eng"?>" <? if ($_GET['lang'] == 'eng') echo "class=\"lang-active\"";?>><span>ENG</span></a>
      
<a href="http://<?="$uri_rus"?>" <? if ($_GET['lang'] == 'rus') echo "class=\"lang-active\"";?>><span>RUS</span></a>
Тут всё работает отлично!

Но если я вставляю код <?="$uri_язык"?> сюда

HTML5
1
2
<link rel="alternate" href="<?="$uri_eng"?>" hreflang="eng" />
<link rel="alternate" href="<?="$uri_ger"?>" hreflang="ger" />
то вместо кода выводится пустота.

А как правило, должно выводится без проблем так же, как и для языков...

Надеюсь на Вашу помощь.
0
pav1uxa
1887 / 1732 / 813
Регистрация: 23.01.2014
Сообщений: 6,132
Завершенные тесты: 1
07.05.2014, 10:06 11
Цитата Сообщение от nashvek Посмотреть сообщение
А как правило, должно выводится без проблем так же, как и для языков...
Надеюсь на Вашу помощь.
Ничего выводиться недолжно. Есть ссылка - это тег <a>. А есть тег <link>, который выполняет немного другие функции
Цитата Сообщение от http://htmlbook.ru/html/link
Устанавливает связь с внешним документом вроде файла со стилями или со шрифтами. В отличие от тега <a>, тег <link> размещается всегда внутри контейнера <head> и не создает ссылку.
То есть это не ссылка, это просто штука которая помогает понять, для какого языка какую альтернативную ссылку можно использовать. А если нужны ссылки, то их также нужно добавить отдельно.
0
nashvek
15 / 3 / 3
Регистрация: 26.04.2013
Сообщений: 41
07.05.2014, 10:27  [ТС] 12
pav1uxa, мне хорошо известна разница между тегами <a></a> и <link></link>.))
Вопрос по PHP, т.е. вставив код <?=$uri_eng?> в нужно мне место, кроме тега <a></a> ничего не должно выводится? Нужно искать другое решение? Если бы этот же скрипт подошел, было бы отлично, только в href в теге <link></link> нужно вставлять только пути категорий без http://site.ru, т.е. только /язык/раздел/категория/полное-описание-страницы.
Если ничего не сможете придумать, подскажите пожалуйста, в какую сторону смотреть, чтобы href в теге <link></link> выводились динамически.

Заранее спасибо.
0
pav1uxa
1887 / 1732 / 813
Регистрация: 23.01.2014
Сообщений: 6,132
Завершенные тесты: 1
07.05.2014, 16:50 13
Я совершенно перестал Вас понимать.
Цитата Сообщение от nashvek Посмотреть сообщение
Вопрос по PHP, т.е. вставив код <?=$uri_eng?> в нужно мне место, кроме тега <a></a> ничего не должно выводится?
"вставив код <?=$uri_eng?> в нужно вам место", выведется переменная $uri_eng в html-код.
то вместо кода выводится пустота.
вместо какого кода?
Покажите конкретно что вы пишете в php файле, и какой на его выходе html код...
0
07.05.2014, 16:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2014, 16:50

Оптимизация конкретной страницы
Скажем я хочу оптимизировать каждую страницу сайта отдельно... Есть ли разница для Яндекса межу...

Смена URL конкретной страницы
В общем предыстория. Поставили в министерстве задачу, на сайте определённая информация должна быть...

Убрать изображение из конкретной страницы
Здравствуйте, у меня на Wordpress есть сайт-каталог, на главной странице логотип и фоновое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru