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

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Мультиязычность сайт 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

Мы http://www.dle9.com/ предлагаем хак Мультиязычность DLE (добавляем английский язык)
  • 60
Рубрика: DLE хаки » Хак для DLE
Ранее » Хак dle добавляем анкор (слово) в ссылку полной новости« Далее Красиво оформить ссылку скачивания файла
Добавление комментарияОставить комментарий
  • № :5
  • 14 июня 2013 20:31
Разобрался уже
  • № :4
  • 14 июня 2013 11:01
что за пакет языка, если имеет ввиду слова шаблона, то нужно перевести и для данного раздела сделать английскую версию шаблона
  • № :3
  • 14 июня 2013 08:48
Вот проблема. Сайт то меняется но сам язык не меняется сайта и по этому то что в шаблоне все изменилось, а то что в пакете языка нет, как решить это?
  • № :2
  • 28 июня 2012 18:08
ruster,
Да, весь сайт будет на другом языке...там ссылка перехода на сайт автора хака у него и Демо можно посомтреть
  • № :1
  • 28 июня 2012 18:03
и что будет анг и русс язык контента ??