1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- Localizing themes with Jinja2
- 1. Localize templates
- To enable the |ext| extension in your templates, you must add it to
- *JINJA_EXTENSIONS* in your Pelican configuration::
- JINJA_EXTENSIONS = ['jinja2.ext.i18n', ...]
- Then follow the `Jinja2 templating documentation for the I18N plugin <http://jinja.pocoo.org/docs/templates/
- .. |ext| replace:: ``jinja2.ext.i18n``
- 2. Specify translations location
- The |ext| extension uses the `Python gettext library <http://docs.python.org/library/gettext.html>`_ for translating strings.
- In your Pelican config you can give the path in which to look for translations in the *I18N_GETTEXT_LOCALEDIR* variable. If not given, it is assumed to be the ``translations`` subfolder in the top folder of the theme specified by *THEME*.
- The domain of the translations (the name of each translation file is ``domain.mo``) is controlled by the *I18N_GETTEXT_DOMAIN* config variable (defaults to ``messages``).
- Example
- .......
- With the following in your Pelican settings file::
- I18N_GETTEXT_LOCALEDIR = 'some/path/'
- I18N_GETTEXT_DOMAIN = 'my_domain'
- … the translation for language 'cz' will be expected to be in ``some/path/cz/LC_MESSAGES/my_domain.mo``
- 3. Extract translatable strings and translate them
- There are many ways to extract translatable strings and create ``gettext`` compatible translations. You can create the ``*.mo`` files yourself, or you can use some helper tool as described in `the Python gettext library tutorial <http://docs.python.org/library/gettext.html
- Recommended tool: babel
- .......................
- `Babel <http://babel.pocoo.org/>`_ makes it easy to extract translatable strings from the localized Jinja2 templates and assists with creating translations as documented in this `Jinja2-Babel tutorial <http://pythonhosted.org/Flask-Babel/
- .. [
|