It's an all in one plugin doing language switch and content filtering.
Any part of the page output can be tagged with language tags: module title, menu item, category title, article content etc.
Therefore, there is no need to create one instance of article, module etc for each language.
The tags can be placed in any part of a Joomla element which will be in the page output.
For example, to translate the title of an article, you would add language tags in the article title. Provided the Show Title parameter is set to Yes and therefore this value will be in the page output, the plugin will discards the unwanted translations and selects the right one.
For an article content, you would add the tags where needed, for example in each paragraph.
Elements which don't include tagged content are displayed without change.
See the plugin description for tags format.
The language code needs to be known by Joomla, i.e. a language installed for the site in Language Manager.
The language files are loaded when the language is switched, so that the default front-end translation also happens.
The language switch is made once, i.e. the language code doesn't need to be used in each page URL (it is in the session). This means that for example, a module with static links for each language can be created, and the user can click once on the link to continue browsing in his language.
More information and demo on the extension's page.