Skip to content

Commit ff62d18

Browse files
microbit-markmicrobit-carlos
authored andcommitted
Add translation strategy and documentation (bbcmicrobit#234)
1 parent 0c7f4fb commit ff62d18

File tree

3 files changed

+65
-0
lines changed

3 files changed

+65
-0
lines changed

CONTRIBUTING.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,9 @@ Checklist
3939
therein.
4040
* Try to include tests!
4141
* Have fun!
42+
43+
Translations
44+
++++++++++++
45+
46+
If you're talented enough to speak another language, we'd love you to contribute a
47+
translation to the editor. Learn more about how this works in the translation strategy within the docs folder.

docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Developer docs
22

33
- [Filesystem](filesystem.md)
4+
- [Translation Strategy](translations.md)
45
- [Embed editor](embedEditor.md)
56

docs/translations.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# 🐍 🌍 🚀Translation Release Strategy
2+
Thanks for your interest in translating the micro:bit Python Editor. Translations for all the Micro:bit Educational Foundation’s editors and apps are contributed by an amazing team of volunteers and we’d love for you to be a part of this too.
3+
4+
This document sets out the strategy and process for how the Foundation manages the translation of the Python Editor.
5+
6+
## 1. Translation and Management in the Python Editor
7+
8+
Translation is the act of taking the written materials in one language and converting them into another language in the most meaningful way possible. In terms of the micro:bit Python Editor, translation happens on the [strings marked for translation in the projects' codebase](https://github.com/bbcmicrobit/PythonEditor/lang/en.js). The default language of the editor is English and you may select another available language using the Globe icon in the menu.
9+
10+
### 1.1 Crowdin
11+
The Micro:bit Educational Foundation makes use of the [Crowdin platform](https://crowdin.com/project/microbitorg) to manage and support community translations for our web projects. We have an amazing team of volunteer translators and proofreaders in our global micro:bit community and Crowdin helps us support them through the process. There is some more information on how this works at [microbit.org/translate](https://microbit.org/translate/)
12+
13+
### 1.2 Translating the editor
14+
We encourage translators to use [Crowdin](https://crowdin.com/project/microbitorg) as it has a rigorous process for translation, proofreading and syncronisation and the Foundation use it to communicate and help guide the translation community. It also makes it easy for lots of people to contribute to the translation process, rather than one person being responsible for a language.
15+
16+
In the microbit.org project, you’ll find a [folder titled apps that contains a sub folder for the Python Editor.](https://crowdin.com/project/microbitorg/ar#/new/apps/python-editor) This folder contains the current English language translation **en.json** file with the strings required for translation. Selecting this file opens the Crowdin editor where you can submit your own or use a suggested translation for the string. It will then need to be [verified by a proofreader for that language.](https://support.crowdin.com/online-editor/#proofreadingvoting-mode)
17+
18+
### 1.3 Syncing Translations
19+
Crowdin can perform a sync between itself and Github, meaning that we can pass language updates either way. This is currently triggered manually. When a new release of the editor is made, any updates to the strings in en.js will be uploaded to Crowdin and translators are notified that translation strings have changed.
20+
21+
### 1.4 Requesting a language
22+
There are two cases in which you may want to request a language:
23+
a) If you do not see the language available in the editor, but it is enabled in the [Crowdin project](https://crowdin.com/project/microbitorg)
24+
b) If you do not see the language available in the editor or the Crowdin project
25+
In either case please [get in touch with the Foundation](https://support.microbit.org/en/support/tickets/new) to ask if it can be made available.
26+
27+
### 1.5 Available languages
28+
The Foundation strives to make our online offerings as accessible as possible and new translations to the Crowdin project are always welcome. To ensure a consistent experience for users, we need to ensure that any languages we make available for translation are suitably maintained. Enabled languages can be found in the Crowdin project. For the Python Editor, we expect the **source strings to be 100% translated and proofread** before they are made public as a released language.
29+
30+
## 2. Release cycle
31+
32+
### 2.1 Releases and freezes
33+
At a predefined time during the release cycle there will be a "string freeze”, which means that after this point strings marked for translation in the codebase can no longer be changed except in the case of critical-priority bugs.
34+
35+
For the Python Editor this will be at the Release Candidate (RC) stage. The current version can be found by selecting the help menu in the editor. If you see the string `rc1` or similar in the version number, this can be considered an RC candidate.
36+
37+
Translators will be notified via the Crowdin messaging platform when the string freeze will occur, but will still have the majority of time during the [beta testing programme period](https://microbit.org/testing/) to make changes.
38+
39+
Once the string freeze is in effect, the translation files in Github and Crowdin can be assumed to be static. This is not to say that translation can't happen all the time, but during the development process strings may change and translation efforts may end up being wasted.
40+
41+
### 2.2 Stable releases and backports
42+
There two main stable release branches of the editor can be found at:
43+
44+
[python.microbit.org](http://python.microbit.org) - which contains available languages that have been translated ([see 2.3](https://paper.dropbox.com/doc/Python-Editor-Translation-Release-Strategy-DRAFT--AkD8w7FV~luvLTduPPtgQXZlAg-51mKmhhctvRyNxmN38aZ7#:h2=2.3-Available-languages))
45+
46+
[python.microbit.org/v/beta](http://python.microbit.org/v/beta) - which contains available languages that have been translated and any proposed available languages. It may be the case that the beta editor is updated with new languages and strings more often than the live editor as we test out new languages.
47+
48+
At present, changes to translations will not be backported to legacy stable release branches, for example python.microbit.org/v/0. Doing so would require maintaining wholly separate copies of each set of translations and massively increases the burden on translators. Previous releases will have translations frozen at the time they are released.
49+
50+
## 3. Translation infrastructure CI and automation
51+
52+
We are currently using a manually triggered script to convert the JS object to JSON and upload the strings to Crowdin. There is another script to do this in reverse. This is currently manageable as we are only translating one file. It may be the case that we add further configuration to do this in [CI.](https://en.wikipedia.org/wiki/Continuous_integration)
53+
54+
## 4. Help
55+
56+
Further information about translation processes managed by the Foundation can be found on the [translate page of the micro:bit website.](https://microbit.org/translate/) If you come across an issue with the translation, you can suggest a change in Crowdin or [open an issue with micro:bit support.](https://support.microbit.org/en/support/tickets/new)
57+
58+
This work, "TRANSLATIONS.MD", is a derivative of "[wiki.openstack.org/wiki/Translations](https://wiki.openstack.org/wiki/Translations#String_Freeze)” by [OpenStack](https://openstack.org), used under [CC BY](https://creativecommons.org/licenses/by/2.0/). "TRANSLATIONS.MD" is licensed under [CC BY](https://creativecommons.org/licenses/by/2.0/) by the Micro:Bit Educational Foundation.

0 commit comments

Comments
 (0)