Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Stop the VIVO application
  2. Update the runtime.properties file to:
    1. Enable language filtering


      Code Block
      RDFService.languageFilter = true


    2. Enabled desired languages

      ..such as the following if you wanted: English, Spanish, German, French and Portuguese

      Code Block
      languages.selectableLocales = en_US, es, de_DE, fr_CA, pt_BR

      Private-use subtags are also supported, meaning in the list of selectableLocales might be used local/institutional extension of the language such as fr_CA_x_uqam or de_DE_x_tib. However, those language files are not in the VIVO/Vitro codebase, meaning it is not possible just to enable those languages without copying of the directory with translations in those languages in the [VIVO_HOME] directory.

VIVO i18n Design

One of the goals of the most recent design of VIVO's internationalization (i18n) implementation is to simplify the process for activating a multi-lingual VIVO site. Starting with the 1.12.0 release of VIVO, all supported languages are built into the application. On start-up, VIVO loads the property UI labels ttl files, and annotation and other labels RDF , and Freemarker templates for the languages enabled in the runtime.properties file; see Quick Start above. Ideally, only a single set of Freemarker template files would needed, the content of which being populated by i18n properties. A few template files, such as "terms of use", "email templates" and "search help", include large blocks of formatted text that are currently better suited to exist in their own language-specific Freemarker templates.

When internationalization is enabled, additional logic is executed that filters content triples and selects fallback content in the case that there are no triples available for the preferred language/locale.

...

  • Return label triples with language tag that matches the language ('fr') and locale ('CA'), if not found
  • Return label triples with language tag that matches just the language ('fr'), if not found
  • Return label triples with language tag that matches the language, but with a different locale (e.g. 'fr_FR'), if not found
  • Return label triples with any or no language tag

...