PanelAlpha Documentation
Back Home
Live Demo Get Started

Translations

Documentation
    Introduction
Getting Started
    Installation Guide Update Guide SSL Configuration Translations
System Configuration
    General Configuration Plans Hosting Servers DNS Servers Email Servers Remote Backups Notifications Automatic SSL Plugins & Themes Background Billing Diagnostic Mode Automatic Tester
Admin Area
    Dashboard Instances Services Users Logs Migrations
Onboarding Methods
    Quick Onboarding Super Quick Onboarding Standard Onboarding
Hosting Servers
    Hosting Scenarios PanelAlpha Engine cPanel Plesk DirectAdmin WP Cloud
DNS Servers
    Cloudflare cPanel DNS Only PowerDNS
Email Servers
    Mailcow cPanel
Billing Systems Integrations
    PanelAlpha WordPress Hosting For WHMCS
Integrations
    Atarim AWStats Matomo Google Analytics Let's Encrypt Google PageSpeed Insights DB-IP Extendify WithoutDNS
Client Area - Instances
    List of Instances Creating New Instance Importing Existing Instance Instance Details Changing Domain Sharing Instances Monitoring Backups Plugins Advanced Settings
Client Area - Hosting
    Summary Domains FTP Accounts MySQL Databases Cron Jobs File Manager DNS Zone Editor Email Addresses Email Forwarders

# Translations

  • Overview
  • Language File Structure
    • Directory Permissions
  • Available Translations
    • Installation
    • Contributing
  • Language Configuration
    • Admin Area Configuration
    • Client Area Language Selection
  • Troubleshooting
    • Common Issues
    • Getting Help

This guide will walk you through configuring PanelAlpha in multiple languages. While PanelAlpha defaults to English, the client area can be fully customized and translated into any desired language.

# Overview

PanelAlpha supports multilingual configurations through language files that control:

  • Client area interface - All user-facing text and menus
  • Email templates - Automated notifications and communications
  • Admin area messages - System messages and notifications

The system automatically detects RTL (right-to-left) languages and adjusts the interface accordingly.

# Language File Structure

Language files are stored in the /opt/panelalpha/app/packages/api/resources/lang directory. Each language has its own subdirectory containing:

  • api - API message translations
  • clientarea/translation.json - Client area interface translations
  • email-templates - Email template files
  • auth.php, pagination.php, passwords.php, validation.php - System files

# Directory Permissions

Important: Ensure proper permissions for translation directories:

chmod 755 /opt/panelalpha/app/packages/api/resources/lang/{language_code}
chmod 755 /opt/panelalpha/app/packages/api/resources/lang/{language_code}/api
chmod 755 /opt/panelalpha/app/packages/api/resources/lang/{language_code}/clientarea
chmod 755 /opt/panelalpha/app/packages/api/resources/lang/{language_code}/email-templates

Replace {language_code} with your target language code (e.g., de, es, fr).

# Available Translations

Ready-made translations are available from the PanelAlpha GitHub repository (opens new window). Currently supported languages include:

  • German (de) - Deutsche Übersetzung
  • Spanish (es) - Traducción en español
  • French (fr) - Traduction française
  • Italian (it) - Traduzione italiana
  • Brazilian Portuguese (pt_BR) - Tradução em português brasileiro

Each language package contains:

  • Client area interface translations
  • Email template translations
  • README file with installation instructions

Important: These translations were prepared using automated tools. We recommend reviewing them before production use and contributing improvements back to the community.

# Installation

You can install the translations either using an automatic script or manually. Read below for details.

Automatic Installation
To automatically install and use these translations with PanelAlpha, follow these steps:

  1. Download the script to /opt/panelalpha:
    curl -sL -o /opt/panelalpha/sync-translations.sh https://raw.githubusercontent.com/panelalpha/PanelAlpha-Translations/refs/heads/main/scripts/sync-translations.sh
    
  2. Run the script with the desired language, remember to replace {language_code} with the actual language code of the available translations de, es, fr, it or pt_BR.
    bash /opt/panelalpha/sync-translations.sh --lang "{language_code}"
    

Manual Installation
To manually install and use these translations with PanelAlpha, follow these steps:

  1. Download the translation files - Download the language files for your desired language from the repository.
  2. Copy files to the server - Copy the translation files to your server’s language directory.
  3. Set appropriate permissions - Ensure the correct permissions are set for the translation files. Run the below command, but remember to replace {language_code} with the actual language code of the available translations de, es, fr, it or pt_BR.
chmod -R 755 /opt/panelalpha/app/packages/api/resources/lang/<language_code> 
  1. Synchronize notifications - Run the following command to sync notifications with the new translations:
docker compose -f /opt/panelalpha/app/docker-compose.yml exec -T api php artisan notifications:sync  
  1. Configure the client area language:
    • See the instructions below (see point "Changing the client area language") on how to change the client area language. Changing the language for a client will also change the language of the email templates. For example, if your client selects German for the client area, all email templates will also be sent in German.

# Contributing

If you would like to contribute updates to existing translations or provide new translations, you are welcome to do so at any time. Simply sign in to your GitHub account and visit the PanelAlpha Translations Repository (opens new window).

Editing Existing Translations:

  1. Fork the repository - Ensure you are signed in to your GitHub account, then fork the repository to create a copy under your account.

  2. Make your changes - Edit the translation files you want to update in your forked repository.

  3. Commit the changes - After making your edits, press "Commit Changes" to save them in a new branch.

  4. Describe your changes - Provide a detailed description of your updates. This helps us verify and approve your contribution for public use. Press "Propose Changes."

  5. Submit a pull request - Review your changes and create a pull request. This notifies us of your contribution, and we will review and publish it for other users.

Adding a Translation for an Unavailable Language:

  1. Add a new file - Fork the repository, then create a new file for the language you're contributing.

  2. Create the language path - Use the appropriate language code (e.g., cze for Czech) to create a new folder and file path for your translation.

  3. Provide translations - Use the original files as a reference. Ensure you only modify the right side of the = sign, leaving the structure on the left unchanged.

  4. Commit the changes - Once you’ve added the translations, press "Commit Changes." Provide an extended description of your additions, then press "Propose Changes."

  5. Submit a pull request - Review your changes and submit a pull request. We will be notified, verify your contribution, and publish it for public use.

# Language Configuration

# Admin Area Configuration

Set the default language for all clients through the admin area:

  1. Navigate to Configuration → General → Client Area
  2. Select Default Language from the dropdown menu
  3. Save the configuration

This language will be applied to all new client registrations and serve as the fallback language.

# Client Area Language Selection

Clients can choose their preferred language in several ways:

# Login Page Selection

Clients can select their preferred language directly on the login page:

# Footer Language Selector

A language dropdown is available in the client area footer:

# Account Settings

Clients can change their language preference in their account settings:

  1. Navigate to Account Details → Personal Information
  2. Select Language from the dropdown menu
  3. Save changes

Note: When a client changes their language preference, it affects both the client area interface and email notifications they receive.

# Troubleshooting

# Common Issues

# Permissions Errors

Problem: Translation files not loading Solution: Verify directory permissions are set to 755:

chmod -R 755 /opt/panelalpha/app/packages/api/resources/lang/{language_code}

# Missing Translations

Problem: Some text still appears in English Solution: Check for missing keys in translation files and ensure all required files are present

# Notifications Not Translated

Problem: Email notifications still in default language Solution: Run the notifications sync command:

docker compose -f /opt/panelalpha/app/docker-compose.yml exec -T api php artisan notifications:sync

# Language Not Appearing in Dropdown

Problem: New language doesn't show in language selection Solution:

  1. Verify proper directory structure
  2. Check file permissions
  3. Restart PanelAlpha containers if necessary

# Getting Help

If you encounter translation issues:

  1. Check the Troubleshooting Center for common solutions
  2. Review file permissions and directory structure
  3. Verify all required translation files are present
  4. Contact our support team (opens new window) for assistance