MultiLang Fields Bazaar Package

From EPrints Documentation
Jump to: navigation, search

The MultiLang plugins introduces multiple language support in EPrints fields. The specific plugin replaces the title and abstract fields with their multilingual version (ml_title and ml_abstract respectively). The wiki-page that explains how one can add custom multilang-fields in EPrints -which basically explains how this plugin was created- is Adding multilang fields.

Installation Prerequisites



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}&amp;dataset=eprint&amp;field=title" /></component>
    <component><field ref="abstract"/></component>

    <component><field ref="ml_title" required="yes" input_lookup_url="{$config{rel_cgipath}}/users/lookup/<component><field ref="abstract"/></component> -->" input_lookup_params="id={eprintid}&amp;dataset=eprint&amp;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 fileld'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 updated EPrints' database to include the new fields. This was achieved by running:
 ./bin/padmin update reponame

as user eprints from within his working directory.

  • We added the appropriate phrases in each language's phrase file.