Bug #73353
closedUnable to set backend user language
0%
Description
When I tried to set the backend language for my (admin) backend user I noticed the labels were not translated. After a little debugging I found the following lines in the BackendUserAuthentication::backendSetUC() method:
// Setting default lang from be_user record. if (!isset($this->uc['lang'])) { $this->uc['lang'] = $this->user['lang']; $updated = TRUE; }
Whether the uc['lang'] is set to the default (empty) value or a specific language key, it is always set. Therefore the uc['lang'] will never be updated with the user['lang'] setting.
I also tested this on a 7.6.2 environment which seems to have the same piece of code, but it asks to relog the backend user after you change the language. So I figured I may need to relog on 6.2, but that didn't work either. Does 7.6 initialize the language somewhere else?
The solution to me seems to be to add an additional condition to the if statement. But I'll leave this to someone who may have some more insight in the language logic.
if (!isset($this->uc['lang']) || $this->uc['lang'] !== $this->user['lang']) {
Tested on TYPO3_6-2 branch with the latest changes.