Directus is a platform created and used by developers all over the world. Therefore it's quite important to make it accessible in as many languages as possible. Below we outline the breadth of multilingual support within Directus.
The ability to author and manage content in many languages is paramount. Directus uses a
translations interface to allow for manaing content in as many languages as needed. Instead of simply creating new fields for each language, this interface stores translations relationally so your forms are not muddled with duplicate fields for each language. This also means that language-agnostic data such as dates or toggles can remain on the parent item.
Our interface system is modular and extensible you can easily create custom interfaces with the
translation field type.
Managing multilingual content usually means having multilingual staff, so it's important that they can find their way around the Directus Application too. The app uses translation files for all text in the core codebase. Additionally, we've built our extension system in the same way so that they each interface, page, and layout has self-contained translation files.
One of the key concpets of Directus is database mirroring. Since your database schema (and therefore the Directus schema) are dynamic, we can't include those in our translation files. Instead, we've created a JSON translation options at the Collection and Field level. This allows admins to translate their database architecture for App users.
Once you have your multilingual content in the database, you can then fetch it using the API's
For consistency, the API does not use schema translations. All data is returned with the database collection/field names as keys.