Multi-language support in ExpressionEngine has a long and inglorious history.
For as long as I’ve been involved with the community (a good 5 or 6 years), there have been endless forum threads discussing the painful minutiae of implementing a multi-lingual site in ExpressionEngine, and questioning why life has to be this hard.
All of which is a fine testament to the inventiveness of our community, but far from ideal.
In truth, I’m a poor guide to the fetid backwaters of building a multi-language site with ExpressionEngine. The few such sites I’ve built are very basic, and have thus avoided many of the more painful experiences documented in the forums.
That said, I do have a vested interest in the problem.
To me, people
Every time I build an add-on which could be used on a multi-language site, the lack of a standardised solution causes problems.
Just as the person building the site has the chore of picking through the available solutions, weighing up their numerous pros and cons, I have to decide which of the manifold alternatives my add-on should support.
An impossible choice
For publicly-released add-ons, this is close to impossible.
- The site could identify the current language using: domains; sub-domains; sub-folders; language segments in the URL.
- The per-language content could be organised using: separate Channels; the same Channel, with Channel Fields prefixed by the language code (
de-title); a third-party solution such as Transcribe.
- The site could rely on any number of third-party “language” add-ons.
Crumbly is an excellent example of this quandary.
Multi-language support was originally near the top of Crumbly’s to-do list. After many frustrating hours of research I decided the best solution was to release version 1, talk to Crumbly’s users about how they would like multi-language support to work, and take it from there.
Every single Crumbly user I’ve spoken to over the past 8 months has a different solution to the multi-language problem. As a result, Crumbly still doesn’t support multi-language sites.
What needs to happen
Multi-language sites are complicated; the sheer number of add-ons, hacks, and workarounds are testament to that fact. As such, I fully understand that there may be no such thing as a universal solution.
Nevertheless, some consensus regarding the preferred approach would be nice. An “official” EllisLab-endorsed approach would be better.
Such a standardised solution would make life much easier for all the poor souls tasked with building a multi-language site, particularly for the first time. Far more importantly, it would also make my life considerably easier.