# Translations
While PanelAlpha defaults to English, its client area is fully customizable and can be translated into any desired language.
# Language files
Language files are stored in the /opt/panelalpha/app/packages/api/resources/lang
directory. Within this directory, you will find subdirectories for each language available for selection in the application. By default, the directory contains the en file, which includes all the language files for English.
Additional ready-made translations for other languages (German, Spanish, French, Italian, and Brazilian Portuguese) are available on the PanelAlpha GitHub repository (opens new window). Refer to the dedicated section below to learn how to install these translations and use them in your panel.
The structure of the exemplary en directory should be as follows:
api - directory containing translations for messages from the API.
clientarea/translation.json - translations for the client area.
email-templates - email templates that can be edited either directly in the file or via the admin area.
auth.php, pagination.php, passwords.php, validation.php files
Important:
Ensure that the api, clientarea, and email-templates directories have the correct permissions assigned. The required permission level is 755.
To set the correct permissions for the directories, use the following command:
chmod 755 directory_name
For example:
chmod 755 api
To add another language, the admin simply needs to create a new directory in /opt/panelalpha/app/packages/api/resources/lang, for example de and place the translated content into the target language.
In order to apply the newly created language into use for notifications you must run the below command:
docker compose -f /opt/panelalpha/app/docker-compose.yml exec -T api php artisan notifications:sync
Language files are just a board that contains the correct keys and values. Remember to edit only the particular values from the board (right side), leaving the keys unmodified (left side).
Once such translation is ready and uploaded, the custom language will be available for use in your client area. Note that there are no limitations; you may upload a translation for any language of your preference. Additionally, based on the language name, RTL (right-to-left) direction is detected and adjusted automatically.
# GitHub repository
Find a public repository (opens new window) with ready translations for the PanelAlpha client area and email templates.
The repository is publicly accessible. You can download the files and use them with your PanelAlpha installation. Currently available translations:
- German (de)
- Spanish (es)
- French (fr)
- Italian (it)
- Brazilian Portuguese (pt_BR)
Each file contains separate folders with translations for the PanelAlpha client area, email templates, and a readme.md
file in the respective language. Please familiarize yourself with the README
file before proceeding with the installation.
Important: The translations have been prepared using automated tools, so we recommend verifying them before using them in production. We also encourage you to share your polished and improved versions of the translation files with the community. If you have a translation for a language that is not yet officially available, we would appreciate you sharing it with us.
Instructions on how to contribute to the PanelAlpha Repo can be found under Contributing section below.
# 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:
- 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
- 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:
- Download the translation files - Download the language files for your desired language from the repository.
- Copy files to the server - Copy the translation files to your server’s language directory.
- 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>
- 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
- 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:
Fork the repository - Ensure you are signed in to your GitHub account, then fork the repository to create a copy under your account.
Make your changes - Edit the translation files you want to update in your forked repository.
Commit the changes - After making your edits, press "Commit Changes" to save them in a new branch.
Describe your changes - Provide a detailed description of your updates. This helps us verify and approve your contribution for public use. Press "Propose Changes."
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:
Add a new file - Fork the repository, then create a new file for the language you're contributing.
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.
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.
Commit the changes - Once you’ve added the translations, press "Commit Changes." Provide an extended description of your additions, then press "Propose Changes."
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.
# Changing the client area language
Admin Area The language for the client area can be changed in two ways. Either by the administrator in the Configuration → General → Client Area → Default Language section. The language selected here will be set as the default for all your clients.
Client Area Your clients may set up their own language preferences and select a language for their own usage when logging in to the client area. Just find the dropdown menu and select a preferred language.
The alternative option for clients to change the language is located in the footer of the client area. Find it at the very bottom of the page.