Locales (Languages)
Manage the languages available to OpenPanel users.

Install Localeβ
By default, only the EN locale is installed. To enable other locales, they must be installed first.
- With OpenAdmin
- With API
- With OpenCLI
To install a locale, go to OpenAdmin > Settings > Locales and click the Install button next to the desired locale.
To install every available locale at once, click Install All at the top of the page. This downloads all locales from GitHub (about 11 MB in total) and re-downloads ones that are already installed, so it also updates them. Once finished, a notification lists which locales were installed and which failed.
Install a single locale with POST /api/settings/locales:
curl -X POST https://panel.example.com:2087/api/settings/locales \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{"locale": "tr-tr"}'
Pass "all" as the locale to install every available locale:
curl -X POST https://panel.example.com:2087/api/settings/locales \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{"locale": "all"}'
The response lists what was installed and what failed. success is false if any locale failed:
{
"success": true,
"message": "Installed 17 locales: bg-bg, de-de, en-us, ...",
"installed": ["bg-bg", "de-de", "en-us", "..."],
"failed": []
}
To install a locale from the terminal, use its locale prefix from Github and run:
opencli locale <LOCALE_HERE>
Example: Install Turkish locale:
opencli locale tr-tr
Example: Install multiple locales:
opencli locale sr-rs tr-tr zh-cn
Example: Install all available locales:
opencli locale $(curl -s "https://api.github.com/repos/stefanpejcic/openpanel-translations/contents" | jq -r '.[] | select(.type=="dir" and (.name|test("^[a-z]{2}-[a-z]{2}$"))) | .name' | tr '\n' ' ')
Update Localeβ
Each time the Locales page is opened, OpenAdmin compares every installed locale file with the latest version on GitHub. If a newer version exists, a notification lists the locales with updates, the locale shows an Update available badge, and an Update button appears in its Actions column.
- With OpenAdmin
- With API
- With OpenCLI
Click Update next to a locale to download its latest version, or click Update All at the top of the page to update every outdated locale at once. Update All is only shown when at least one update is available.
GET /api/settings/locales returns update_available for each locale. To update one locale:
curl -X POST https://panel.example.com:2087/api/settings/locales \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{"update": "tr-tr"}'
Pass "all" to update every locale that has an update available:
curl -X POST https://panel.example.com:2087/api/settings/locales \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{"update": "all"}'
The response lists updated locales under installed and failed ones under failed.
Installing a locale again downloads its latest version:
opencli locale tr-tr
Delete Localeβ
- With OpenAdmin
- With API
- From Terminal
Click Delete next to an installed locale and confirm. The default locale can't be deleted; set another locale as default first.
curl -X POST https://panel.example.com:2087/api/settings/locales \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{"delete": "tr-tr"}'
Remove the locale's directory, named after its two-letter prefix:
rm -rf /etc/openpanel/openpanel/translations/tr
Users who had selected a deleted locale will see untranslated (English) text instead.
Default Localeβ
- With OpenAdmin
- From Terminal
To make a specific locale the default, go to OpenAdmin > Settings > Locales and click the Set as Default button next to the desired locale.
To set a default locale from the terminal:
echo <LOCALE_HERE> > /etc/openpanel/openpanel/default_locale
Example: Set Turkish as the default:
echo tr > /etc/openpanel/openpanel/default_locale
Changing the default will not automatically update existing usersβ settings; their browser preferences and account configurations will take precedence. For more details, see How-to Guides > Setting the Default Locale.
Edit Localeβ
To edit a locale, click the GitHub icon next to it in the table. This opens the source on GitHub, where you can fork the repository and edit the translation file.
Create a Localeβ
To create a new locale:
- Fork the translations repository.
- Copy the
en_usfolder to a new locale folder, e.g.,es_es. - Translate the
messages.potfile. - Submit a pull request.