@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.