I have a platform that returns its system language as a region/language code (e.g. "en" instead of "English"). It's similar to how Android is handled in LocalizationManager_SystemLanguage.cs, where the language code gets converted to a language name via "GoogleLanguages.GetLanguageName".
It's trivial enough to add the logic we need by modifying LocalizationManager.DetectDeviceLanguage directly, but I was curious if there was a better approach. The approaches used by things like the SpecializationManager and CustomPersistentStorage are great, and allow us to avoid losing modifications when we upgrade I2Loc versions.
Edit: Currently using 2.8.9f1 from the Asset Store.