1- .. _translating :
2-
31===========
42Translating
53===========
64
75.. highlight :: rest
86
9- Python documentation translations are governed by :PEP: `545 `.
10- They are built by `docsbuild-scripts
11- <https://github.com/python/docsbuild-scripts/> `__ and hosted on
12- docs.python.org. There are several documentation translations already
13- in production; others are works in progress. See `the dashboard
14- <https://python-docs-translations.github.io/dashboard/> `__ for
15- details.
7+ There are several documentation translations already
8+ in production; others are works in progress. To get started read your
9+ repositories contributing guide, which is generally the ``README ``
10+ file, and this page.
11+ If your language isn’t listed below, feel free to start the translation!
12+ See :doc: `coordinating ` on how to get started.
13+
14+ For more details about translations and their progress, see `the dashboard
15+ <https://python-docs-translations.github.io/dashboard/> `__.
16+
17+ .. _translation-coordinators :
18+
19+ .. XXX Add explicit links to README/CONTRIBUTING?
1620
1721 .. list-table ::
1822 :header-rows: 1
@@ -23,35 +27,36 @@ details.
2327 * - Arabic (ar)
2428 - Abdur-Rahmaan Janhangeer (:github-user: `Abdur-rahmaanJ `)
2529 - :github: `GitHub <Abdur-rahmaanJ/python-docs-ar> `
26- * - Bengali (bn_IN)
30+ * - ` Bengali (bn_IN) < https://docs.python.org/bn-in/ >`__
2731 - Kushal Das (:github-user: `kushaldas `)
2832 - :github: `GitHub <python/python-docs-bn-in> `
2933 * - `French (fr) <https://docs.python.org/fr/ >`__
3034 - Julien Palard (:github-user: `JulienPalard `)
31- - :github: `GitHub <python/python-docs-fr> `
32- * - Greek (gr)
33- - Lysandros Nikolaou (:github-user: `lysnikolaou `),
34- Fanis Petkos (:github-user: `thepetk `),
35- Panagiotis Skias (:github-user: `skpanagiotis `)
35+ - `AFPy/python-docs-fr <https://git.afpy.org/AFPy/python-docs-fr/ >`_
36+ :github: `Mirror <python/python-docs-fr> `
37+ * - `Greek (gr) <https://docs.python.org/gr/ >`__ XXX Should be added soonish
38+ - | Lysandros Nikolaou (:github-user: `lysnikolaou `),
39+ | Fanis Petkos (:github-user:`thepetk`),
40+ | Panagiotis Skias (:github-user:`skpanagiotis`)
3641 - :github: `GitHub <pygreece/python-docs-gr> `
3742 * - Hindi (hi_IN)
3843 - Sanyam Khurana (:github-user: `CuriousLearner `)
39- - :github: `GitHub <CuriousLearner/python-docs-hi-in> `
40- * - Hungarian (hu)
44+ - :github: `GitHub <CuriousLearner/python-docs-hi-in> ` XXX Message user in issue tracker https://github.com/CuriousLearner/python-docs-hi-in/issues/5
45+ * - ` Hungarian (hu) < https://docs.python.org/hu/ >`__ XXX This should probably be added
4146 - Tamás Bajusz (:github-user: `gbtami `)
4247 - :github: `GitHub <python/python-docs-hu> `,
43- `mailing list <https://mail.python.org/pipermail/python-hu >`__
48+ `Mailing list <https://mail.python.org/pipermail/python-hu >`__
4449 * - `Indonesian (id) <https://docs.python.org/id/ >`__
45- - Irvan Putra (:github-user: `irvan-putra `),
46- Jeff Jacobson (:github-user: `jwjacobson `)
50+ - | Irvan Putra (:github-user: `irvan-putra `),
51+ | Jeff Jacobson (:github-user:`jwjacobson`)
4752 - :github: `GitHub <python/python-docs-id> `
48- * - Italian (it)
53+ * - ` Italian (it) < https://docs.python.org/it/ >`__
4954 - Alessandro Cucci (`email <mailto:alessandro.cucci@gmail.com >`__)
5055 - :github: `GitHub <python/python-docs-it> `,
51- `original mail <https://mail.python.org/pipermail/doc-sig/2019-April/004114.html >`__
56+ `Original announcement <https://mail.python.org/pipermail/doc-sig/2019-April/004114.html >`__
5257 * - `Japanese (ja) <https://docs.python.org/ja/ >`__
53- - Kinebuchi Tomohiko (:github-user: `cocoatomo `),
54- Atsuo Ishimoto (:github-user: `atsuoishimoto `)
58+ - | Kinebuchi Tomohiko (:github-user: `cocoatomo `),
59+ | Atsuo Ishimoto (:github-user:`atsuoishimoto`)
5560 - :github: `GitHub <python/python-docs-ja> `
5661 * - `Korean (ko) <https://docs.python.org/ko/ >`__
5762 - 오동권 (:github-user: `flowdas `)
@@ -61,32 +66,32 @@ details.
6166 - :github: `GitHub <sanketgarade/python-doc-mr> `
6267 * - Lithuanian (lt)
6368 - Albertas Gimbutas (:github-user: `albertas `, `email <mailto:albertasgim@gmail.com >`__)
64- - `Original mail <https://mail.python.org/pipermail/doc-sig/2019-July/004138.html >`__
69+ - `Original announcement <https://mail.python.org/pipermail/doc-sig/2019-July/004138.html >`__
6570 * - Persian (fa)
6671 - Alireza Shabani (:github-user: `revisto `)
6772 - :github: `GitHub <revisto/python-docs-fa> `
6873 * - `Polish (pl) <https://docs.python.org/pl/ >`__
6974 - Maciej Olko (:github-user: `m-aciek `)
7075 - :github: `GitHub <python/python-docs-pl> `,
7176 `Transifex <tx _>`_,
72- `original mail <https://mail.python.org/pipermail/doc-sig/2019-April/004106.html >`__
77+ `Original announcement <https://mail.python.org/pipermail/doc-sig/2019-April/004106.html >`__
7378 * - Portuguese (pt)
7479 - Gustavo Toffo
7580 -
7681 * - `Brazilian Portuguese (pt-br) <https://docs.python.org/pt-br/ >`__
77- - Rafael Fontenelle (:github-user: `rffontenelle `),
78- Marco Rougeth (:github-user: `rougeth `)
82+ - | Rafael Fontenelle (:github-user: `rffontenelle `),
83+ | Marco Rougeth (:github-user:`rougeth`)
7984 - :github: `GitHub <python/python-docs-pt-br> `,
80- `wiki <https://python.org.br/traducao/ >`__,
85+ `Wiki <https://python.org.br/traducao/ >`__,
8186 `Telegram <https://t.me/pybr_i18n >`__,
82- `article <https://rgth.co/blog/python-ptbr-cenario-atual/ >`__
83- * - Romanian (ro)
87+ `Article <https://rgth.co/blog/python-ptbr-cenario-atual/ >`__
88+ * - ` Romanian (ro) < https://docs.python.org/ro/ >`__
8489 - Octavian Mustafa (:github-user: `octaG-M `, `email <mailto:octawian@yahoo.com >`__)
85- - :github: `GitHub <octaG-M /python-docs-ro> `
90+ - :github: `GitHub <python /python-docs-ro> `
8691 * - Russian (ru)
8792 - Daniil Kolesnikov (:github-user: `MLGRussianXP `, `email <mailto:mlgrussianxp@gmail.com >`__)
8893 - :github: `GitHub <MLGRussianXP/python-docs-ru> `,
89- `mail <https://mail.python.org/pipermail/doc-sig/2019-May/004131.html >`__
94+ `Original announcement <https://mail.python.org/pipermail/doc-sig/2019-May/004131.html >`__
9095 * - `Simplified Chinese (zh-cn) <https://docs.python.org/zh-cn/ >`__
9196 - Shengjing Zhu (:github-user: `zhsj `),
9297 Du, Meng (:github-user: `dumeng `)
@@ -102,39 +107,160 @@ details.
102107 * - `Turkish (tr) <https://docs.python.org/tr/ >`__
103108 - Ege Akman (:github-user: `egeakman `)
104109 - :github: `GitHub <python/python-docs-tr> `,
105- `RTD <https://python-docs-tr.readthedocs.io/ >`__
110+ `RTD <https://python-docs-tr.readthedocs.io/ >`__ XXX Why keep this with python build? Ask Ege
106111 * - `Ukrainian (uk) <https://docs.python.org/uk/ >`__
107112 - Dmytro Kazanzhy (:github-user: `kazanzhy `, `email <mailto:dkazanzhy@gmail.com >`__)
108113 - :github: `GitHub <python/python-docs-uk> `,
109114 `Transifex <tx _>`_
110115
111- .. _tx : https://explore.transifex.com/python-doc/python-newest/
112-
113116
114117How to get help
115118===============
116119
117- Discussions about translations occur on the Python Docs Discord
120+ If there is already a repository for your language team (there may be links to
121+ Telegrams/Discords in the ``README ``), join and introduce
122+ yourself, your fellow translators will be more than happy to help! XXX sounds off
123+ General discussions about translations occur on the Python Docs Discord
118124`#translations channel <https://discord.gg/h3qDwgyzga >`_, `translation
119- mailing list <translation_ml_> `_, and there's a `Libera.Chat IRC
120- <https://libera.chat/> `_ channel, ``#python-doc ``.
125+ mailing list <translation_ml_> `_, and the `translations subsection <_discourse >`_
126+ of the Python Discourse.
127+
128+
129+ Style Guide
130+ ===========
131+
132+ Before translating, you should familiarize yourself with the general
133+ documentation :doc: `style guide<../style-guide> `. Some translation specific
134+ guidelines are explained below.
135+
136+
137+ Roles and links
138+ ---------------
139+
140+ The Python docs contain many roles (``:role:`target` ``)
141+ to other parts of the documentation.
142+ Leave reStructuredText roles such as ``:func:`print` `` or ``:ref:`some-section` `` in
143+ place, even if they contain section titles, because it will break the link.
144+ If alternate text (``:role:`text <target>` `` is provided, it can be translated.
145+
146+ Links (```text <target>`_ ``) should be handled similarly.
147+
148+ .. XXX do we want to switch links to target language if possible, ES translation does this (and I do too sometimes...)?
149+
150+ .. seealso ::
151+ :doc: `../markup `
152+
153+
154+ Code examples
155+ -------------
156+
157+ Translate values in code examples, that is string literals, and comments.
158+ These may be lines from Monty Python skits or other references, they are, however,
159+ sometimes obscure and lose meaning when translated, so do not feel pressured
160+ to get them perfect.
161+
162+ .. XXX Ask EB can we do this QOL improvement?/Reword too
163+
164+ Don't translate keywords or names, including variable, function, class, argument,
165+ and attribute names. An example of a translated codeblock from the `tutorial <https://docs.python.org/3/tutorial/controlflow.html#keyword-arguments >`_
166+ is provided below:
167+
168+ .. code-block :: python
169+
170+ def cheeseshop (kind , * arguments , ** keywords ):
171+ print (" -- Czy jest może" , kind, " ?" )
172+ print (" -- Przykro mi, nie mamy już sera" , kind)
173+ for arg in arguments:
174+ print (arg)
175+ print (" -" * 40 )
176+ for kw in keywords:
177+ print (kw, " :" , keywords[kw])
178+
179+
180+ Translation quality
181+ -------------------
182+
183+ Translators should be proficient in both English and the language they are
184+ translating to. Translators should aim for a similar level of quality as that
185+ of the English documentation.
186+
187+ Avoid relying solely on machine translation. These tools can be useful to speed up
188+ work, but often produce inaccurate or misleading results and should be reviewed.
189+ .. XXX ask EB about permission for this section or maybe https://github.com/python/peps/pull/4296/ to ref
190+
191+
192+ Vocabulary
193+ ----------
194+
195+ The documentation is full of technical terms, some are common in general
196+ programming and have translations, whereas others are specific to Python.
197+ Translations should keep the translations of these terms consistent, which is
198+ done with glossaries/translation memory.
199+
200+ .. XXX Reword above
201+ .. XXX note that in coordinating.rst
202+
203+ Some general guidelines for deciding on a translation:
204+
205+ .. XXX todo (a lot)
206+
207+ - Use existing community conventions over inventing new terms.
208+ - Use hybrid form
209+ - Use English for common terms ... maybe hard to desc this case
210+ - Use your best judgment
211+ - Use other translations for reference as to what to do
212+ - Be careful to not translate names
213+ - Record in glossary to help peers!!!!!!!!!!!!!!!!!
214+
215+
216+ Dialects
217+ --------
218+
219+ Some translation receive contributions from people of many different dialects,
220+ understandably the language will differ, it is recommended however that
221+ translators try to keep files/large sections consistent.
222+
223+
224+ Transifex
225+ =========
226+
227+ .. XXX maybe add quickstart?
228+
229+ .. important ::
230+
231+ There are many translations in the `python transifex <tx _>`_, some of which,
232+ however, not used anymore or do not have a coordinator, please confirm this
233+ is not the case before you begin translating.
234+
235+ Translations on Transifex are carried out via a web interface, similar to Weblate.
236+ For further information about Transifex, and our guides on getting started, see
237+ our `documentation <https://python-docs-transifex-automation.readthedocs.io/new-translators.html >`_.
238+ .. XXX Move stuff here, discuss w Rafael?
239+
240+ If you need help from a Transifex administrator, open an issue on the
241+ `tracker <https://github.com/python-docs-translations/transifex-automations/issues >`_.
242+ .. XXX explain that it is not same as coordinator
121243
122244
123245 Translation FAQ
124246===============
125247
126- Which version of the Python documentation should be translated ?
127- ---------------------------------------------------------------
248+ Which version of the Python documentation should I work on ?
249+ -----------------------------------------------------------
128250
129- Consensus is to work on the current stable version. You can then propagate your
130- translation from one branch to another using :pypi: ` pomerge ` .
251+ You should work on the latest branch available for you translation, the translations
252+ should then be propagated by the languages coordinator .
131253
132254
133- How should I translate code examples ?
134- -------------------------------------
255+ The coordinator for my language is inactive, what do I do ?
256+ ----------------------------------------------------------
135257
136- Translate values in code examples (i.e. string literals) and comments.
137- Don't translate keywords or names,
138- including variable, function, class, argument, and attribute names.
258+ If you would like to coordinate, follow the (necessary) steps outlined in
259+ :doc: `coordinating ` and open an issue in the
260+ `EB issue tracker <https://github.com/python/editorial-board/issues >`_.
261+
262+ .. XXX Ask EB if this is ok
139263
140264 .. _translation_ml : https://mail.python.org/mailman3/lists/translation.python.org/
265+ .. _discourse : https://discuss.python.org/c/documentation/translations/
266+ .. _tx : https://explore.transifex.com/python-doc/python-newest/
0 commit comments