Problem in latest.rss / Not a Valid Feed, it says!

Did you wish to purchase a support contract? We prioritize paying customers.

You’ve bumped this twice now. Rather than bumping, I suggest you ask in marketplace, purchase a hosting plan, or be patient.

2 Likes

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

2 Likes

This is persian language website that is having fa-IR tag in language and it seems working fine.
http://hamyarwp.com/feed

Oh sweet, so another possible solution is replace _ with - when writing out the RSS language element.

Thank you.
When you say replace _ with a - , how do I have to do that?

I just submitted a PR for it
https://github.com/discourse/discourse/pull/4653

7 Likes

Thanks a bunch mate.

Same reason we have en, en-us, en-uk, en-au, etc. The locale has potential changes based on country. You want a different spelling dictionary for en-us than en-uk. But as you observed later, the proper code uses a HYPHEN not an UNDERSCORE.

4 Likes

Indeed correct!
Because there are also other countries that speak their version of Persian (Farsi) and their language is fairly different.

Yeah, that makes sense. I just didn’t see any mention of that on the wiki page I found related to the RSS spec for language. It specifically stated to use ISO 639 and that wiki page didn’t make mention that a hyphen, country would be acceptable.

Do you know of a place that mentions that? Would love to read up on it more sometime in the near future. So any resources you may know, I’d love to bookmark them.

@cpradio Thank you so much.

I just updated the core and its fixed now.
fa-IR done the trick.

I really appreciate the effort and care you put in this

3 Likes

RFC-4646, look for langtag.

2 Likes