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' 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.

Installation Prerequisites

None.

Installation

Install through the EPrints Bazaar.

Warning to already populated repositories

Once this plugin is installed, existing titles and abstracts will not be copied into their multilingual counterparts and access to them via the API will be lost!

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/ml_title_duplicates" 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

Regenerating static files and abstracts

If our repository already contained records, we need to recreate static content such as static pages and abstracts. Hence, as eprints user we should run:

$ ./bin/generate_abstracts reponame
$ ./bin/generate_static reponame

within eprints user's home directory.


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 added multilingual versions of the fields that are replaced (namely ml_title and ml_abstract) to store multilingual content.
  • 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: Ruomo multilang.jpg