diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py
index a7a389359ede4f2d8db28311a6a34cadccbbba5a..d9fac20d1cdbf7cd963acd8838e562681465a112 100644
--- a/common/djangoapps/student/views.py
+++ b/common/djangoapps/student/views.py
@@ -510,12 +510,18 @@ def dashboard(request):
         language_options.sort()
 
     # try to get the prefered language for the user
-    cur_lang_code = UserPreference.get_preference(request.user, LANGUAGE_KEY)
-    if cur_lang_code:
+    cur_pref_lang_code = UserPreference.get_preference(request.user, LANGUAGE_KEY)
+    # try and get the current language of the user
+    cur_lang_code = get_language()
+    if cur_pref_lang_code and cur_pref_lang_code in settings.LANGUAGE_DICT:
         # if the user has a preference, get the name from the code
+        current_language = settings.LANGUAGE_DICT[cur_pref_lang_code]
+    elif cur_lang_code in settings.LANGUAGE_DICT:
+        # if the user's browser is showing a particular language,
+        # use that as the current language
         current_language = settings.LANGUAGE_DICT[cur_lang_code]
     else:
-        # if the user doesn't have a preference, use the default language
+        # otherwise, use the default language
         current_language = settings.LANGUAGE_DICT[settings.LANGUAGE_CODE]
 
     context = {