@@ -3,79 +3,186 @@ Coordinating
3
3
============
4
4
5
5
Information about the Python documentation translation processes is
6
- found in this devguide and :PEP: `545 `.
7
- Translations are built by `docsbuild-scripts
8
- <https://github.com/python/docsbuild-scripts/> `__ and hosted on
9
- docs.python.org. Translations
10
- are overseen by the `Editorial Board <EB _>`_
6
+ found on this page and in :PEP: `545 `. Translations are overseen by the
7
+ `Editorial Board <EB _>`_.
8
+
9
+ .. _translation-help :
10
+
11
+ Communication/help channels
12
+ ===========================
13
+
14
+ Discussions about translations occur on the Python Docs Discord
15
+ `#translations channel <https://discord.gg/h3qDwgyzga >`_, `translation
16
+ mailing list <translation_ml_> `_, and the
17
+ `translations category <trans_disc _>`_ of the Python Discourse.
18
+
19
+ For administrative issues, ping ``@python/editorial-board ``.
20
+
11
21
12
22
Starting a new translation
13
23
==========================
14
24
15
- First subscribe to the `translation mailing list <translation_ml _>`_,
16
- and introduce yourself and the translation you're starting.
25
+ Coordination is not a one-off task, it is a long-term commitment. Before
26
+ you start your translation, carefully consider if you will be able to commit
27
+ to this.
28
+ Every coordinator should be familiar with translating: see :ref: `translating `.
29
+
30
+ The following sections will guide you through setting up your translation.
31
+ If you have any questions or need help, ask in one of the
32
+ :ref: `help channels <translation-help >`.
33
+
34
+
35
+ Announcement
36
+ ------------
37
+
38
+ Post an announcement introducing yourself and the translation you're
39
+ starting on `Discourse <trans_disc >`_. Also join the other communication
40
+ channels, if possible.
41
+
42
+
43
+ Coordination team
44
+ -----------------
45
+
46
+ Each translation team will decide on the number of coordinators.
47
+ While initially one person is fine, we recommend expanding to having two or
48
+ three coordinators. You can find more on choosing coordinators in the FAQ
49
+ section on this page.
50
+
51
+
52
+ Translation team
53
+ ----------------
54
+
55
+ .. figure :: translator-workload.svg
56
+ :class: invert-in-dark-mode
57
+ :align: center
58
+ :alt: An exaggerated chart showing that individual translator workload
59
+ decreases with the number of translators.
60
+
61
+
62
+ Gather people to translate with you. You can't do it alone.
63
+ Update :ref: `this table <translation-coordinators >` via a PR on the devguide
64
+ to make your translation easier to find. In the entry you can also include links
65
+ to guides or other resources for translators.
66
+
67
+
68
+ Repository
69
+ ----------
70
+
71
+ To start your translation create a GitHub repository, under any
72
+ account, with the correct Git hierarchy and folder structure. This can be done
73
+ in several ways, and depends on what translation process you plan to use.
74
+
75
+ Each translation is assigned an appropriate lowercase
76
+ `IETF language tag <https://datatracker.ietf.org/doc/html/rfc5646.html >`_.
77
+ The tag may have an optional subtag, joined with a dash.
78
+ For example, ``pt `` (Portuguese) or ``pt-br `` (Brazilian Portuguese).
79
+ The repository name is then: ``python-docs-TAG ``
80
+
81
+ The name of each branch should be the Python version it holds translations
82
+ for, for example, ``3.14 ``. The files should be structured like the source files
83
+ in `CPython/Doc <https://github.com/python/cpython/tree/main/Doc >`_.
84
+ A correctly set up repository looks like this:
85
+ `python-docs-pl <https://github.com/python/python-docs-pl/ >`_
86
+
87
+ Below, the recommended ways for starting your repository are described. You can
88
+ choose another way if you like; it’s up to you.
89
+
90
+
91
+ Cookiecutter/bootstrapper
92
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
17
93
18
- Then you can bootstrap your new translation by using the `cookiecutter
94
+ You can bootstrap your new translation by using the `cookiecutter
19
95
<https://github.com/python-docs-translations/python-docs-cookiecutter> `__ or
20
96
`bootstrapper <https://github.com/python-docs-translations/python-docs-bootstrapper >`__.
21
- You can also start your translation using `Transifex <https://explore.transifex.com/python-doc/python-newest/ >`_
22
- following this `guide <https://python-docs-transifex-automation.readthedocs.io/commands.html >`_.
97
+ The repository can then be used with a pull-request based translation process.
23
98
24
- The important steps look like this:
25
99
26
- - Create the GitHub repo (any account) with the correct hierarchy by using one
27
- of the bootstrappers or Transifex.
28
- - Gather people to help you translate. You can't do it alone.
29
- - You can use any tool to translate, as long as you can synchronize with Git.
30
- Some use Transifex, and some use only GitHub. You can choose another
31
- way if you like; it's up to you.
32
- - Update :doc: `this page <translating >` to reflect your work and progress, either via a
33
- PR or by asking on the `translation mailing list <translation_ml _>`_.
34
- - When ``bugs ``, ``tutorial ``, and ``library/functions `` are 100%
35
- completed, ask on the `translation mailing list <translation_ml _>`_ for
36
- your language to be added in the language switcher on docs.python.org.
100
+ Translation platform
101
+ ~~~~~~~~~~~~~~~~~~~~
37
102
103
+ You can also start your translation using
104
+ `Transifex <https://explore.transifex.com/python-doc/python-newest/ >`_.
105
+ This will allow you to translate via the web interface, and to use shared
106
+ automatically updated source files.
38
107
39
- How to get help
40
- ===============
108
+ This is best done with a workflow that periodically checks for translations.
109
+ An example with instructions can be found in the
110
+ `python-docs-tx-automations documentation <https://python-docs-transifex-automation.readthedocs.io/workflows.html >`__.
111
+ An in-depth guide for manually doing this can also be found
112
+ in the same documentation's
113
+ `commands page <https://python-docs-transifex-automation.readthedocs.io/commands.html >`__.
41
114
42
- Discussions about translations occur on the Python Docs Discord
43
- `#translations channel <https://discord.gg/h3qDwgyzga >`_, `translation
44
- mailing list <translation_ml_> `_, and the
45
- `translations category <https://discuss.python.org/c/documentation/translations/ >`_
46
- of the Python Discourse.
115
+ To be added as coordinators on Transifex for your language, open an issue
116
+ in the `tracker <https://github.com/python-docs-translations/transifex-automations/issues >`__.
117
+
118
+
119
+ Glossary
120
+ --------
121
+
122
+ Each translation team should have a way to store translations of terms to ensure
123
+ consistency. This is often done with a glossary. More information about the use
124
+ of glossaries can be found in the :ref: `translation-style-guide `.
125
+
126
+
127
+ Moving the repo to the ``python `` org
128
+ -------------------------------------
129
+
130
+ This will allow you to plug your translation into docsbuild-scripts _, and it
131
+ will be found at ``docs.python.org/LANG/ ``, but not in the switcher.
132
+
133
+ .. TODO Give a general milestone when this will be done.
134
+
135
+ Adding to the language switcher
136
+ -------------------------------
137
+
138
+ .. TODO Specify branch: https://github.com/python/devguide/issues/1586
139
+
140
+ Once the following resources have been fully translated:
141
+
142
+ - ``bugs.po ``, with proper links to the language repository issue tracker
143
+ - all files in the ``tutorial/ `` folder
144
+ - ``library/functions.po ``, the page documenting builtins
145
+
146
+ the translation can be added to the language switcher. This can be done with a
147
+ pull request to docsbuild-scripts _, like `this commit <https://github.com/python/docsbuild-scripts/commit/e4a8aff9772738a63d0945042777d18c3d926930 >`__
148
+ if your translation was previously built but not in the switcher, or like
149
+ `this commit <https://github.com/python/docsbuild-scripts/commit/a601ce67c6c2f3be7fde3376d3e5d3851f19950b >`__
150
+ if this is it's initial addition.
47
151
48
152
49
153
PEP 545 summary
50
154
===============
51
155
52
156
Here are the essential points of :PEP: `545 `:
53
157
54
- - Each translation is assigned an appropriate lowercased language tag,
55
- with an optional region subtag, and joined with a dash, like
56
- ``pt-br `` or ``fr ``.
158
+ - Each translation is assigned an appropriate lowercase
159
+ `IETF language tag <https://datatracker.ietf.org/doc/html/rfc5646.html >`_.
160
+ The tag may have an optional region subtag, joined with a dash.
161
+ For example, ``pt `` (Portuguese) or ``pt-br `` (Brazilian Portuguese).
57
162
58
- - Each translation is under CC0 and marked as such in the README (as in
59
- the cookiecutter).
163
+ - Each translation is under CC0 and is marked as such in the README.
60
164
61
- - Translation files are hosted on
62
- ``https://github.com/python/python-docs-{LANGUAGE_TAG} `` (not
63
- mandatory to start a translation, but mandatory to land on
64
- ``docs.python.org ``).
165
+ - Translation files are hosted in repositories under the Python org:
166
+ ``https://github.com/python/python-docs-{LANGUAGE_TAG} ``
65
167
66
- - Translations having completed ``tutorial/ ``, ``library/stdtypes ``
67
- and ``library/functions `` are hosted on
68
- ``https://docs.python.org/{LANGUAGE_TAG}/{VERSION_TAG}/ ``.
168
+ - Translations having completed ``bugs ``, ``tutorial/ ``
169
+ and ``library/functions `` are added to the language switcher.
69
170
70
171
71
- Transifex
72
- =========
172
+ Translating Sphinx
173
+ ==================
73
174
74
- If you need help from a Transifex administrator, open an issue on the
75
- `tracker <https://github.com/python-docs-translations/transifex-automations/issues >`_.
175
+ Some messages that appear in the docs must be translated in the
176
+ `Sphinx project <https://www.sphinx-doc.org/en/master/internals/contributing.html#translations >`__
177
+ (`sphinx-doc on Transifex <https://app.transifex.com/sphinx-doc/ >`__) or in
178
+ the `python-docs-theme <https://github.com/python/python-docs-theme >`_
179
+ (currently this is not possible; see this
180
+ `issue <https://github.com/python/python-docs-theme/issues/194 >`__).
181
+ Coordinators should direct some translators there, so that the documentation
182
+ is fully translated.
76
183
77
184
78
- Coordinating FAQ
185
+ Coordination FAQ
79
186
================
80
187
81
188
Are there tools to help in managing the repo?
@@ -98,12 +205,26 @@ More related tools and projects can be found in the
98
205
99
206
__ https://github.com/python-docs-translations
100
207
101
- How is a coordinator elected?
102
- -----------------------------
208
+
209
+ How should I test my translation?
210
+ ---------------------------------
211
+
212
+ Testing should ideally be set up in your repository, and will help catch errors
213
+ early and ensure translation quality. Testing generally consists of building, and
214
+ linting with :pypi: `sphinx-lint `.
215
+
216
+ See `this documentation <https://python-docs-transifex-automation.readthedocs.io/workflows.html#test-build-workflow >`_
217
+ for sample workflows with usage guides.
218
+
219
+ The `dashboard <https://python-docs-translations.github.io/dashboard/metadata.html >`_
220
+ also tests translations and uploads error logs.
221
+
222
+
223
+ How is a coordination team chosen?
224
+ ----------------------------------
103
225
104
226
Each translation team will decide on the number of coordinators.
105
227
We recommend two or three coordinators, though you may begin with one.
106
- Here are some general suggestions.
107
228
108
229
- Coordinator requests are to be public on the `translation mailing list <translation_ml _>`_.
109
230
- If the given language has a native core team member, they have input
@@ -114,25 +235,28 @@ Here are some general suggestions.
114
235
- We expect the local community to self-organize coordinators and contributors.
115
236
If you have questions, please ask on the mailing list or Discourse.
116
237
- If a coordinator becomes inactive or unreachable for a long
117
- period of time, someone else can ask to be added as a primary coordinator on the `translation mailing list <translation_ml _>`_.
118
- As a community resource, we aim to keep translations up to date with active contributors, including coordinators.
238
+ period of time, someone else can ask to be added as a primary coordinator on
239
+ the `translation mailing list <translation_ml _>`_.
240
+ As a community resource, we aim to keep translations up to date with active
241
+ contributors, including coordinators.
242
+
119
243
120
244
I have a translation, but it's not in Git. What should I do?
121
245
------------------------------------------------------------
122
246
123
- You can ask for help on the `translation mailing list < translation_ml _>`_ , and
124
- the team will help you create an appropriate repository. You can still use tools like transifex,
125
- if you like.
247
+ You can ask for help in one of the :ref: `translation-help ` , and
248
+ the team will help you create an appropriate repository. You can still use tools
249
+ like Transifex, if you like.
126
250
127
251
128
252
My Git hierarchy does not match yours. Can I keep it?
129
253
-----------------------------------------------------
130
254
131
- No, inside the ``github.com/python `` organization we’ll all have the
255
+ No, inside the ``github.com/python `` organization all repositories must have the
132
256
exact same hierarchy so bots will be able to build all of our
133
- translations. So you may have to convert from one hierarchy to another.
134
- Ask for help on the `translation mailing list < translation_ml _>`_ if you’re
135
- not sure on how to do it.
257
+ translations. So, you may have to convert from one hierarchy to another.
258
+ Ask for help in one of the :ref: `translation-help ` if you’re not sure on how to
259
+ do it.
136
260
137
261
138
262
What hierarchy should I use in my GitHub repository?
@@ -143,9 +267,6 @@ files in the root of the repository using the ``gettext_compact=0``
143
267
style.
144
268
145
269
146
- .. XXX Explain necessary folder structure
147
-
148
-
149
270
Which version of the Python documentation should be translated?
150
271
---------------------------------------------------------------
151
272
@@ -156,8 +277,14 @@ propagate your translation from one branch to another using :pypi:`pomerge`.
156
277
The entry for my translation is missing or not up to date
157
278
---------------------------------------------------------
158
279
159
- Ask on the `translation mailing list <translation_ml _>`_, or better, make a PR
160
- on the `devguide <https://github.com/python/devguide/ >`__.
280
+ Make a PR on the `devguide <https://github.com/python/devguide/ >`__ to update it.
281
+
282
+
283
+ How are translations built?
284
+ ---------------------------
285
+
286
+ Translations are built by `docsbuild-scripts <https://github.com/python/docsbuild-scripts/ >`__
287
+ and hosted on docs.python.org.
161
288
162
289
163
290
Is there a Weblate instance we can translate on?
@@ -170,3 +297,5 @@ for updates.
170
297
171
298
.. _EB : https://python.github.io/editorial-board/
172
299
.. _translation_ml : https://mail.python.org/mailman3/lists/translation.python.org/
300
+ .. _trans_disc : https://discuss.python.org/c/documentation/translations/
301
+ .. _docsbuild-scripts : https://github.com/python/docsbuild-scripts
0 commit comments