Skip to content

Localization

FOSSBilling supports multiple languages for both the client area and administration workflows. You can use an existing translation, improve one, or add your own.

FOSSBilling ships with translations that are at least 25% complete. To install more:

  1. Download the translation files
  2. Upload to /locale/ in your FOSSBilling directory
/locale/
└── en_US/
└── LC_MESSAGES/
├── messages.mo ← Compiled translation (required)
└── messages.po ← Source file (optional but helpful)
  1. Go to translate.fossbilling.org
  2. Create a Crowdin account
  3. Review and translate strings

Don't see your language?

  1. Join our Discord
  2. Ask in #localization for it to be added
  3. We'll add it to Crowdin
  4. Start translating

If you've created a complete translation locally:

  1. Submit a pull request to the locale repository
  2. Don't include the .mo file — we generate those automatically
  3. We'll add it to Crowdin for community contributions

For assistance, ask in our Discord.

Set the default locale in your config.php file. If you are unsure which key to change, check the configuration reference.

Use a locale code such as en_US, fr_FR, or de_DE.

FOSSBilling 0.6.0+: Enable/disable languages in the admin panel:

Extensions → Languages

See translation completion percentages and toggle languages on/off.

FOSSBilling automatically detects the visitor's preferred language from their browser settings.

Language selection flowchart

  1. Use browser's primary preferred language (if FOSSBilling has it)
  2. Fall back to the default locale from config.php
  3. Manual language selection overrides both
  • Exact match: en_USen_US
  • Language match: en_GBen_US (same language, different region)