Skip to content

Translation Guidelines

chrisgarrity edited this page Jun 9, 2020 · 4 revisions

You should already be familiar with the general Guide for Scratch Translators.

Recommended Transifex Notification Settings

To make sure you're aware when there is new material, or new issues to resolve, you should configure Transifex to send you notifications.

To set your notification settings:

  1. click your profile button in the top right
  2. click Notifications → Notification Settings → Meassages/Project & Language Activity

Minimum recommended notifications:

  • Messages:
    • When an announcement is posted.
    • When you received a new message.
    • When an issue is opened, resolved, or reopened, or you're mentioned in a comment.
  • Project & Language Activity:
    • When a resource file is updated or autofetch for a resource failed.
    • When resources are added or removed from projects
    • When new content is detected for a live project

If the translators for your language are not already using a tool (such as Slack) to communicate with each other, you should also select When a discussion is posted in the Messages category.

Tips for Translating

  • Do not translate Scratch, Scratch Day, or ScratchJr. They are trademarks and need to be in English. In cases where the language doesn't use a latin character set it is ok to add a phonetic spelling in parens "(...)" in your language after "Scratch", but only in a context where adding to the length of the text will not cause problems.
  • The most difficult part of translating Scratch is that it is done mostly out of context. The shorter the text, the harder it is. A single word in English like Copy, may be a noun or a verb. Sometimes you can guess at the context based on adjacent text in the same file.
    • Look below the untranslated string. There may be Developer Notes or additional context in light grey that can be helpful in translating.
    • Click the Context tab below the translation. The 'Key' can be helpful in determining where the string appears. For example, gui.menuBar.file gives the hint that it's part of the menuBar in the Editor. CONTROL_FOREVER suggests that it is a block in the Control Category.
    • Website context: most of the Scratch Website resources are named for the page they are on, and you can use the name as the URL, for example, about_l10njson corresponds to the About page, and you can get there with https://scratch.mit.edu/about The most important exceptions:
    • Ask for help! Using the comment tab below the translation, you can create an issue to ask for clarification. Scratch Team members may also respond by adding details to the context.
  • Try to stay consistent across the site. If a particular translation is used in one place, try to use the same translation everywhere. The glossary can help with this. For example, in Dutch the Report button could have been translated as either Rapporteren or Melden. Melden is the actual translation, so it should be used whenever the English uses Report.
  • Stay close to the intent of the original text. For example, if the text uses the word people, please translate it as people even if you think scratcher or student might actually be better.
  • But also make sure the translation is readable in the target language. You may need to change the order of the words to make it more readable. Text like What's Happening? or chat room may sound awkward if translated literally. In which case, please use the words that would be more commonly used in the target language.
    • Note: in some places to keep things playful we have things that are jokes, or humorous in English, for example, "herding cats". We have tried to tag all of these with the joke tag. If something is tagged as a joke feel free to substitute something that would actually be funny or playful in your language.
  • Be very careful of punctuation and spacing, especially surrounding links.
  • Sometimes you will see a string like chat room,chat room project,chat project,cloud chat,cloud chat room. Don't be tempted to add spaces after the commas. These strings are likely to be in a place where it will either look bad, or possibly break the code.
  • If you add comments or issues, please do so in English as Scratch Team does not have people that understand all our languages. The exception is when @mentioning someone else on your language's translation team - in that case, it's ok to write in your own language, if that's easier.

Project Specific Guidelines

Scratch Editor

legacy tag: Scratch 3 is compatible with all previous versions of Scratch. There are certain blocks that were implemented in earlier versions that are not in Scratch 3. These blocks are tagged legacy. They are low priority and if you do not wish to translate them, simply copy the English original string to the translation for review.

Scratch Website (Legacy)

This is the old implementation of the scratch website. It is still used for some areas of the site, for example, user profiles, and studios. The resources that were for Scratch 2.0 are marked OBSOLETE and do not need to be translated at all. The other resources web and web-js are a mixture of needed and obsolete strings. We use tags to help you find the ones that should still be translated:

  • needed tag: this tag is on all strings that are known to be used on the site
  • profile tag: strings on a user's profile page
  • mystuff tag: strings on a user's mystuff page
  • studio tag: strings used on studio pages
  • classroom tag: strings used on classroom pages for educator accounts. You would need to request an educator account and create a classroom to see these strings in use.