• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Хак Многоязычность DLE

Статус
В этой теме нельзя размещать новые ответы.

sergeysnl

Постоялец
Заблокирован
Регистрация
10 Фев 2008
Сообщения
331
Реакции
101
  • Автор темы
  • Заблокирован
  • #1
Думаю многие столкнулись или сталкивались с проблемой многоязычности в DLE. Сегодня научу вас как сделать ваш движок многоязычным не прикладывая особых усилий. Буду показывать пример многоязычности с 2мя языками: Русским и английским, по примеру этих двух вы сможете сделать и больше.

Итак начнем.

Подготовка:

Во-первых нам понадобится 2 шаблона, одинаковых, неодинаковых - Ваше дело. Папку с первым шаблоном переименовываем в Русский, вторую в English. Открываем Шаблон English и все *.tpl файлы редактируем под английский язык. Графику тоже редактируем.

Во-вторых, понадобится английский перевод сайта и админки (админки не обязательно). На форуме выкладывали английский движок с установкой, вам же надо скачать его и из папки languages вытянуть папку English и скопировать в ваш сайт в папку Languages. Если же у вас имеется уже Английский язык в папке Languages можна не делать то что описанно выше про язык.

Создание непосредственно многоязычности

Идем в нашу админку - Другие разделы - Шаблоны сайта. Выбираем шаблон English и Используемый язык делаем English. Выбираем шаблон Russian и соотвественно присваиваем язык Russian. Большая часть уже готова.

Теперь вы наверное задумались как же решить проблему с новостями, ведь из админки вы добавляете русскую версию. И в этом я вам помогу :)

2 и более языков для новости.​
Опять же идем в Настройки системы - Дополнительные поля новостей.

Жмем "добавить поле" в Название поля пишем Englishshort в Описание поля Короткая английская версия. Тип поля - Несколько строк. Жмем Сохранить.

Идем в папку с шаблоном English в нем открываем файл shortstory.tpl Ищем
{short-story}
Заменяем на
[xfvalue_Englishshort]

В админке при добавлении новости у вас появится поле Короткая Английская версия, туда пишем такую же новость как в обычную короткую новость только на английском.

Опять же идем в Настройки системы - Дополнительные поля новостей.

Жмем "добавить поле" в Название поля пишем Englishfull в Описание поля Полная английская версия. Тип поля - Несколько строк. Жмем Сохранить.

Идем в папку с шаблоном Russian в нем открываем файл fullstory.tpl Ищем
{full-story}
Заменяем на
[xfvalue_Englishfull]

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

- - - - - -
(c) sergeysnl
Спасибо только кнопкой
- - - - - -

То что вы пишете в добавлении новости в короткую новость и полную новость это русская версия что пишете в Короткая Английская версия и Полная английская версия это Полная и короткие английские версии новости.

Есть вопросы ? Смело задавайте!
 
  • Автор темы
  • Заблокирован
  • #2
Совсем забыл про важную вещь... В конце проделанного пишем в какой либо блок {changeskin} называем блок Смена языка \ Language Change
 
Очень классный хак.
Я в свое время пользовался только сменой скина, для мультиязычности - благо, что на сайте были одни статические страницы.
А так - :ay:
Автору - респект!
 
Исключительно для пользователя - решение хорошее, но вот поисковик этого не оценит... Шаблоны он переключать не умеет.
А ведь использование двуязычного сайта в большей мере оправдано тем, что охватывает больше запросов(оба языка). Даже если придумать как сделать переключение языков ссылкой, все-равно остается проблемным то, что некоторые страницы в индексе будут на одном языке, другие на другом...
ТС спасибо - хороше решение предложил, но реально очень важно последнее, а именно - SEO(чем так славится DLE).
Как вариант можно страницы второго языка обозначить типа "?ln=en", или введением дополнительного суфикса в урл... Но вот как это осуществить технически?
 
  • Автор темы
  • Заблокирован
  • #5
Смена Посредством ссылки:
На русский:
PHP:
/index.php?action_skin_change=yes&skin_name=russian
на английский:
PHP:
/index.php?action_skin_change=yes&skin_name=english

ну а дальше вы сами поймете по названию.
 
Не знаю ты или не ты писал sergeysnl на оф. сайте, но это уже там давно написано...

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

'wysiwyg_language' => "ru", на нужный язык. и скачать язык для редактора :)

Добавлено через 21 минуту


тс. а копирайт почему свой поставил? изложил своими словами или сам додумался :))

извини, но спасибо заберу своё :)

кстати всем рекомендую на оффсайте почитать раздел • Полезные Советы

тут сейчас половина вопрос про кодировки и прочее в соседних топиках отпадет.
 
вот вот, и я ночью удивился, почему это офф сайт дублируют. там и так разжовано все
 
Смена Посредством ссылки:
Это хорошо, но как я уже сказал - пути к разным версиям страниц то не изменятся... Т.е. одна и так же страница у поисковика может быть проиндексирована или на одном языке, или на другом... А не как две разные страницы...
 
  • Автор темы
  • Заблокирован
  • #10
не разводите флуд! я незнал об этой новости на офф сайте я туда вообще заходил 1 раз наверное, я вам выложил то, до чего догадался сам. Кому ненравится - идите на оффсайт и юзайте. Модеров прошу закрыть тему что бы только видеть могли сообщение, т.к. флуд повалится немеренный
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху