С помощью компонента Мультиязычность, Вы можете перевести контент, меню, виджеты и другие части своего сайта. Поддерживает неограниченное количество языков, которые добавлены в систему (см. папку /system/languages).
У компонента понятный интерфейс, который обеспечивает быстрый доступ к объектам и записям для перевода. На странице перевода есть кнопка Авто-перевод от Яндекса, который переводить ваши материалы, а так же есть возможность ручного перевода.
Системные файлы или ядро движка не изменены, компонент работает с помощью хуков, тем самым обеспечивает безпроблемные обновления InstantCMS. При удаление компонента из админки, удаляются все таблицы и виджеты данного компонента.
Реклама #
Ne OS 8 лет назад #
Олег Васильевич я 8 лет назад #
Def 8 лет назад #
Def 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
При переходе по этим ссылкам, видит перевод статьи и индексирует, хотя я могу ошибаться.
Fuze 8 лет назад #
Я просмотрю внимательно все введенные вами хуки и добавлю в движок.
My-InstantCMS.Ru 8 лет назад #
Fuze 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Loadырь 8 лет назад #
что-то типа
AndroS 8 лет назад #
Только что-то я не понял из видео, куда вписывать переводы нужно?
My-InstantCMS.Ru 8 лет назад #
Админка - Компоненты - Мультиязычность - Контент - Новости - выбираем Россияне стали первыми на Чемпионате Мира
Там можно перевести заголовок и контент, а так же есть авто перевод от яндекса.
Полный обзор компонента https://www.youtube.com/watch?v=MKHNDXKMKP0
AndroS 8 лет назад #
Есть еще пожелание: к примеру, у меня есть действующий сайт с массой контента и только на русском языке. Можно ли как-то реализовать такую функцию, чтобы одним кликом все системные ланги и материалы перевелись яндекс-переводчиком?
Мне, допустим, качество перевода не так важно, а важен поисковый траф по тематике сайта...
Ну, и еще вопрос интересный: может ли компонент переводить комментарии? К примеру, пришел бурж на страницу контента на английском, в каментах видит уже переведенные комменты от других пользователей, отвечает на своем родном ланге, а русский юзер на своей русской странице видит уже автоматом переведенный ответ от англичанина, но с какой-нибудь небольшой иконкой, при наведении на которую всплывает оригинальная писанина автора, ну или хотя бы идет ссылка на оригинал-страницу, с которой был произведен перевод?
My-InstantCMS.Ru 8 лет назад #
2) В системе уже есть готовый хук comments_before_list - возможно получиться сделать как в Фейсбуке, т.е. под текстом комментарии, добавлю кнопку Перевод, при нажатии аяксом переводиться текст
Endroid 8 лет назад #
Иван Шкута 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
vikont 8 лет назад #
Dorimen 8 лет назад #
AndroS 8 лет назад #
AndroS 8 лет назад #
lezginka.ru 8 лет назад #
Dost 8 лет назад #
Khushruz 8 лет назад #
Василич 8 лет назад #
Очень надеюсь что появится версия с /en /ru
Еще конечно бы редактирование контента на одной странице, например разными вкладками(как в вордпрессе), иначе костыли, имхо.
Вообще конечно рад, что делаются первые шаги в этом, очень важном направлении
Старый балбес 8 лет назад #
Так что решить это несложно.Вопрос в механизме решения. Я допустим использую в своих разработках
В файле инициализации инициирую функцию переопределения uri в директории /system/libs/seourl.php
Просто? Да. И универсально не только в плане обработки uri , а и в плане возможности выполнить пользовательские функции до запуска системы,
Но это даст возможность разработчику , для творческих направлений!
1- Поддержка- единая точка входа,
2- Исключение mod_rewrite.
3- Более правильная и многофункциональна преобработка адресов.
PS//Надеюсь найду понимание и заинтересованность разработчиков в данном функционале. .
Для примера - Под seourl.php подразумеваю любой файл, который разработчик сам может определить, пусть с одной функцией возвращающей.
Dorimen 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Я в роутерах не очень то разбираюсь, по этому, не могли бы вы подсказать шаги?
Как я понял, мне надо создать хелпер для обработки $_SERVER['REQUEST_URI']
Добавить туда язык из сессии если есть
Далее у компонента есть такой файл, мне надо как то изменить роутер в этом файле?
Старый балбес 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Fuze 8 лет назад #
2. В этом хуке смотрите $_SERVER['REQUEST_URI']
3. Делите $_SERVER['REQUEST_URI'] на части по слешу через explode
4. Если в первой части $_SERVER['REQUEST_URI'] название языка (делаете проверку через список доступных языков), сохраняете язык в сессии
5. Убираете из $_SERVER['REQUEST_URI'] название языка и сохраняете $_SERVER['REQUEST_URI'] уже без него
6. Далее уже ядро продолжит работать штатно, как будто язык и не передавался.
Fuze 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Пойду обновить компонент)
Fuze 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Оказывается в хуках, данные конфига доступы по $this->cms_config->root может так быстрее чем cmsConfig::get('root') или без разницы?
Fuze 8 лет назад #
Dorimen 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Посмотрел сайт как поисковый робот, мета теги присутствуют http://prntscr.com/asplto
Скоро будет обновления
Старый балбес 8 лет назад #
R161Net 8 лет назад #
Старый балбес 8 лет назад #
Вы пример , как нужно поддерживать систему Icms,
Плюс и огромное спасибо!
Fuze!
ВЫ Fuze молодец ,Такие сообщения греют душу, и стимулируют , благодаря позитивному контексту!
Лично от себя скажу, что реально наш Уважаемый разработчик Fuze!, не просто реагирует на нужные исправления, а даже очень быстро.
И все это, за счет своего личного времени!
Искренне спасибо!
Melon 8 лет назад #
letsgo 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Насчет перевода, админ может перевести сам вручную, или же нажать Автоперевод, а потом корректировать текст
letsgo 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Loadырь 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Еще по скрину, перевод категории будет в будущих версиях...
Пункт "еще" будет наверно в будущем, когда количество локализации будут 8-10 штук
Val 8 лет назад #
1. Переходим по ссылке - категория и теги на русском (но это не страшно)
2. Жму в виджете на смену языка на Русский и получаю вот такой результат:
My-InstantCMS.Ru 8 лет назад #
AVPRT 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
AVPRT 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Если отсутствует иконка, можете загрузить в \templates\default\controllers\multilang\flags\ назвние языка и иконки должны совподать
Андрей 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Андрей 8 лет назад #
Lana 8 лет назад #
Loadырь 8 лет назад #
BoAnRo 8 лет назад #
PS. Приходилось работать еще с Drupal и Wordpress. Но настоящее удовольствие от работы и легкость создания сайтов я ощущаю только с InstantCMS.
Игорь Lu 8 лет назад #
А сейчас вопрос, я столкнулся с такой штукой.
У меня в адресной строке я прописываю адрес, на пример так: http://site.ru/uk
А в коде вижу такой результат:
Хотя у Вас на демо сайте http://demo3.my-instant.ru/uk я такого не наблюдаю. Как исправить этот глюк?
My-InstantCMS.Ru 8 лет назад #
Подписывайтесь на компонент http://instantcms.ru/addons/multilang.html что бы узнать о выходе новой версии
Игорь Lu 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Сейчас всё нормально, скачайте обновления и установите
Игорь Lu 8 лет назад #
Loadырь 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Loadырь 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
AndroS 8 лет назад #
Эх, вас бы к мапсу подключить... (мечтательно). Может, попробуете поговорить с R2?
vikont 8 лет назад #
Критика и предложения воспринимаются позитивно. Вокруг взаимопомошь и желание сделать компонент лучше, удобнее! Действительно Реальная Командная Работа!
Наконец InstantCMS получит настоящую мультиязычность!
Извините что по теме, но не удержался!
Желаю всем удачного дня и плодотворной работы!
ermakover 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Я пока не знаю как перевести содержимое, так как у каждого виджета свои запросы к БД, но вот виджеты типов конетнта стали переводиться по непонятным мне причинам, не знаю что я сделал, но раньше не переводились :)
Loadырь 8 лет назад #
SpaceSel 8 лет назад #
PolarOne 8 лет назад #
Поисковикам удобнее подавать структурированную информацию. К тому же раскручивать с разными локализациями не получится. Ссылка будет указывать на язык по умолчанию и не каждый человек захочет переключить язык и выбрать свой - просто уйдет с такого сайта.
Поэтому наличие ru en и тд в ссылке - обязательно.
Контекстная реклама тоже отпадает без них если нужно давать ссылку на разные языки.
Уже сказали - разные языки на одной странице - не есть хорошо.
Контент, перевода которого нет на выбранном языке - лучше убирать вовсе.
Удобно в одном модуле сделано отображение языков, пример:
Видно, что есть, чего нет и сразу можно добавить.
В любом случае критиковать легче и я извиняюсь, но не воспринимайте на свой счет, к тому же модуль бесплатен и для каких-то целей кому-то подойдет. Высказываю свое виденье. Автору модуля респект и уважуха!
vikont 8 лет назад #
Очень надеюсь, что новый компонент ждет более счастливая участь и InstantCMS получит настоящую мультиязычность!
Соглашусь с тем, что без указания языка такие ссылки никому не нужны! Если новый компонент не сможет разделять контент по языкам, то его ждет забвение. Я не знаю такой ситуации когда нужна мультиязычность без разделения контента по языкам.
Мультиязычность нужна для того, чтобы контент читался иностранцами, а для этого он должен быть проиндексирован и выложен в доступ поисковиками! Вот и вся правда. Без разделения контента по языкам это не возможно. Ссылки должны быть разными!
Поэтому очень жду такой возможности у нового компонента.
My-InstantCMS.Ru 8 лет назад #
Разве это уже не реализовано?
Для поисковиков есть herflang теги, которые имеют разные url, для разных языков
Для людей есть переключатель языка
Василич 8 лет назад #
Думаю это и имел ввиду предыдущий комментатор.
Василич 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Василич 8 лет назад #
Это же очевидный костыль, странно читать такие "отмазки" :)
В туду хоть записано или вообще такого в планах нет?
Если нужна материальная помощь - в первый пост реквизиты и поможем чем сможем :)
My-InstantCMS.Ru 8 лет назад #
Проще написать какой нибудь обработчик, который определяет страну пользователя по IP и предлагает сменить язык (если такой язык установлен на сайте).
vikont 8 лет назад #
А раз так, вашему компоненту самая дорога в коробку движка. Есть смысл обсудить это с Fuze
Главное, что все проблемы с Многоязычностью будут решены на системном уровне, что даст явный плюс и самому движку.
Ne OS 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Спасибо что сообщили, попробую исправить этот баг
Ne OS 8 лет назад #
на странице 404 ссылка приобретает вид http://мойсайт.ком/категория и только при повторной попытке перехода в эту категорию пропавшая часть ссылки появляется и открывается страница категории. Причем неважно с какого языка на какой переключился.
My-InstantCMS.Ru 8 лет назад #
Dorimen 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Гугл говорить о трех способах добавления hreflang
1) Тег link
2) HTTP заголовок
3) Sitemap.xml
Мы используем Тег link
Игорь Lu 8 лет назад #
Если да, то очень жаль.
Может надо поддержать данную доработку материально? Вещь-то нужная!
My-InstantCMS.Ru 8 лет назад #
На днях будет обновления...
Работа идет, но пока не могу найти способ перевода полей страницы профиля и название вкладок...
Еще в планах, добавить перевод Наборов, перевод категории в меню и т.д.
Если есть пожелания, пишите, со временем буду добавлять...
Игорь Lu 8 лет назад #
А обновления когда будут доступны для скачивания?
В дополнениях пока вижу версию 1.1.5 от 21 апреля 2016 года. Это обновление я уже устанавливал.
Нико 8 лет назад #
Endroid 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
покажите скрин или ошибку
Endroid 8 лет назад #
Loadырь 8 лет назад #
proger.su 8 лет назад #
Я дорабатываю плагин. В нем поля в форме "фиксированые", я сделал "динамические", выводятся те что в типе контента.
Столкнулся с проблемой, создания таблиц в бд. Хуков при создании/удалении полей в типе контента нет, что бы можно было обновлять структуру таблиц с переводами.
Подскажите, может есть еще варианты кроме как, при каждом сохранении перевода проверять ячейки в бд, лишние удалять, недостающие добавлять?
Спасибо!
My-InstantCMS.Ru 8 лет назад #
Если решите эту проблему, поделитесь
proger.su 8 лет назад #
proger.su 8 лет назад #
Уже добавляются/удаляются таблицы при добавлении/удалении типов контента.
Добавляются/удаляются ячеки при добавлении/удалении полей.
Сейчас делаю что бы удалялись переводы при удалении контента, меню и т. д.
proger.su 8 лет назад #
proger.su 8 лет назад #
Fuze 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Обнаружил следующие баги:
На странице списка контента, в ссылках Наборы, язык дублируется и ведет на 404 http://site.ru/en/en/board-cheap
При нажатии на кнопку Домой в хлебных крошках, язык сбрасывается
proger.su 8 лет назад #
proger.su 8 лет назад #
Также добавил возможность переводить названия полей в типе контента.
My-InstantCMS.Ru 8 лет назад #
мне тоже удалось перевести пункты меню и категории типов контента в меню, без изменение системных файлов.
Как будет время, сделаю большое обновления с переводами полей типов контента
proger.su 8 лет назад #
proger.su 8 лет назад #
/system/controllers/content/model.php
cmsEventsManager::hook('ctype_field_after_update', array($field, $field_old, $ctype_name, $this));
/system/controllers/menu/model.php
cmsEventsManager::hook('menu_item_after_delete', $item_id);
/system/controllers/menu/model.php
cmsEventsManager::hook('menu_before_delete', $id);
/system/controllers/content/frontend.php
list($ctype, $items, $fields) = cmsEventsManager::hook('content_before_list', array($ctype, $items, $fields));
list($ctype, $items, $fields) = cmsEventsManager::hook("content_{$ctype['name']}_before_list", array($ctype, $items, $fields));
Jorzhik 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
driverriga 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
1) язык теперь меняется по URL из коробки (так что убрал это из компонента)
2) язык всегда храниться в URL, т.е. если переключиться на английский, то url всегда будет site.ru/en/news/read.html
3) добавили хук для добавлению/удалению полей, так что компонент теперь может хранить перевод всех полей типов контента (сейчас только заголовок и текст), но я реализовал перевод значение только полей типа 'caption', 'string', 'html', 'text', так как только они содержать текст.
4) еще мне удалось перевести пунктов меню {content:add} и {content:news} без изменение системных файлов. Это те пункты, которые генерирует система. Например пункт Создать в персональном меню, и пункт Новости при наведении, которого всплывает категории
5) еще что то было, не помню, как только выйдет 2.6 продолжу работу
По этому наверно придется изменить структуре БД, возможно переводы типов контента будем хранить в таблицах cms_multilang_[имя_контента], я пока не знаю как перенести текущие переводы, на новые таблицы, по этому если есть время, подождите выхода 2,6
proger.su 8 лет назад #
https://github.com/my-instantcms/icms2_multilang/pull/1
На инсталлер пока времени нету, все остальное я делал на рабочему сайте, а он там не нужен был.
My-InstantCMS.Ru 8 лет назад #
В pull-requeste много файлов изменены, там сложно найти конкретные изменения, по этому, если можно, отправьте файлы на my-instantcms@mail.ru
буду вручную сравнивать и возможно какие то решения позаимствую у вас.
Но новым хукам не понял для чего они? вроде добавили же хуки для полей? я пока к этому не дошел, не знаю где хранить данные перевода типов контента, в старом cms_multilang_contents или создать для каждой свою таблицу?
proger.su 8 лет назад #
Стартовая структура для таблицы с переводами контента возвращается методом getContentTableStruct
Для формирования формы для перевода контента используется метод getContentItemForm и addSeoFields
Хуки были добавлены что бы в базе не оставлись не используемые переводы. К примеру при удалении меню, пунктов меню, контента, типа контента, поля контента и т. д.
Я бы советовал взять решения, потому что я добавил много полезных штук. К примеру переводы названий полей контента. На простых сайтах это не сильно актуально, а если в контенте много полей, то это уже нужно, к примеру как на этой странице http://03info.com/medications/1-almagel.html
Сегодня уже поздно, завтра более подробно опишу что было сделано.
proger.su 8 лет назад #
proger.su 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Компонент полностью переписан
Рефакторинг кода
Удалены из компонента функции, которые появись в движке
Теперь можно переводить категории из меню
Поддержка текстовых полей контента
Много системных хуков использованы
Исправление багов и мелкие доработки
Для тех кто обновить компонент (а не устанавливает с нуля) сделал Мигратор контента
Игорь Lu 8 лет назад #
После обновления не появилась функция миграции раннее переведённого контента. (Устанавливал на обновлённый Инстант 2.6.0 на два сайта, результат идентичен)
При переходе на язык выдаёт ошибку 404 даже при чистой установке как в админке, так и на сайте.
С админки компонент не удаляется, надо идти в БД.
Ошибка 404 возникает из за того, что в адресную строку добавляется страна, uk или en, это конечно хорошо в плане сео, но вот сайт почему-то не работает.
Может это только у меня так?
Тогда помогите понять, где я не так что делаю. :)
My-InstantCMS.Ru 8 лет назад #
Это в системе так задумано, компонент тут не причем. Если опция отключена, получите ошибку 404
Мигратор находиться в Админке - Компоненты - Мультиязычность - Опции
Это кнопка появиться после обновление компонента до 1.2.0
Если нет, посмотрите, открывается ли страница http://ВАШ-САЙТ.ru/admin/controllers/edit/multilang/migrate
Игорь Lu 8 лет назад #
А на счёт ссылки Миграции, почему-то её не было у меня, хотя и кеш почистил, но вручную помогло, всё перенёс.
Огромное спасибо за компонент и обновления. Как только появится электронка, отблагодарю не только словами
Игорь Lu 8 лет назад #
А на счёт ссылки Миграции, почему-то её не было у меня, хотя и кеш почистил, но вручную помогло, всё перенёс.
Огромное спасибо за компонент и обновления. Как только появится электронка, отблагодарю не только словами
Jestik 8 лет назад #
Не переводятся категории, в админке когда захожу в категорию - там переведено, на сайте нет
Jestik 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Содержимое виджета не переводить (кроме виджета Список контента).
Jestik 8 лет назад #
Def 8 лет назад #
Def 8 лет назад #
далее сменил на русский. теперь выдает 404 ошибку
My-InstantCMS.Ru 8 лет назад #
Def 8 лет назад #
rbs 8 лет назад #
rbs 8 лет назад #
rbs 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
На https не проверял, можете включить отладку и показать ошибки? или лог ошибок сервера?
rbs 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Страница Контент, Меню?
rbs 8 лет назад #
rbs 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Если готовы предоставить доступы для проверки, пишите в личку
rbs 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
AndroS 7 лет назад #
My-InstantCMS.Ru 7 лет назад #
Свойств пока не переводить, не было хуков в системе, сейчас вроде много хуков добавил, надо изучить и обновить компонент.
Если вам надо перевести всё, посмотрите компонент Языки
AndroS 7 лет назад #
My-InstantCMS.Ru 7 лет назад #
TOPg 7 лет назад #
My-InstantCMS.Ru 7 лет назад #
TOPg 7 лет назад #
DeDja 7 лет назад #
Вы задаете один и тот же вопрос - о возможности переводить HTML виджеты внутри. А это можно сделать и без компонентов используя Google или Яндекс Переводчики. Скриншоты страниц переводчиков (при наличии аккаунтов на Google или Yandex) прилагаются.
Пример использования Google Переводчика (с использованием модального окна) можно увидеть здесь - https://www.noip.com
И ещё скриншот сразу с двумя переводчиками (на локальном Open Server-е на выбор)
Успехов в сайтостроении !
TOPg 7 лет назад #
DeDja 7 лет назад #
Перевод всего контента? Или количество языков (которое может быть определено пользователем)?
Либо, как в старом анекдоте - "соседний колхоз просит навоз". "Не дадим - сами съедим" !
Ьascal 6 лет назад #
Notice: Undefined offset: 46 in /www/system/controllers/multilang/hooks/menu_before_list.php on line 23
Warning: array_merge(): Argument #1 is not an array in /www/system/controllers/multilang/hooks/menu_before_list.php on line 23
Кто подскажет где исправить?
My-InstantCMS.Ru 6 лет назад #
По поводу ошибки:
Что то не так с переводами пунктов меню, попробуйте удалить переводы и заново переводите.
Ьascal 6 лет назад #
Ьascal 6 лет назад #
My-InstantCMS.Ru 6 лет назад #
Напишите в ЛС, возможно потребуется доступ к админке
WhiteDesign 5 лет назад #
Vladimir 4 года назад #
My-InstantCMS.Ru 4 года назад #
Vladimir 4 года назад #
Версия инстанта 2.12.2, мультиязычность 1.4.0, но специально скачал и установил чистый инстант 2.12.2 и поставил туда мультиязычность 1.4.0., всё заработало. А на основном сайте не работает.
Попробовал поставить предыдущую версию Мультиязычности 1.3.0. Такая же проблема.
Vladimir 4 года назад #
My-InstantCMS.Ru 4 года назад #
Vladimir 4 года назад #
My-InstantCMS.Ru 4 года назад #
Vladimir 4 года назад #
последняя, которую можно скачать тут https://instantcms.ru/addons/versions/388
Vladimir 4 года назад #
abasia 4 года назад #
Vladimir 4 года назад #
Vladimir 4 года назад #
DeDja 4 года назад #
https://translate.yandex.ru/developers/website-widget
Vladimir 4 года назад #
Vladimir 4 года назад #
ermakover 2 года назад #
И Google, и Яндекс не хотят больше бесплатно переводить. Я так понимаю, что придётся переводить каждую статью ручками в браузере и вставлять на сайт.
Но есть ли в этом смысл, если любой пользователь может сам перевести текст в браузере?
Я думаю — есть, потому, что мы получаем на сайте статью на языке оригинала.
Но она должна быть переведена не автопереводчиком, иначе грош цена такому контенту.