Over the past 3 months, we deployed new Pontoon code to production servers 65 times, which means approximately once per workday. Most of the changes were incremental improvements, optimizations or bugfixes, but some of them require a brief introduction. We hope you’ll like them.

Progressive loading of strings

Instead of requesting all strings at once, we now only load the first 50 and add others progressively while you scroll down the string list (in batches of 50). The benefits are particularly noticable when loading resource files with 1000s of strings, with search & filters also becoming snappier. Kudos to jotes for implementing it!

The idea of progressive loading is simple, but its implications go far beyond what the name suggests. It allowed us to add the All Resources menu entry, which makes it easy to load, search and filter strings across the entire project. If you have 7 missing strings in 4 different files, you can finally translate them without manually loading each resource.

In Q2, we’ll make common filters (e.g. strings with pending suggestions) accessible directly from the dashboard.

Bulk actions

Some time ago my team decided to change the translation of cookie in Firefox. It would be a nightmare to do it for each string separately in Pontoon, so we had to fire up a text editor and use find & replace. This use case is now covered by Pontoon.

Translation status icons in the string list act as checkboxes, allowing you to select strings. (You can also hold Shift to select a range of strings or use Select All). 3 bulk actions are available (to Translators only) — Approve All, Delete All and Find & Replace.

In Q2, we’ll add new filters to help you with more interesting mass actions. For example, you will be able to delete all suggestions submitted by No Name, because they are spam. Or approve all suggestions from Annie, who was just granted Translator permission.

Improved translation helpers

Translation helpers are the three tabs below translation textarea, where we keep history of user translations (History), translation memory and machine translation suggestions (Machinery) and translations into other locales (Locales).

All helpers are loaded instantly after a string is opened for translation. Additionally, a number of suggestions is displayed in each tab title, so you don’t click on them in vain. Duplicate Machinery results are grouped and sorted by source (in addition to Levenshtein distance).

In Q2, we’ll make it possible for localizers to define a preferred list of locales to get suggestions from.

Homepage and dashboard optimization

Pontoon homepage now loads 70% faster, mostly due to smarter handling of the iframe and loading Persona script on demand. Dashboards are 30-60% faster, thanks to denormalized statistics data and optimized latest activity database queries.

On a related note, you can now access team and project dashboards directly from the main menu in the translate view. Thanks to Emin for submitting the patch!

In Q2, we’ll focus on optimizing sync, because we have a huge room for improvement there. We’ll continue with web interface optimization, but we’re getting to the point where it’s becoming more of a hardware than software problem. :-)

Other improvements

  • Team and project positions in the main menu are switched to match the URL structure.
  • (Multiple) new projects can now be requested from the project menu.
  • Links to images in string comments are presented as images in the translation editor.
  • Projects with less than 10 resources are downloaded as ZIP.

Plans for Q2

We’d love to hear your feedback on the features we’ve shipped. In addition to that, we’d like to invite you to participate in developing our roadmap for Q2. Now is the best time to file feature requests and leave feedback on existing bugs (quarterly goals have priority set to P2).