Can I set WordPress to display languages based on system language without a plugin?

PHP can read the ‘HTTP_ACCEPT_LANGUAGE’ header from the browser request, but this might not be easy to parse if there is more than one accepted language set. For the simplest case, when one language is set as accepted, you need to read only first 2 characters from this header:

$language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

But, most WordPress language strings are more complex than that (there are few variations of English, and some languages have many variations too), so you would need to convert 2 letter language code into WordPress language code.

Also, HTTP_ACCEPT_LANGUAGE might not be included at all in the request, it depends on the browser.