So, five comments so far - has got me seven suggestions!
There is, as ever, a "correct" way to do this.
The accept-language header can contain a list of languages in order of preference. e.g.
fr,fr-fr;q=0.8,en-us;q=0.5,de;q=0.3
Which says "Show French, if not, American English, if not, German."
Of course, there are close to zero phones which support this and, I suspect, even fewer users who would have bothered setting their phone up for such an occasion!
Please keep the suggestions coming in.