Перейти к публикации

Рекомендованные сообщения

Как многим известно! Мултиязычность на 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
Ссылка на сообщение
Поделиться на других сайтах

Посмотрел твой сайт. Хорошо реализована мультиязычность.

Ты бы не мог заглянуть в мою тему http://forum.dle-news.ru/index.php?showtopic=56273

Как сделать так как у тебя переключение происходит. Тот же юрлы но разные новости и все остальное.

Ссылка на сообщение
Поделиться на других сайтах
  • 7 месяцев спустя...

Замечательная реализация! Большое спасибо! Просто необходимо внести в следующий дистрибутив!

Еще бы название сайта и титлы менять - было б вообще здорово!

Ссылка на сообщение
Поделиться на других сайтах

Проще использовать сервис от гугла. Простой список. Быстрая работа. Много языков.

И не нужно шаблоны трогать)

вы переведите туда-обратно (и желательно меняя языки) ваш сайт через сервис гугла ))) наверное варезникам можно использовать данный сервис, но не солидным сайтам
Ссылка на сообщение
Поделиться на других сайтах

обнаружил один недочет (или просто не нашел решения). с новостями понятно - в другом шаблоне вывод текста на другом языке через доп.поле. тогда переход сработает. а вот если в меню используется статическая страница? в ней доп.полей нету. т.е. для другого языка (шаблона) будет использоваться совершенно другая стат.страница. тогда данный хак не сработает и при смене языка (шаблона) мы останемся на стат.странице с неподходящим языком. проще всего решить эту проблему внедрив в статические страницы доп. поля. но неизвестно как на это посмотрит разработчик!

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Как многим известно! Мултиязычность на 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

Как Вы добились такой реализации многоязычности на сайте ДЛЕ? не могли бы вы описать как вы это сделали?. Был бы очень признателен. Спасибо.

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...

Как Вы добились такой реализации многоязычности на сайте ДЛЕ? не могли бы вы описать как вы это сделали?. Был бы очень признателен. Спасибо.

Я давал ссылку на материал!)

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...