Комментировать могут только зарегистрированные пользователи
Похожие материалы
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. Посмотреть живой пример работы можно на сайте .
Тема довольно избитая, информации много, но основная масса - это копипаст статьи целсофта .И вот буквально вчера понадобилось добавить на несложный DLE-сайт английскую версию. Заняло это у меня 3 часа, включая поиск информации (ибо раньше с этим не сталкивался), перевод шаблона, перевод текста картинок и объяснение администрации сайта правил заполнения английской версии новостей.Ещё раз отмечу, что сайт довольно прост, половина функционала DLE там отключена, отсюда и простота добавления второго языка.ИтакТребовалось добавить английскую версию публичной части сайта, т.е. новостей.Первым делом необходимо найти английскую версию языкового пакета для нужной версии DLE. Я буду писать про DLE 9.4Т.к. изначально администрация сайта не думала добавлять второй язык сайту, DLE установили в кодировке windows-1251, что в принципе не является критичным. На всякий случай я открыл файл languge/English/website.lng и поменял там строку 'charset'PPPPPPPPPPPP=>PPPP"utf-8",на'charset'PPPPPPPPPPPP=>PPPP"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] Таким образом, если не заполнено полное содержимое английской версии - будет выведено краткое содержимое английской же версии После этого желательно переименовать папки с шаблонами на соответствующие языку имена, напимер theme_ru и theme_eng ну и залить обратно на хостинг отредактированную папку с шаблоном и языковой пакет.Теперь идём в админку в раздел с шаблонами, выбираем английский шаблон и назначаем ему соответствующий языковой пакет, чтобы системные сообщения были на нужном языке))Открываем .htaccess (тот, который лежит в корне сайта) и после RewriteEngine On дописываем:RewriteRule ^eng/(/?)+$ index.php?action_skin_change=yes&skin_name=theme_eng [L]
Мультиязычный сайт на DLE (или как добавить английский язык) 3.12
» » Мультиязычный сайт на DLE (или как добавить английский язык)
Загрузка. Пожалуйста, подождите...
Мультиязычный сайт на DLE (или как добавить английский язык)
Комментариев нет:
Отправить комментарий