Перевод данной страницы

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
467
Реакции
16
Сайт у меня на двух языках:
переводит он следующим образом
?lang_id=1
?lang_id=2
При нажатии на кнопку, перекидывает на главную страницу index.php с нужным языком сайта.

Я не долго думая, решил добавить get curURL и тут получил ссылку
website.ru/page123.php?lang_id=1
всё супер, нажимаю на кнопку, и данная страница переводится!
Но, если ссылка выглядит так:
website.ru/page123.php?user=vasja
то ?lang_id=1 со знаком вопросика уже не прокатит, нужно ставить символ "&"
Но тогда не будет работать первый вариант ссылки.
Никакого уникального знака в интернете я не нашел.
 
Ну а попробовать такой вариант как

website.ru/ en /page123.php?user=vasja

Тем более на большинстве КМС так реализовано.
 
Сайт у меня на двух языках:
переводит он следующим образом
?lang_id=1
?lang_id=2
При нажатии на кнопку, перекидывает на главную страницу index.php с нужным языком сайта.

Я не долго думая, решил добавить get curURL и тут получил ссылку
website.ru/page123.php?lang_id=1
всё супер, нажимаю на кнопку, и данная страница переводится!
Но, если ссылка выглядит так:
website.ru/page123.php?user=vasja
то ?lang_id=1 со знаком вопросика уже не прокатит, нужно ставить символ "&"
Но тогда не будет работать первый вариант ссылки.
Никакого уникального знака в интернете я не нашел.
Подобные вещи желательно делать либо в подпапке, как советует Naterius, либо (лучше) через cookie.
В обоих случаях не придётся передавать язык каждый раз и приписывать ненужный параметр к каждой ссылке.
 
Я не долго думая, решил добавить get curURL и тут получил ссылку
website.ru/page123.php?lang_id=1
всё супер, нажимаю на кнопку, и данная страница переводится!
Но, если ссылка выглядит так:
website.ru/page123.php?user=vasja
то ?lang_id=1 со знаком вопросика уже не прокатит, нужно ставить символ "&"
Но тогда не будет работать первый вариант ссылки.
Никакого уникального знака в интернете я не нашел.
В месте, где ты добавляешь к curURL параметр ?lang_id=* поставь простенькую проверку:
Код:
if ($_SERVER['QUERY_STRING'] == '') {добавляешь к curURL параметр ?lang_id=*} else {добавляешь к curURL параметр &lang_id=*}
 
В месте, где ты добавляешь к curURL параметр ?lang_id=* поставь простенькую проверку:
Код:
if ($_SERVER['QUERY_STRING'] == '') {добавляешь к curURL параметр ?lang_id=*} else {добавляешь к curURL параметр &lang_id=*}
Нене, там не нужно к каждой ссылке приписывать язык, один раз нажал на кнопку, сайт пербросило на главную страницу, и с этого момента сайт на другом языке, без ссылки с язуком, ссылки одинаковые везде что на русской версии что на англ.

Сейчас попробую ваш метод

Тока проснулся и видимо голова соовсем не соображает...
Сайт у меня с поддержкой шаблонов, то есть в шаблоне вместо <?php ?> используется {php}{/php}
сейчас моя ссылка на один из переводов выглядит так
{php}echo currenturl();{/php}?lang_id=1
Как ее переделать в ваш код?
 
Последнее редактирование модератором:
Нене, там не нужно к каждой ссылке приписывать язык, один раз нажал на кнопку, сайт пербросило на главную страницу, и с этого момента сайт на другом языке, без ссылки с язуком, ссылки одинаковые везде что на русской версии что на англ.
Сейчас попробую ваш метод
Тогда проверку нужно ставить в месте кнопки...
сейчас моя ссылка на один из переводов выглядит так
{php}echo currenturl();{/php}?lang_id=1
Как ее переделать в ваш код?
Волшебный и могучий Smarty? Если это он, то там наверняка будет печаль во время прописывания условия, а именно фигурных скобочек условия...
if ($_SERVER['QUERY_STRING'] == '') {добавляешь к curURL параметр ?lang_id=*} else {добавляешь к curURL параметр &lang_id=*}
Хотя может сработать однострочная проверка без фигурок:
Код:
{php}
echo currenturl(); 
if ($_SERVER['QUERY_STRING'] == '') echo "?lang_id=1"; else echo "&lang_id=1";
{/php}
 
  • Нравится
Реакции: vave
Тогда проверку нужно ставить в месте кнопки...

Волшебный и могучий Smarty? Если это он, то там наверняка будет печаль во время прописывания условия, а именно фигурных скобочек условия...
if ($_SERVER['QUERY_STRING'] == '') {добавляешь к curURL параметр ?lang_id=*} else {добавляешь к curURL параметр &lang_id=*}
Хотя может сработать однострочная проверка без фигурок:
Код:
{php}
echo currenturl();
if ($_SERVER['QUERY_STRING'] == '') echo "?lang_id=1"; else echo "&lang_id=1";
{/php}
Да, это могучий Smarty)
Ваш код сработал! Спасибо большое!
 
Да, это могучий Smarty)
Ваш код сработал! Спасибо большое!
Вам просто повезло, что процедуру можно выполнить одной строкой без фигурных скобок :)

В предыдущий раз мне попался PrestaShop и нужно было выполнить php код с двумя условиями, в которых по несколько выполняемых операций. Часа два убил, но так и не смог написать рабочий костыль.

Именно из-за этого не люблю данный шаблонизатор :(
 
Вам просто повезло, что процедуру можно выполнить одной строкой без фигурных скобок :)

В предыдущий раз мне попался PrestaShop и нужно было выполнить php код с двумя условиями, в которых по несколько выполняемых операций. Часа два убил, но так и не смог написать рабочий костыль.

Именно из-за этого не люблю данный шаблонизатор :(
Надо было на форуме спросить совета, таких же умных людей как вы :)
 
Вам просто повезло, что процедуру можно выполнить одной строкой без фигурных скобок :)

В предыдущий раз мне попался PrestaShop и нужно было выполнить php код с двумя условиями, в которых по несколько выполняемых операций. Часа два убил, но так и не смог написать рабочий костыль.

Именно из-за этого не люблю данный шаблонизатор :(
Там вроде можно их как-то экранировать или заменять фигурные на []
Что само по себе тоже костыль.
Сам я не использую никакие шаблонизаторы, так как PHP сам по сути шаблонизатор;)
 
Назад
Сверху