Since WordPress 4.7 users can select a language to use, but that apllies only to registered users (and, without any modifications, to the admin area). To annonymous users you’ll have to use some other solution.
Some options are:
– Use the locale filter (but It will just help you with strings generated by code. It won’t help with post contents, for example);
– Use a plugin like Polylang or WPML.