This demonstrates the new page-level language support system for Genkit documentation.
- Now accepts
supportedLanguagesprop - Shows only supported languages for each page
- Displays helpful notice when languages are limited
- Example:
<LanguageSelector supportedLanguages={['js', 'go']} />
The system now tracks:
- Global Preference: User's true preferred language (preserved across pages)
- Current Language: What's actually displayed (may be a fallback)
When navigating to pages with limited language support:
- Detects supported languages from LanguageSelector component
- Checks if current language is supported
- Redirects to best available language if needed
- Preserves user's global preference for future pages
- User has Python selected on another page
- Navigates to Dotprompt (
/unified-docs/dotprompt?lang=python) - System detects Python not supported (only
['js', 'go']) - Automatic redirect to
/unified-docs/dotprompt?lang=js - Language selector shows only JS and Go pills
- Notice displays: "Available in: JavaScript, Go"
- Global preference remains Python for other pages
- User navigates to a page supporting all languages
- System detects Python is supported again
- Automatically returns to user's preferred Python
- Seamless experience - preference preserved
<!-- In any .mdx file -->
<LanguageSelector supportedLanguages={['js', 'go']} />The unified page manager automatically:
- Detects supported languages from DOM
- Handles URL redirects
- Manages localStorage preferences
- Updates UI state
- User's global preference (if supported)
- Current page language (if supported)
- JavaScript (if supported)
- First available language
✅ No more wrapping entire pages in LanguageContent blocks ✅ Preserves user preferences across navigation ✅ Clear feedback about language availability ✅ Automatic fallback handling ✅ Seamless user experience
- Dotprompt: JS + Go only (Python not available)
- Get Started: All languages supported
- Future pages: Can specify any combination
The system gracefully handles all edge cases while maintaining a smooth user experience.