feat(locale): bootstrap Latvian (lv) locale with i18n + 6 news sources#3897
feat(locale): bootstrap Latvian (lv) locale with i18n + 6 news sources#3897zionappp-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 SummaryBootstraps the Latvian (
Confidence Score: 4/5Safe to merge — all domain allowlists are consistent, feed routing parity is maintained, and no data path is broken. The wiring is solid: allowlists, source tiers, and client/server feed parity are all correct. The main rough edges are cosmetic — some Latvian locale strings were left in English (visible to users who select Latvian), and a serialiser artifact re-encoded three pre-existing source names in source-tiers.json with Unicode escapes. src/locales/lv.json deserves a translation-completeness pass before or shortly after merge; scripts/shared/source-tiers.json and shared/source-tiers.json carry unintended Unicode-escape churn on three pre-existing entries. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[User selects Latvian locale] --> B[i18n.ts SUPPORTED_LANGUAGES includes 'lv']
B --> C[Load src/locales/lv.json]
C --> D[map-locale.ts: lv → name:lv tile field]
E[News panel requests feeds] --> F{Feed type?}
F -->|Direct RSS| G[RSS Proxy]
G --> H{Domain in allowlist?}
H -->|www.lsm.lv| I[LSM feed]
H -->|www.delfi.lv| J[Delfi LV feed]
H -->|www.la.lv| K[Latvijas Avize feed]
F -->|Google News| L[news.google.com - already allowed]
L --> M[Diena / TVNet / Neatkariga]
N[source-tiers.json] --> O[getSourceTier lookup]
O --> I & J & K & M
P[public/offline.html] --> Q[lv offline strings]
Reviews (1): Last reviewed commit: "feat(locale): bootstrap Latvian (lv) loc..." | Re-trigger Greptile |
| "description": "Global Situation with AI Insights" | ||
| }, | ||
| "shell": { | ||
| "documentTitle": "World Monitor — Globālās izlūkošanas panelis reāllaikā", | ||
| "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.
Untranslated meta strings in the Latvian locale bundle
app.description ("Global Situation with AI Insights") and shell.metaDescription ("Real-time global intelligence platform…") are left in English. Comparing with de.json, both fields are fully translated there (e.g. "Globale Lage mit KI-Erkenntnissen"). These strings are used in the document <title> and <meta name="description"> tag, so Latvian users will see raw English text in their browser tab and social previews. Additionally, several widget-level labels (e.g. "chatTitle": "Widget Builder", "phaseChecking": "Checking") are also in English throughout the file. The lv.json and en.json share the same line count (3,269), suggesting the AI translation pass may have skipped some segments.
| "Yonhap News": 2, | ||
| "Chosun Ilbo": 2, | ||
| "El País": 2, | ||
| "El Pa\u00eds": 2, |
There was a problem hiding this comment.
Unrelated Unicode-escape churn on pre-existing entries
Three existing entries were re-serialised with JSON Unicode escapes as a side-effect of this PR: "El País" → "El Pa\u00eds", "Híradó" → "H\u00edrad\u00f3", "La Silla Vacía" → "La Silla Vac\u00eda". The same change appears in shared/source-tiers.json. JSON \uXXXX escapes and literal Unicode characters are parsed identically, so there is no runtime impact; but the diff noise makes it harder to review the Latvian additions and could trigger downstream churn if a future contributor normalises the file in the opposite direction. The churn is likely a serialiser artifact — worth stripping before merge.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
… + strip Unicode escape noise from source-tiers
What this adds
Full Latvian (`lv`) locale bootstrap.
Locale changes
Sources (6 feeds, all verified live)
LSM (Latvijas Sabiedriskie Mediji) is Latvia's public broadcaster. 3 direct RSS feeds, 3 via locale-tuned Google News (`hl=lv&gl=LV&ceid=LV:lv`).