Skip to content

Multilingual projects

NaturaList supports fully multilingual data and interface. Any language and any script are supported, including folk and indigenous taxonomies that do not follow Linnaean conventions. This page describes the complete workflow for adding language support to a project.

Single-language projects

If your data only contain a single language (regardless to the actual language) and you are happy with the English UI in the app, you can skip this table altogether. If your project is e.g. in French and you want NaturaList to show the app UI in that language, enter a single row with code fr, and the name of language as French. See Supported languages reference for available UI localizations.

Step 1: declare your languages

In the Supported languages table, add one row per language:

CodeName of languageFallback language
enEnglish
csČeskyen

The first row is the default language. Users will see a language switcher in the Side menu when more than one language is defined.

Step 2: add language-suffixed columns to the data sheet

For any column that differs by language, duplicate it with a :langcode suffix:

description:endescription:cs
Large green tree frog.Velká zelená stromová žába.

Columns without a suffix are shared and used for all languages - you only need to add translated variants for columns where the content actually differs.

Step 3: add language-suffixed columns in config

All multilingual columns in the config sheets (nl_content, nl_appearance) can also have :langcode variants, for example in Title column of the Custom data definition table:

Title:enTitle:fr
Red ListListe rouge

Step 4: add language-suffixed values in Customization settings

In the Customization table, add Value:en and Value:fr columns:

ItemValue:enValue:fr
Checklist nameBirds of VanuatuOiseaux du Vanuatu
Date formatMMM D, YYYYDD/MM/YYYY
Color theme hue21295

You can assign a different Color theme hue to different language versions of the same project to distinguish them.

Language fallback chain

When the app resolves a value for a column:

  1. Try the column with the active language suffix (e.g. description:fr).
  2. If not found, try the default language's suffixed column (e.g. description:en).
  3. If still not found, try the plain column (e.g. description).

This means you only need to provide translations for columns where the content actually differs - everything else falls back to the default language automatically.

Language url parameter

The active language is reflected in the URL via the ?l= query parameter (e.g. ?l=fr). This means a specific language version of the project can be linked or bookmarked directly. The language preference is also stored in browser settings and restored on the next visit.

NaturaList documentation