Whilst only the LocalizationService service is needed, not injecting this via the service context was breaking the unit tests. If there's a way around this so we can use the mocked ILocalizationService in tests then this change can be reverted.
Put in a check to abort fall-back if there's a loop in language fall-backs.