-
-
Notifications
You must be signed in to change notification settings - Fork 869
Update translations/coordinating.rst
#1587
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
af9fcbc
9b7cbd2
9992fe7
538d9e6
9960fd3
acdfd0a
04d3761
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -3,79 +3,214 @@ Coordinating | |||||||||||||||||||||||||||||||||||
============ | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Information about the Python documentation translation processes is | ||||||||||||||||||||||||||||||||||||
found in this devguide and :PEP:`545`. | ||||||||||||||||||||||||||||||||||||
Translations are built by `docsbuild-scripts | ||||||||||||||||||||||||||||||||||||
<https://github.com/python/docsbuild-scripts/>`__ and hosted on | ||||||||||||||||||||||||||||||||||||
docs.python.org. Translations | ||||||||||||||||||||||||||||||||||||
are overseen by the `Editorial Board <EB_>`_ | ||||||||||||||||||||||||||||||||||||
found on this page and in :PEP:`545`. Translations are overseen by the | ||||||||||||||||||||||||||||||||||||
`Editorial Board <EB_>`_. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
.. _translation-help: | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Communication/help channels | ||||||||||||||||||||||||||||||||||||
=========================== | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Discussions about translations occur on the Python Docs Discord | ||||||||||||||||||||||||||||||||||||
`#translations channel <https://discord.gg/h3qDwgyzga>`_, `translation | ||||||||||||||||||||||||||||||||||||
mailing list <translation_ml_>`_, and the | ||||||||||||||||||||||||||||||||||||
`translations category <trans_disc_>`_ of the Python Discourse. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
For administrative issues, ping ``@python/editorial-board``. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Starting a new translation | ||||||||||||||||||||||||||||||||||||
========================== | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
First subscribe to the `translation mailing list <translation_ml_>`_, | ||||||||||||||||||||||||||||||||||||
and introduce yourself and the translation you're starting. | ||||||||||||||||||||||||||||||||||||
Coordination is not a one-off task, it is a long-term commitment. Before | ||||||||||||||||||||||||||||||||||||
you start your translation, carefully consider if you will be able to commit | ||||||||||||||||||||||||||||||||||||
to this. | ||||||||||||||||||||||||||||||||||||
Every coordinator should be familiar with translating: see :ref:`translating`. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
The following sections will guide you through setting up your translation. | ||||||||||||||||||||||||||||||||||||
If you have any questions or need help, ask in one of the | ||||||||||||||||||||||||||||||||||||
:ref:`help channels <translation-help>`. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Announcement | ||||||||||||||||||||||||||||||||||||
------------ | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Post an announcement introducing yourself and the translation you're | ||||||||||||||||||||||||||||||||||||
starting on `Discourse <trans_disc>`_. Also join the other communication | ||||||||||||||||||||||||||||||||||||
channels, if possible. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Coordination team | ||||||||||||||||||||||||||||||||||||
----------------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Each translation team will decide on the number of coordinators. | ||||||||||||||||||||||||||||||||||||
While initially one person is fine, we recommend expanding to having two or | ||||||||||||||||||||||||||||||||||||
three coordinators. You can find more on choosing coordinators in the FAQ below. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
.. XXX move stuff from the FAQ? | ||||||||||||||||||||||||||||||||||||
Then you can bootstrap your new translation by using the `cookiecutter | ||||||||||||||||||||||||||||||||||||
Translation team | ||||||||||||||||||||||||||||||||||||
---------------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
.. figure:: translator-workload.svg | ||||||||||||||||||||||||||||||||||||
:class: invert-in-dark-mode | ||||||||||||||||||||||||||||||||||||
:align: center | ||||||||||||||||||||||||||||||||||||
:alt: An exaggerated chart showing that individual translator workload | ||||||||||||||||||||||||||||||||||||
decreases with the amount of translators. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Comment on lines
+56
to
+61
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure we need an image to explain the concept of "translating is easier if there are more people to do it" (and after a certain point it might get more difficult again if there are too many translators to coordinate). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I added it for emphasis, but if the general consensus is against it I am happy to remove it. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think I personally like the figure, a bit of exaggeration here may be suggestive, to motivate to form a team. I think I remember Julien writing on some mailing list, that for one person translating whole documentation is a work for 40 years, or similar? I would add arrows on the axes, to express the direction of growth, as there's no scale. And change Translators to Number of translators? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Per this article, a professional translator can do 400-600 words per hour, so let's assume we can do 400 w/h. Let's also assume you can dedicate an hour each day (every day) to translating. The total translatable word-count is currently 1,606,150. That means it would take ~4015 days to translate, which is actually exactly 11 years. (And so, realistically it would take ∞ because most people would get demotivated after the third year of monotonous translation...) But, this estimate does not take into account the fact that your translations are constantly being invalidated. I like the arrows idea:-) |
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Gather people to help you translate. You can't do it alone. | ||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||
Update :ref:`this table <translation-coordinators>` via a PR to make | ||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||
your translation easier to find. In the entry you can also include links to | ||||||||||||||||||||||||||||||||||||
guides or other resources for translators. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Repository | ||||||||||||||||||||||||||||||||||||
---------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
To start your translation create a GitHub repository, under any | ||||||||||||||||||||||||||||||||||||
account, with the correct Git hierarchy and folder structure. This can be done | ||||||||||||||||||||||||||||||||||||
in several ways, and will dictate the translation process you use. | ||||||||||||||||||||||||||||||||||||
StanFromIreland marked this conversation as resolved.
Show resolved
Hide resolved
Comment on lines
+73
to
+74
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
I don't think that the way of spawning the file structure really dictates you the flow. Only when you start translation in a given flow, then you are dependent. In case of translation platform, not to lose translators work, or not to override with empty data. |
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Each translation is assigned an appropriate lowercase | ||||||||||||||||||||||||||||||||||||
`IETF language tag <https://datatracker.ietf.org/doc/html/rfc5646.html>`_. | ||||||||||||||||||||||||||||||||||||
The tag may have an optional region subtag, joined with a dash. | ||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
the subtag doesn't need to be related to a region, it may be for a script variants (e.g. zh-hant and zh-hans that are used in Django docs translations) |
||||||||||||||||||||||||||||||||||||
For example, ``pt`` (Portuguese) or ``pt-br`` (Brazilian Portuguese). | ||||||||||||||||||||||||||||||||||||
The repository name is then: ``python-docs-TAG`` | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
The name of each branch should be the Python version it holds translations | ||||||||||||||||||||||||||||||||||||
for, for example, ``3.14``. The files should be structured like the source files | ||||||||||||||||||||||||||||||||||||
in `CPython/Doc <https://github.com/python/cpython/tree/main/Doc>`_. | ||||||||||||||||||||||||||||||||||||
A correctly set up repository looks like this: | ||||||||||||||||||||||||||||||||||||
`python-docs-pl <https://github.com/python/python-docs-pl/>`_ | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Cookiecutter/bootstrapper | ||||||||||||||||||||||||||||||||||||
~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||||||||||||||||||||||||||||||||
Comment on lines
+89
to
+90
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd make this and Translations platform / Transifex sections have the same level as Repository |
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
You can bootstrap your new translation by using the `cookiecutter | ||||||||||||||||||||||||||||||||||||
<https://github.com/python-docs-translations/python-docs-cookiecutter>`__ or | ||||||||||||||||||||||||||||||||||||
`bootstrapper <https://github.com/python-docs-translations/python-docs-bootstrapper>`__. | ||||||||||||||||||||||||||||||||||||
You can also start your translation using `Transifex <https://explore.transifex.com/python-doc/python-newest/>`_ | ||||||||||||||||||||||||||||||||||||
following this `guide <https://python-docs-transifex-automation.readthedocs.io/commands.html>`_. | ||||||||||||||||||||||||||||||||||||
The repository can then be used with a pull-request based translation process. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
The important steps look like this: | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
- Create the GitHub repo (any account) with the correct hierarchy by using one | ||||||||||||||||||||||||||||||||||||
of the bootstrappers or Transifex. | ||||||||||||||||||||||||||||||||||||
- Gather people to help you translate. You can't do it alone. | ||||||||||||||||||||||||||||||||||||
- You can use any tool to translate, as long as you can synchronize with Git. | ||||||||||||||||||||||||||||||||||||
Some use Transifex, and some use only GitHub. You can choose another | ||||||||||||||||||||||||||||||||||||
way if you like; it's up to you. | ||||||||||||||||||||||||||||||||||||
- Update :doc:`this page <translating>` to reflect your work and progress, either via a | ||||||||||||||||||||||||||||||||||||
PR or by asking on the `translation mailing list <translation_ml_>`_. | ||||||||||||||||||||||||||||||||||||
- When ``bugs``, ``tutorial``, and ``library/functions`` are 100% | ||||||||||||||||||||||||||||||||||||
completed, ask on the `translation mailing list <translation_ml_>`_ for | ||||||||||||||||||||||||||||||||||||
your language to be added in the language switcher on docs.python.org. | ||||||||||||||||||||||||||||||||||||
Transifex | ||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
for better permalinks, I wouldn't use a brand name for the section name, for a case of switching the platform in the future |
||||||||||||||||||||||||||||||||||||
~~~~~~~~~ | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
You can also start your translation using | ||||||||||||||||||||||||||||||||||||
`Transifex <https://explore.transifex.com/python-doc/python-newest/>`_. | ||||||||||||||||||||||||||||||||||||
This will automate updating translations, and will allow you to translate via | ||||||||||||||||||||||||||||||||||||
the web interface. | ||||||||||||||||||||||||||||||||||||
Comment on lines
+103
to
+104
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
suggestion: the source files updates require some maintenance |
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
How to get help | ||||||||||||||||||||||||||||||||||||
=============== | ||||||||||||||||||||||||||||||||||||
This is best done with a workflow that periodically checks for translations, | ||||||||||||||||||||||||||||||||||||
a sample one with instructions can be found in the | ||||||||||||||||||||||||||||||||||||
`python-docs-tx-automations documentation <https://python-docs-transifex-automation.readthedocs.io/workflows.html>`__. | ||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. by the way, could we consider putting the example workflows into the bootstrapper/cookiecutter? the linting could be shared, the Transifex pull could be optional there, but documented |
||||||||||||||||||||||||||||||||||||
An in depth guide for manually doing this can also be found | ||||||||||||||||||||||||||||||||||||
python-docs-tx-automations documentation's | ||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||
`commands page <https://python-docs-transifex-automation.readthedocs.io/commands.html>`__. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
To be added as the coordinator(s) on Transifex for your language, open an issue | ||||||||||||||||||||||||||||||||||||
in the `tracker <https://github.com/python-docs-translations/transifex-automations/issues>`__. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Discussions about translations occur on the Python Docs Discord | ||||||||||||||||||||||||||||||||||||
`#translations channel <https://discord.gg/h3qDwgyzga>`_, `translation | ||||||||||||||||||||||||||||||||||||
mailing list <translation_ml_>`_, and the | ||||||||||||||||||||||||||||||||||||
`translations category <https://discuss.python.org/c/documentation/translations/>`_ | ||||||||||||||||||||||||||||||||||||
of the Python Discourse. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Others | ||||||||||||||||||||||||||||||||||||
~~~~~~ | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
You can choose another way if you like; it’s up to you. Getting it right from | ||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are there reasons to choose other ways? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Preference, e.g. some people object to using TX on the principle that it is not open source (anymore). The French translation, for example, uses a different platform for Git hosting. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I agree with @ezio-melotti that this section doesn't bring much value. Also cookiecutter and bootstrapper rather don't dictate you the flow, just help to bootstrap. And also we'd rather prefer to keep the flows quite uniform, to leverage good practices, and simplify for better discovery. Maybe instead we could write a sentence at the end of Repository section that the structure is only formally required thing, and others are up to the translation team, as a short introduction to Cookiecutter/Translation platform sections? |
||||||||||||||||||||||||||||||||||||
the start will prevent complications in the future when your translation | ||||||||||||||||||||||||||||||||||||
is built. If complications do occur more information about them can be found | ||||||||||||||||||||||||||||||||||||
in the FAQ section on this page. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Glossary | ||||||||||||||||||||||||||||||||||||
-------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Each translation team should have a way to store translations of terms to ensure | ||||||||||||||||||||||||||||||||||||
consistency. This is often done with a glossary. More information about the use | ||||||||||||||||||||||||||||||||||||
of glossaries can be found in the :ref:`translation-style-guide`. | ||||||||||||||||||||||||||||||||||||
Comment on lines
+129
to
+131
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Spanish translation doesn't have a glossary as far as I'm concerned. |
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Moving the repo to the ``python`` org | ||||||||||||||||||||||||||||||||||||
------------------------------------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
This will allow you to plug your translation into docsbuild-scripts_, and it | ||||||||||||||||||||||||||||||||||||
StanFromIreland marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||
will be found at ``docs.python.org/LANG/``, but not in the switcher. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
This will be done XXX | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
.. XXX When ...? Discussion needed... | ||||||||||||||||||||||||||||||||||||
.. My idea: Time based, e.g. 2 months of activity, showing that they aren't going anywhere | ||||||||||||||||||||||||||||||||||||
Comment on lines
+137
to
+143
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. EB It would be nice to note something here. |
||||||||||||||||||||||||||||||||||||
Adding to the language switcher | ||||||||||||||||||||||||||||||||||||
------------------------------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
.. XXX https://github.com/python/devguide/issues/1586 | ||||||||||||||||||||||||||||||||||||
Once the following resources have been fully translated on the XXX branch: | ||||||||||||||||||||||||||||||||||||
Comment on lines
+148
to
+150
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I guess these XXX requires closing that issue before merging this? Alternatively, you could use a text that doesn't mention which branch, and leave the branch requirement for another PR. |
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
- ``bugs.po``, with proper links to the language repository issue tracker | ||||||||||||||||||||||||||||||||||||
- all files in the ``tutorial/`` folder | ||||||||||||||||||||||||||||||||||||
- ``library/functions.po``, the page documenting builtins | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
The translation can be added to the language switcher. This can be done with a | ||||||||||||||||||||||||||||||||||||
pull request to docsbuild-scripts_, like `this commit <https://github.com/python/docsbuild-scripts/commit/e4a8aff9772738a63d0945042777d18c3d926930>`__ | ||||||||||||||||||||||||||||||||||||
if your translation was previously built but not in the switcher, or like | ||||||||||||||||||||||||||||||||||||
`this commit <https://github.com/python/docsbuild-scripts/commit/a601ce67c6c2f3be7fde3376d3e5d3851f19950b>`__ | ||||||||||||||||||||||||||||||||||||
if this is it's initial addition. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
PEP 545 summary | ||||||||||||||||||||||||||||||||||||
=============== | ||||||||||||||||||||||||||||||||||||
StanFromIreland marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Here are the essential points of :PEP:`545`: | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
- Each translation is assigned an appropriate lowercased language tag, | ||||||||||||||||||||||||||||||||||||
with an optional region subtag, and joined with a dash, like | ||||||||||||||||||||||||||||||||||||
``pt-br`` or ``fr``. | ||||||||||||||||||||||||||||||||||||
- Each translation is assigned an appropriate lowercase | ||||||||||||||||||||||||||||||||||||
`IETF language tag <https://datatracker.ietf.org/doc/html/rfc5646.html>`_. | ||||||||||||||||||||||||||||||||||||
The tag may have an optional region subtag, joined with a dash. | ||||||||||||||||||||||||||||||||||||
For example, ``pt`` (Portuguese) or ``pt-br`` (Brazilian Portuguese). | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
- Each translation is under CC0 and is marked as such in the README. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
- Translation files are hosted in repositories under the Python org: | ||||||||||||||||||||||||||||||||||||
``https://github.com/python/python-docs-{LANGUAGE_TAG}`` | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
- Each translation is under CC0 and marked as such in the README (as in | ||||||||||||||||||||||||||||||||||||
the cookiecutter). | ||||||||||||||||||||||||||||||||||||
- Translations having completed ``bugs``, ``tutorial/`` | ||||||||||||||||||||||||||||||||||||
and ``library/functions`` are added to the language switcher. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
- Translation files are hosted on | ||||||||||||||||||||||||||||||||||||
``https://github.com/python/python-docs-{LANGUAGE_TAG}`` (not | ||||||||||||||||||||||||||||||||||||
mandatory to start a translation, but mandatory to land on | ||||||||||||||||||||||||||||||||||||
``docs.python.org``). | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
- Translations having completed ``tutorial/``, ``library/stdtypes`` | ||||||||||||||||||||||||||||||||||||
and ``library/functions`` are hosted on | ||||||||||||||||||||||||||||||||||||
``https://docs.python.org/{LANGUAGE_TAG}/{VERSION_TAG}/``. | ||||||||||||||||||||||||||||||||||||
Translating Sphinx | ||||||||||||||||||||||||||||||||||||
================== | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Some messages that appear in the docs can not be translated, this is because they | ||||||||||||||||||||||||||||||||||||
are either part of the theme, which currently cannot be translated (see this | ||||||||||||||||||||||||||||||||||||
`issue <https://github.com/python/python-docs-theme/issues/194>`__), | ||||||||||||||||||||||||||||||||||||
they are part of Sphinx, which requires them to be translated in the | ||||||||||||||||||||||||||||||||||||
`sphinx-doc Transifex <https://app.transifex.com/sphinx-doc/>`__. | ||||||||||||||||||||||||||||||||||||
Coordinators should direct some translators there, so that the documentation | ||||||||||||||||||||||||||||||||||||
is fully translated. | ||||||||||||||||||||||||||||||||||||
Comment on lines
+182
to
+191
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
suggestion:
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
.. Where should this go? Coordinators or Translators | ||||||||||||||||||||||||||||||||||||
.. Should we share coordinators? | ||||||||||||||||||||||||||||||||||||
Transifex | ||||||||||||||||||||||||||||||||||||
========= | ||||||||||||||||||||||||||||||||||||
StanFromIreland marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
If you need help from a Transifex administrator, open an issue on the | ||||||||||||||||||||||||||||||||||||
`Transifex <https://explore.transifex.com/python-doc/python-newest/>`_ is an | ||||||||||||||||||||||||||||||||||||
online translations platform, similar to Weblate. It is currently used by | ||||||||||||||||||||||||||||||||||||
several translations. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
If you need assistance from a Transifex administrator, open an issue on the | ||||||||||||||||||||||||||||||||||||
`tracker <https://github.com/python-docs-translations/transifex-automations/issues>`_. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
.. seealso:: | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
`python-docs-transifex-automations: documentation | ||||||||||||||||||||||||||||||||||||
<https://python-docs-transifex-automation.readthedocs.io/index.html>`_ | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Coordinating FAQ | ||||||||||||||||||||||||||||||||||||
Coordination FAQ | ||||||||||||||||||||||||||||||||||||
================ | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Are there tools to help in managing the repo? | ||||||||||||||||||||||||||||||||||||
|
@@ -96,12 +231,26 @@ More related tools and projects can be found in the | |||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
__ https://github.com/python-docs-translations | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
How is a coordinator elected? | ||||||||||||||||||||||||||||||||||||
----------------------------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
How should I test my translation? | ||||||||||||||||||||||||||||||||||||
--------------------------------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
The `dashboard <https://python-docs-translations.github.io/dashboard/metadata.html>`_ | ||||||||||||||||||||||||||||||||||||
tests translations and uploads error logs. | ||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
I'd move this sentence at the end of the section, as it doesn't really answer the question. |
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Testing should ideally be set up in your repository, and will help catch errors | ||||||||||||||||||||||||||||||||||||
early and ensure translation quality. Testing generally consists of building, and | ||||||||||||||||||||||||||||||||||||
linting with :pypi:`sphinx-lint`. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
See `this documentation <https://python-docs-transifex-automation.readthedocs.io/workflows.html#test-build-workflow>`_ | ||||||||||||||||||||||||||||||||||||
for sample workflows with usage guides. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
How is a coordination team chosen? | ||||||||||||||||||||||||||||||||||||
---------------------------------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Each translation team will decide on the number of coordinators. | ||||||||||||||||||||||||||||||||||||
We recommend two or three coordinators, though you may begin with one. | ||||||||||||||||||||||||||||||||||||
Here are some general suggestions. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
- Coordinator requests are to be public on the `translation mailing list <translation_ml_>`_. | ||||||||||||||||||||||||||||||||||||
- If the given language has a native core dev, the core dev has input | ||||||||||||||||||||||||||||||||||||
|
@@ -112,25 +261,28 @@ Here are some general suggestions. | |||||||||||||||||||||||||||||||||||
- We expect the local community to self-organize coordinators and contributors. | ||||||||||||||||||||||||||||||||||||
If you have questions, please ask on the mailing list or Discourse. | ||||||||||||||||||||||||||||||||||||
- If a coordinator becomes inactive or unreachable for a long | ||||||||||||||||||||||||||||||||||||
period of time, someone else can ask to be added as a primary coordinator on the `translation mailing list <translation_ml_>`_. | ||||||||||||||||||||||||||||||||||||
As a community resource, we aim to keep translations up to date with active contributors, including coordinators. | ||||||||||||||||||||||||||||||||||||
period of time, someone else can ask to be added as a primary coordinator on | ||||||||||||||||||||||||||||||||||||
the `translation mailing list <translation_ml_>`_. | ||||||||||||||||||||||||||||||||||||
As a community resource, we aim to keep translations up to date with active | ||||||||||||||||||||||||||||||||||||
contributors, including coordinators. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
I have a translation, but it's not in Git. What should I do? | ||||||||||||||||||||||||||||||||||||
------------------------------------------------------------ | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
You can ask for help on the `translation mailing list <translation_ml_>`_, and | ||||||||||||||||||||||||||||||||||||
the team will help you create an appropriate repository. You can still use tools like transifex, | ||||||||||||||||||||||||||||||||||||
if you like. | ||||||||||||||||||||||||||||||||||||
You can ask for help in one of the :ref:`translation-help`, and | ||||||||||||||||||||||||||||||||||||
the team will help you create an appropriate repository. You can still use tools | ||||||||||||||||||||||||||||||||||||
like Transifex, if you like. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
My Git hierarchy does not match yours. Can I keep it? | ||||||||||||||||||||||||||||||||||||
----------------------------------------------------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
No, inside the ``github.com/python`` organization we’ll all have the | ||||||||||||||||||||||||||||||||||||
No, inside the ``github.com/python`` organization all repositories must have the | ||||||||||||||||||||||||||||||||||||
exact same hierarchy so bots will be able to build all of our | ||||||||||||||||||||||||||||||||||||
translations. So you may have to convert from one hierarchy to another. | ||||||||||||||||||||||||||||||||||||
Ask for help on the `translation mailing list <translation_ml_>`_ if you’re | ||||||||||||||||||||||||||||||||||||
not sure on how to do it. | ||||||||||||||||||||||||||||||||||||
translations. So, you may have to convert from one hierarchy to another. | ||||||||||||||||||||||||||||||||||||
Ask for help in one of the :ref:`translation-help` if you’re not sure on how to | ||||||||||||||||||||||||||||||||||||
do it. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
What hierarchy should I use in my GitHub repository? | ||||||||||||||||||||||||||||||||||||
|
@@ -141,9 +293,6 @@ files in the root of the repository using the ``gettext_compact=0`` | |||||||||||||||||||||||||||||||||||
style. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
.. XXX Explain necessary folder structure | ||||||||||||||||||||||||||||||||||||
Which version of the Python documentation should be translated? | ||||||||||||||||||||||||||||||||||||
--------------------------------------------------------------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
@@ -154,8 +303,14 @@ propagate your translation from one branch to another using :pypi:`pomerge`. | |||||||||||||||||||||||||||||||||||
The entry for my translation is missing or not up to date | ||||||||||||||||||||||||||||||||||||
--------------------------------------------------------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Ask on the `translation mailing list <translation_ml_>`_, or better, make a PR | ||||||||||||||||||||||||||||||||||||
on the `devguide <https://github.com/python/devguide/>`__. | ||||||||||||||||||||||||||||||||||||
Make a PR on the `devguide <https://github.com/python/devguide/>`__ to update it. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
How are translations built? | ||||||||||||||||||||||||||||||||||||
--------------------------- | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Translations are built by `docsbuild-scripts <https://github.com/python/docsbuild-scripts/>`__ | ||||||||||||||||||||||||||||||||||||
and hosted on docs.python.org. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Is there a Weblate instance we can translate on? | ||||||||||||||||||||||||||||||||||||
|
@@ -168,3 +323,5 @@ for updates. | |||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
.. _EB: https://python.github.io/editorial-board/ | ||||||||||||||||||||||||||||||||||||
.. _translation_ml: https://mail.python.org/mailman3/lists/translation.python.org/ | ||||||||||||||||||||||||||||||||||||
.. _trans_disc: https://discuss.python.org/c/documentation/translations/ | ||||||||||||||||||||||||||||||||||||
.. _docsbuild-scripts: https://github.com/python/docsbuild-scripts |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
XXX to be solved before merging
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes that is the goal
If we cannot find a resolution in reasonable time, I'll fallback to neutral wording and we'll do it in a follow up.