As we are unable to change the ACCEPT_LANGUAGE header for a public page, findLanguage always returns 'en'. To use this, do \OC::$server->getSession()->set('selected_language', $lang);
$_SERVER in IRequest is immutable but we want to switch the header to deliver translation files correctly