How to show, in a view, content depending on user language or default? In one of my Views, showing a preview of some nodes, how can I set the nodes to be shown to be the ones in the user language or, if the user has no language set or is anonymous or the language is not set for the node, the ones in the site default languages?

I can do the two thing with 'filter criteria' separately but not together...
Use the Internationalizations Views module, which extends the i18n module with multilingual support for views.

Also, to make view 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).

Notes:


The above may turn out to NOT be the complete answer. You may use the Entity Translation module and, in that case, there is not this option if you use it in 'entity' mode: if only some fields of the node are translatable the option is there but a bit more difficult to find. If you have the 'Body' of your nodes set to translatable entity then the option is "Body language" to be set to Current User Language.
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?