Если вы посмотрите на заголовки запроса, отправленные браузером, он включает «Accept-Language». Это может выглядеть примерно так:
en-US,en;q=0.9,es-419;q=0.8,es;q=0.7
Как правило, предпочтение выполняется в порядке убывания, поэтому здесь браузер говорит, что предпочитает английский в США, а не все остальное. Подробнее о значениях q: Что такое q = 0,5 в Принять * Заголовки HTTP?
Вы можете получить доступ к этому значению через контроллер.
Request.Headers["Accept-Language"]