Request.UserLanguages [0] может быть только подсказкой, на каком языке пользователи хотят видеть. Большинство пользователей не знают, где изменить язык браузера.
Еще один момент: не уверен, что Request.UserLanguages [0] является допустимым языком. Это может быть даже ноль. (Не уверен, что боты там есть)
У вас обычно есть выбор языка на странице. Как только пользователь выбрал там язык, он сохраняется в файле cookie, сеансе или URL-адресе. Мне нравится использовать URL, потому что я думаю, что это выглядит красиво.
Если пользователь видит вашу страницу, не указав язык на вашей странице, вам следует проверить, является ли Request.UserLanguages [0] языком, который вы поддерживаете, и установить Thread.CurrentThread.CurrentUICulture.
Я использую фильтр для установки Thread.CurrentThread.CurrentUICulture. Это нормально, если никакой другой фильтр не использует Thread.CurrentThread.CurrentUICulture. В противном случае вам нужно будет установить правильный порядок выполнения для фильтров.
Я также использую помощник Matts, и до сих пор он работал очень хорошо.