We've issued a beta release of SilverStripe today that restores support for multiple-language websites.
We want people to test this update, and in particular, confirm that our migration script works reliably. Please help by reporting bugs so that we can confidently ready this release for production use.
SilverStripe has supported multiple-language websites since 2007. The feature which provides this is called Translatable in the codebase, and it lets you create a page with variations in different languages. Translatable is intended for websites whose content exists in a number of languages, while the structure of the site is similar or even identical for all of those languages.
Unfortunately, when we released SilverStripe v2.3.0 in March, multiple language support was broken. The release contained a number of major architectural improvements to our software in general. However, these changes meant our multiple-language feature needed to be re-architected to continue functioning. We saw an opportunity to improve how this feature worked, which required time. So, instead of just fixing Translatable, we've made it much more powerful and easy to work with:
We'd like to acknowledge Michael Gall in the community for contributing a lot of time, code, and testing to Translatable!
Note that the ability for the CMS admin interface to appear in a different language is quite separate. This feature has continued to work properly in all releases since 2.2.0. (We are, by the way, always interested in more people contributing to translations!)
We've automated the complex work of converting your site to the new schema. Please note that this script does not migrate previous versions of a page. Only the current draft and published state of a page is moved—see upgrade instructions. As noted above, this is a beta release. This means you shouldn't try it on a production site without thorough testing. Report bugs, or if it works well, leave a comment below.
We have a changelog of many other small improvements and fixes in this release. One example is allowing you to delete a page from both the draft and published sites, and be able to restore it again later. Very useful!