Skip to Content

Throwing Pontoon backend around

Osmose pinged me the other day on IRC, pasting a link to his Pontoon branch and asking me to check out the stuff he’s been throwing around. I quickly realized he made substantial improvements to the backend, including things I’ve been resisting for too long, so I wanted to ship them as early as possible.

We worked together during the last week to make that happen and here it is – a preview of Pontoon with the new backend. Please give it a try and let us know if you run into any bugs. As soon as we’re all happy with it, we’ll deploy the changes to production.

The new codebase is way more robust and maintainable, simpler to setup for developers, easier to deploy and what matters most – it works considerably faster for localizers. The following are the most important changes that were made. The complete changelog is available on GitHub.

  • Removed Playdoh for easier maintenance and up-to-date dependencies, including the middleware we didn’t use.
  • Upgraded to Django 1.8, the latest Long-Term Support release, bringing many improvements over the currently-used Django 1.4.
  • Replaced MySQL with PostgreSQL, which is more suitable for our use case.
  • Switched to Docker for easier development setup and deployment to Heroku.

We also moved Pontoon repository under Mozilla organization on GitHub.

And now I’d like to take the opportunity to thank Michael for the heroic effort he has made by throwing stuff around!

Terminology Search in Pontoon

New release of Pontoon is out the door. It’s mostly a bugfix release eliminating annoying glitches like broken contributor profile links. Thank you for your first contribution to Pontoon, Benoit! :-)

Some new features are also available, e.g. displaying warnings on unsaved translations as suggested by flod. And — Terminology Search is now also available as a standalone feature, making it easier to access. It works similarly as the Search tab in the out-of-context translation panel.

Translations are taken from:

Offline localization by Sandra

Pontoon is a web application, which is great. You can run it on almost any device with any operating system. You can be sure you always have the latest version, so you don’t need to worry about updates. You don’t even need to download or install anything. There’s just one particular occasion when web applications aren’t so great.

When you’re offline.

Mostly that means the game is over. But it doesn’t need to be so. Application caching together with web storage has made offline web applications a reality. In its latest edition released yesterday, Pontoon now allows translating even when you’re offline. See full changelog for details.

There are many scenarios where offline localization is the only option our localizers have. Decent internet connection simply cannot be taken for granted in many parts of the World. If it’s hard for you to belive that, visit any local tech conference. :-) Or, if you started localizing at home, you can now continue with localization on your daily commute to work. And vice versa.

The way it works is very simple. After Pontoon detects you no longer have a connection, it saves translations to localStorage instead of server. Once you get online again, translations are stored to server. In the meantime, connection dependant functionality like History and Machinery is of course unavailable.

Offline mode was single-handedly developed by our new contributor Sandra Shklyaeva. She just joined Mozilla community and has already fixed one of our oldest bugs. She’s attacking the bugs everybody was pushing away. I can’t wait to see what the future holds (shhhhh)!

Sandra has an interesting story on what got her attracted to Mozilla:

I was exploring some JS API on the developer.mozilla.org when I noticed pretty tabzilla on the top. I clicked it and my chrome became unresponsive completely XD. Maybe it was just a coincidence… Anyway, the tabzilla has caught my attention and that’s how I found out about Get Involved stuff in Mozilla.

If you also want to get involved, now you know where you can find us!

Pontoon report 2014: Get involved

This is the last in a series of blog posts outlining Pontoon development in 2014. I’ll mostly focus on new features targeting translators. If you’re more interested in developer oriented updates, please have a look at the release notes.

Part 1. User interface
Part 2. Backend
Part 3. Meet our top contributors
Part 4. Make your translations better
Part 5. Get involvedyou are here

In the past years, Pontoon has come a long way from an idea, a prototype, to a working product. As of today, there’s a dozen of Mozilla projects available for localization in Pontoon. If you want to move it even further, there are plenty of ways to do so.

For localizers
Start learning how things work by looking at the new Pontoon homepage, which is also used as a demo project to be translated using Pontoon. Perhaps you can translate it to your mother language. You can also learn more advanced features.

For developers
Making your website or web application localizable with Pontoon is quick and easy. A simple script needs to be added and you are halfway through. Follow implementation instructions for more details.

Take action
Do you have ideas for improvement? Are you a developer? Learn how to get your hands dirty. It has never been easier to set up development environment and start contributing. We’re on GitHub.

Pontoon report 2014: Make your translations better

This post is part of a series of blog posts outlining Pontoon development in 2014. I’ll mostly focus on new features targeting translators. If you’re more interested in developer oriented updates, please have a look at the release notes.

Part 1. User interface
Part 2. Backend
Part 3. Meet our top contributors
Part 4. Make your translations betteryou are here
Part 5. Get involved

Some new features have been added to Pontoon, some older tools have been improved, all helping translators be more efficient and make translations more consistent, more accurate and simply better.

History
History tab displays previously suggested translations, including submissions from other users. Privileged translators can pick approved translation or delete the ones they find inappropriate.

Machinery
The next tab provides automated suggestions from several sources: Pontoon translation memory, Transvision (Mozilla), amagama (open source projects), Microsoft Terminology and machine translation by Bing Translator. Using machinery will make your translations more consistent.

Quality checks
Pontoon reviews every submitted translation by running Translate Toolkit pofilter tests that check for several issues that can affect the quality of your translations. Those checks are locale specific and can be turned off by translator.

Placeables
Some pieces of strings are not supposed to be translated. Think HTML markup or variables for example. Pontoon colorizes those pieces (called placeables) and allows you to easily insert them into your translation by clicking on them.

Get involved
Are you a developer, interested in Pontoon? Learn how to get your hands dirty.

Pontoon report 2014: Meet our top contributors

This post is part of a series of blog posts outlining Pontoon development in 2014. I’ll mostly focus on new features targeting translators. If you’re more interested in developer oriented updates, please have a look at the release notes.

Part 1. User interface
Part 2. Backend
Part 3. Meet our top contributorsyou are here
Part 4. Make your translations better
Part 5. Get involved

Until recently, Pontoon only supported basic statistics, available during project translation. It was impossible to track overall project progress, check locale status or see the most active localizers. This is no longer the case.

Project Overview
You can list all projects available for translation within Pontoon. For each of them, information on the number of total strings is available, as well as translation progress.

Project and locale page
Additionally, a list of all locales enabled for specific project is available by clicking on it in the project overview page. If your locale is not on the list, Pontoon allows you to request it. In a similar fashion, you can track locale progress.

Top contributors
Localization at Mozilla is made possible by army of awesome volunteers. Without their help, the web and Mozilla would not be what it is today. Check out the most active contributors on Pontoon.

User pages
You can check some basic information for each contributor, including stats and timeline of his work. Meet Ayan, top Pontoon contributor!

Get involved
Are you a developer, interested in Pontoon? Learn how to get your hands dirty.

Pontoon report 2014: Backend

This post is part of a series of blog posts outlining Pontoon development in 2014. I’ll mostly focus on new features targeting translators. If you’re more interested in developer oriented updates, please have a look at the release notes.

Part 1. User interface
Part 2. Backendyou are here
Part 3. Meet our top contributors
Part 4. Make your translations better
Part 5. Get involved

In the first part we focused on frontend. Let’s look at the backend changes now.

Extended revision control system support
All projects we localize at Mozilla store translations using revision control systems, namely Git, Mercurial and Subversion. All of them are now supported in Pontoon. Additionally, Transifex can be used as data store.

Automated synchronization with repositories
Committing to and updating from repositores is counterintuitive. Most translators don’t event understand the concept of revision control. These task are now performed automatically in the background every full hour. Conflicts are resolved silently by allowing upstream to win.

New localization formats
All localization file formats used at Mozilla are supported (e.g. .po, .lang, .dtd. and .properties). You can also use a mix of different formats within your project and they will still work with Pontoon.

Plural forms
If format supports different plural forms, Pontoon will detect that and allow saving translations in all forms available for the locale. Other format-specific features such as fuzzy strings in .po files are also available.


Numbers in green are used as an example number that will replace the variable.

Get involved
Are you a developer, interested in Pontoon? Learn how to get your hands dirty.

Pontoon report 2014: User interface

This post marks the beginning of a series of blog posts outlining Pontoon development in 2014. I’ll mostly focus on new features targeting translators. If you’re more interested in developer oriented updates, please have a look at the release notes.

Part 1. User interfaceyou are here
Part 2. Backend
Part 3. Meet our top contributors
Part 4. Make your translations better
Part 5. Get involved

The old UI for out-of-context translation didn’t scale. It worked for basic presentation of original strings and translation area, but once we started adding more and more tools like translation memory, quality checks or plural forms, we simply ran out of space. So we started from scratch and came up with something completely different.

Flat Design
We went flat. Not because everyone else did, but because it’s neutral. And we needed neutral to contrast various website designs when they are being translated within Pontoon. For the very same reason Pontoon uses dark color scheme since day one.

Sidebar is the new bottom panel
Out-of-context mode has moved to the sidebar to take advantage of widescreen monitors. It features two exchanging panels, one to display strings and the other to translate. This layout gives us much more real estate for adding new capabilities.

Flexibility
Sidebar is draggable. When it becomes wide enough, both panels are displayed at the same time, side by side. This also happens if in-context translation mode (website) is not available, in which case fullwidth sidebar is always open.

Keyboard shortcuts
Basic support for navigating menus with arrow keys, confirming with Enter or closing with Esc was always available. From now on, saving translations, inserting suggestions, moving among strings and such are also accessible through keyboard.

Get involved
Are you a developer, interested in Pontoon? Learn how to get your hands dirty.

Mozilla Persona at Spletne urice #222

Yesterday I’ve received these fancy Persona stickers from Pascal:

Sadly, they’ve arrived late for the talk on Persona I was giving at Spletne urice in Ljubljana three weeks ago. But at least I got a reminder to publish my slides. I’d like to thank François, Dan, Shane and Lloyd for helping me with this talk.

900% growth

Since its beginnings, Mozilla Slovenija has been a group of 3-5 people, bringing the values of Mozilla to the sunny side of the Alps. Things started changing at the end of last year, as Brian beautifully documented in his blog. So I’m happy to report that we increased the number of members in less than 3 months from 3 to 30.

Without sounding like Apple, this means 900% growth!

Mozilla Slovenija has never been even remotely as strong as it is today, so we recently held our very first all-day community meetup at the cosy Astina offices in Ljubljana (thank you for hosting us!). The rationale was to help new contributors learn about and start contributing to Mozilla. My talks were about Mozilla and why should one get involved and Localization at Mozilla and why it matters.

We even had Firefox OS-inspired name tags – a joint effort of Matej, Rok and Peter.

I’m glad to see so many talented people joining the effort of spreading the values of Mozilla. We got new people working on localization, design, system administration, development, marketing, support etc. And something tells me that the best is yet to come.