Sadchenko 6 Опубликовано: 25 июня 2011 Рассказать Опубликовано: 25 июня 2011 (изменено) Как многим известно! Мултиязычность на DLE делается путем смены шаблонов. Такой метод, подробно описан Здесь С помощью простой ссылки ВАШДОМЕН.ru/index.php?action_skin_change=yes&skin_name=XXX (где XXX - название шаблона) мы можем изменить шаблон сайта, не используя стандартный метод: {changeskin} Но вот в чем проблема: при смене шаблона, пользователь попадает на главную страницу и соответственно теряет ту новость на которой только что он находился. И не многие догадываются вернуться назад. Столкнувший с данной проблемой я нашел простое решение: 1. Открываем файл /engine/init.php 2. Ищем if ($_REQUEST['skin_name'] != '' AND @is_dir ( ROOT_DIR . '/templates/' . $_REQUEST['skin_name'] ) ) { $config['skin'] = $_REQUEST['skin_name']; set_cookie ( "dle_skin", $_REQUEST['skin_name'], 365 ); } [/php] 3. Заменяем на: [php] if ($_REQUEST['skin_name'] != '' AND @is_dir ( ROOT_DIR . '/templates/' . $_REQUEST['skin_name'] ) ) { $config['skin'] = $_REQUEST['skin_name']; set_cookie ( "dle_skin", $_REQUEST['skin_name'], 365 ); $return_url=getenv("HTTP_REFERER"); header( 'Location: '. $return_url, 303 ); } 4. Проверяем. Теперь, как только человек нажмет на ссылку ВАШДОМЕН.ru/index.php?action_skin_change=yes&skin_name=XXX, у него изменится язык и он автоматом сразу же вернется на предыдущую страницу. Тестировалось на DLE 9.3 Работает на сайте www.2012vipclub.com Изменено 25 июня 2011 пользователем Sadchenko 6 Цитата Ссылка на сообщение Поделиться на других сайтах
aleXka 0 Опубликовано: 25 июня 2011 Рассказать Опубликовано: 25 июня 2011 Посмотрел твой сайт. Хорошо реализована мультиязычность. Ты бы не мог заглянуть в мою тему http://forum.dle-news.ru/index.php?showtopic=56273 Как сделать так как у тебя переключение происходит. Тот же юрлы но разные новости и все остальное. Цитата Ссылка на сообщение Поделиться на других сайтах
IRON MAIDEN 2 Опубликовано: 6 февраля 2012 Рассказать Опубликовано: 6 февраля 2012 Замечательная реализация! Большое спасибо! Просто необходимо внести в следующий дистрибутив! Еще бы название сайта и титлы менять - было б вообще здорово! Цитата Ссылка на сообщение Поделиться на других сайтах
Maksim337 2 Опубликовано: 6 февраля 2012 Рассказать Опубликовано: 6 февраля 2012 Проще использовать сервис от гугла. Простой список. Быстрая работа. Много языков.И не нужно шаблоны трогать) Цитата Ссылка на сообщение Поделиться на других сайтах
IRON MAIDEN 2 Опубликовано: 6 февраля 2012 Рассказать Опубликовано: 6 февраля 2012 Проще использовать сервис от гугла. Простой список. Быстрая работа. Много языков. И не нужно шаблоны трогать) вы переведите туда-обратно (и желательно меняя языки) ваш сайт через сервис гугла ))) наверное варезникам можно использовать данный сервис, но не солидным сайтам Цитата Ссылка на сообщение Поделиться на других сайтах
IRON MAIDEN 2 Опубликовано: 7 февраля 2012 Рассказать Опубликовано: 7 февраля 2012 обнаружил один недочет (или просто не нашел решения). с новостями понятно - в другом шаблоне вывод текста на другом языке через доп.поле. тогда переход сработает. а вот если в меню используется статическая страница? в ней доп.полей нету. т.е. для другого языка (шаблона) будет использоваться совершенно другая стат.страница. тогда данный хак не сработает и при смене языка (шаблона) мы останемся на стат.странице с неподходящим языком. проще всего решить эту проблему внедрив в статические страницы доп. поля. но неизвестно как на это посмотрит разработчик! Цитата Ссылка на сообщение Поделиться на других сайтах
Tonchi 1 Опубликовано: 12 марта 2012 Рассказать Опубликовано: 12 марта 2012 Как многим известно! Мултиязычность на DLE делается путем смены шаблонов. Такой метод, подробно описан Здесь С помощью простой ссылки ВАШДОМЕН.ru/index.php?action_skin_change=yes&skin_name=XXX (где XXX - название шаблона) мы можем изменить шаблон сайта, не используя стандартный метод: {changeskin} Но вот в чем проблема: при смене шаблона, пользователь попадает на главную страницу и соответственно теряет ту новость на которой только что он находился. И не многие догадываются вернуться назад. Столкнувший с данной проблемой я нашел простое решение: 1. Открываем файл /engine/init.php 2. Ищем if ($_REQUEST['skin_name'] != '' AND @is_dir ( ROOT_DIR . '/templates/' . $_REQUEST['skin_name'] ) ) { $config['skin'] = $_REQUEST['skin_name']; set_cookie ( "dle_skin", $_REQUEST['skin_name'], 365 ); } [/php] 3. Заменяем на: [php] if ($_REQUEST['skin_name'] != '' AND @is_dir ( ROOT_DIR . '/templates/' . $_REQUEST['skin_name'] ) ) { $config['skin'] = $_REQUEST['skin_name']; set_cookie ( "dle_skin", $_REQUEST['skin_name'], 365 ); $return_url=getenv("HTTP_REFERER"); header( 'Location: '. $return_url, 303 ); } 4. Проверяем. Теперь, как только человек нажмет на ссылку ВАШДОМЕН.ru/index.php?action_skin_change=yes&skin_name=XXX, у него изменится язык и он автоматом сразу же вернется на предыдущую страницу. Тестировалось на DLE 9.3 Работает на сайте www.2012vipclub.com Как Вы добились такой реализации многоязычности на сайте ДЛЕ? не могли бы вы описать как вы это сделали?. Был бы очень признателен. Спасибо. Цитата Ссылка на сообщение Поделиться на других сайтах
Sadchenko 6 Опубликовано: 6 апреля 2012 Рассказать Опубликовано: 6 апреля 2012 Автор Как Вы добились такой реализации многоязычности на сайте ДЛЕ? не могли бы вы описать как вы это сделали?. Был бы очень признателен. Спасибо. Я давал ссылку на материал!) Цитата Ссылка на сообщение Поделиться на других сайтах
freeman85 4 Опубликовано: 17 апреля 2012 Рассказать Опубликовано: 17 апреля 2012 ochen interesno pro SEO. kak na eto reshenie reagiruiut poiskoviki? Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.