feat(reader): parse and persist feed and entry language from RSS, Atom, and JSON Feed
Reads the language declared by each feed and entry at parse time, persists it on new `feeds.language` and `entries.language` columns, and exposes both via the existing Feed/Entry JSON marshalling. Sources: - RSS feed: <language> - RSS item: <dc:language> - Atom 1.0 feed/entry: xml:lang - Atom 0.3 feed/entry: xml:lang - JSON Feed feed/item: "language" Values are normalized at parse time (trim + lower-case + _ -> -) so they are directly usable as an HTML lang attribute. No strict BCP-47 validation is performed: many real feeds use loose values, and silently dropping them yields worse downstream behaviour than passing them through. The refresh path treats language as feed/entry-declared metadata and always trusts the latest fetched value.
B
Bram Duvigneau committed
d456718c05f9c7e2a4fb6e918c6b45935c96d14f
Parent: 4aa60ba
Committed by fguillot <323546+fguillot@users.noreply.github.com>
on 7/2/2026, 4:00:17 AM