Overview
OmniSearches provides comprehensive internationalization (i18n) support, allowing users to interact with the application in their preferred language. The interface automatically adapts to display translated text while maintaining full search functionality across all supported languages.Currently supported languages: English, Simplified Chinese (简体中文), and Traditional Chinese (繁體中文)
Supported Languages
English
Full UI and search support
简体中文
Simplified Chinese
繁體中文
Traditional Chinese
How It Works
OmniSearches usesi18next and react-i18next for internationalization:
- Language Detection: Automatically detects browser language on first visit
- Persistent Preference: Stores language choice in localStorage
- Dynamic Translation: All UI elements update instantly when language changes
- Search Integration: Can request search results in specific languages
Changing Language
Via Web Interface
- Look for the globe icon (🌐) in the navigation bar
- Click to open the language selector dropdown
- Select your preferred language from the list
- The interface updates immediately
Programmatically
Using the Language Context
Available Language Codes
| Language | Code | Label |
|---|---|---|
| English | en | English |
| Simplified Chinese | zh-CN | 简体中文 |
| Traditional Chinese | zh-HK | 繁體中文 |
Translation Coverage
All major UI components are fully translated:Navigation & Headers
Navigation & Headers
Search Interface
Search Interface
- Search placeholder text
- Search mode labels
- Search button text
Results Display
Results Display
- Source attribution labels
- Related questions headers
- Image gallery captions
User Messages
User Messages
- Error messages
- Success notifications
- Help text and tooltips
Footer Content
Footer Content
Language-Specific Search Results
You can request search results in a specific language using the API:Via API
Request in Specific Language
Reasoning Mode
The reasoning endpoint also supports language preferences:Reasoning in Chinese
While the UI is limited to English, Simplified Chinese, and Traditional Chinese, the AI can generate responses in any language you specify in the
language parameter.Implementation Details
Language Context
OmniSearches uses React Context to manage language state globally:client/src/contexts/LanguageContext.tsx
Language Selector Component
The language selector provides an accessible dropdown interface:client/src/components/LanguageSelector.tsx
Translation Files
Translations are organized by language code in the i18n directory:Using Translations
In Components
Adding New Languages
To add support for a new language:Browser Language Detection
OmniSearches automatically detects the user’s browser language on first visit:Automatic Detection
- localStorage: Checks for previously saved language preference
- Navigator: Falls back to browser language setting
- Default: Uses English if no match found
Accessibility
The language selector is fully accessible:- Keyboard Navigation: Tab to focus, Enter to select
- ARIA Labels: Proper labeling for screen readers
- Visual Indicators: Clear active state and hover effects
- Focus Management: Dropdown closes on outside click
Best Practices
Default to User Preference
Always respect the user’s saved language choice
Provide Visual Feedback
Show clear indication of current language
Keep Translations Consistent
Use the same terms across all UI elements
Test All Languages
Verify translations in context, not just text
Limitations
Related Features
Search Modes
All search modes support multilingual queries
API Reference
Specify language in API requests