The original bug report was that the user had to reselect their language after login.
Instead of getting/saving the language preference to a cookie (#282), Piwik gets/saved the preference in the piwik_user_language table.
The language preference is loaded in this order:
If an anonymous user selects a language, this is updated in the session, but not the db (i.e., no current user).
When the user logs out, the session data is destroyed.
(In ) fixes #1071 -- get/save language regression introduced by #939
(In ) refs #1071 - avoid unnecessary redirect