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


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

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

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

'charset'            =>    "utf-8",


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


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

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

Дополнительные поля
только так можно нормально осуществить задуманное.
Нам потребуется создать 3 дополнительных поля:
Одно - однострочное:

Название поля eng_title
Описание поля Заголовок Eng
Категория Все
Тип поля Одна строка
Значение по умолчанию пусто.

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

Название поля eng_short_story
Описание поля Краткое описание Eng
Категория Все
Тип поля Несколько строк
Значение по умолчанию пусто.

Название поля eng_full_story
Описание поля Полное описание 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 (сейчас поймёте почему DLE 9.4)
Так же заменяем

{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]


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

После этого
желательно переименовать папки с шаблонами на соответствующие языку имена, например 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>


Автор доработки: Пафнутий
Источник: pafnuty name

Мы https://dle9.com/ предлагаем хак Мультиязычность DLE (добавляем английский язык)

Multiyazychnyy-sayt-na-DLE-ili-kak-dobavit-angliyskiy-yazyk.rar [7,12 Kb] (cкачиваний: 295)
{rating-num}0

Комментарии (0)

Оставить комментарий

Кликните на изображение чтобы обновить код, если он неразборчив