Just a quick update.
Something to be aware of. When using Translatable, it automatically inserts alternate meta tags (when your meta tags are generated automatically), to point to any additional live translations of a specific page. However, it doesn't include the domain portion. Therefore whatever follows the link will be taken back to the current version of the page and not the alternative one.
This is because the current domain is obviously assumed, and with the SingleLocalDomain in place, it is detected that the alternate page should not be displayed for the current domain so back to the original page.
Just as a work around, I have overridden the MetaTags function for my base page object, filter out the <link rel="alternate" ... /> tags and inserted my own. The code used to generate them is essentially the same as the code used by Translatable, however, I grab the list of available domains from TranslatableDomain and use that to help construct the links.
public function MetaTags($includeTitle = true){
//remove the alternate meta and insert our own version
$meta = preg_replace('/<link\srel="alternate".*\s\/>/i', '', parent::MetaTags($includeTitle));
$meta .= $this->alternateMeta();
return $meta;
}
The alternateMeta function just ensures the domain portions are added.
I know you could reduce that to one line, but sometimes having an intermediate var helps the debugging process and makes it a little more legible.
Cheers,
Jason.