SilverStripe 2.3.2 beta 1: Multi-language support is back, and even better than before

Posted by Sigurd on 6 May 2009

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.

Demo of translatable


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:

User interface / CMS improvements

  1. Translated pages can be nested in the CMS tree.
  2. You can bookmark a URL that will load the CMS with a specific page in a specific language.
  3. The concept of a master language has been deprecated. You can now have 100 pages in English and German, then add a page that is only in German, and afterwards add a different page that is only in English. This helps reflect what is needed in the real world. Previously, you had to nominate a master language, and every page on the site had to exist in that language.

Sapphire framework improvements

  1. Added support for locales. Previously you could have a website with pages in German and English. But SilverStripe couldn't support UK English, US English, Austrian German, and German German all on the same site. Locales allow for a language to have country-specific variations, and respect that many countries have multiple languages. Technically, this means labelling each translation in the format "de_AT" rather than just "de".
  2. A new database schema reduces join operations on database tables. This improves performance. Rather than adding columns to tables to support fields in each language, it instead adds new rows and uses a column to represent the language. There is an important side effect to note, however. The old system provided the ability to make individual arbitrary fields translatable (e.g., translate "Page Title" but leave "Content" only in English.). Now you can only choose a whole object as translatable (e.g. Page Title, Content, URL, and everything else will have a field in each language.)
  3. Extensive unit testing coverage added.
  4. When you have a single-languge site, there used to be some mulitple-language support loaded anyway. This has been fixed, meaning single-language websites will load faster and use less memory.
  5. Easy language switching with unique URLs and specialised template controls.

We'd like to acknowledge Michael Gall in the community for contributing a lot of time, code, and testing to Translatable!

CMS user interface translations unaffected

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!)

Upgrading multiple-language websites

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.

Other new CMS features

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!

Post your comment

Note: Comments are moderated and won't show until they are approved

Comments

  • The multi-language support would be really helpful. It would help us to get more customers all over the globe.

    Posted by Health Information Resource, 5 years ago

  • Guys, please give us a tutorial about how to implement a multilingual SivlerStripe site. Thanks !

    Posted by Bohonyi Balazs - ZSolt, 5 years ago

  • hi,
    i just wanna try it on google

    so that i can implement it for my own website.

    Posted by rajesh, 5 years ago

  • Gisli, multiple approaches to URLs are discussed and possible. Would enjoy your feedback and what you would like to see.
    <br >
    <br >Read and discuss at
    <br >
    <br >http://groups.google.com/group/silverstripe-dev/browse_thread/thread/17908f7318decfac#
    <br >
    <br >and
    <br >
    <br >http://open.silverstripe.com/ticket/3877
    <br >
    <br >

    Posted by Sigurd Magnusson, 5 years ago

  • We just started working on a multi language site in silverstripe. The new feature sounded great in the beginning but not perfekt. The problem that we have is when you have a page that has the same name in all languages. Then you are forced to change the url to something like. en-produkt1 or similar. I would prefer en/produkt or even en.domain.xx/produkt.

    Silverstripe is promising but not just there yet.

    Posted by Gisli Gudnason, 5 years ago

  • Hey,

    I don't know how to enable the feature too. Can anyone please post a link to a tutorial or forum threat? Thx a lot!!!

    Jan

    Posted by Jan Ditze, 5 years ago

  • Here it comes, the killer feature I was waiting for!

    My highlights are that
    - you can have a page in one language without having to have it in the other one, that gives flexibility and speed, because it takes time for a good translation, and you can't always wait.
    - translated URLs, so much better than "?lang=en"!

    Thanks to the dev team for daring to take the time to not fix but to improve multi-language support.

    Keep it coming!
    Kalileo

    Posted by UniversalX Webdesign, 5 years ago

  • I'm installing it on my local server, but i thought this features were integrated directly on the cms, but i don't find them!
    Is there a tutorial or something i can refer to to test the multilanguage settings on the new release? I've found a plenty of documents with different approachs, and i don't know wich one to use!

    Regards

    Eduardo

    Posted by Eduardo Cesario, 5 years ago

  • Wow!
    This was one of the greatest "missing features" of the CMS! i'm working on my personal website right now, so i hope i'll test this new release on my new site :)
    Regards!

    Eduardo

    Posted by Eduardo Cesario, 5 years ago

  • Really good news! I hope the official release coming soon. So I can implement Silverstripe in a professional environement!

    Posted by PGiessler, 5 years ago

RSS feed for comments on this page | RSS feed for all comments

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.