При решении задачи по созданию сайтов научных журналов я познакомился с платформой 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;