I have spent the day hunting these forums and Google and have found some posts that mention a similar issue to my own but have not yet been able to locate one that provides a final solution. I am hoping someone can point me in the right direction.

I am planning a site that will have the following country-specific sites hosted within the same Drupal install –

  • US – English (example.com)
  • UK – English (example.co.uk)
  • Germany – German (example.de)
  • Italy – Italian (example.it)

The content for the US and UK sites will be nearly identical, with the exception of the content showcased on the homepage and on a deals/offers page, where the deals will be specific to the country. The plan is to use Content Translation to translate the site content because Entity Translation does not yet have the features we need from an SEO perspective.

I am looking for a solution where I can display the English language content on both the .co.uk and .com sites without having to duplicate this content in a translated node, while still being able to serve country-specific deals to the .co.uk site without showing US deals on the UK site and vice versa. It seems very inefficient to have to load English language content twice rather than be able to configure these nodes to show on both sites.

I understand that there are some key spelling and vocabulary differences between UK and US English, however for this use case we have decided it would be preferable to go with only one set of English content if possible. We will also want to be able to provide the appropriate hreflang tags per country for the .co.uk url vs. the .com url. The plan for this is to use the Hreflang module.

I initially thought I might achieve my desired outcome by making the English content neutral, but when we add the Germany and Italy sites to the mix, this goes out the window because we want to be able to display in-language content only for these sites.

Is there a reliable module that helps me to separate language settings from country settings (or some alternate workaround) in order to achieve the result I have outlined above?