What about things like local storage?
If you want to store language preferences then that means you only know client side and you can't serve html in their language
...example.com/en/ or example.com/es/
The url can store state just fine...