Version 12 (modified by 14 years ago) ( diff ) | ,
---|
How to translate GeoNetwork
This page describes steps necessary to include support of language other than pre-installed into existing instance of GeoNetwork and it's configuration components.
Translation of the user interface
Follow next steps to create new language.
- Create new record in
Languages
table in GeoNetwork's database with new language's two-letter code. - In tables which name ends with
Des
copy all entries markeden
(or any other existing language) to entries with new language code. After that it's possible to edit these fields using Web-interface. - Copy folders (all paths listed from GeoNetwork's root folder) to folders
with new language code. (Any existing language could be treated as base for
translation, not only English.) Then change copied values with translated
strings, of course.
- User interface
web/geonetwork/loc/en
,- (before 2.6.x)
web/intermap/loc/en
.
- Metadata standards
web/geonetwork/xml/schemas/csw-record/loc/en
,web/geonetwork/xml/schemas/dublin-core/loc/en
,web/geonetwork/xml/schemas/fgdc-std/loc/en
,web/geonetwork/xml/schemas/iso19115/loc/en
,web/geonetwork/xml/schemas/iso19139/loc/en
.
- Profile specific folders of sandboxes like Bluenet, GéoSource or geocat.ch.
- User interface
- In all files
web/geonetwork/loc/
<language code>/strings.xml
add tags with new language's code and it's name. These string used by GeoNetwork to list languages in interface switcher and indicate current a current one. For example, while adding Russian language identified byru
, it's necessary to include into those files<ru>Русский</ru>
line. Hereru
is the code for Russian andРусский
is the Russian name on Russian. - Add new language's link in interface switcher banner at the main page.
- Before 2.5.x
Open
web/geonetwork/xsl/banner.xsl
for editing and find code:<xsl:choose> <xsl:when test="/root/gui/language='en'"> <font class="banner-active"><xsl:value-of select="/root/gui/strings/en"/></font> </xsl:when> <xsl:otherwise> <a class="banner" href="{/root/gui/service}/en/main.home"><xsl:value-of select="/root/gui/strings/en"/></a> </xsl:otherwise> </xsl:choose>
Duplicate this fragment (separating new from old using '|
') and changeen
to the code of new language. - After 2.5.x : add the language code to the language list in WEB-INF/config-gui.xml
- Before 2.5.x
Open
Translation of metadata schema labels
Main principles
A schema element could be defined using the following structure:
<element name="elementNameWithNamespace" context=""> <label>TheLabel</label> <description>TheDefinition</description> <condition/> <help/> </element>
Required:
- name attribute
- label
Optional:
- context attribute (mainly/only used for ISO and ISO profil)
- description
- condition
- help
TODO : Condition should probably be replaced only by schematron warning.
ISO 19139 and ISO profil mechanism
Title of element and tooltip are created using labels.xml localisation file. For ISO 19139 record, only the web/geonetwork/xml/schemas/iso19139/loc/ directory is used using the GUI language. For ISO profil help is first searched in:
- with context (ie. context is the class where the element is defined) in web/geonetwork/xml/schemas/iso19139.abc/loc/
- with no context in web/geonetwork/xml/schemas/iso19139.abc/loc/
- if not found search the iso19139 main help with context and if not without in web/geonetwork/xml/schemas/iso19139/loc/
Context mechanism
In the ISO, an element could be used in different places (eg. gmd:language is used in gmd:MD_Metadata and gmd:MD_DataIdentification). To make the label of this element depending on its context (ie. its parent), use the context attribute in the element.
<element name="gmd:language" context="gmd:MD_Metadata" id="3.0"> <label>Metadata language</label> <description>Language used for documenting metadata</description> <condition>conditional</condition> </element> <element name="gmd:language" context="gmd:MD_DataIdentification" id="39.0"> <label>Language</label> <description>Language(s) used within the dataset</description> <help>language(s) used within the dataset</help> <_condition>Mandatory</_condition> </element> <element name="gmd:language" context="gmd:MD_FeatureCatalogueDescription" id="235.0"> <label>Language</label> <description>Language(s) used within the catalogue</description> </element>
Propose translation for integration
You can choose one of these two ways:
- Create a patch if your are familiar with SVN.
- Create a ZIP archive with all needed files:
- all
loc
directories with translated strings, - localized database content (use http://druid.sourceforge.net/ Druid
to export tables which names ends with
Des
as DDF files, or provide SQL files).
- all
Once done, send the translation to the devel
mailing list and/or create a
ticket on trac
with files attached.
Translate GAST
Files to localize:
gast/data/gui_de.properties
src/org/fao/gast/localization/message_de.properties
Translate the installer
The only file to localize is
packsLang.xml_deu
Translate the documentation
Documentation is located in
docs/docbook/gn_manual_deu