Era Host hosting
EraHost – Free Domain, Cheap Hosting!
Client Area
Support 24/7
Menu

Fixing "No Language Defined" in VestaCP — Missing Language Files

2 min read
19.02.2026

Check If Language Files Are Missing

Run this command to check the language folder in VestaCP:

VestaCP Missing Language Files
VestaCP i18n missing — restore from /usr/local/vesta/web/inc/i18n/.

For related VestaCP topics in this cluster, see Missing Language Files (variant) and Not Recognizing Language.

ls -lah /usr/local/vesta/web/lang/

Expected output: List of language files like:

en.php  ru.php  es.php  fr.php ...

If the folder is empty, proceed to Step 2.

Linux VDS
High performance for your projects
  • Root access and flexible setup
  • Control panel
  • NVMe disks
  • DDR5
Linux VDS

Restore Missing Language Files

If the language files are missing or deleted, reinstall them.

Download the VestaCP Language Pack

cd /usr/local/vesta/web/
git clone https://github.com/serghey-rodin/vesta.git vesta-lang

Move the Language Files

cp -r vesta-lang/web/lang/ /usr/local/vesta/web/

Remove Unnecessary Files

rm -rf vesta-lang

Set the Default Language in VestaCP

If the language files exist but are not loading, set the correct language manually.

Edit VestaCP Configuration

nano /usr/local/vesta/conf/vesta.conf

Add or update this line:

LANGUAGE='en'

Replace 'en' with your preferred language (ru, es, fr, etc.).

Restart VestaCP:

systemctl restart vesta

Fix Permissions for Language Files

If the language files exist but still don't work, fix their permissions.

Run:

chown -R root:root /usr/local/vesta/web/lang/
chmod -R 755 /usr/local/vesta/web/lang/

Restart VestaCP after fixing permissions:

systemctl restart vesta

Summary of Fixes

Issue Fix
Language files missing Restore using git clone
Language setting incorrect Set LANGUAGE='en' in vesta.conf
File permissions incorrect Run chown -R root:root /usr/local/vesta/web/lang/
VestaCP still not loading languages Restart with systemctl restart vesta

Now your VestaCP should display correctly!

Frequently asked questions
Official VestaCP repository on GitHub: `github.com/serghey-rodin/vesta` → `web/inc/i18n/*.php`. Download the matching version's files, place in `/usr/local/vesta/web/inc/i18n/`. Ownership: same as Vesta's web user (usually root with mode 644).
VestaCP updater may overwrite the i18n directory. Custom translations should live outside the auto-updated path, or you back them up before update. Better practice: contribute custom translations upstream so they ship with the next release.
Edit user record. VestaCP stores per-user language in `/usr/local/vesta/data/users//user.conf` — change `LANGUAGE='ru'` to `LANGUAGE='en'`. User logs in, sees English. Or reinstall VestaCP if many users are stuck.
Mode 644 on language PHP files (readable by all, writable by root). Owner root:root. Directory mode 755. If mode is restrictive (600), Vesta's web process can't read; same symptom as missing files.
Related articles
Fixing "No Language Defined" Error in VestaCP
Fix "No Language Defined" in VestaCP — VestaCP Not Recognizing Language
Fixing session_start(): No Such File or Directory Error in PHP