Many websites do not have the language or locale set in the URL string. They instead pull this out of the "Accept-Language" HTTP header. Is it possible with CDN's like CloudFlare and CloudFront to cache different versions of the page based on this header, or if not - what is the recommended best practice for this?
I don't know if any particular CDN supports it, but you should be able to do it by setting
Vary: Accept-Language
in your responses.