On this page French (fr) is used for examples. However, it can be replaced with other languages codes. So, be sure to change the /fr suffixes in this guide to the language you are translating!

To see which languages are currently available, you can check the online interface, or browse the underlying git repository.

Simple Contribution

The preferred way to contribute to the translation effor is the use the web-based interface, currently a Weblate instance.

Simple enhancement suggestions can be contributed by any user, even without loging in. Suggestions will be reviewed by the translating team before they get published.

Weblate also comes with new helping tools to improve coherance of translations, like the glossary.

Advanced Operations

If for some reasons the web-based translation interface does not work well for you, you can still download PO file from it, and upload back it later.


You will have to deal with potential conflicts yourself if some update happened in the mean time. Direct commit to the git repository for translations is not possible anymore.


There is a known issue with the current tool behind the web interface, which will make heavy processing like upload and integration of a PO file take several minutes, with the web page staying in refresh mode for the whole time. If it takes more than ten minutes, it will even apparently fail with a server timeout error message. There is usually no actual problem though, so no need to re-try uploading the PO file then, refreshing the page after a few minutes should be enough to see the contribution in the web interface.


First of all, it is assumed that you have the manual already building. If you have not done this already go back too the Getting Started section.


Language Files

From the directory containing your checkout of the manual run:

make checkout_locale

You will be prompted to type in the language folder you want to download. In the case of this example we will use fr. Pressing Return will confirm this selection.

It will take a few minutes to download but once complete it will create a locale/fr subdirectory.

You should have a directory layout like this:

   |- locale/
   |  |- fr/
   |  |  |- LC_MESSAGES/
   |- manual/


When running Git from the command line (such as updating), you will need to change directory to locale first rather than the blender-manual directory.

The PO language files themselves can also be downloaded from the web interface, Files menu, on each dedicated language page of the Manual comnponent.

A PO Editor

To make edit the PO files you will need to install a PO editor. We recommend that you use Poedit, however any PO editor will do.


For Linux users, you will have to check with your distribution’s software center for a version of Poedit. This editor is only a recommendation. There are others, such as Kate and Kwrite, that could offer syntax highlighting and basic tools for text editing, e.g. letter case transposes. Other platforms can use some text editors supporting the syntax highlighting for PO files, or allowing you to create a custom one (such as Notepad++ on Windows).

Building with Translations


Now you can build the manual with the translation applied:

On Linux and macOS run:

make -e BF_LANG=fr

On Windows run:

set BF_LANG=fr
make html

Now you will have a build of the manual with translations applied.

Editing Translation Files

Now you can edit the PO translation files, in the LC_MESSAGES folder you have two files:

  • blender_manual.po – This is the main translation file that you will be editing.

  • sphinx.po – This translation file is much smaller and contains translations for the website theme.

To edit these files open them up in your translation editor, i.e. Poedit. Once in your editor you will see a list of texts, each of these items represent some part of the user manual. You may need to adjust your editor to sort the list in a way that makes sense for example “by source”.

You can now select an untranslated string and your editor will have an input box to add the translation. The modified .po files can now be submitted back to the web-based interface.


Make sure that you Building with Translations to catch any syntax errors you may make while translating. These errors will be displayed as warnings while building the manual.


Keeping Track of Fuzzy Strings

When the manual is updated, those translations which are outdated will be marked as fuzzy. To keep track with that, you can use a tool we created for that task.

You can do this by running:

make report_po_progress

This will only give a quick summary however, you can get more information by running:

python tools/translations/ locale/fr/

You should get a list of all the files with information about the number of empty and fuzzy strings. For more options see:

python tools/translations/ --help

Updating PO Files

As the original manual changes, the templates will need updating. Note, doing this is not required, as administrator usually update the files for all languages at once. This allows all languages to be on the same version of the manual. However, if you need to update the files yourself, it can be done as follows:

make update_po

The updated templates can then be committed to the repository.

See also

A guide how to add a new language can be found in the Adding a Language.