This package contains message catalog extractors for the following formats, extending Babel so it can handle them.
-
The new XML format used by Glade 3.8 and above, properly known as the GtkBuilder UI Definitions format;
-
The older "GladeXML" format used by libglade and older versions of Glade;
-
The GNOME AppData XML dialect, because it's similar;
-
FreeDesktop.org Desktop Entry files.
To make these formats translatable, install this package using pip:
pip3 install BabelGladeExtractor
Then in your own projects, map some source and data files to the simple
extractor names "glade" and "desktop" that are provided by this package.
In your setup.py
, add a section like
[extract_messages]
mapping_file = babel.cfg
output_file = subdir/myproject.pot
input_dirs = .
Next, create a separate babel.cfg
file, and add sections to it for
each format you want to translate.
[glade: **.ui]
[desktop: **.desktop]
You can then use Babel's setuptools integration or its command line interface for your routine i18n lifecycle tasks.
python3 setup.py extract_messages
There's a lot more to it than this, naturally. See Babel's extensive Working with Message Catalogs documentation for a detailed explanation of how to get translatable strings into your Python code.
In Glade 3.22, when you are editing a string property in a sidebar, click the edit icon on the right hand side of the text entry. In the dialog that pops up, enter the text in the main text box, and make sure that the Translatable checkbox is ticked. You can also add some helpful context or comments for your translators if you need to give them a hint. BabelGladeExtractor will handle the corresponding XML attributes appropriately when it extracts strings for translation.