Adding the ability to set the locale through a query string could be done through a plugin. The code for setting the locale through the Accept Language header was initially in a plugin: https://github.com/scossar/variable-language
There is an issue with setting the locale for anonymous users for on sites that are using a CDN. It can cause the wrong locale files to be served to anonymous users. See: Swedish? meta just showed me the UI in Swedish. For this reason, I think the approach that you have brought up in this post - Set language for SSO users - #5 by jeanmonod - would be a better candidate for a PR.