@codinghorror, I can now confirm this is happening due to the default locale being changed in Admin > Settings. When I select Persian, it adds the <language>fa_IR</language> to the RSS feed output. Switching it back to English, puts it back to <language>en</language>.
Based on List of ISO 639-1 codes - Wikipedia, it seems the appropriate code for Persian is simply fa, I’m not sure why _IR is being appended to it.
When I take the RSS output and plug it directly into the validator, changing fa_IR to fa, it marks it as Valid RSS.
With all that said, it seems this is a valid bug. I also confirmed using other languages (I choose at random, and have no idea what they were), were all using 2 character codes which made them valid as well.
Other locales that exhibit this same issue
- bs_BA (should be bs?)
- fa_IR (should be fa, per is also valid - ISO 639-2/B)
- nb_NO (should be nb?)
- pl_PL (should be pl?)
- pt_BR (should be pt?)
- tr_TR (should be tr?)
- zh_CN (should be zh?)
- zn_TW (should be zh?)
I wonder if the quick fix for this is to only take the first two characters for the <language> element in the RSS feed.