While solving task to create platform for scientific journals I found Open Journal System. Last version on the day was 3.1. One of main OJS features for me was support for multilingual journals. Unfortunately OJS wasn't fully multilingual. Fields first name, last name and middle name could be set up only in one language.

During furter code analysis I figured out that those authors fields were shared with users. Major problem was that those fields were used not only in getters and setter but also by variety of SQL statements for sorting and quering different information for administration purposes. I had to fix a lot of code to maintain OJS work stable. After some time I succeded in it.

PKP Forum users asked me to make citations field also multilingual to publish citations in English and in Russian.

These changes were accepted into OJS unstable branch. Meanwhile there is no stable official repository you can use my branches on Github.

Repositories description:

ojs - main OJS repository

pkp-lib - OJS's main library repository

citationStyleLanguage - module for creating bibliographic links

Branch authors_multilanguage - fields first name, middle name and last name multilingual

Branch citations - based on authors_multilanguage. In addition to fields above contains modifications for citations multilingual field

Branches for 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

File multilingual-3.1.0_to_3.1.1.sql in root directory of ojs branch stands for updating database from version 3.1.0 to 3.1.1 (use on your risk)

My repositories:

https://github.com/litvinovg/pkp-lib/tree/citations

https://github.com/litvinovg/ojs/tree/citations

https://github.com/litvinovg/pkp-lib/tree/authors_multilanguage

https://github.com/litvinovg/ojs/tree/authors_multilanguage

https://github.com/litvinovg/citationStyleLanguage/tree/authors_multilanguage

Changes in database (SQL):

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;