MultiLang Fields Bazaar Package
The MultiLang plugins introduces multiple language support in EPrints fields. The specific plugin replaces the title and abstract fields' types with their multilingual versions that calculate their values based on two newly added multilingual fields (ml_title and ml_abstract respectively). The wiki-page that explains how one can replace basic EPrints fields with multilang-fields -which basically explains how this plugin was created- is Adding multilang fields.
Contents
Installation Prerequisites
None.
Installation
Install through the EPrints Bazaar.
How to use the plugin
Once the plugin has been installed, the user needs to edit the workflow to contain the multilingual fields' versions instead of the default ones. This procedure is explained in MultiLang Fields Bazaar Package#How_the_plugin_works section.
Editing the workflow
In order for the plugin to be usable, the default field versions need to be commented out and the new multilingual ones need to be added. So, ~eprints/archives/reponame/cfg/workflows/eprint/default.xml has to be edited as follows:
<!--
<component><field ref="title" required="yes" input_lookup_url="{$config{rel_cgipath}}/users/lookup/title_duplicates" input_lookup_params="id={eprintid}&dataset=eprint&field=title" /></component>
<component><field ref="abstract"/></component>
-->
<component><field ref="ml_title" required="yes" input_lookup_url="{$config{rel_cgipath}}/users/lookup/ml_title_duplicates" input_lookup_params="id={eprintid}&dataset=eprint&field=ml_title"/></component>
<component><field ref="ml_abstract"/></component>
As can be seen, the default lookup script is replaced by the plugin's lookup script (ml_title_duplicates) which supports the new ml_fields. Once the workflow has changed, the repository needs to be reloaded for the changes to take effect:
./epadmin reload reponame
How the plugin works
Basically, what the plugin does is that it replaces EPrints default title and abstract fields with two new fields that support multiple languages. The procedure that we followed in order to achieve this functionality was the following:
- We introduced a new field's type, virtualwithvalue, that would allow our fields to override EPrints fields' default behaviour.
- We introduced our new fields' names, types and functionality to EPrints via a configuration file located in ~eprints/archives/<reponame>/cfg/cfg.d/
- We added the appropriate phrases in each language's phrase file.
- We added a custom lookup cgi script that uses the new ml_title field for the autocompletion feature.
- We changed EPrints basic and advanced search scripts to search our new multilingual fields instead of the original ones.
A screenshot showing how the two fields look when inserting a new document follows: