Бесплатный плагин для мультиязычности "L10n"


Это продолжение темы "Плагин для мультиязычности".

Описание возможностей плагина:

После релиза первой версии плагина прошло больше 6ти месяцев. За это время частично моими силами, а частично силами веб-студии stfalcon.com был реализован следующий функционал:
  • Cовместимость с LS v0.4.2;
  • Возможность выбора языка интерфейса при регистрации пользователя и его последующая смена в настройках пользователя;
  • При публикации записи указывается её язык;
  • При создании и редактировании блога можно задавать название блога, его описание и url на разных языках;
  • Возможность создавать и просматривать переводы для записей;
  • Отдельные языковые версии сайта для каждого языка (напр. cookorama.net/ru или cookorama.net/uk). При просмотре отдельной языковой версии сайта выводятся записи только на языке этой версии (аналогично в топе, блоке последней активности, облаке тегов и т.д.). Основная версия сайта остается без изменений (публикуются только топики-оригиналы);
  • Чуть не забыл :). Если пользователь зашел на основной сайт (без указания языка в URL), тогда язык пользователя определяется по базе GeoIP Lite (пока для Украины и России, этот момент нужно ещё рефакторить);
  • Плагин совместим с плагином Sitemap v0.2.1. Сайтмапы для разных языковых версий лежат в сабдиректориях (напр. cookorama.net/ru/sitemap.xml и cookorama.net/uk/sitemap.xml)

Но не обошлось без хака роутера (для установки и передачи языка). В принципе получилось сделать это средствами конфига (код остался закомментированым в конфиге), но вылезли проблемы при сжатии css/js и ссылкам на статические ресурсы плагинов.

Примеры работы плагина

Я сделал несколько скриншотов, чтобы продемонстрировать работу плагина.

Блок выбора языка в сайдбаре
Блок выбора языка в сайдбаре

Смена языка в настройках пользователя
Смена языка в настройках пользователя

Создание перевода
Создание перевода

Установка и настройка плагина

Скачать плагин можно на странице плагина в каталоге модулей LiveStreet.
Распакованный архив нужно скопировать в корень сайта. Таким образом в папке plugins появится папка l10n, а файл engine/class/Router.php будет заменен на модифицированный роутер.

Теперь чего же там можно крутить. Можно настраивать список доступных языков. См. файл l10n/config/config.php:
// список доступных языков (для разных языковых версий сайта)
$config['allowed_langs'] = array('ukrainian', 'russian');

Допустим если вам нужен английский и русский, тогда меняйте этот код на:
// список доступных языков (для разных языковых версий сайта)
$config['allowed_langs'] = array('english', 'russian');

Обратите внимание, что ниже есть список алиасов для языков. Язык, который вы добавляете в список разрешенных, должен присутствовать в этом списке:
// ключ - язык в урл, значение - папка языка в livestreet
// коды языков взяты из вики http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4%D1%8B_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2
$config['langs_aliases'] = array(
    'ukrainian' => 'uk',
    'russian' => 'ru',
    'english' => 'en',
    'german' => 'de',
    'spanish' => 'es',
    'belarussian' => 'be',
    'bulgarian' => 'bg',
    'lithuanian' => 'lt',
    'georgian' => 'ka',
    'uzbek' => 'uz',
);

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

Плагин вам пригодился?

После релиза плагина SEO многие высказывали желание проспонсировать дальнейшую разработку плагинов — пишите в личку, обсудим. Эти деньги будут потрачены на дальнейшее развитие моих плагинов.

Ошибки, замечания, пожелания

По сложившейся традиции пишите все в комментариях к этой записи :).

PS. Поздравляю всех с наступающим Новым Годом и Рождеством!

131 комментарий

avatar
Хороший подарок под Новый Год сообществу! С наступающим
avatar
Спасибо, спасибо, спасибо :)
  • Loci
  • 0
avatar
очень круто!
avatar
рад что вам нравится :)
все, плагин прошел модерацию
avatar
Ничего страшного если установить плагин сейчас, когда на сайте есть уже публикации?
avatar
нет, все нормально. у вас основной контент на русском?
avatar
Да, на русском. Огромное спасибо за столь хороший плагин :)
avatar
Спасибо большое за такой подарок к новому году..:)
Развития Вам и процветания Ваших проектов..;)
avatar
Знакомый сказал, что данный плагин конфликтует: aceBlogExtender, а именно:
Fatal error: Call to undefined method PluginL10n_ModuleBlog_MapperBlog::ExtendBlogList() in /plugins/aceblogextender/classes/modules/blog/Blog.class.php on line 66
avatar
знакомому спасибо. aceBlogExtender не использую. после НГ посмотрю
avatar
Как используете, отпишитесь. Вообще после прочтения топиков, то большинство модулей не совместимы друг друга. Большинство платных естественно. Как с этим разрабы то будут бороться или это все будет на уровне купил и разбирайся?
avatar
у меня все просто. я забочусь о совместимости тех модулей, которые использую сам.
так как плагин фришный, то об остальном должно заботиться или коммюнити или заказчики.

с платными плагинами потяжелей :). думаю, что я бы заботился о совместимости с маркетинговой точки зрения. логично, что цена при этом должна повышаться.
avatar
При попытке создать блог вижу это
SQL Error: Column 'blog_lang' cannot be null at /var/www/test/data/www/foto.test.ru/plugins/l10n/classes/modules/blog/mapper/Blog.mapper.class.php line 100
Array ( [code] => 1048 [message] => Column 'blog_lang' cannot be null [query] => REPLACE INTO prefix_blog_l10n ( blog_id, blog_title_l10n, blog_description_l10n, blog_url_l10n, blog_lang ) VALUES (2, 'Test', 'testtesttesttesttest', 'testtest', NULL) [context] => /var/www/test/data/www/foto.xxx.ru/plugins/l10n/classes/modules/blog/mapper/Blog.mapper.class.php line 100 )a


А при попытке добавить новосто на русском вижу это:
Fatal error: Class 'PluginL10n_ModuleBlog_EntityBlog' not found in /var/www/test/data/www/foto.test.ru/engine/include/function.php(412) : eval()'d code on line 1
avatar
что-то не то. LS с транка или 0.4.2?
avatar
Версия 0.4.2
avatar
какие-то плагины для блогов установлены?
avatar
После активации появилось два блока «Язык сайта» Как один убрать?
avatar
Вот, у меня тоже такая проблема.
avatar
посмотрю
avatar
Ну что удалось решить проблему с двумя блоками?
Стоит aceAdminPanel, и два блока языка — как один убрать то?
avatar
livestreet.ru/blog/addons/6182.html#comment90299
дебажьте скрипт
avatar
проблема была в совместимости с aceadminpanel. в версии 0.2.1 она исправлена. после проверки модератором, эта версия будет доступна для загрузки в каталоге.
avatar
проблема была в совместимости с aceadminpanel. в версии 0.2.1 она исправлена. после проверки модератором, эта версия будет доступна для загрузки в каталоге.
avatar
И как с помощью данного плагина переводить статические страници и часть шаблона а именно footer.tpl
avatar
статические страницы пока никак. часть шаблона переводится переменными в языковых файлах
avatar
Как убрать один блок «Язык сайта»? ато два как то не втему! ;-)
avatar
тоже это интересует
avatar
у меня нормально

ищите почему он у вас дважды вызывается. блок цепляется в методе SetLang() (classes/hooks/HookL10n.php) который цепляется на хук lang_init_start, который должен вызываться только один раз

найдете — расскажете мне ещё
avatar
если проблема не решилась, тогда дайте мне исходники сайта и я посмотрю
avatar
проблема была в совместимости с aceadminpanel. в версии 0.2.1 она исправлена. после проверки модератором, эта версия будет доступна для загрузки в каталоге.
avatar
Как заставить работать блоки в aceBlockManager?
avatar
а что там?
avatar
Как зделать в данном плагине язык по умолчанию английский? ато после активации плагина русский становится!
avatar
в файле activate.sql перед активацией сменить все 'russian' на 'english'.
в файле classes/hook/HookL10n.php закомментировать определение по GeoIP. это в SetLang() третий блок с else. или добавить туда для en настройки.
avatar
Насколько я понял при деактивации плагина выполняется запрос на удаление всех переводов. Переводы блогов точно удаляются. Не очень как-то. А так же напдпись «Язык сайта» у меня в хроме отображается как «Мова сайта», в ФФ — «Язык сайта», хоть я из Украины но все интерфейсы и общий язык — русский.
avatar
1. не очень было бы если после деактивации оставался мусор в базе. здесь без вариантов. нужно думать перед тем как деактивировать, а не после.

2. такого не замечал. странное поведение. можно линк?
avatar
Cannot redeclare geoip_country_code_by_name() in /var/www/vhosts/site.name/subdomains/blog/httpdocs/plugins/l10n/classes/lib/external/GeoIp/geoip.php on line 349

Вот вылезает при попытке активировать. По рыскал в google и нашел вроде как исправить code.google.com/p/slimstat/issues/detail?id=1

но теперь появляются уведомления аж 14 штук такого вида
Notice: Constant GEOIP_COUNTRY_EDITION already defined in /var/www/vhosts/bestlife.kz/subdomains/blog/httpdocs/plugins/l10n/classes/lib/external/GeoIp/geoip.php on line 31
Notice: Constant GEOIP_PROXY_EDITION already defined in /var/www/vhosts/bestlife.kz/subdomains/blog/httpdocs/plugins/l10n/classes/lib/external/GeoIp/geoip.php on line 32

Они появляются только на дефолтном языке, на других все норм.
avatar
у меня ощущение, что у вас в скриптах уже подключена библиотека GeoIP от MaxMind
или все таки плагин дважды активируется. можете исходники предоставить?
avatar
можно уточнить деталь?
на «кукураме» если я сменю язык на украинский, то на главной странице появятся совсем другие топики.
зачем так сделано? по-моему это не совсем корректно. или я не прав? (:
  • F-5
  • 0
avatar
cookorama.net/uk/ рецепты и переводы на украинском
cookorama.net/ru/ рецепты и переводы на русском
cookorama.net/ оригинальные рецепты

я исходил из мысли, что если пользователь хочет просматривать украинскую версию сайта, то это относится и к интерфейсу и к контенту
avatar
Что можно сделать, чтоб когда переключаешь язык, не перенаправляло на главную страницу, а оставалось на той же странице?
avatar
можно допиливать плагин
avatar
После установки перестали работать теги, точнее переход по тегам из облака в русском языке. Вместо названия в поле надпись %D0%9F%D0%BE%D0%BB%D1%8C%D0%B7 а на странице ничего не найдено.
avatar
целиком ссылку давайте.
cookorama.net/ru/tag/%D1%81%D0%B0%D0%BB%D0%B0%D1%82/ у меня работает. а ссылка так и должна выглядеть
avatar
на сайте и в браузере она выглядит как
cookorama.net/ru/tag/салат/
avatar
Да у вас на сайте я проверил работает, просто здесь на сайте уже встретил аналогичные топики, где проблема решалась после выключения вашего плагина. По поводу ссылки, я имел ввиду она так выглядит в поле ввода(то что с облаком слево) на странице после перехода по тегу.
avatar
можно ссылку на аналогичные топики? конкретно у вас проблема была в коде родного экшена LiveStreet. я посмотрел в репо. проблема есть и в LiveStreet 0.4.2 trac.lsdev.ru/livestreet/browser/tags/0.4.2/classes/actions/ActionTag.class.php
и в последней версии trac.lsdev.ru/livestreet/browser/trunk/classes/actions/ActionTag.class.php

дублирую свой ответ из нашей переписки.
для решения проблемы с тегами замените в файле classes/actions/ActionTag.class.php 54 строку на
$sTag=urldecode($this->sCurrentEvent);
avatar
avatar
спасибо. возможно действительно в роутере проблема
avatar
по идеи это есть в роутере — trac.lsdev.ru/livestreet/browser/trunk/engine/classes/Router.class.php#L120
avatar
все. вижу. спасибо :)
наверное не смержил в свое время обновления роутера. сейчас ещё раз обновлю плагин.
avatar
Проблема такого плана, когда выбираешь например русский язык сайта и тебя переносит на Http://сайт/ru то в главном меню при нажатии ссылки «Все+» и ее «дочерние» ссылки «Хорошие» и «Плохие» переносит снова на сайт/ а не на сайт/ru/
Как пофиксить?
avatar
смотреть в шаблон меню, каким образом там ссылки выводятся.
cookorama.net/ru/ активная ссылка действительно на домен без указания языка введет. остальные норм.
avatar
да, вот это больше всего и выводит =)
avatar
Скачал LS v0.4.2 и плугин. Активировать не удается из-за ошибки:
Duplicate column name 'user_lang' [query] => ALTER TABLE `bzz_user` ADD `user_lang` VARCHAR(16) NOT NULL DEFAULT 'russian' AFTER `user_password` [context] => K:\home\ls.net\www\engine\classes\Plugin.class.php line 196 )

при активации плугин пытается добавить то, что уже есть. Ок. отрубил в activate.sql все это добро… на запросе опять споткнулся

ALTER TABLE `prefix_blog_l10n`
ADD CONSTRAINT `prefix_blog_l10n_fk` FOREIGN KEY (`blog_id`) REFERENCES `prefix_blog` (`blog_id`) ON DELETE CASCADE ON UPDATE CASCADE;

Ошибка: Can't create table '.\social\#sql-5a4_12d.frm' (errno: 121)
avatar
захожу на страницу регистрации и там по русский все равно пишется. Везде поставил english($config['allowed_langs'] = array('english','ukrainian', 'russian','french');

)
avatar
$config['langs_aliases'] = array(
     'english' => 'en',
     'french' => 'fr',
    'ukrainian' => 'uk',
    'russian' => 'ru',...

router
$config['lang']['current'] = 'english';                                                // текущий язык текстовок
$config['lang']['default'] = 'english';  
avatar
Переключился на английский язык url стал вида mysite.ru/en/, при нажатии на ссылку All(Все) в меню сайта url принимает вид mysite.ru и язык становиться русским. Как исправить?
avatar
по дефолту значит русский язык стоит
avatar
спасибо за плагин, хорошо работает!
только есть один маленький трабл — если зайти на морду сайта, контент сайта подставляется согласно GeoIP, но урл остается без признака языка.
это может быть вредно для SEO, страница с разным контентом но с одним урлом.
подскажите пожалуйста, куда копать?
пробовал в HockLn10.class.php, в функции setlang делать так

            if ($country == 'ru') {
             Config::Set('lang.current', $this->PluginL10n_L10n_GetLangByAlias('ru'));
            setlocale(LC_ALL, "ru_RU.UTF-8");
            date_default_timezone_set('Europe/Moscow'); // See http://php.net/manual/en/timezones.php
            router::location('http://mysite.org/ru');


это решило проблему, но перестал работать функционал присоединения к коллективному блогу.
подскажите как решить проблему.
avatar
а клоакингом тут дело не будет попахивать для Google (GeoIP)?
avatar
Скажите пожалуйста у вас в примере на вашем сайте переводиться весь материал который есть. Тоесть и блоги и тэги полностью всё. При выборе или ru ua и en.

Подскажите как реализовать у себя такое.
Дело в том что настроил плагин всё работает два языка но если выбираешь ru версию блоги пишет на русском, а если выбираешь en версию контент показывается только en а вот блоги остались на русском.
avatar
отредактируйте блоги. там есть вкладки для разных языков
avatar
Спасибо большое, всё получилось.
avatar
Пожалуйста. Можете поддержать разработку новых плагинов.
avatar
Для 0.5.1 подойдет плагин?
avatar
нет. для 0.5.1 пока не адаптирован
avatar
А в планах есть?
avatar
если сообщество начнет поддерживать разработку бесплатных плагинов, тогда переведем. лично у меня нет проектов на LS 0.5 или 0.5.1.
avatar
Ясно. Я правильно понимаю, что в плагинах нельзя переопределять функции движка, поэтому Router необходимо заменить на ваш?
avatar
нельзя переопределить именно те методы, которые нам нужны. поэтому, да.
avatar
Т.е. в принципе можно, например, переопределить что-то в «engine/modules/image/Image.class.php»? Как это сделать, не подскажите, рою по сайту — ничего не могу найти про это, а в документации пусто… :(
avatar
Спасибо за плагин. Проблема в следующем, после активации и прописывания всех нужных строк в адресной строке подставляется значение выбранного языка, например /localhost/ru/ и редиректит на главноую. В админку войти тоже нельзя. Версия LiveStreet 0.5.1 Где копать?
avatar
При создании новых блогов и редактировании старых, при изменении описания и названия блогов на разных языках, у пользователя все равно отображается только на дефолтном языке. Нет подписей к языкам в описании блога.
avatar
? анрил
avatar
Поправили, другая байда. Если топик прочитан, то он больше не выдается в выдаче топиков. Лечится отключением l10n.
avatar
гениально :)
avatar
Добрый день. Пытался активизировать этот плагин, но у меня появилось следующее сообщение:
Fatal error: Call to undefined method Router::getLang() in .../plugins/l10n/classes/modules/l10n/L10n.class.php on line 153
После этого все перестало работать, все время выходит эта ошибка.
Что я сделал не так?
Спасибо.
avatar
нужно заменить дефолтный роутер на роутер из плагина
читайте инструкцию по установке github.com/stfalcon-studio/ls-plugin_l10n/blob/master/INSTALL.txt
avatar
Здравствуйте. У меня при попытке активировать плагин появляется ошибка
SQL Error: Duplicate column name 'user_lang' at Z:\home\videoclips\www\engine\modules\database\Database.class.php line 151
Array ( [code] => 1060 [message] => Duplicate column name 'user_lang' [query] => ALTER TABLE `prefix_user` ADD `user_lang` VARCHAR(16) NOT NULL DEFAULT 'russian' AFTER `user_password` [context] => Z:\home\videoclips\www\engine\modules\database\Database.class.php line 151 )

Подскажите, пожалуйста, в чем проблема? Установлены последние версии LS и самого плагина.
avatar
avatar
Особо не успел потестить. Пришлось снести.
У меня кнопка «Написать» перестала работать. На её месте была такая ссылка:

http://mysite.com/%3Cbr%20/%3E%3Cb%3ENotice%3C/b%3E:%20%20function%20call%20'trigger_error'%20is%20unknown%20or%20deprecated.%20in%20%3Cb%3E/home1/mymedi/public_html/mysite/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_wrapper.php%3C/b%3E%20on%20line%20%3Cb%3E57%3C/b%3E%3Cbr%20/%3E%3Cbr%20/%3E%3Cb%3ENotice%3C/b%3E:%20%20Router:%20unknown%20'page'%20given%20in%20%3Cb%3E/home1/mymedi/public_html/mysite/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_wrapper.php%3C/b%3E%20on%20line%20%3Cb%3E111%3C/b%3E%3Cbr%20/%3Eadd/


в админке попробовал в «плагины» зайти — то же самое примерно. Потом удалил его. Как бороться с этим? Плагин-то нужен :)
avatar
создайте задачу тут github.com/stfalcon-studio/ls-plugin_l10n/issues или тут livestreetcms.com/addons/view/105/trac/add/

дайте максимум информации по проблеме. какая версия LS, какие плагины установлены
avatar
не работает админ панель, нету вкладки ПЛАГИНЫ, не знаю как теперь отключить его?
avatar
в plugins.dat удалить строку l10n
avatar
а как сделать чтобы плагин все же работал, но и админка была как раньше?
avatar
нужно разбираться в вашей проблеме. у меня работает и админка и плагин.
avatar
я пока только разбираюсь с ЛС и е силен в ней, не могу понять в чем проблема.
Пробовал отключать все плагины, кроме админпанели и л10н, все осталось по прежнему,
в какую сторону копнуть? или можно передать дамп для изучения?
avatar
для начала проверьте на чистой сборке LiveStreet — скачайте с каталога и установите 0.5.1. плагин L10n тоже скачайте с каталога. если на чистой сборке будут проблемы, тогда создавайте задачу в багтрекере и будем разбираться.
avatar
и внимательно читайте руководство по установке.
avatar
Если топик прочитан, то он больше не выдается в выдаче топиков. Лечится отключением l10n.
Да это гениально, есть ли решение????
avatar
покажите мне проблему для начала. я не наблюдаю такого поведения. плагину всеравно прочитан топик или нет
avatar
отключил l10n, domain/admin/plugins/ вообще не открывает, хмм, попробую все с чистой версии ЛС.
avatar
Исправите несовместимость с шаблоном simple, а точнее с плагином из этого шаблона?
avatar
несовместимость?
avatar
Да, была ошибка на всём сайте, на любой странице после активации L10n при активированном Simple template (плагин). К сожалению уже не могу скопировать или показать скриншот, теперь не могу даже активировать плагин.
SQL Error: Duplicate column name 'user_lang' at /home/ne/public_html/engine/modules/database/Database.class.php line 151
 Array ( [code] => 1060 [message] => Duplicate column name 'user_lang' [query] => ALTER TABLE `prefix_user` ADD `user_lang` VARCHAR(16) NOT NULL DEFAULT 'russian' AFTER `user_password` [context] => /home/ne/public_html/engine/modules/database/Database.class.php line 151 )
avatar
понятно. это скорее ошибка плагина шаблона simple т.к. он использует поле user_lang, которое уже используется в плагине l10n
avatar
Но ведь есть способ в два щелчка изменить это поле в l10n на другое, да?
avatar
можете попробовать
avatar
Если просто заменить в файлах user_lang на user_langg сработает? Сайт не рухнет?
avatar
Не получилось
SQL Error: Duplicate column name 'user_langg' at /home/funoutne/public_html/engine/modules/database/Database.class.php line 151
 Array ( [code] => 1060 [message] => Duplicate column name 'user_langg' [query] => ALTER TABLE `prefix_user` ADD `user_langg` VARCHAR(16) NOT NULL DEFAULT 'russian' AFTER `user_password` [context] => /home/ne/public_html/engine/modules/database/Database.class.php line 151 )
avatar
Заранее извиняюсь может быть пропустил в комментах или топике, не подскажете, как сделать вывод русского языка станрартным, то бишь:
site\blog\title
А вывод остальных блогов выводить соответственно языку
site\blog\ua\title
site\blog\en\title…
avatar
кстати появился в каталоге обновленный плагин
— v0.4.0
— Добавлена поддержка LS v1.0.1

После смены языка к примеру «en» при наведении на названия сайта, топики, все выходит ссылка типа site.com, а должно site.com/en/… на cookorama.net так.
все плагины отключил, не решилась проблема.
avatar
Получается в шаблонах где есть
cfg name='path.root.web'

нужно заменить
router page='то что нужно'

а вот c niceurl у меня не работает, подскажите как поправить
avatar
У кого c niceurl работает?
avatar
Как создавать или просматривать переводы записей? Или плагин/шаблон неправильно работает, или голова моя… При редактировании топика вверху просто списком идут языки. Как я понимаю, там выпадающий список должен быть. В изображениях плагина видел кнопку «перевести», но на сайте так и не встретил ее.
Что неправильно делаю?
avatar
поковырял и понял: при создании блога создаются заголовки на всех языках… но пользователь этого не поймет, т.к. при наведении на язык, курсор просто мигает (текстовый), а не меняется на «руку» (или как там его обозвать)…
avatar
никто не сталкивался с ошибкой?
Fatal error: Call to a member function getTopicOriginalId() on a non-object in /users/almanacss/www/plugins/l10n/classes/hooks/HookTopic.class.php on line 215
avatar
Установил — выдает ошибку:

SQL Error: Duplicate column name 'user_lang' at /.../engine/modules/database/Database.class.php line 160
Array ( [code] => 1060 [message] => Duplicate column name 'user_lang' [query] => ALTER TABLE `prefix_user` ADD `user_lang` VARCHAR(16) NOT NULL DEFAULT 'russian' AFTER `user_password` [context] => /.../engine/modules/database/Database.class.php line 160 )
avatar
Зашел в базу, удалил ручками все таблицы созданные этим плагином, он установился, но все равно выскачила новая ошибка:

Fatal error: Call to undefined method Router::getLang() in /.../plugins/l10n/classes/modules/l10n/L10n.class.php on line 153
avatar
не правильно задан метод?

public function GetLangAliasFromUrl() {
        return Router::getLang();
    }

    public function SetLangForUrl($sLang) {
        Router::setLang($sLang);
    }
avatar
Косяк, забыл прочитать редми )
Сделал все по инструкции — на синио (голом ЛС) работает нормально, а вот на другом шаблоне выдает это:

Warning: Invalid argument supplied for foreach() in /home/emilzo/public_html/plugins/l10n/classes/hooks/HookL10n.class.php on line 113

Fatal error: Uncaught exception 'Exception' with message 'Can not find the block`s template: L10nSelectLang' in /.../engine/modules/viewer/Viewer.class.php:588 Stack trace: #0 /.../engine/modules/viewer/Viewer.class.php(489): ModuleViewer->DefineTypeBlock('L10nSelectLang', NULL) #1 [internal function]: ModuleViewer->AddBlock('right', 'L10nSelectLang', Array, 500) #2 /.../engine/classes/Engine.class.php(558): call_user_func_array(Array, Array) #3 /.../engine/classes/Hook.class.php(71): Engine->_CallModule('Viewer_AddBlock', Array) #4 /home/emilzo/public_html/plugins/l10n/classes/hooks/HookL10n.class.php(100): Hook->__call('Viewer_AddBlock', Array) #5 /.../plugins/l10n/classes/hooks/HookL10n.class.php(100): PluginL10n_HookL10n->Viewer_AddBlock('right', 'L10nSelectLang', Array, 500) #6 [internal function]: PluginL10n_HookL10n->ShowBlockSelectLang(Array) #7 /.../engine/modules/hook/Hook.class.php(292): call_ in /.../engine/modules/viewer/Viewer.class.php on line 588


Я думаю проблема в недостающих хуках?
avatar
уже кто то тестировал работу плагина на мобильном шаблоне?
avatar
Fatal error: Call to undefined method Router::getLang() in /var/www/vhosts/sitename.ru/httpdocs/plugins/l10n/classes/modules/l10n/L10n.class.php on line 153


Как решить? помогите пожалуйста!
avatar
а вы файл роутера Router.class.php поменяли в движке?
avatar
выдает такого рода ошибки при добавления топиков
l10n/classes/modules/topic/entity/Topic.entity.class.php on line 12


когда отключаешь плагин все нормально
avatar
При регистрации через логинзу выдаёт:
Notice: Undefined variable: oBlog in /users/almanacss/www/plugins/l10n/classes/hooks/HookBlog.class.php on line 100

Fatal error: Call to a member function setBlogLang() on a non-object in /users/almanacss/www/plugins/l10n/classes/hooks/HookBlog.class.php on line 100


я так понимаю происходит это из за того что язык не выбран. Как можно присвоить язык по умолчанию при регистрации через логинзу? Всё равно потом через настройки пользователя можно его установить на нужный.
avatar
этот пунк не работает
При создании и редактировании блога можно задавать название блога, его описание и url на разных языках
avatar
если точнее, то нету стилей табов совсем, забыли о них :)
avatar
попробуйте ещё отписать здесь или на гитхабе
avatar
Поставил по инструкции (заменил роутер)на пустой 1.0.3 с шаблоном synio

выдает вот что:

Strict Standards: Declaration of PluginL10n_ModuleTopic::GetOpenTopicTags() should be compatible with ModuleTopic::GetOpenTopicTags($iLimit, $iUserId = NULL) in /var/www/admin/www/tunister.com/plugins/l10n/classes/modules/topic/Topic.class.php on line 7

Strict Standards: Declaration of PluginL10n_ModuleTopic_MapperTopic::buildFilter() should be compatible with ModuleTopic_MapperTopic::buildFilter($aFilter) in /var/www/admin/www/tunister.com/plugins/l10n/classes/modules/topic/mapper/Topic.mapper.class.php on line 7

Warning: Cannot modify header information — headers already sent by (output started at /var/www/admin/www/tunister.com/plugins/l10n/classes/modules/topic/Topic.class.php:7) in /var/www/admin/www/tunister.com/engine/include/function.php on line 234

Warning: Cannot modify header information — headers already sent by (output started at /var/www/admin/www/site.com/plugins/l10n/classes/modules/topic/Topic.class.php:7) in /var/www/admin/www/site.com/engine/include/function.php on line 235

куда копать не подскажите?
avatar
На другом шаблоне, отключил вообще все плагины — все равно:

Strict Standards: Declaration of PluginL10n_ModuleTopic::GetOpenTopicTags() should be compatible with ModuleTopic::GetOpenTopicTags($iLimit, $iUserId = NULL) in /var/www/admin/www/site.com/plugins/l10n/classes/modules/topic/Topic.class.php on line 7

Warning: Cannot modify header information — headers already sent by (output started at /var/www/admin/www/site.com/plugins/l10n/classes/modules/topic/Topic.class.php:7) in /var/www/admin/www/site.com/engine/include/function.php on line 235
avatar
Вам же php черным по белому написал:

Strict Standards: Declaration of PluginL10n_ModuleTopic::GetOpenTopicTags() should be compatible with ModuleTopic::GetOpenTopicTags($iLimit, $iUserId = NULL)


В расширяемые плагином метод( -ы) нужно добавить параметры $iLimit, $iUserI.
Но возможно этим не ограничитесь.
avatar
я фиговый девелопер) а где это добавлять надо?
avatar
Быстрый ответ:
в файле /var/www/admin/www/site.com/plugins/l10n/classes/modules/topic/Topic.class.php
Это видно по тексту ошибки.
Более подробно не подскажу, это нужно ставить и смотреть плагин, есть мнение, что это не единственная проблема совместимости. Могу, конечно, предложить решение проблемы на «коммерческих» основаниях =)
avatar
Если кому надо, столкнулся с тем же. Скачайте последнюю версию с гита плагина.
avatar
Мультиязычность работает корректно, но при переходе на главную страницу язык скидывается на default. Рассматривали ли этот вопрос??? Буду очень благодарен за ответ!
avatar
Аналогично. Такая же ситуация. Присоединяюсь к вопросу.
avatar
Доброго времени суток.

stfalcon , спасибо за реализацию плагина!
Установил на чистую LS 1.0.3 skin-synio. Из установленных плагинов 2 предустановленных: Livestreet Profiler Plugin,Static page ( не активированы )aceAdminPanel v.2.0.355 и L10n. Тестирую на локал-хосте ( Денвер ). Раннее была установлена украинская локализация от adamantis1 Для себя перевел «админку» на украинский :-) В config.php выставил
config
Выполнил установку L10n по инструкции ( заменил Router.class.php ) Все работает. Но появились вопроссы:
Вот так выглядит языковая панель блока
lang
Попитки изменить расположение вывода кнопок в том порядке в котором желаю, не дает желаемого результата:
ua,ru,en
Позже понял, что так возможно поменять местами подписи к флагам :-)
Что имею: Переключение языков работает корректно. Например выбираю любой из предложенных. Ок. Но при выходе, перебрасывает на главную. Язык русский. «Админка» на русском ( для меня это не критично. Но возможно кому то и принципиально ). Нужна подсказка в каком направлении двигаться? Ранее ставил langchange. Но само его расположение в шапке немного не эстетично. Ваш вариант более приемлем. Собственно только вчера подумал, что неплохо бы такой плагин поискать. И вот чудо — нашел :-)
avatar
stfalcon отличное пояснение
Изменил в
все наоборот:
В настройках «админки» установил так:

Что получилось:
* «Админка» опять отображается на украинском языке.
* При выходе с сайта возвращает на страницу с украинским языком. Раньше, при выходе перебрасывало на главную с русским. После эксперимента с регистрацией нового пользователя и выбором желаемого языка, при входе и выходе выбранные настройки сохраняются отлично. В моем случае, при установке LS, языком по умолчанию стоял русский. Поэтому покидая сайт, все отображалось в оригинале.
avatar
В LS 2.0 из коробки нет ведь подобного функционала мультиязычности? И если нет, то не планируется ли релиз плагина L10n для 2.0?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.