Multilanguage support in Silverstripe
Operating interational websites and portals naturally requires multilanguage support and localization. Especially more prominent frameworks provide i18n support right out of the box. One of these is Silverstripe which recently has been released in version 3. This brief article describes the steps required to activate multilanguage support in Silverstripe.
First of all, you need to install the Translatable module, that builds on top of Silverstripe’s i18n core. Install this module as usual by placing the downloaded archive into the root folder of your project.
Before running a dev/build be sure to set default_locale to an existing locale, i.e. do not change the default locale in _config.php to a locale that does not yet exists (doing so has caused problems in a recent project).
Afterwards, as usual when altering core code in SilverStripe run a /dev/build?flush=all.
Now you should be able to add translations to existing pages by simply selecting the desired language from the dropdown menu.
Important: Always make sure to create translations in the context of an existing page, i.e. do not create a translation page manually. See the official module documentation on this matter.
Optionally, you can limit the translation languages available to content authors via _config.php.