How to split content for different target audience? We're having a bit of a difficulty finding the best way to solve the current issue: it's a multi-site and multi-lingual set-up for a customer that is active in different countries. For each country a separate database is uses (multi-site) and each country has an English + local language variation (multi-lingual).

The customer also has a split audience (private vs. business) and all pages have a one-to-one match, meaning if you are on a /en/private/foo page, you could go to /en/business/foo just by switching the target audience (same way the language switcher works). 

The problem is you'll have two switcher blocks on the page that have to be in sync: 


language (english/local language) 
audience (private/business)


How would you split the content and keep the relation between the different nodes for different audience groups? This also has impact on other Drupal components, the menu for example.

We've been looking at two different approaches:


separation on content level (taxonomy or field to select the audience
group) 
grouping the content (e.g. og module, or the new kid on the block group)


Any people out there that had the same issue and how did you solve it?
@max I am assuming that since there is a 1-1 relation between 'private' and 'business' content, you are probably just hiding (restricting) content in on of the two.  So if for example, your 'private' content is only available to authenticated users, or user who paid for the content, then essentially the other (business) content is a reduced version (teaser)?

If that is the case, then maybe you can consider using different display modes for the same node - in other words, you only have one node for both business and private, but with different view modes.  The one with restricted access (lets assume that is business) will show nodes using the 'teaser' view, while the other will render the node using the 'full' display mode.

It should be easy enough to change the display mode dynamically on load / render based on the user's status (logged in, paid for content, etc).

The other option, and you could even combine this, is to use content access modules, specifically field level access, to automatically control which fields will be rendered or not.  So in this configuration, you could always render the node using the same (possibly different) display modes, but based on the authentication level of the user, simply do not show the field: I can confirm that I have personally used this and it does work (http://www.startnetwork.org).

All things being equal, I would personally only have one node (as opposed to 2 implicitly related nodes) and then simply control what information (or how much) is shown.

If you have any questions - please let me know: happy to help.