FUJIFILM SonoSite is the leading global provider of portable ultrasound equipment. Local regulatory restrictions prohibit SonoSite from publishing product-related information in a country before a product has been approved for sale in that country. Because products typically are cleared in Europe before the US, the translated versions of product pages need to be published, while keeping the US-English source pages unpublished. The SonoSite web site also uses a large number of views that must also follow these restrictions.
The problem we faced is intrinsic to the Drupal entity translation model -- when you unpublish the source, all of the child translations are also unpublished. Views that leverage this content also break -- badly.
The solution we devised was to to create a hidden copy of the English-language source (using a different language code), publish all content, and make US-English a "translation" of the source. As a translation, US-English pages could easily be published and unpublished, and views that leveraged that content would behave appropriately. Only logged-in administrators would see the "hidden copy" (which we called The Ghost); website visitors would never know it existed.
Turning our existing Drupal 7 site into a Ghost-enabled site presented us with a series of interesting challenges, leading us to bend (and sometimes break) Drupal in many new and different ways.
During the case study, we'll explore most of these, which include:
Choosing a language for the Ghost -- Why Antarctica?
The source language is no longer the default language -- how we convinced Drupal to make it so.
How we programmatically cloned the English-US content into the Ghost
How to create and publish new content (you need to start with the Ghost and "translate" to other languages -- including US-English)
Getting the Ghost to play well with Lingotek
The Ghost Language project took nearly two years, and enlisted the advice and assistance of a number of players, including Lingotek, Hook42, Smartling, OneClick, and many others.