diff --git a/plugins/UserSettings/Columns/Language.php b/plugins/UserSettings/Columns/Language.php
index f61154c7c42cddf66c751dbd7011f5d2b5e3894d..776505d7739b01380a6b90886a8cfba35c14bf65 100644
--- a/plugins/UserSettings/Columns/Language.php
+++ b/plugins/UserSettings/Columns/Language.php
@@ -8,6 +8,7 @@
  */
 namespace Piwik\Plugins\UserSettings\Columns;
 
+use Piwik\Common;
 use Piwik\Piwik;
 use Piwik\Plugin\Dimension\VisitDimension;
 use Piwik\Tracker\Action;
@@ -32,12 +33,23 @@ class Language extends VisitDimension
      */
     public function onNewVisit(Request $request, Visitor $visitor, $action)
     {
-        $language = $request->getBrowserLanguage();
+        return $this->getSingleLanguageFromAcceptedLanguages($request->getBrowserLanguage());
+    }
 
-        if (empty($language)) {
+    /**
+     * For better privacy we store only the main language code, instead of the whole browser language string.
+     * 
+     * @param $acceptLanguagesString
+     * @return string
+     */
+    protected function getSingleLanguageFromAcceptedLanguages($acceptLanguagesString)
+    {
+        if (empty($acceptLanguagesString)) {
             return '';
         }
 
-        return substr($language, 0, 20);
+        $allLanguageCodes = array_keys(Common::getLanguagesList());
+        $languageCode = Common::extractLanguageCodeFromBrowserLanguage($acceptLanguagesString, $allLanguageCodes);
+        return $languageCode;
     }
-}
\ No newline at end of file
+}