
Всем привет!
В этом посте хочу поднять тему мультиязычности InstantCMS — а точнее, почему до сих пор отсутствуют переводы на другие языки, несмотря на то что поддержка мультиязычности уже давно реализована «из коробки».
Я записал видео, в котором показываю новый компонент, призванный решить эту проблему. Он предоставляет удобный интерфейс для перевода языковых файлов InstantCMS, а также позволяет сгенерировать готовый установочный архив с переводом, который можно легко установить на свой сайт.
Видеообзор
Одно из главных преимуществ компонента — автоматическое отслеживание новых языковых констант после обновления движка. Вам больше не нужно вручную сравнивать файлы двух версий и искать изменения. Компонент сам покажет, какие строки были добавлены, и предложит их перевести.
Компонент не использует базу данных, так как хранение переводов для нескольких языков в БД было бы слишком объёмным. Все переводы хранятся в файлах.
Возможно, Fuze проверить код компонента на безопасность и установить его на официальный сайт — ведь именно здесь собирается всё сообщество InstantCMS.
Я верю, что с помощью сообщества мы сможем перевести InstantCMS на множество языков и сделать его доступнее для пользователей со всего мира.
Пишите, что думаете по этому поводу — любые предложения, идеи и критика приветствуются!
P.S. Текст написал нейросеть, я не настолько грамотный 😀
Вы можете добавить перевод от нейросетей, будет гораздо быстрее)
Думаю в каких то коротких текстах, нейросеть не поймет контекст и переведет неправильно.
Лучше подключить автоперевод по API яндекс или гугл, который одним нажатием вернёт переведенный текст и вставить в поле, далее человек уже подправить или сохранить если всё правильно.
Есть мультиязычные сайты и имею несколько проблем:
— Административная и пользовательская часть должна отделиться с переводом совсем.
— Одни и те же слова использую в нескольких местах, но при переводе на другой язык имеет другой смысл (н-р, год — возраст, год — дата, оба берутся с одного перевода, но, н-р, на азербайджанском это 2 разных слова) и такие слова используются во многих местах.
Остальное вспомню, напишу.
Можете поподробнее написать с примером, какие константы? Я тоже сталкивался с проблемой в части админки, уже не помню, но отказался от перевода админской части
год, группы (имеются 2 группы — группа пользователей, компонент.). Я хочу сменить группы на компании, вот тогда начинается бардак)). Их несколько, придётся вспомнить.
Очень интересно, спасибо.
Предложение: в админке — настройка компонента — сделать возможность выбора основного языка. Т.е. - если у сайта основной язык англ. то он будет как базовый и все переводы будут делаться на его основе. Удобно было бы выбирать исходный язык для первода.
У меня так — англ как основной, ru — вторым и ua третьим. Украинский я переводил заново сам (для 2.17.1) и выложит у нас. Хотелось бы его проверить.
Идея интересная и полезная. Такой компонент вполне можно было бы встроить в раздел «Дополнения».
Что нужно доработать для этого, на мой взгляд:
Версии. Для каждого языка сделать список версий движка, чтобы можно было переводить и потом скачивать пакет для нужной версии. Делать только один перевод для всех версий не прокатит, так как константы и языковые файлы не только добавляются, а и удаляются от версии к версии.
Предыдущие переводы. Для новых версий использовать (автоматически подставлять) перевод от предыдущей версии, если это возможно, и показывать константы, оставшиеся без перевода. Это можно делать разово, например, при создании новой версии перевода на выбранный язык. Также придётся сделать проверку констант на изменение по сравнению с предыдущей версией — вдруг какую-то константу изменили.
Статистика по папкам и в целом. В списке папок стоит добавить колонки с количеством оставшихся не переведённых констант во всех файлах этой папки и её подпапок и с процентом перевода этой папки, включая вложенные подпапки. Это нужно чтобы переводчик наглядно видел, где и сколько осталось перевести, а не перебирал все папки и файлы в поисках оставшихся недоделок. И на основной странице перевода показывать то же самое суммарно по этой версии перевода (по всем файлам). Также в списке версий перевода можно показывать всем посетителям кто переводчик и на какой процент завершена работа.
Доступы. Добавление языков, добавление новых версий движка, создание установочного пакета после готовности перевода — это дело админа сайта. Пользователи могут подать заявку на перевод выбранной версии на желаемый язык. Админ утверждает или отклоняет этого переводчика. По готовности перевода админ генерирует пакет, который потом могут скачать все желающие, а доступ переводчика прекращается.
Версии пакетов. При необходимости что-то изменить в уже созданном пакете проходим всю цепочку заново: новая заявка от переводчика, исправление ошибок и перегенерация пакета. На странице языка возле версии движка нужно будет отображать дату и время создания последнего пакета. Это же время и дату в каком-то общепринятом формате (например, ГГГГММДД-ЧЧММСС) добавлять в имя файла пакета. Это нужно чтобы пользователи легко понимали, были ли изменения в пакете с момента его последнего скачивания.
Перевод с помощью ИИ. В идеале, в режиме редактирования можно добавить кнопки перевода с помощью ИИ: «Перевести весь файл» и «Перевести все константы без перевода» над списком констант. А также кнопки-иконки «Перевести константу» справа возле кнопок редактирования и очистки. Это ещё больше упростит работу переводчика, останется лишь проверить корректность перевода. Но это красивая хотелка на будущее.
Хранение. Переводы лучше хранить в файлах, согласен. А данные по версиям и статистике отлично лягут в БД в таблицы компонента.
Работы, конечно, ещё много. Зато это позволит подключить сообщество к переводам, сильно упростит работу переводчиков и в итоге сделает InstantCMS ещё более популярной в мире.