Skip to content

Get started with localization & translation for your own projects

mmwikali edited this page Aug 19, 2020 · 5 revisions

Overview

People often approach us for advice on how they might approach translating / localizing their work (software, resources, etc.).

This guide offers tips, tools, and lessons from our experiences localizing and translating Scratch into 59+ languages.

We use the term localization to emphasize that impactful translation requires those involved to localize the experience and language to the cultural context(s) in which the translation will be used.

Tips from our experiences

1. Clearly articulate your values and why you’re interested in translation / localization

Being clear about Scratch values and why we’re interested in translation helped us make a number of difficult decisions - from inception to supporting an increasingly global community.

For example, we were very clear that while we wanted to support many languages and local communities, we wanted to maintain one site and a sense of a global community. While we’ve supported localization of Scratch (primarily through translation), Scratchers should still feel like they’re part of a global community. This informed design decisions around localizing Scratch.

2. Work closely with early adopters who are interested in localizing your project

In the early days of Scratch, we worked closely with a number of translators (both on the team and early adopters around the world) to figure out the details of what translation might require technically, identify potential challenges, and identify what the community would need to translate Scratch.

This enabled the team to quickly identify significant challenges (e.g. right to left languages, non-Roman characters), make necessary technical changes, and to develop some resources to get the community going.

3. Host your content in ways that are easy for non-technical people to access and offer appropriate guidance

We used Pootle (and currently Transifex) to host our content in a format and place that was easy for people to use. This enabled a growing global community who loved Scratch to drive translation efforts with as needed support from us.

4. Design for community-driven efforts

While we could have opted to hire translators, we instead opted to tap into the global Scratch community to drive localization efforts. This requires energy and support from Scratchers and communities from across the world - but ultimately enables translation that better reflects the cultural and linguistic particularities of those communities. This is particularly useful as concepts differ across cultural contexts - and collaborative translations support localizing Scratch in a way that encourages creative expression and playful collaboration in different cultural contexts.

Moreover, an open-source effort reduced the administrative burden on our small team - enabling us to offer Scratch for free in a plethora of languages without needing to expand centrally.

Additionally, an open-source approach aligns more strongly with Scratch values - we believe Scratch should be community owned and driven and the best way for that to become possible is through community driven translation efforts.

Community driven efforts have proven to be more sustainable in the longer term. Communities who use Scratch keep up with updates to Scratch while ensuring responsiveness to the needs of their communities. This enables translation efforts to continue as individuals or organizations cycle in and out.

We’ve found that you typically need 3-12 people to sustain translation efforts for a community (keeping in mind that translation is an ongoing effort as new blocks, resources, etc. are added to the Scratch site). Consequently, whenever anyone proposes translating a new language, our first question to them is if they can bring a few people together to work on this with them.

Finally, community driven efforts play a role that extends beyond Scratch - they act as sparks for encouraging more creative approaches to learning in their broader cultures. This can manifest through the proliferation of activities such as Scratch Days or Conferences or through the development of communities interested in supporting creative learning in both formal and informal contexts.

5. Be prepared to deal with unexpected challenges

Developing something that is used across the world will introduce you to unexpected challenges along the way - both technical (e.g. we needed to adapt Scratch blocks to accommodate words that were much longer than the originally allotted space which had been designed with English-length words in mind) and social (e.g. there were cases where we needed to navigate social tensions in certain communities involved in translating specific languages).

As we dealt with different challenges, we began to develop appropriate mechanisms. For example, in most cases we require that the person reviewing a Scratch translation be different from the person doing the actual translation. For large languages, this helps ensure consistency, quality, and alignment with Scratch values.

6. Playtest!

Encourage your end users to try out your translations. In our case, we encouraged collaborators to keep young people in the loop. Is the translation intuitive and easy for them to use? Do they struggle with particular words? Does the translation encourage young people to imagine and bring their creations to life? We ask these questions as we have found that translation efforts that involve end users are often the most impactful.

Tools and Resources

Platforms for hosting content

Platforms that we’ve used to host and coordinate translation. These work for crowdsourced as well as more coordinated efforts:

Transifex (used since 2017) Pootle (used 2010-2017)

Resources we've used that you might find helpful

We created these resources to make it easier for collaborators from across the world to contribute to localization efforts. This includes resources to get-started with our online systems and tools (e.g. Transifex), guidance on what to focus on, and tips for handling common challenges.

Wiki Onboarding to Transifex Tips on translation What to prioritize (included within Transifex) Discussion within Transifex Slack community Example email communication @ email alias ([email protected])

Clone this wiki locally