Supported Languages
LoFi Engine currently supports 7 languages:English
Default language (en)
French
Français (fr)
Dutch
Nederlands (nl)
Russian
Русский (ru)
Japanese
日本語 (ja)
Chinese
中文 (zh)
Hindi
हिन्दी (hi)
Changing Language
Switch languages in the Settings panel:Language preference is saved locally and persists across app restarts.
What Gets Translated
All user-facing text is localized:- Interface Elements
- Settings Panel
- Info Box
- Ambient Tracks
- Button labels
- Menu items
- Section headings
- Tooltips
- Error messages
Translation Structure
Translations follow a hierarchical structure:Translation Examples
Auto DJ Mode Descriptions
Auto DJ Mode Descriptions
Music Mode
Music Mode
English: “Just the beat and chords. No atmosphere or world effects.”French: “Juste le rythme et les accords. Aucun effet d’atmosphère ou de monde.”Japanese: “ビートとコードだけ。雰囲気やワールドエフェクトはありません。”
Atmosphere Mode
Atmosphere Mode
English: “Adds the core weather and nature effects”Dutch: “Voegt de kern weer- en natuureffecten toe”Russian: “Добавляет основные погодные и природные эффекты”
Localization Coverage
Comprehensive translation coverage:| Category | Items Translated | Coverage |
|---|---|---|
| Settings | 20+ strings | 100% |
| Info/Shortcuts | 25+ strings | 100% |
| Context Menu | 8 strings | 100% |
| Track Quotes | 9 strings | 100% |
| Tooltips | 15+ strings | 100% |
Technical Implementation
Store System
LoFi Engine uses a reactive translation store:Language Files
Each language has its own file:src/lib/locales/en.ts- English (base)src/lib/locales/fr.ts- Frenchsrc/lib/locales/nl.ts- Dutchsrc/lib/locales/ru.ts- Russiansrc/lib/locales/ja.ts- Japanesesrc/lib/locales/zh.ts- Chinesesrc/lib/locales/hi.ts- Hindi
Type Safety
Translations are fully typed:- All languages have the same keys
- TypeScript catches missing translations
- Auto-completion in code
Adding New Languages
Current version does not support user-added languages. Language support is built-in at compile time.
- Check if it’s already in development
- File an issue/feature request
- Consider contributing a translation file
Right-to-Left (RTL) Support
Persistent Language Selection
Language preference is stored locally:Storage Details
Storage Details
- Location: Browser localStorage
- Key:
localeorlanguage - Format: Two-letter language code (e.g., “en”, “ja”, “fr”)
- Persistence: Survives app restarts
- Default: Falls back to English if invalid/missing
Language Detection
The app can detect your browser’s preferred language:Translation Quality
All translations are:Contextual
Translations consider UI context and space constraints
Natural
Phrasing sounds native, not machine-translated
Consistent
Same terms translated consistently throughout
Up-to-date
Maintained alongside English source
Special Considerations
Text Length Variations
Text Length Variations
Different languages have different text lengths:
- German: Often longer (compound words)
- Japanese: Usually more compact
- English: Medium length baseline
Cultural Adaptations
Cultural Adaptations
Some translations adapt for cultural context:
- Quotes may be different across languages
- Examples use culturally relevant references
- Tone matches local communication norms
Keyboard Shortcuts
Keyboard Shortcuts
Keyboard shortcuts remain the same across languages:
A,S,D,Ffor effects (not localized)- Number keys 1-9 for tracks
- Arrow keys for navigation
Reporting Translation Issues
If you find translation errors:- Note the incorrect text: Screenshot or copy the text
- Identify the language: Which language has the error?
- Describe the issue: What’s wrong? What should it say?
- Provide context: Where in the app does this appear?
Future Language Support
Potential languages for future releases:- Spanish (es)
- German (de)
- Italian (it)
- Portuguese (pt)
- Korean (ko)
- Arabic (ar) - requires RTL support
Language priorities are based on user demand and contributor availability.
Accessibility
Multi-language support enhances accessibility:- Users can interact in their preferred language
- Reduces cognitive load for non-English speakers
- Makes the app more inclusive globally
- Screen readers work correctly with localized text
Related Features
- Keyboard Shortcuts - Note: Shortcuts are not localized
- Customization - Settings panel where language is changed