[olso][pbr][i18n] Using setup.cfg [files] data_files to install localization files

Akihiro Motoki amotoki at gmail.com
Thu Nov 28 06:30:37 UTC 2019


It seems you need to break down the thing into two parts:
(1) Installing po files
(2) Compiling po files into .mo files

In my understanding, python setup.py (or more preferably pip install)
handles only (1).
(2) is not covered by the python package installation process and you need to
compile mo files manually if you use pip to install OpenStack python packages.

gettext (used under oslo_i18n.get_available_languages) only looks for mo files.
That's the reason get_available_languages() did not detect languages
other than en_US.

In case of horizon, po files are compiled explicitly during devstack stack.sh.
Most distro packages generate mo files during package creation or
package installation.

If you would like to enable translations in OpenStack services,
I believe you need to compile po files into mo files.

Akihiro

On Wed, Nov 27, 2019 at 2:27 AM info at dantalion.nl <info at dantalion.nl> wrote:
>
> Hello,
>
>   I don't think we need to specify them in setup.cfg.
>   Am I missing something?
>
> I thought so to but I recently checked on Watcher and noticed that executing
> 'python setup.py install' does not build + move the .mo files into the required locale
> directories. I proceeded to test on other OpenStack projects and saw the same behavior.
>
> This was verified by listing the available languages with:
> `oslo_i18n.get_available_languages(DOMAIN)` which than only returns
> `['en_US']`
>
> Maybe `python setup.py install` is not the correct command to do this?
>
> Kind regards.
> Corne Lukken
>
> On 26-11-19 16:47, Akihiro Motoki wrote:
> > Hi,
> >
> > I think localization files are automatically included in a python
> > package even if setup.cfg has no explicit entry.
> >
> > Here is an example of the case of the horizon repository:
> > http://paste.openstack.org/show/786732/
> > I can see localized files after installing a horizon wheel package
> > into a virtualenv.
> >
> >> 1: Including the locale files as part of a package for the target
> >> systems package manager (pacman, yum, apt, etc).
> > These package managers just do the similar thing in a different way.
> >
> >> 2: adding the locale files to the [files] directive in setup.cfg:
> > I don't think we need to specify them in setup.cfg.
> > Am I missing something?
> >
> > Thanks,
> > Akihiro Motoki (amotoki)
> >
> > On Tue, Nov 26, 2019 at 12:17 AM info at dantalion.nl <info at dantalion.nl> wrote:
> >> Hello everyone :),
> >>
> >> I was wondering what the preferred method to install localization files
> >> is. I can think of some probably solutions such as:
> >>
> >> 1: Including the locale files as part of a package for the target
> >> systems package manager (pacman, yum, apt, etc).
> >> 2: adding the locale files to the [files] directive in setup.cfg:
> >>
> >> I hope someone can answer my question.
> >>
> >> Kind regards,
> >> Corne Lukken
> >>
>



More information about the openstack-discuss mailing list