Текущая версия: 1.2.0
Автоматический переводчик для сайтов на InstantCMS 2, чем-то похожий на Transposh для Wordpress.
Переводит все элементы сайта с сохранением в базу данных. Поэтому перевод текста производится только один раз при сохранении или при редактировании. Посетители всегда видят локальные тексты и не ждут пока произойдет запрос к провайдеру автоматического перевода. Так же это сокращает количество обращений к тому самому провайдеру.
Переводится текст записей, меню, комментарии, виджеты, категории и т.д.
Для системных текстов (админка) требуются стандартные файлы локализации из которых на данный момент имеются русский, английский и украинский (от boanro). Для остальных языков эти элементы заменяются английской локализацией.
Для фронтенда доступно 55 языков.
В планах реализовать инструмент для переводчиков, который упростит создание локализаций для Инстанта.
Переведенный текст материалов можно отредактировать вручную.
Каждая языковая версия имеет свой URL и мета-теги.
Установка производится стандартным способом через админку.
Требуемая версия Инстанта 2.3.0
Внимание! Производится замена некоторых файлов ядра системы, если вы вносили в них изменения требуется ручное смерживание.
1. Получить API-ключ Яндекса. Делается это бесплатно и очень просто. Ссылка для получения есть под полем в настройках компонента, куда потом следует ввести этот ключ (Компоненты — UniLang — Опции).
2. Включить желаемые языки (Компоненты — UniLang — Языки).
3. Настроить перевод типов контента (Компоненты — UniLang — Контент), выбрав поля, которые следует переводить.
4. При желании выполнить перевод контента уже размещенного на сайте (Компоненты — UniLang — Переводы).
5. Поблагодарить автора финансами и/или оставить отзыв в каталоге дополнений на сайте Инстанта.
Планов по дальнейшему развитию много, их реализация зависит от времени, время зависит от денег, так что последний пункт по возможности не игнорируйте.
Номер карты в Сбербанке: 5469015207191793
Кошелек WebMoney: R401209930928
Кошелек QIWI: +79284270624
Яндекс Деньги: 41001823847377
Требования Яндекса к использованию результатов перевода
При оформлении результатов перевода необходимо придерживаться правил, описанных в Лицензии на использование сервиса Яндекс.Переводчик.
Каждая страница, использующая данные сервиса Яндекс.Переводчик, должна содержать текст «Переведено сервисом «Яндекс.Переводчик» с активной гиперссылкой на страницу translate.yandex.ru/.
Размер шрифта ссылки должен быть не менее размера шрифта основного текста, а цвет должен совпадать с цветом шрифта основного текста страницы.
— — —
v1.2.0 (21.11.2015)
— Теперь в арсенале Юнилэнга 55 языков.
— Переход от одной языковой версии к другой, теперь производится по прямой ссылке, что должно положительно сказаться на индексировании всех версий.
— Исправлена ошибка возникавшая в версии языка по-умолчанию, из-за которой в частности, не получалось поделиться материалами в социальных сетях.
v1.1.0 (15.11.2015)
— Каждая языковая версия теперь имеет свой префикс в URL.
— Существенно сокращено количество запросов к базе данных.
— Исправлена ошибка из-за которой пропадпли теги.
— При редактировании материалов, можно выбрать — переводить их автоматически или нет.
— Теперь администратор может выбирать, какие переводить мета-теги (заголовок, ключевики и описание), а какие нет.
— Теперь почти все на сайте можно перевести/исправить вручную (осталось категории и свойства контента).
— Изменена страница редактирования перевода записи контента.
— Различные улучшения по коду (большая часть переписана) и исправления по безопасности.
v1.0.2 (10.11.2015)
— Появилась возможность ручного перевода элементов сайта (контент можно было переводить вручную и раньше).
v1.0.1 (08.11.2015)
— Важное обновление безопасности.
— — —
Не забывайте делиться о результатах запуска, автоматического сбора статистики пока нет.
Автоматический переводчик для сайтов на InstantCMS 2, чем-то похожий на Transposh для Wordpress.
Переводит все элементы сайта с сохранением в базу данных. Поэтому перевод текста производится только один раз при сохранении или при редактировании. Посетители всегда видят локальные тексты и не ждут пока произойдет запрос к провайдеру автоматического перевода. Так же это сокращает количество обращений к тому самому провайдеру.
Переводится текст записей, меню, комментарии, виджеты, категории и т.д.
Для системных текстов (админка) требуются стандартные файлы локализации из которых на данный момент имеются русский, английский и украинский (от boanro). Для остальных языков эти элементы заменяются английской локализацией.
Для фронтенда доступно 55 языков.
В планах реализовать инструмент для переводчиков, который упростит создание локализаций для Инстанта.
Переведенный текст материалов можно отредактировать вручную.
Каждая языковая версия имеет свой URL и мета-теги.
Установка производится стандартным способом через админку.
Требуемая версия Инстанта 2.3.0
Внимание! Производится замена некоторых файлов ядра системы, если вы вносили в них изменения требуется ручное смерживание.
1. Получить API-ключ Яндекса. Делается это бесплатно и очень просто. Ссылка для получения есть под полем в настройках компонента, куда потом следует ввести этот ключ (Компоненты — UniLang — Опции).
2. Включить желаемые языки (Компоненты — UniLang — Языки).
3. Настроить перевод типов контента (Компоненты — UniLang — Контент), выбрав поля, которые следует переводить.
4. При желании выполнить перевод контента уже размещенного на сайте (Компоненты — UniLang — Переводы).
5. Поблагодарить автора финансами и/или оставить отзыв в каталоге дополнений на сайте Инстанта.
Планов по дальнейшему развитию много, их реализация зависит от времени, время зависит от денег, так что последний пункт по возможности не игнорируйте.
Номер карты в Сбербанке: 5469015207191793
Кошелек WebMoney: R401209930928
Кошелек QIWI: +79284270624
Яндекс Деньги: 41001823847377
Требования Яндекса к использованию результатов перевода
При оформлении результатов перевода необходимо придерживаться правил, описанных в Лицензии на использование сервиса Яндекс.Переводчик.
Каждая страница, использующая данные сервиса Яндекс.Переводчик, должна содержать текст «Переведено сервисом «Яндекс.Переводчик» с активной гиперссылкой на страницу translate.yandex.ru/.
Размер шрифта ссылки должен быть не менее размера шрифта основного текста, а цвет должен совпадать с цветом шрифта основного текста страницы.
— — —
v1.2.0 (21.11.2015)
— Теперь в арсенале Юнилэнга 55 языков.
— Переход от одной языковой версии к другой, теперь производится по прямой ссылке, что должно положительно сказаться на индексировании всех версий.
— Исправлена ошибка возникавшая в версии языка по-умолчанию, из-за которой в частности, не получалось поделиться материалами в социальных сетях.
v1.1.0 (15.11.2015)
— Каждая языковая версия теперь имеет свой префикс в URL.
— Существенно сокращено количество запросов к базе данных.
— Исправлена ошибка из-за которой пропадпли теги.
— При редактировании материалов, можно выбрать — переводить их автоматически или нет.
— Теперь администратор может выбирать, какие переводить мета-теги (заголовок, ключевики и описание), а какие нет.
— Теперь почти все на сайте можно перевести/исправить вручную (осталось категории и свойства контента).
— Изменена страница редактирования перевода записи контента.
— Различные улучшения по коду (большая часть переписана) и исправления по безопасности.
v1.0.2 (10.11.2015)
— Появилась возможность ручного перевода элементов сайта (контент можно было переводить вручную и раньше).
v1.0.1 (08.11.2015)
— Важное обновление безопасности.
— — —
Не забывайте делиться о результатах запуска, автоматического сбора статистики пока нет.
Реклама #
Олег Васильевич я 9 лет назад #
Олег Васильевич я 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
My-InstantCMS.Ru 9 лет назад #
Иван Шкута 9 лет назад #
vikont 9 лет назад #
Теперь хотелось бы уточнить некоторые моменты:
1. Если я правильно понял, то при создании публикации она автоматически переводится на все зарегистрированные на сайте языки?
2. Уже созданные на сайте публикации надо предварительно обработать переводчиком или перевод происходит автоматически при открытии?
3. Компонент понимает с какой страны обратились к сайту или нет? Если нет, тогда планируется ли такое определение?
4. Совместим ли компонент с новой версией ICMS2+ 2.3?
5. Перевод происходит только с русского на другие языки или в любом направлении? Этот вопрос к тому, что если на сайт зашел француз и оставил комментарий, то можно ли его увидеть в переводе на другие языки?
Иван Шкута 9 лет назад #
2. Надо обрабатывать. Можно просто отредактировать, перевод произойдет при сохранении. Или воспользоваться функцией пакетного перевода (Компоненты - UniLang - Переводы), эта функция переведет все еще непереведенные элементы.
3. Поскольку компонент занимается переводами, а не геотаргетигом, то тут важнее понимать ни где находится посетитель, а на каком языке он говорит. Это компонент понимает.
4. Компонент совместим с версией 2.3.0. При выходе новой версии Инстанта постараюсь актуализировать и Юнилэнг.
5. Перевод производится в любом направлении, спасибо Яндексу, возможно в будущем и гуглу с бингом.
Dost 9 лет назад #
Поддерживаю Олег Васильевич я про язык как главный на сайте)
asa 9 лет назад #
Иван Шкута 9 лет назад #
Правка других элементов планируется в ближайшем обнолении.
letsgo 9 лет назад #
Endroid 9 лет назад #
Иван, я бы обратил внимание на возникающую проблему с ранжированием - контент на разных языках находится на одной странице с одним URL.
Из простых решений - добавить параметр URL для каждого языка, чтобы было примерно так .html?lang=en или .html?lang=de
Желаю развития, по возможности поддержу 5 пункт!
Олег с клещами 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
vikont 9 лет назад #
vikont 9 лет назад #
vikont 9 лет назад #
pages:
id: 1
name: pages
fields:
tit...
Иван Шкута 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
vikont 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
vikont 9 лет назад #
vikont 9 лет назад #
Теперь вручную переводит, НО, не хватает поля Короткое описание и другие поля. Лучше бы компонент подхватывал все поля, кроме числовых.
Пакетная обработка так и не работает! Как доперевести часть интерфеса? И как доперевести Новости? Их там немало.
Иван Шкута 9 лет назад #
Iceman 9 лет назад #
Не переводятся названия полей и подписи к ним (для любых полей) и так же не переводится контент в стандартных полях с типами "список" и "флаг" (эти поля так же не доступны для отметки в разделе "контент" настроек UniLang).
Не переводятся категории. Пробовал пересохранять категорию и из админки и с фронтэнда, под любым из доступных в UniLang языков.
А ещё возник дополнительный вопрос: При включении UniLang заметно падает общая производительность, разделы и контент начинают открываться с значительной задержкой. Подозреваю что в этот момент идет обращение к автоматическому переводчику, если это так, то можно ли как то отключить автоматически перевод контента? Правда это сугубо предположение, поскольку производительность падает на всех разделах, даже не выбранных в настройка "контента".
lezginka.ru 9 лет назад #
Иван Шкута 9 лет назад #
1. Одинаковые урлы удобны людям, например, француз скинет ссылку итальянцу и итальянец увидит сразу итальянский текст и не будет искать кнопку смены языка. Тем более, что о наличии кнопки он может и не догадаться.
2. Поисковые роботы тоже обычно имеют языковую привязку. Соответственно каждый проиндексирует свой вариант и добавит в свою базу. Без языковой принадлежности проиндексирует вариант по-умолчанию.
С другой стороны база у поисковика скорее всего одна на все языки... и как поисковик отреагирует на это...
НО! Поскольку это все же удобно для людей, то это задача поисковиков приспособиться под такие случаи.
На мой взгляд, здесь есть над чем подумать, так что жду кто что скажет.
lezginka.ru 9 лет назад #
Endroid 9 лет назад #
Вот инфа
Это же и чуть иначе на хабре
Иван Шкута 9 лет назад #
Хоть это и трудно пока представить, но думается мне, что скоро это станет стандартом. Так что у них просто нет выбора, тем более что это соответствует их политике (делать поиск нацеленный на удобство ЛЮДЕЙ).
Поэтому если будет время и не будет более важных задач, я реализую возможность опционально включать разные урлы, но приоритет ставлю совсем не высокий. Разве, кто приведет существенные доводы...
vikont 9 лет назад #
Более того, проверка какие страницы проиндексированы происходит только по Урлу.
Какие еще нужны доводы?
Иван Шкута 9 лет назад #
Oleg_z75 9 лет назад #
Завтра обязательно Вам скину WebMoney благодарность за вашу работу dance
Ещё раз Спасибо!
Иван Шкута 9 лет назад #
Типы активности
Типы контента
Пункты меню
Действия модераторов
Поля профилей
Переводы между группами
Вкладки профилей
Виджеты
Страницы виджетов
Ну и исправлены некоторые проблемы возникавшие при установке компонента.
Не забывайте делиться о результатах запуска, автоматического сбора статистики пока нет.
asa 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
vikont 9 лет назад #
Что касается платной версии, то если бы я мог себе позволить платить по тем ценам, тогда наверно имел бы переводчика (шутка)
vikont 9 лет назад #
vikont 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
Иван Шкута 9 лет назад #
stealthdebuger 9 лет назад #
Текущая версия Unilang открывает два вектора для атаки на систему.
skewes 9 лет назад #
вся система на энтузиазме? не так ли?
Иван Шкута 9 лет назад #
Fuze 9 лет назад #
stealthdebuger, зачем так категорично? Увидели - помогите человеку. Зачем играть в угадайку)
stealthdebuger 9 лет назад #
В данном функционале не фильтруемые и не проверенные данные из кук используются при формировании путей к подгружаемым в дальнейшем файлам по маске *.php, а также, их используют в SQL-запросе.
Fuze 9 лет назад #
Иван Шкута, вырезайте из данных, полученных из куков, все символы, которые там в принципе не нужны, используя регулярные выражения или же посмотрите, может быть готовые методы проверки (они не фильтруют, именно проверяют) в основном классе контроллера вам подойдут.
Иван Шкута 9 лет назад #
vikont 9 лет назад #
Абсолютно точно выяснились 2 момента, при установке вашего компонента ссылки с сайта не проходят валидацию, из-за чего часть соцсетей не принимает ссылки для репоста!
А так же отключает сохранение тегов в базе данных!
Надо что то срочно предпринимать! И подскажите, как временно отключить переводчик, пока вы будете решать эту проблему?
Иван Шкута 9 лет назад #
Dorimen 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
Иван Шкута 9 лет назад #
- Каждая языковая версия теперь имеет свой префикс в URL. (пообщался, подумал и решил таки сделать)
- Существенно сокращено количество запросов к базе данных.
- Исправлена ошибка из-за которой пропадпли теги.
- При редактировании материалов, можно выбрать — переводить их автоматически или нет.
- Теперь администратор может выбирать, какие переводить мета-теги (заголовок, ключевики и описание), а какие нет.
- Теперь почти все на сайте можно перевести/исправить вручную (осталось категории и свойства контента).
- Изменена страница редактирования перевода записи контента.
- Различные улучшения по коду (большая часть переписана) и исправления по безопасности.
stealthdebuger 9 лет назад #
letsgo 9 лет назад #
vikont 9 лет назад #
Из Хотелок просится статистика в админку, например в Контент, где бы было видно что уже переведено на тот или иной язык, а что нет.
И оттуда же кликать по меткам и включать или выключать перевод той или иной статьи для публикации.... а еще бы и перевод делала без входа в редактирование... :)
vikont 9 лет назад #
Выяснил, что проблема возникла при использовании редактора Tinymce, при использовании редактора Ckeditor фото не теряются! А почему такая разница?
vikont 9 лет назад #
После установки Юнилэнда это первая Новость, напрашивается вывод, что проявился какой то нюанс с адресами и соцсети не "видят" адреса Новостей на русском языке. Или это только у меня такая проблема?
Иван Шкута 9 лет назад #
vikont 9 лет назад #
asa 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
vikont 9 лет назад #
При очередной индексации поисковиком моих страниц, обнаружил, что переведенные страницы не проиндексированы.
При дальнейших разборках выяснилось, что поисковик просто не видит переведенные страницы. Без компонента они не доступны!
Вот я и задал вопрос - это всегда так будет или все же произойдет разделение - система переводов сама по себе, а система урлов как дополнение к существующей. Чтобы любая проблема с переводчиком и его отношениями с Яндексом не исключало переведенные страницы из общего доступа! Я даже против, если согласно УРЛ физически появится две папочки EN и UKR
vikont 9 лет назад #
Иван Шкута 9 лет назад #
vikont 9 лет назад #
1. Есть переводные статьи, значит они должны быть видны для поисковиков (пусть не сразу автономно)
2. Статьи должны нормально репоститься в соцсети на любом языке, а не только английском или русском.
Знаю точно, что этого дня ждут очень многие люди и надеюсь не с пустыми руками... Вещь отличная! :)
Иван Шкута 9 лет назад #
Остальное сразу, как смогу сесть за код сделаю.
asa 9 лет назад #
Иван Шкута 9 лет назад #
Иван Шкута 9 лет назад #
SverigeR 9 лет назад #
подскажите пожалуйста, что не так ?
vikont 9 лет назад #
SverigeR 9 лет назад #
Иван Шкута 9 лет назад #
- Теперь в арсенале Юнилэнга 55 языков.
- Переход от одной языковой версии к другой, теперь производится по прямой ссылке, что должно положительно сказаться на индексировании всех версий.
- Исправлена ошибка возникавшая в версии языка по-умолчанию, из-за которой в частности, не получалось поделиться материалами в социальных сетях.
asa 9 лет назад #
vikont 9 лет назад #
vikont 9 лет назад #
Попробовал очередной раз установить Uniland и появилась такая ошибка
vikont 9 лет назад #
SverigeR 9 лет назад #
ранее уже указывал - установил на поддомен чистую версию InstantCMS 2.3., потом залил компонент UniLang ...........
сейчас когда установил версию 1.2.0, --- появилась новая запись... Firefox has detected that the server is redirecting the request ... свою очередь fail error_log видаль целый роман интересной литературы с 1 по 2181 строчку
[22-Nov-2015 15:40:02 UTC] PHP Notice: Undefined index: langs in /home/VVV/public_html/tests/system/core/unilang.php on line 45
[22-Nov-2015 15:40:02 UTC] PHP Warning: Invalid argument supplied for foreach() in /home/VVV/public_html/tests/system/core/unilang.php on line 45
[22-Nov-2015 15:40:02 UTC] PHP Notice: Undefined variable: ret in /home/VVV/public_html/tests/system/core/unilang.php on line 50
[22-Nov-2015 15:40:02 UTC] PHP Warning: array_key_exists() expects parameter 2 to be array, null given in /home/VVV/public_html/tests/system/core/unilang.php on line 982 .........
кроме того в базе данных не одной таблицы не появилась как например cms_ul_langs и cms_ul_option ........ что по этому поводу могут посоветовать специалисты InstantCMS или сам Master?
PolarOne 9 лет назад #
Добавил два языка (рус-defolt и укр) при переключении на украинский - все нормально. При обратном переключении - ничего не происходит - ссылка не меняется и не переводится. Админка тоже поменяла свой язык на укр, ссылка такого вида /uk/admin/
при удалении укр (оставлякем рус) - идет повтор /uk/uk/uk/uk/uk/uk/uk/uk/uk/uk/uk/uk/uk/uk/uk/uk/admin/
Если ставим три языка (+ инг) - то идет переключение между укр и инг нормально, а рус опять таки не включается ссылка как у ингл.
Endroid 9 лет назад #
PolarOne 9 лет назад #
то нужно обновиться во фронте, удалить хвост в ссылке чтоб было site,ru выбрать язык (основной какой он был) и заходить в админку уже через привычное /admin/
PolarOne 9 лет назад #
vikont 9 лет назад #
Иван Шкута 9 лет назад #
PolarOne 8 лет назад #
Печалька(
PolarOne 8 лет назад #
Либо оставить бесплатно, но смазать процесс разработки всем желающим.
Иван, скажите для второго варианта объем посудины, и если есть желающие, то мы уж постараемся.)
Def 8 лет назад #
R161Net 8 лет назад #
Приходится пользоваться БЭКАПОМ.
R161Net 8 лет назад #
Table 'rostov1net.cms_ul_options' doesn't exist
SELECT i.*
FROM cms_ul_options i
WHERE (i.name = 'content')
LIMIT 1
Последние вызовы:
getItem() @ /home/r/rostov1net/public_html/system/core/model.php : 1171
getItemByField() @ /home/r/rostov1net/public_html/system/controllers/unilang/model.php : 280
getUnilangOption() @ /home/r/rostov1net/public_html/system/controllers/unilang/actions/translate_content.php : 12
run()
call_user_func_array() @ /home/r/rostov1net/public_html/system/core/controller.php : 382
runExternalAction() @ /home/r/rostov1net/public_html/system/core/controller.php : 308
runAction() @ /home/r/rostov1net/public_html/system/core/core.php : 687
runController() @ /home/r/rostov1net/public_html/index.php : 35
Иван Шкута 8 лет назад #