π£οΈ Multi-Language Support
Adding New Languages
Step 1: Configure Language Entry
- Navigate to
/config/config.locales.lua - Add a new entry to the
Config.Localesarray:
lua
Step 2: Create Language File
- Navigate to
/ui/build/locales/ - Create a new JSON file named exactly the same as the
valuefield from Step 1 - Example: For German, create
de.json
Step 3: Restart Server
Restart the server to apply the language changes.
Language File Structure
Basic Structure
Language files should follow this JSON structure:
json
Language Selection
User Language Selection
Players can typically change their language through:
- Settings App: Navigate to Settings -> Language
- Initial Setup: Language selection during first phone setup
Server Default Language
Configure the default server language in config/config.locales.lua:
lua
Advanced Features
Dynamic Language Loading
The system supports dynamic language loading, meaning:
- Languages can be switched without restart
- New translations take effect immediately
- Fallback to default language for missing translations
Translation Fallbacks
If a translation is missing:
- System checks current language file
- Falls back to default language (usually English)
- Shows translation key if no fallback exists
Regional Variants
Support for regional language variants:
lua
Troubleshooting
Common Issues
- Translations not appearing:
- Check file naming matches
valuefield exactly - Verify JSON syntax is valid
- Ensure server restart was completed
- Check file naming matches
- Partial translations:
- Check for missing translation keys
- Verify JSON structure is complete
- Test fallback language functionality
- Language selection not working:
- Verify locale configuration is correct
- Check player language preference storage
- Test with different language options
Debug Steps
- File Validation: Use JSON validators for syntax checking
- Console Logs: Check for language loading errors
- UI Testing: Test interface with different languages
- Player Testing: Have players test language switching