Multi Language i18n & Localization in OpenDXP
Localization is a very important aspect in every content management. In OpenDXP localization can be centrally configured and has influence on multiple aspects within the system.
Bottom line is that using OpenDXP in a multi language mode is pretty easy for users and developers. OpenDXP takes care of all technical aspects and by doing so follows the Symfony patterns.
OpenDXP has different sets of languages/locales and translations for the back end (CMS) and front end (website). This allows you to have the user interface of OpenDXP in different languages than the website. You need to be aware of this when requesting the current and available locales, as they are different depending on the context. If a user is saving an object in OpenDXP which is set to English, the current locale is different then when a visitor on your French website triggers a save action.
Content Localization
Language Configuration
The available languages for content are configured centrally in system settings (Settings > System Settings > Localization & Internationalization (i18n/l10n)).

Following settings can be defined here:
- Available languages
- System wide default language
- Fallback language for each language: if defined, OpenDXP returns values from fallback language if primary language has no values set.
- Define if content for that language should be mandatory in localized fields of data objects. Details see here
Note: Removing language from the Localization & Internationalization (i18n/l10n) list will not delete its respective data. Please use console command
opendxp:locale:delete-unused-tablesfor cleanup.
Localized Content Areas
The activated languages have influence to following modules of content within OpenDXP:
- Document - Localization (system property for language)
- Shared Translations (Symfony Translations Component)
- Localized Fields for Objects (object localization)
- Structured Data Fields - Classification Store
OpenDXP Backend UI Localization
OpenDXP backend UI localization is independent of content localization but works similar to Shared Translations. Basically every text in OpenDXP backend is translatable, but there are two different sources for translations - OpenDXP system translations and project specific translations.
OpenDXP System Translations
This covers all labels and texts within OpenDXP that ship with OpenDXP installation package. Here the standard language English is maintained by the core team. In addition to that, everybody can join the OpenDXP translation project to add system translations in additional languages. With every OpenDXP release, newly added translations are added to the OpenDXP installation package.
System translations can be overwritten by Admin Translations.