Categories: Pontoon

Here comes Pontoon’s new Translate application

If you have contributed to Mozilla’s localization in the past few years, chances are high that you have interacted with Pontoon’s translation page. That page is the most important one of the Pontoon web app, as it is where people can create, review and manage translations for most of the products Mozilla makes. Today we are happy to announce that we are soon going to release an entirely re-written version of that page, nicknamed “Translate.Next”. This post shares all the details about this release, and should answer the questions you might have about it.

What is Translate.Next?

Pontoon was started in 2011, and has grown quite a lot since then. Most of the back-end, using Python and Django, has been kept up-to-date and is still doing mostly fine, but the front-end, and specifically the Translate app, is in a terrible shape. Our code has accumulated a lot of technical debt, and is very difficult to maintain and evolve.

After I joined the Pontoon team in the summer of 2017, I spent some time auditing the translate application code, and it quickly became clear to me that a full rewrite would bring a lot of value. Here are some of the benefits this brings:

  1. removing technical debt and making our code saner;
  2. adding better test coverage for our front-end;
  3. enabling the localization of Pontoon, starting with the Translate page;
  4. structurally enabling some of the many improvements our users have been asking for.

Over the last year and a half, Matjaž and myself have been spending a lot of our time working on rewriting the Translate page from scratch, using more recent, better adapted technologies, making our code a lot more modular and maintainable. (If you are interested in knowing more about the technologies we used, it is described in our github repository — there’s some React, redux, Jest and Flow in there. )

How is it different from the current page?

Translate.Next is just the first part of our effort to improve Pontoon’s translation page, while the second part will be the functional changes we’ll start working on now. For the time being though, translation page should be as much as possible the same in terms of features, interface and usability as the current Translate page. We have done our best to reproduce the same layouts and behaviors so that the switch would be as transparent as possible to everyone.

However, there are a few things that we decided to change already. The most visible of them is the navigation menu, which now requires less clicks to navigate localizable resources thanks to the removal of the infamous Go button.

Here’s what it looks like now:

Pontoon's current Translate navigation bar

And here is what it looks like with Translate.Next:

Pontoon's new Translate navigation bar

The other changes should be fairly inoffensive. We have removed the Tab shortcut in the Editor, as well as support for in-context localization, as it seems both were hardly ever used. It’s also not possible to resize the columns yet, as we have plans to evolve the page layout very soon and the behavior of this feature will change.

If you notice something not mentioned here is different, then it’s very probably a bug, and we would like to hear from you. More on that later in this post!

When will I see the new page?

We intend to do a “rollout” release, meaning that we will turn the feature on for a small percentage of users, and then will increase that number over time until we reach 100%. The users who get to experience the new Translate.Next page will be chosen randomly by a tool we use.

However, we can, and will, add exceptions. Namely, everyone who participated in our last round of testing and has Translate.Next turned on will keep it on. And we can add more exceptions, so if you don’t want to wait for your turn, you can simply contact us (Adrian or Matjaž) with the email address you use to log in to Pontoon, and we’ll give you access.

Note that we will not allow users to opt out, unless there is a very good reason for that. We will take your feedback and categorize it into two buckets: regressions, and the rest. Regressions are big issues that prevent localizers from performing their tasks. They are blockers to advancing Mozilla’s mission and thus we want to take quick action to unblock people if that happens. A regression will very likely mean that we will turn Translate.Next off for everyone until we have fixed it.

Every other issue will be treated as a bug, and we will do our best to solve these in a timely manner, but we kindly ask that you bear with us in the meantime. We do not want to revert everyone back to the old Translate page for a problem that is not blocking you.

The release schedule, baring we don’t find any regressions, is as follow:

Wednesday, October 2: release to a random 10% of users.
Monday, October 7: release to a random 30% of users.
Wednesday, October 9: release to a random 50% of users.
Monday, October 14: release to all users.

Bugs and regressions found along the way will delay that schedule. We will keep you updated if any such thing happens.

How do I report issues?

If you notice that something works differently than before, or if you find that something is broken, we strongly encourage you to tell us as soon as possible. There are several ways you can do that.

The easiest is to simply add a comment here, below this blog post. Please write a description of your problem, and ideally steps to reproduce it. When commenting, make sure to put a valid email address in the “E-mail” field so that we can reach out to you if we need more details.

If you enjoy using the Mozilla Community discourse forum, you can also describe your issue in the dedicated Translate.Next topic.

And finally, if you are comfortable using Bugzilla, you can go straight there and file a bug.

If you want to check our list of known issues, or follow the status of a reported bug, we keep an updated list on Pontoon’s Wiki page.

Other questions

How do I know I’m using Translate.Next?

There are 2 ways to know: first, the menu will look a bit different (see above). Second, and probably simpler: there will be a message in the top right corner saying you are using Translate.Next. 🙂

Can I revert back to the old Translate page?

No, once you’re on Translate.Next, the only way to get back to the old Translate page is if we find a critical regression and revert everyone. We cannot revert individuals to the old page.

Can I opt-in to Translate.Next?

Yes, absolutely. Just contact us (Adrian or Matjaž) asking that you want in, and give us the email address that you use to login on Pontoon.

Let’s release!

Thank you for helping with this release. We hope you will enjoy the new Translate page, and all the cool changes we will be able to make in the future thanks to that. And keep an eye out for the new page to show up on your Pontoon. 😉

15 comments on “Here comes Pontoon’s new Translate application”

Post a comment

  1. Belkacem77 wrote on

    I hope, tkat all locales will be shipped. right?
    We are working on the Kab llocale


    1. Selyan Slimane AMIRI wrote on

      Hello; muḥend; i have already switched to new interface 🙂


  2. Matjaž Horvat wrote on

    Yes, we’ll ship Translate.Next to all locales.

    Later on we’ll also make it localizable to all locales.


  3. Marcelo wrote on

    I started using Translate.Next, everything seems fine.

    Firefox for Android and Firefox Preview are still opening the previous Pontoon.

    The default spell checker don’t work on the translation field yet.
    Fortunately I found this add-on that do the job:


    1. Adrian Gaudebert wrote on

      Hi Marcelo,

      Since Translate.Next is enabled based on your user agent, it is expected that you might have it on in a browser and off in another. The type of browser you use doesn’t impact that.

      I’m surprised that the spell checker doesn’t work for you though, as it does work fine for me. Can you give us more context? What browser and version, what URL?

      Thanks for reporting!


      1. Marcelo wrote on

        Sorry Adrian, my mistake.
        The spell checker works well on Pontoon.
        It doesn’t work while editing SUMO articles.


  4. milupo wrote on

    The new navigation bar has no language search feature anymore. I translate into two languages and must sometimes jump from Upper Sorbian to Lower Sorbian or vice versa.


    1. Adrian Gaudebert wrote on

      Hi milupo, thanks for your feedback! We are tracking this issue in the following bug:


      1. milupo wrote on

        Thank you Adrian for your quick reply and willingness to reenable the language search feature.

        I’ve noticed another issue: The list of untranslated (missing) strings is not updated by clicking the Missing entry in the drop down box. The page must be refreshed that this will happen.


        1. Adrian Gaudebert wrote on

          Indeed, that was thought as a feature, to avoid many server requests. What you can do is select a different filter then click back on missing, instead of reloading the page.

          I know that we want to have the application get updates in real time from the server in the future, which would make this useless as lists of entities would update automatically. But that might not be for any time soon, as it’s quite a big feature to add.


  5. Andy wrote on

    It lags when you are typing. Are you doing some kind of lookup?


    1. Adrian Gaudebert wrote on

      Hey Andy, there are lots of things happening when you type indeed. We didn’t experience any slowness on our testing platforms, so I’m quite interested in hearing that it’s slow for you. Could please share your device settings with me by email at adrian at mozilla dot com?


  6. Meteor wrote on

    Translate.Next looks good.


  7. Sav wrote on

    You should create an Android (and iOS) app, because on Android/iOS devices this website is useless. It’s not responsive.


    1. Adrian Gaudebert wrote on

      Hi Sav, we are aware that Pontoon doesn’t work well on mobile, and we have some bugs filed to improve that. See for example:


Leave a Reply

Your email address will not be published. Required fields are marked *