Персональные инструменты
Вы здесь: Главная Форум Поддержка Как интернационализировать логотип сайта

Как интернационализировать логотип сайта

Автор: CIV Последнее изменение: 2010-10-06 15:33
Вверх к Поддержка

Как интернационализировать логотип сайта

Послано CIV в September 28. 2010

Вопрос по i18n (ответа в сети не нашёл). Нужно отображать логотип сайта (логотип фирмы) в зависимости от языка отображаемой страницы (логотип многоязыковой). Как правильно выполнить такую затею?

Re: Как интернационализировать логотип сайта

Послано Ирина Бессарабова в September 28. 2010

Я бы переопределила класс вьюлета plone.logo и в нем определяла бы текущий язык, в зависимости от него формировала бы путь к картинки с логотипом. Как переопределить класс вьюлета написано здесь, как получить текущий язык - здесь  (там вообще много чего полезного написано), ну а остальное - это несколько строк на python. Естественно у вас должна быть создана своя "тема"

Re: Как интернационализировать логотип сайта

Послано CIV в October 06. 2010

Предлагаю альтернативный способ. Основан на portal_view_customizations и стандартном механизме интернационализации движка Plone. Соответственно, из основного каталога Вашего сайта Plone (ZMI) сначала подправим вьюлет /portal_view_customizations/zope.interface.interface-plone.logo здесь нужно добавить тэг с меткой строки перевода i18n, примерно такой:   i18n:translate="my_logo"  . Тэг img будем переводить целиком, здесь, во вьюлете он должен ссылаться на картинку логотипа для языка сайта по-умолчанию (как правило - английский). Теперь добавляем картинку с переводным логотипом, например рядом с кастомизированной картинкой логотипа, которая лежит по-умолчанию в /portal_skins/custom . Старая (которая уже была на сайте) картинка логотипа должна соответствовать языку сайта по-умолчанию. Теперь нужно в дополнить фйлик (в моем Plone) "Путь до Plone"\Plone\buildout-cache\eggs\plone.app.locales-3.3.9-py2.4.egg\plone\app\locales\i18n\plone-ru.po - это для русского языка (в Linux путь выглядит по другому, но принцип тот же), двумя строчками

msgid "my_logo"
msgstr "сюда вставьте тэг img из Вашего кастомизированного вьюлета только поменяйте src на Вашу переводную картинку и все кавычки в тэге заэкранируйте обратным слэшем"

Перегрузите Plone.

Re: Как интернационализировать логотип сайта

Послано Ирина Бессарабова в October 06. 2010

ну можно и так...только это хуже, так как:

1) вы меняете исходный код пакета plone.app.locales -> будут проблемы при обновлении до новых версий и переездами на хостинг. Кстати тоже самое можно сделать добавив папку i18n в свой пакет (например ту же тему) и туда файл .po с переводом (образец можно взять из того же plone.app.locales)

2) при разработке сайта обычно дело одним логотипом не обходится и все равно нужно много кастомизаций -> лучше хранить их все в теме, чем в ZMI

3) пример с логотипом -  хороший повод разобраться с кастомизацией через brawser layer и познакомиться с plone api ))

Разработано Ploneboard
Действия с Документом