Translations#

Installation#

Do generate the mo files, you need to install the gettext utilities. On Ubuntu or Debian systems, this can be done using the following command:

sudo apt install gettext

Generate translations#

Go to the dibisoplot directory before running the following command.

Step 1: Extract Translatable Strings#

Use the xgettext utility to extract strings from your Python script and generate a .pot (Portable Object Template) file.

To generate the .pot file from the Biso class, run:

xgettext --output=locales/dibisoplot.pot --language=Python --keyword=_ --from-code=UTF-8 biso/biso.py

This command will create a .pot file in the locales directory with all the strings that need translation.

Step 2: Create and Edit Translation Files#

For each language you want to support, you’ll create a .po file from the .pot template. For example, to add French translations:

mkdir -p locales/fr/LC_MESSAGES
cp locales/dibisoplot.pot locales/fr/LC_MESSAGES/dibisoplot.po

Now, open locales/fr/LC_MESSAGES/dibisoplot.po in a text editor and add the translations. Here is an example of what the content might look like after translation:

msgid "Hello!"
msgstr "Bonjour!"

msgid "This is a translatable string."
msgstr "Ce message est une chaîne traduisible."

Step 3: Compile the Translation Files#

Once the translations are added to the .po file, compile it into a .mo file (Machine Object file) using msgfmt:

msgfmt locales/fr/LC_MESSAGES/dibisoplot.po -o locales/fr/LC_MESSAGES/dibisoplot.mo

The .mo file is what gettext will use at runtime to perform the translations.

Update translations#

To update the translations, you can use the msgmerge command to merge the latest changes from the .pot file into the .po file. First, follow the step 1 to recreate the .pot file. Then, run the following command to update the .po file:

msgmerge --update locales/fr/LC_MESSAGES/dibisoplot.po locales/dibisoplot.pot

Then follow the step 3 to compile the .po file into a .mo file.