Supported Languages
World Monitor is translated into:🇬🇧 English
Primary language, always loaded
🇫🇷 French
Français
🇪🇸 Spanish
Español
🇩🇪 German
Deutsch
🇮🇹 Italian
Italiano
🇵🇱 Polish
Polski
🇵🇹 Portuguese
Português
🇳🇱 Dutch
Nederlands
🇸🇪 Swedish
Svenska
🇷🇺 Russian
Русский
🇸🇦 Arabic
العربية (RTL)
🇨🇳 Chinese
中文 (Simplified)
🇯🇵 Japanese
日本語
🇹🇷 Turkish
Türkçe
🇹🇭 Thai
ไทย
🇻🇳 Vietnamese
Tiếng Việt
Changing Language
The language selector is located in the header bar (top-right corner):Select a language from the dropdown
Languages are listed with native names (e.g., “Français” not “French”).
Lazy Loading
To minimize bundle size, World Monitor uses lazy loading for language files:- English is always bundled (fallback language)
- All other languages are fetched on demand when selected
- Initial page load only downloads English (~30KB)
- Switching to French fetches
fr.json(~32KB) dynamically - Only the active language is ever loaded
- Language switch: ~100–200ms (network fetch + parse)
- Subsequent switches: instant (cached in
localStorage)
Right-to-Left (RTL) Support
World Monitor has native RTL layout support for:- Arabic (
ar) - Hebrew (planned, not yet implemented)
What Changes in RTL Mode
When you select Arabic:Text Direction
All text flows right-to-left:
- Headlines
- Panel content
- Button labels
- Tooltips
Layout Mirroring
UI elements flip horizontally:
- Navigation menus
- Panel order
- Icon positions
- Scroll bars
Map Controls
Globe controls mirror:
- Zoom buttons swap sides
- Layer toggles reposition
- Legend moves to left
Chart Labels
D3.js charts adapt:
- Y-axis moves to right
- X-axis labels flip
- Legends reposition
Technical Implementation
RTL is applied via the HTMLdir attribute:
All World Monitor components use logical CSS properties (
inline-start, inline-end, block-start, block-end) for automatic RTL support.Localized News Feeds
When you change the UI language, World Monitor automatically loads region-specific RSS feeds:Language-Specific Feed Sets
Seven locales have dedicated native-language news sources:- 🇫🇷 French
- 🇸🇦 Arabic
- 🇩🇪 German
- 🇪🇸 Spanish
- 🇹🇷 Turkish
- 🇵🇱 Polish
- 🇷🇺 Russian
- 🇹🇭 Thai
- 🇻🇳 Vietnamese
- Le Monde
- Jeune Afrique
- France24
- RFI (Radio France Internationale)
- Ouest-France
AI Translation
World Monitor includes LLM-powered translation for headlines and summaries:News arrives in source language
RSS feeds provide headlines in their original language (English, Arabic, French, etc.).
Translation request is sent to LLM
Headlines are batched and sent to your configured LLM provider (Ollama → Groq → OpenRouter).
World Brief Localization
The AI-generated World Brief adapts to your selected language:- English
- French
- Arabic (RTL)
Date & Number Formatting
World Monitor usesIntl APIs for locale-aware formatting:
Date Formatting
- English (en-US)
- French (fr-FR)
- Arabic (ar-SA)
- Chinese (zh-CN)
March 1, 20263/1/2026 2:30 PM2 hours ago
Number Formatting
- English (en-US)
- German (de-DE)
- Arabic (ar-SA)
1,234,567.89$1,234.5673.2%
Language Detection
On first load, World Monitor detects your preferred language using:- localStorage (if you’ve previously selected a language)
- Browser
Accept-Languageheader (browser/OS language) - Fallback to English (if detection fails)
- Browser reports
Accept-Language: fr-FR, fr;q=0.9, en;q=0.8 - World Monitor extracts
frand loads French - If French fails to load, falls back to English
Language preference is per-device. If you set French on your laptop, your phone will still default to its own browser language.
Translation Coverage
All UI text is localized, including:- ✅ Panel headers and labels
- ✅ Button text and tooltips
- ✅ Error messages and warnings
- ✅ Settings dialogs
- ✅ Command palette (Cmd+K)
- ✅ Country names (via
Intl.DisplayNames) - ✅ Time-relative labels (“2 hours ago”)
- ❌ News headlines (unless AI translation is enabled)
- ❌ External content (YouTube captions, Polymarket contracts)
Troubleshooting
Language selector missing
Language selector missing
The language selector only appears on screens ≥ 768px wide. On mobile, the selector is hidden — language is auto-detected from browser settings.
Page doesn't reload after language change
Page doesn't reload after language change
World Monitor requires a full page reload to apply the new language (i18n limitation). If the reload fails:
- Check browser console for errors
- Ensure JavaScript is enabled
- Try manually reloading (Cmd+R / Ctrl+R)
Some text remains in English
Some text remains in English
This indicates missing translation keys. Possible causes:
- The translation file (
fr.json,ar.json, etc.) is incomplete - A component isn’t using the
t()translation function - External content (news headlines) doesn’t support translation
RTL layout is broken
RTL layout is broken
RTL mode requires CSS logical properties. If the layout breaks:
- Check if your browser supports
inline-start/inline-end(IE11 doesn’t) - Try force-reloading (Cmd+Shift+R / Ctrl+Shift+R)
- Check browser zoom is 100%
AI translation not working
AI translation not working
Ensure:
- You have a configured LLM provider (Ollama, Groq, or OpenRouter)
- Your API key is valid (check Settings → LLMs)
- The LLM provider supports your target language
Localized news feeds not loading
Localized news feeds not loading
Localized feeds require specific language codes. Check:
- Your language is one of the 7 with native feeds (French, Arabic, German, Spanish, Turkish, Polish, Russian, Thai, Vietnamese)
- RSS sources are not blocked by your network/firewall
- Browser console for CORS or network errors
Related Features
- World Brief — AI summaries in your language
- Country Analysis — Localized country names and data
- Themes — Theme preferences persist across language changes