[OpenStack-Infra] Translation setup challenges

Andreas Jaeger aj at suse.com
Wed Dec 30 19:03:10 UTC 2015


On 12/30/2015 07:22 PM, Akihiro Motoki wrote:
> Thanks for initiating this effort.
>
> 2015-12-29 6:28 GMT+09:00 Andreas Jaeger <aj at suse.com>:
>> Reading some IRC backlog and an incoming review with a new suggestion on how
>> to do translations in the project, I decided to write some problems our
>> current scripts have, together with questions and proposals. With the
>> growing big tent and the automatic way to setup translations, we get more
>> repos requesting translations - and more support requests.
>>
>> Please read the description below and tell me what's wrong,what's missing,
>> where you disagree - and how to move forward.
>>
>> thanks,
>> Andreas
>>
>> Setting up translations for new projects currently has the following
>> challenges:
>>
>> a) For "python" repositories, we expect that the locale file is
>>     located at $repo/locale/$repo.pot - without any change possible.
>>     This leads to python-novaclient/locale/python-novaclient.pot and
>>     oslo.log/locale/oslo.log.i18n - in both cases the python module has
>>     a different name, novaclient and oslo_log.
>>
>>     Currently everybody makes it wrong and we have to help them using
>>     the proper file names.
>>
>>     Proposal:
>>     * Simplify location to use $modulename/locale/$modulename
>>       Can we determine modulename easily from the name in setup.cfg like
>>       in jenkins/scripts/pypi-extract-name.py?
>
> IMO it is better to keep a domain name. The domain name means a filename.
> The domain name is specified in oslo.i18n wrapper and setup.cfg.
> Changing the directory name helps a lot, but changing the basename helps little.
> My proposal is $modulename/locale/$reponame, but either of them is okay to me.

Isn't the domainname the same as modulename? I just checked 
python-novaclient and it uses as domainname novaclient.

>> b) For dashboard repos, there's no common entry point yet and some are
>>     even setup like "python" repositories (designate-dashboard).
>
> It is a good idea to add some common entry point (tox target).
>
>>     There's also no naming pattern on how to name files and everybody
>>     does it differently.
>>
>>     Currently the django component is called djangjo.pot, the
>>     javascript one djangojs.pot.
>>
>>     Question: Do we really need to do it this way or can we change it?
>>
>>     We should have a single entrypoint for projects and a standard way
>>     to call them.
>>
>>     Proposal: Define standard tox environement "extractmessages", it
>>     places translation files in (if django/djangojs are really the best
>>     names, I prefer to change them):
>>     * $modulename/locale/django.pot
>>     * $modulename/locale/djangojs.pot
>>
>>     Can we determine modulename easily from the name in setup.cfg like
>>     in jenkins/scripts/pypi-extract-name.py? At least
>>     django_openstack_auth is setup differently..
>
> As far as I know it is not easy to change.
> Looking at https://docs.djangoproject.com/en/1.9/topics/i18n/translation/#specialties-of-django-translation,
> The django framework expects django and djangojs as a domain name.
>
> Message catalogs should be placed in 'locale' directory under each
> django application path,
> i.e. $modulename/locale/. It works most dashboard repository, but
> 'horizon' repo is special.
> Horizon repo uses two django applications, openstack_dashboard and
> horizon and this means
> we need horizon/locale and openstack_dashboard/locale.
> If we forces $modulename/locale/, it breaks Horizon implementation.

Ok, we need to make an exception here. Let me update my draft spec for this.

> # Horizon team explored to split openstack_dashboard and horizon, but
> there seems no much value
> # at the moment and the effort is now stopped (or abandoned).
>
>> c) Projects currently need to add the pot file initially, our scripts
>>     fail if the directory does not exist.
>>
>>     Proposal: Make scripts robust so that they work even without
>>     initial pot file.
>
> It sounds a good idea.
> If 'translate' tag is specified in project-config/gerrit/projects.yaml,
> it would be nice that POT file is generated automatically.

Exactly.

thanks for your comments,

Andreas
-- 
  Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
   SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
    GF: Felix Imendörffer, Jane Smithard, Graham Norton,
        HRB 21284 (AG Nürnberg)
     GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126




More information about the OpenStack-Infra mailing list