feat(locale): bootstrap Estonian (et) locale with i18n + 5 news sources#3898
feat(locale): bootstrap Estonian (et) locale with i18n + 5 news sources#3898zionappp-ui wants to merge 2 commits into
Conversation
|
@zionappp-ui is attempting to deploy a commit to the World Monitor Team on Vercel. A member of the Team first needs to authorize it. |
Greptile SummaryThis PR bootstraps the Estonian (
Confidence Score: 4/5Safe to merge; the Estonian locale and news source additions are well-contained and consistent across all required files. All four RSS domain allowlists, both feed config files, source-tiers, and i18n registration are updated in sync. The feeds-client-server-parity test will pass because both client and server use identical direct-RSS URLs for all five new feeds. The only gaps are a meta description string that should be absent (or translated) in the locale file, and a missing snapshot entry in the map-locale test. src/locales/et.json (shell.metaDescription left as English text rather than absent) and tests/map-locale.test.mts (new et tile-field mapping not covered by snapshot). Important Files Changed
Sequence DiagramsequenceDiagram
participant Browser
participant i18n as i18n.ts (initI18n)
participant Locale as src/locales/et.json
participant EN as src/locales/en.json (fallback)
participant FeedConfig as src/config/feeds.ts
participant RSSProxy as api/_rss-allowed-domains.js
participant Server as server/_feeds.ts
participant RSS as Estonian RSS feeds
Browser->>i18n: detect language (navigator / wm-locale-explicit)
i18n->>Locale: lazy-load et.json
Locale-->>i18n: partial bundle (shell + a few countryBrief strings)
i18n->>EN: addResourceBundle merge (fallbackLng for missing keys)
EN-->>Browser: rendered UI (Estonian shell titles + English rest)
Browser->>FeedConfig: resolve FULL_FEEDS.europe
FeedConfig-->>Browser: ERR, Postimees, Delfi ET, EPL, Äripäev (rssProxyUrl)
Browser->>RSSProxy: "GET /rss-proxy?url=https://www.err.ee/rss"
RSSProxy->>RSS: fetch feed (domain allowlist check passed)
RSS-->>Browser: news items
Server->>RSS: direct fetch via VARIANT_FEEDS.full.europe (digest path)
Reviews (1): Last reviewed commit: "feat(locale): bootstrap Estonian (et) lo..." | Re-trigger Greptile |
| }, | ||
| "shell": { | ||
| "documentTitle": "World Monitor — Globaalne luureteabe armatuurlaud reaalajas", | ||
| "metaDescription": "Real-time global intelligence platform. Featured in WIRED. Used by 2M+ people across 190 countries. Conflicts, markets, military, OSINT in one view.", |
There was a problem hiding this comment.
shell.metaDescription left in English
This key is explicitly present in et.json with its English value rather than being absent. Because i18next's fallbackLng: 'en' only fires when a key is missing from the bundle — not when it exists with an English value — Estonian-language users will see this English string instead of a translated version. Other locales (zh, ja, vi, it) all have this translated. Either translate it to Estonian or remove the key so fallback takes effect naturally.
…n + strip Unicode escape noise from source-tiers
What this adds
Full Estonian (`et`) locale bootstrap.
Locale changes
Sources (5 feeds, all verified live via direct RSS)
ERR (Eesti Rahvusringhääling) is Estonia's public broadcaster. All 5 feeds use direct RSS — Estonia has unusually good direct feed support.