Using Flask-Babel, we generate catalogues by first extracting strings from the application. Strings from templates and from code which uses “gettext” will be extracted into a .pot file which we then fill in translations for.
pybabel extract -F babel.cfg -o messages.pot hubgrep
MANUALLY fill in translation texts in empty “msgstr” fields in the
Update existing localization file or init a new one (if the lang doesn’t previously exist in `/hubgrep/translations):
YOUR_LANGwill be matched against language codes as recieved from Accept-Language in request headers. These should resolve to defaults if specific header lang is not found; example
de-DEshould still use the
detranslation if not found. Finally, strings from code and templates are used as a last default.
pybabel init -l [YOUR_LANG] -i messages.pot -d hubgrep/translations - OR - pybabel update -i messages.pot -d hubgrep/translations
Lastly, compile the localization file for usage:
pybabel compile -d hubgrep/translations -l [YOUR_LANG]
Strings should now be replaced by the appropriate locale variant when rendered.