8Dle
Авторизация

Мультиязычный сайт на DLE (Добавляем ENG)

Мультиязычный сайт на DLE (Добавляем ENG)

Тема довольно избитая, информации много, но основная масса - это копипаст статьи целсофта пятилетней давности.
И вот буквально вчера понадобилось добавить на несложный DLE-сайт английскую версию. Заняло это у меня 3 часа, включая поиск информации (ибо раньше с этим не сталкивался), перевод шаблона, перевод текста картинок и объяснение администрации сайта правил заполнения английской версии новостей.

Ещё раз отмечу, что сайт довольно прост, половина функционала DLE там отключена, отсюда и простота добавления второго языка. dedicated server

Первым делом


Необходимо найти английскую версию языкового пакета для нужной версии Дле.

Т.к. изначально администрация сайта не думала добавлять второй язык сайту, DLE установили в кодировке windows-1251, что в принципе не является критичным. На всякий случай я открыл файл languge/English/website.lng и поменял там строку
'charset'            =>    "utf-8",

на
'charset'            =>    "windows-1251",

Не забыв при этом поменять кодировку самого файла.

Если у вас установлена UTF версия DLE - этих телодвижений делать не нужно.

Дополнительные поля


Только так можно нормально осуществить задуманное.
Нам потребуется создать 3 дополнительных поля:
Одно - однострочное:
Название поля eng_title
Описание поля Заголовок Eng
Категория Все
Тип поля Одна строка
Значение по умолчанию пусто

Не забываем галочку "использовать при желании"

Далее


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

А теперь самое интересное


как же сделать, чтобы в английской версии сайта выводилось соответствующий языку контент?
Очень просто.
открываем shortstory.tpl и вместо
<a href={full-link}" title="{title}">{title}</a>

(это правильно написанная ссылка на полную новость)
пишем:
<a href="{full-link}" title="[xfvalue_eng_title]">[xfvalue_eng_title]</a>

Вместо тега
{short-story}

пишем:
[xfvalue_eng_short_story]

Теперь защитим себя от незаполненной английской версии новости:
в начало файла пишем: [xfgiven_eng_short_story], а в конец - [/xfgiven_eng_short_story]. Грубо, но эффективно!

Остальное по желанию. Я например убрал облако тегов, всё равно ПС не проиндексирует английскую версию сайта, да и теги на русском языке в английской версии сайта не нужны.

Теперь fullstory.tpl
Так же заменяем
{title}

на
[xfvalue_eng_title]

А вот
{full-story}

мы заменим немного хитрее, ведь где гарантия того, что пользователь заполнит поле eng_full_story?
Дабы обезопасить себя родимого от кривости рук нерадивых журналистов делаем так:
[xfnotgiven_eng_full_story][xfvalue_eng_short_story][/xfnotgiven_eng_full_story][xfgiven_eng_full_story][xfvalue_eng_full_story][/xfgiven_eng_full_story]

Таким образом, если не заполнено полное содержимое английской версии - будет выведено краткое содержимое английской же версии

После этого


желательно переименовать папки с шаблонами на соответствующие языку имена, напимер theme_ru и theme_eng ну и залить обратно на хостинг отредактированную папку с шаблоном и языковой пакет.

Теперь идём в админку


в раздел с шаблонами, выбираем английский шаблон и назначаем ему соответствующий языковой пакет, чтобы системные сообщения были на нужном языке))

Открываем .htaccess (тот, который лежит в корне сайта) и после RewriteEngine On дописываем:
RewriteRule ^eng/(/?)+$ index.php?action_skin_change=yes&skin_name=theme_eng [L]
RewriteRule ^ru/(/?)+$ index.php?action_skin_change=yes&skin_name=theme_ru [L]

Это для нормального вида ссылок на смену языка сайта.
Ну и конечно же в русском main.tpl в нужном месте ставим ссылку
<a rel="nofollow" href="/eng/" title="English version">English version</a>

а в английской версии:
<a href="/ru/" title="Руская версия">Руская версия</a>

Всё! [url=http://heartiness.org/ru/]Смотреть Демку/url]

Жмите на Кнопу ниже, или подписывайтесь!


Читайте также
  1. TeRRaN
    25 августа 2012 21:50
    Статья старая пипец насколько.
    Я думаю все кто задавался этим вопросом уже как год побывали у пафнутия в блоге.Либо нашел альтернативные варианты перевода.
    Поимел-бы совесть и вставил-бы ссылку на сайт автора
    http://pafnuty.name/statyi/111-multiyazychnyj-sajt-na-dle-ili-kak-dobavit-anglij
    skij-yazyk.html
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Dle это движок который изначально проектировался для создания новостных сайтов, но по мере своего развития движка значительно расширил свою функциональность и стал универсальным средством разработки и сопровождения сайтов и блогов различной направленности и тематики. По сравнению с другими бесплатными (и некоторыми платными) CMS системами движок dle обладает довольно обширными возможности.

Авторизация