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

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

3.12
73
81 052
Мультиязычный сайт на DLE (или как добавить английский язык)

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

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

Итак



Требовалось добавить английскую версию публичной части сайта, т.е. новостей.

Первым делом

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

Т.к. изначально администрация сайта не думала добавлять второй язык сайту, DLE установили в кодировке 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="Мультиязычный сайт на DLE (или как добавить английский язык)">Мультиязычный сайт на DLE (или как добавить английский язык)</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)
Так же заменяем
Мультиязычный сайт на DLE (или как добавить английский язык)
на
[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>



Вот и всё



P.S. Посмотреть живой пример работы можно на сайте heartiness.org.

Похожие материалы

Комментарии

nanupocuk
nanupocuk 18 декабря 2016 16:08
Добрый день, ваш способ который вы описали для dle 9.4 он работает и в dle 11.2, просто я вчера кучу изменений ввёл в движке, а сегодня поставил новый движок и всё заработало. Так что смело можете говорить всем что этот способ и на dle 11.2 тоже работает !
ruslanhydyrov
ruslanhydyrov 23 августа 2017 10:25
Здравствуйте, у меня при просмотре русской версии сайта, и переходе в любую категорию, перебрасывает в английскую версию. Не заете в чем может быть причина?
ПафНутиЙ
ПафНутиЙ 27 августа 2017 20:53
Цитата: ruslanhydyrov
Здравствуйте, у меня при просмотре русской версии сайта, и переходе в любую категорию, перебрасывает в английскую версию. Не заете в чем может быть причина?

Возможно что-то пошло не так.
uvlecheniehobby.ru
uvlecheniehobby.ru 6 сентября 2017 15:01
Подскажите по теме http://www.maultalk.com/topic208788s10.html?#entry2094145
ПафНутиЙ
ПафНутиЙ 6 сентября 2017 18:42
Цитата: uvlecheniehobby.ru
Подскажите по теме http://www.maultalk.com/topic208788s10.html?#entry2094145

Для этого нужно понять вашу проблему. По ссылке я вижу только то, что вам рекомендовали прийти к какому то пафнутому, а я не знаю таких, уж извините.
RRRaymond
RRRaymond 15 сентября 2017 11:12
Приветствую
Сломался замок не получается открыть Помогите! Заранее благодарю за ответ!
ПафНутиЙ
ПафНутиЙ 15 сентября 2017 11:24
Цитата: RRRaymond
Приветствую
Сломался замок не получается открыть Помогите! Заранее благодарю за ответ!

попробуйте позвонить в службу спасения по номеру 112
Podpolschik
Podpolschik 13 ноября 2017 13:41
K сожалению, этот метод не работает на мало-мальски нормальном сайте. Зря потратил время. То, что здесь предложено, решает только проблему вывода новостей на выбранном отличного от стандартного языка.
Динамические ссылки же в других блоках остаются неизменными, независимо от языка.
Как вариант решения, тут поможет только установка двух независимых скриптов, со своими базами данных, но одинаковыми шаблонами (с разницей, что будут переведены надписи). Всё остальное - это не серьёзные решения для динамического сайта с различными блоками.
ПафНутиЙ
ПафНутиЙ 15 ноября 2017 21:27
Цитата: Podpolschik
Как вариант решения, тут поможет только установка двух независимых скриптов, со своими базами данных, но одинаковыми шаблонами

Да, к сожалению это единственны полнойенный способ.
Можно улучшить тем, что объединить таблицы пользователей поставив DLE с разными префиксами для всех полей, кроме пользователей.
MaargarytaCar
MaargarytaCar 19 декабря 2017 20:48
Приветик. Последний год учусь верстке, владею стареньким сайтом(к слову он не один у меня) https://svoiduhi.com/ платным дизайном. Сейчас подошла к этапу, когда могу делать несложные дизайны. По верстке я пока изучила только Wordpress. Подскажите, пожалуйста: стоит ли делать уникальный дизайн для своего сайта или же оставит покупной? Это играет сейчас какую роль для поисковиков, свой дизайн или покупной?
Если вдруг я создала тему не втом разделе, пожалуйста, перенесите куда нужно.
Спасибо заранее.
ПафНутиЙ
ПафНутиЙ 19 декабря 2017 21:15
Цитата: MaargarytaCar
Приветик. Последний год учусь верстке, владею стареньким сайтом(к слову он не один у меня) https://svoiduhi.com/ платным дизайном. Сейчас подошла к этапу, когда могу делать несложные дизайны. По верстке я пока изучила только Wordpress. Подскажите, пожалуйста: стоит ли делать уникальный дизайн для своего сайта или же оставит покупной? Это играет сейчас какую роль для поисковиков, свой дизайн или покупной?
Если вдруг я создала тему не втом разделе, пожалуйста, перенесите куда нужно.
Спасибо заранее.

Поисковикам совершенно без разницы, на самом деле, поэтому делайте так, как считаете более правильным.
chepic
chepic 27 февраля 2018 11:53
Добрый день.

Реализовал мультиязычность так, как у Вас тут описано, но с одним отличием, вынес другой язык вместе с движком в под папку для нормальной индексации поисковиками.
Тексты подтягивает нормально, но вот проблема с галереей из дополнительного поля. Если в настройках(из подпапки) указываю домен без под папки, то изображения выводятся, но не как галерея, а в полный размер. Если указан домен с под папкой, то соответственно изображения не выводятся!
Как мне заставить вывести изображения??? Копирование в под папку не вариант!
Заранее спасибо!
ПафНутиЙ
ПафНутиЙ 27 февраля 2018 12:10
Цитата: chepic
Как мне заставить вывести изображения??? Копирование в под папку не вариант!!

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

Добавить комментарий

Комментировать могут только зарегистрированные пользователи

Информация

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