Make sure to use the Internationalizations Views module, which extends the i18n module with multilingual support for Views.
To make Views results correspond to the language switcher, add a filter for Content Translation: User's Current Language, which is the language that an authenticated user has set in the user settings (it is NOT the same as the current browser language or the site language).
If no option for the User's Current Language is available in the filter criteria form, then verify your configuration at Configuration -> Languages -> detection and selection: The order should be URL, Default, User and not something like Default, URL, User (as mentioned also in https://www.drupal.org/node/1701854#comment-6279474).
If you're using Block visibility settings and indicated to only show that block on page <front>
, then be aware that you may have to address yet another translation issue, as illustrated in my answer to the question How to make content translation available for front page?. It is about using the Variable module to correctly translate the Default frontpage value. Without that, Drupal will only show that block on the frontpage of your default value.
Notes:
True, the Internationalizations Views module only has a DEV version for D7, but right now there are over 31K users using this version. Therefor I think "DEV" is not a valid release qualifier for that version anymore, because +31K users can't be wrong, right?
Filtering Views results in a multi language site can sometimes be challenging, as illustrated also in discussions such as in https://groups.drupal.org/node/47478 .