Actually, why do we even need userLanguage anymore? Isn't the suggestion language always going to be 

langAlias[keyboardName] || keyboardName?

If so, we can remove all the settings code that monitors userLanguage, I think.

But note that we may need a special case for the en-Dvorak layout if we remove the user language thing.