How enable i18n support for a Sphinx theme custom?

7 views
Skip to first unread message

Leonardo Caballero

unread,
Apr 19, 2018, 10:52:49 AM4/19/18
to sphin...@googlegroups.com
Hi guys

How enable i18n support for a Sphinx theme custom, for example sphinx_rtd_theme package? 


This package is "basic" theme based built-in inside Sphinx package.

If I understand:
- Babel package is used for managment gettext format files.
- Jinja2 package is used for the HTML templates and with his i18n extension called "jinja2.ext.i18n" is needed for load the locales files created by Babel package.

Then exists any helper classes for to instances in my "sphinx_rtd_theme" package and loading my locales files translated?.

I am checking the Sphinx source code, I found that "jinja2.ext.i18n" is setting on some files:



When the "jinja2.ext.i18n" is setting you can use the "install_gettext_translations" for installs a translation globally for that environment, 

Then the "template.py" and "jinja2glue.py" modules are using the implementation for "install_gettext_translations" but I don't what is the correct way for load my "locale" files.

Any idea how extends the locale files loader mechanise for "sphinx_rtd_theme" package?

In this moment, just it is loaded the locales inherit from sphinx theme called "basic" built-in the Sphinx package, then I believe the problem is Jinja2 engine don't load the my "locale" directory from my "sphinx_rtd_theme" repository forked.

P.D.: I create an example simple for how using the Babel and Jinja2 packages into Python programs are available, check out the following repository: https://github.com/macagua/python_i18n_babel_jinja2

-- 
Sincerily

Ing. Leonardo  J. Caballero G.
Linux Counter ID = https://linuxcounter.net/user/369081.html

Takayuki Shimizukawa

unread,
Apr 30, 2018, 9:26:55 AM4/30/18
to sphin...@googlegroups.com
Hi,

I think `add_message_catalog` API will serve your purpose.
However the API is provided since sphinx-1.8 (in development).

With using sphinx-1.8(repository master), please write the setup function of sphinx_rtd_theme as bellow::

    def setup(app):
        app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__)))

        rtd_locale_path = path.join(path.abspath(path.dirname(__file__)), 'locale')

        # for sphinx-1.8 or later
        app.add_message_catalog('sphinx', rtd_locale_path)

and `conf.py` of documentation must have::

    extensions = [
        'sphinx_rtd_theme',
    ]
    language = 'es'
    html_theme = 'sphinx_rtd_theme'

Regards,
--
Takayuki Shimizukawa



--
You received this message because you are subscribed to the Google Groups "sphinx-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sphinx-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Leonardo Caballero

unread,
May 1, 2018, 10:08:44 AM5/1/18
to sphin...@googlegroups.com
Hi Takayuki

That work for me :D

Really thanks you!

To unsubscribe from this group and stop receiving emails from it, send an email to sphinx-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "sphinx-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sphinx-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Atentamente
Reply all
Reply to author
Forward
0 new messages