Skip to content

# Internationalization and Localization

The source code of ejabberd supports localization: all built-in modules support the `xml:lang` attribute inside IQ queries, and the Web Admin supports the `Accept-Language` HTTP header.

There are two ways to improve the translation of a language:

- Preferably using the ejabberd-po Weblate online service, which ensures syntax and formatting, can be more easily managed, and translations are immediately visible to other translators.

- Manually edit the corresponding .po file in ejabberd-po git repository with a gettext-compatible program (Poedit, KBabel, Lokalize, ...). Then submit a Pull Request.

Once the translators have improved the `po` files, you can run `make translations`. With that command, the translatable strings are extracted from source code to generate the file `ejabberd.pot`. This file is merged with each .po file to produce updated .po files. Finally those .po files are exported to .msg files, that have a format easily readable by ejabberd.