🗣️Multi-Language Support

The YSeries phone system provides multi-language support, allowing you to customize the phone interface for different languages and regions.

Adding New Languages

Step 1: Configure Language Entry

  1. Navigate to /config/config.locales.lua

  2. Add a new entry to the Config.Locales array:

Config.Locales = {
    {
        value = "en",
        label = "English"
    },
    {
        value = "es", 
        label = "Español"
    },
    {
        value = "fr",
        label = "Français" 
    },
    -- Add your new language here
    {
        value = "de",
        label = "Deutsch"
    }
}

Step 2: Create Language File

  1. Navigate to /ui/build/locales/

  2. Create a new JSON file named exactly the same as the value field from Step 1

  3. 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:

Language Selection

User Language Selection

Players can typically change their language through:

  1. Settings App: Navigate to Settings -> Language

  2. Initial Setup: Language selection during first phone setup

Server Default Language

Configure the default server language in config/config.locales.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:

  1. System checks current language file

  2. Falls back to default language (usually English)

  3. Shows translation key if no fallback exists

Regional Variants

Support for regional language variants:

Troubleshooting

Common Issues

  1. Translations not appearing:

    • Check file naming matches value field exactly

    • Verify JSON syntax is valid

    • Ensure server restart was completed

  2. Partial translations:

    • Check for missing translation keys

    • Verify JSON structure is complete

    • Test fallback language functionality

  3. Language selection not working:

    • Verify locale configuration is correct

    • Check player language preference storage

    • Test with different language options

Debug Steps

  1. File Validation: Use JSON validators for syntax checking

  2. Console Logs: Check for language loading errors

  3. UI Testing: Test interface with different languages

  4. Player Testing: Have players test language switching


Last updated