How to Translate Scratch
The Scratch programming language has been translated into more than 40 languages with the help of volunteering translators from all over the world. However, parts of the Scratch interface and website in many languages are still missing translations, and some translations might have glitches — If you have experience with some language, you can help the Scratch Team and other translators in completing the translations and correcting any mistakes.
- 1 Translating Scratch Interface and Website
- 2 Translating Scratch Support Materials
- 3 Reporting Translation Issues
Translating Scratch Interface and Website
The Scratch program and website are translated using the Scratch translation server, which runs on Pootle. It lets registered translators suggest and edit the translations. The submitted translations are licensed under The MIT License
Registration and Log in
To translate part of Scratch interface or website, you have to register first for a translation account. When an account is created, you will be asked to provide the following information:
- Email Address
A confirmation code will be sent to the email account you entered, which must be used to log in the first time.
If you would like to be notified when there is new content to be translated, please join the scratch-translators mailing list.
Once your account has been created, you can set different aspects of your account in "My Account" page. These include:
- In this section you can set your name and email. Your name will appear later in the credits page.
- In this section you can set the following:
- The viewing options for the translate interface.
- Languages: Choose what languages you are fluent in and will be translating to; multiple options can be selected by Ctrl + click (Windows).
- Projects: The projects you want to contribute a translation for. Multiple options can be selected by Ctrl + click (Windows). The following projects will be listed:
After creating an account and logging in, you can start translating! In the dashboard on your account page, you can choose, from your personal list of languages and projects, what to start translating. Click on a language or a project. From the language name you will be taken to the list of projects in that language. It displays a table with information about each project:
- Name — the name of the project
- Progress — shows a graph of how much is translated — hovering over the graph shows the percentage of how much has been translated
- Green — translated
- Brown/Dark Red — needs review
- Red — untranslated
- Summary — how many words are untranslated or need review
- Total Words — total amount of words that exist to be translated
- Last Activity — the most recent update along with the user who updated it
Clicking on a project from here or from your account page brings you to a page similar to the language's page, but only lists the current project's statistics. In the "Name" section, it displays a link to the translate sheet, "[lang].po".
Once in the [lang].po file, you can suggest translations. A language administrator appointed by Scratch Team can approve and submit translations directly. If you notice that your suggestions are not being submitted, maybe a language admin is not selected yet. If you think you have enough experience with the language, you can contact Scratch Team to assign you as a language admin.
By default, nine English strings are displayed on the page in one column, and the translation in another column. Clicking on the line number on the left side of a row expands that row to show a box to suggest (and approve, if a language admin) a translation.
The original string will have a black border around it, and the translation will be in an edit box similar to a comment box. Around the translation, six buttons and links are listed: Previous, Add Comment, Next, Copy into translation, Suggest, and Submit. Previous skips to the previous string; Next skips to the next string; Copy Into Translation copies the original into the edit box; Suggest suggests a translation which will be shown when others want to translate that string; Submit saves the translation (this button will appear only for language administrators).
In some of the strings to translate you'll see placeholders for things filled in with values dynamically. For example, variable names, message names, numbers, strings etc. When there is only one placeholder in a string it can go anywhere in your translated string. However, if there are multiple placeholders, they must stay in the same order.
For example, the variable command 'change %m.var by %n', must have %m.var before %n. If the order of the placeholders gets switched it will cause problems in the editor when a user tries to use that block.
We recommend that you translate directly on the translate.scratch.mit.edu server, as it provides suggestions from others and warns of possible errors. However, if prefer, you can translate offline.
You can download a po file that contains the current strings to be translated using the "Download" link in the review page of each project (check this page for example). You can open the .po file and edit it using a text editor or a program like Poedit.
If you open the po file using a text editor, the translations should be placed within the quotations next to the msgstr strings.
When you're done, you can upload the file through the overview page of the project you have translated. Make sure to choose the right option for the upload:
- Overwrite the current file if it exists
- Merge the file with the current file and turn conflicts into suggestions
- Add all new translations as suggestions
Testing Your Translation
The Scratch 2.0 website will be updated every 3 weeks to reflect the translations submitted to the translation server. However, you can test (preview) your Scratch interface translation directly by doing the following:
Shift+click the language menu in the Editor, and you'll get "import translation file" at the top of the language menu. You can then upload a po file that contains the translation strings for both: the blocks and the editor. Make sure to name the po file using the language code (e.g. ar.po, ja_HIRA.po) (See instructions for downloading the po file, above.)
What to Translate First
The most important things to get translated are the Scratch Blocks and Scratch Editor. They need to be almost completely translated and reviewed before the Scratch Team will add the language to the languages menu.
After the blocks and the editor, it's important to make sure that the home page and general navigation of the website are also translated. You can find most of these strings by searching for splash and general within location. The community guidelines are also important. Those can be found by searching for ".guidelines" within location.
When the Blocks and Editor projects are mostly complete, contact the translation admin on the Scratch Team (email@example.com) to start the process of adding the language to the menu.
We like translators to give priority to translating elements that are going to have the most impact on a new user coming to the Scratch website. After the first priority sections above are complete, here are others to work on next.
- Tips Window: Getting Started Guide - search for "get-started" in location
- Website: commenting - search for ".comment" in location
- Website: registration and email confirmation - search for ".registration" in location
- Website: contact us - search for ".contact-us" in location
- Website: frequently asked questions - search for ".faq" in location
Translating Scratch Support Materials
Scratch Tips Window
Text for Tips Window
- If you're doing the translation using the online interface, you can search within the Scratch website area for the word "tips" in the Search box (at the bottom of the screen), with the "Location" box checked.
Images for Tips Window
You translate the images that appear in the tips window following these steps:
1) Download the English images from the Dropbox folder: https://www.dropbox.com/sh/5ko43g9lqs9003m/BN6u5rk6g7
2) Make your own version of each image that needs translating (only some images have text).
- Make a screenshot in Scratch that is equivalent in your language.
- Use an image editor program to make the image size the same, if possible - but no wider than 291 pixels.
- If it's an animated gif, you can either provide a static image instead, or make an animated gif (see below).
3) Save your translated images using the English file names, but in your own folder. (The image extension can be png, jpg, or gif).
Animated GIFs for Tips Window
1) Make a screen recording of dragging the blocks (for example, using Camstudio on Windows or Quicktime on Mac).
2) Import that movie into a GIF creating program (such as Photoshop, GIMP, Gifcam, or GIFBrewery).
Scratch 2.0 Support Materials
The table below shows various Scratch support materials that are available for translation. After completing the translation of any of them, you can generate a PDF version and email it to Scratch translation admin.
The translated materials will appear on the Scratch Help page for that language.
|Scratch 2.0 Getting Started Guide||scratchgsguide_v2.0_en.indd
|Scratch Cards||Scratch_Cards_v2_AI_Files||Use PlayHouse font for the titles, and TheSerif_SemiBold_Plain and TheSerif 6-SemiBold for text in the boxes. All of those fonts are free to download from the Internet.|
|Scratch 2.0 Preview video||video timed captions||Download the captions file, open it with a text editor and replace the English text with the translations.
This video appears on About Scratch page.
Older Support Materials
You can access translated support materials for older versions of Scratch here: Scratch Support Materials.
Reporting Translation Issues
Please check this document before reporting any Scratch translation-related issues. The document lists some of the known translation issues, including vocabulary in Scratch Editor that is not translatable yet.
If you have any questions or problems regarding Scratch translation that are not addressed on this page, please write to the translation admin on the Scratch Team: firstname.lastname@example.org.