Warehouse: Define translation workflow / policy

Created on 13 Sep 2019  路  11Comments  路  Source: pypa/warehouse

We need to answer the following questions:

  1. What happens with translations when we update the (English) source?
  2. When do we consider a language to be 'supported' and link to it from the PyPI footer?
  3. What happens if a language is no longer maintained?

My 2c:

Updating English source

First, we need to reach out to the community to register maintainers for each language.
When we update the UI copy:

  1. The change is merged as normal
  2. The UI falls back to the original English
  3. We notify translators via Weblate that a new translation is required

Note: In some cases (e.g. fixing typos, formatting) translators may be able to use the translation memory to reduce the maintenance burden

When do we consider a language 'supported'?

If 90% (???) of strings are translated, we should link to it from the PyPI footer.

What happens if a language is no longer maintained?

We remove it from the PyPI footer if it falls below 90% (???) coverage

i18n needs discussion

Most helpful comment

I recently almost translated the entire website into French. Now this is appearing online, but I noticed that certain strings were missing. Will you add them later?

I'm thinking about elements in the footer, the Sponsors and Terms of use pages.

All 11 comments

Note, once this workflow is decided, we should document it in the Warehouse docs. I have added a basic translations page in https://github.com/pypa/warehouse/pull/6681.

I'm happy with all these policy decisions @nlhkabu - @ewdurbin you have any objections?

@ewdurbin will "spend some time late this week trying to figure out the best way for us to handle building translation files from source" per conversation in IRC just now. That might include some updates to #6749 to document the process.

So I've tried out Weblate and there's one thing I see missing which is the ability to create variants of phrases depending on the number/gender for languages that use declension for this.
I suppose that the way to go is to use poEdit app locally instead and then send PRs. But how does that integrate back into the Weblate UI?

(Ref: https://twitter.com/webKnjaZ/status/1181495636946014208)

But Weblate is just gettext; in its side it _does_ allow for plural forms according to the language.

Alright, I've seen just one string with multiple versions depending on the number there. Which means that the string source should be fixed to properly mark such places.

@webknjaz - sounds like this justifies it's own ticket.

Would you be able to open a new issue to explain the problem? Please use the 'translation' issue type.

Thanks

I recently almost translated the entire website into French. Now this is appearing online, but I noticed that certain strings were missing. Will you add them later?

I'm thinking about elements in the footer, the Sponsors and Terms of use pages.

This issue is the last one we need to resolve before we can finish the milestone and make an announcement; @yeraydiazdiaz perhaps you'd like to take over?

To make a more explicit checklist, I think we should probably do the following:

  • [ ] Add the following to the Development guide,

    • [ ] brief explanation describing at a minimum what contributors need to do if they make a change that modifies or creates translated strings (i.e. to avoid confusion like in #7243)

    • [ ] link to the Translations doc for additional details

  • [ ] Add the following to the Translations doc

    • [ ] Examples of how to write translated strings (including plurals, in templates, etc)

    • [ ] A description of the various translation files (.mo, .po, .pot), who edits them and when they are edited

    • [ ] A description of the various Makefile commands available, who should run them and when they should be run

    • [ ] In-depth explanation of the translation workflow (explain the Weblate bot, etc)

    • [ ] An explanation why translated strings might be missing (they haven't been translated yet, we haven't compiled new translations yet, etc)

    • [ ] How to manage the Weblate bot (basically that it's PRs should just be merged relatively frequently, and it's ok to merge in changes that include translations in languages we don't support, since we'd have to explicitly enable those locales)

To address @nlhkabu's original questions with some hindsight:

What happens with translations when we update the (English) source?

The translations doc and the development guide should address this when we close this issue

When do we consider a language to be 'supported' and link to it from the PyPI footer?

Per the current translations doc, we do this once a language hits 100% translated strings.

What happens if a language is no longer maintained?

I think we can probably punt on this for now. To date, I don't believe any of the languages we have added so far have dropped below 99% translated.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

gcochard picture gcochard  路  3Comments

ewjoachim picture ewjoachim  路  3Comments

hartwork picture hartwork  路  4Comments

toddrme2178 picture toddrme2178  路  3Comments

nlhkabu picture nlhkabu  路  4Comments