support hasPreferredLanguage option