При решении задачи по созданию сайтов научных журналов я познакомился с платформой OJS. Последней версией на тот момент была версия 3.1. Несмотря на заявленную мультиязычность, возможности данной платформы не позволяли использовать её для выполнения требований, предъявляемых к научным журналам для попадания в международные базы. Одним из подобных требований являлась двуязычность сайта журнала.
При наполении пользователями первого журнала выяснилось, что поля имя, фамилия и отчество автора могут быть заданы только на одном языке. В ходе дальнейшего изучения кода оказалось, что данные поля также являются и полями всех пользователей, создаваемых в OJS. А кроме того, доступ к этим полям данных производился не только из соответствующих им классов, но и из множества модулей и классов, не имеющих прямого отношения к пользователям и авторам. В связи с этим, чтобы исправить данную проблему мне пришлось исправлять много кода по всей журнальной системе. В конце концов удалось сделать эти поля мультиязычными и сохранить полную работоспособность самой платформы.
Также по просьбам пользователей форума OJS я сделал мультиязычным поле библиографии, чтобы также была возможность выводить библиографию на русскоми английском языках.
Изменения были включены в нестабильную ветку проекта OJS, но пока не вышла стабильная ветка Вы можете воспользоваться моими репозиториями на Github.
Наработки сохранены в нескольких репозитариях (так принято в OJS):
ojs - репозиторий журнальной платформы
pkp-lib - репозиторий основной бибилиотеки журнальной платформы
citationStyleLanguage - репозитарий модуля библиографических ссылок
Для версии 3.1.1 я создал отдельные ветки:
https://github.com/litvinovg/ojs/tree/ojs-3.1.1-multilanguage
https://github.com/litvinovg/pkp-lib/tree/ojs-3.1.1-multilanguage
https://github.com/litvinovg/citationStyleLanguage/tree/ojs-3.1.1-multilanguage
Также в корне репозитория ojs я положил файл multilingual-3.1.0_to_3.1.1.sql для обновления базы с 3.1.0 до 3.1.1 (Используйте на свой страх и риск)
Векти для версии 3.1.0:
Ветка citations - с мультиязычным полем библиография (и ФИО).
https://github.com/litvinovg/pkp-lib/tree/citations
https://github.com/litvinovg/ojs/tree/citations
https://github.com/litvinovg/citationStyleLanguage/tree/authors_multilanguage
Изменения в базе данных:
alter table users MODIFY first_name varchar(255) DEFAULT NULL;
alter table users MODIFY middle_name varchar(255) DEFAULT NULL;
alter table users MODIFY last_name varchar(255) DEFAULT NULL;
alter table authors MODIFY first_name varchar(255) DEFAULT NULL;
alter table authors MODIFY middle_name varchar(255) DEFAULT NULL;
alter table authors MODIFY last_name varchar(255) DEFAULT NULL;