Skip to Content

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.

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.

Localizing with Pontoon AKA asknot is a fun and useful website, created by Josh Matthews. From now on, you can localize it with Pontoon. Yay!

If you’d like to add a new locale to the list, please let me know in the comments.

Localizing Firefox OS with Pontoon

Finally, the day has arrived to launch Pontoon! It’s a big pleasure for me to announce that the first application we will localize with Pontoon is Mozilla’s latest and greatest project, Firefox OS.

To be more precise, we will use Pontoon to localize Gaia, the user interface of Firefox OS. You can learn more about Gaia localization in general by reading Staś’ announcement in the newsgroup.

OK, so how do I localize Gaia with Pontoon?

1. Simply select Gaia from the project menu and pick one of the supported locales.

2. The Browser app will load by default in the external window, but you need to allow pop-ups first. Strings available in HG are already imported. To translate in the app itself hover over any string, click the pencil button and confirm with the save button. It’s fun and useful at the same time, because you can see the context and the space available.

3. A list of strings will load in the main Pontoon window, where you can also translate strings, for example those that cannot be found in the app. Tools like translation memory and machine translation are also available here, as is the menu to switch among apps.

Important: Sign in before translating, so you’ll be able to save your work.

4. Once you’re done localizing an app, you can download translations for it as .properties file. You need to push it to HG manually.

Known bugs

  • Some strings cannot be edited in-place, because they are not marked or in an iframe.
  • Users should be able to update translations from HG for their locale themselves.
  • Please file any other issues you have on GitHub.

Thank you
I’d like to thank everyone how has contributed to Pontoon so far either by providing code, feedback or in any other way. Without your help, Pontoon would not be the same thing. We remain open for your contributions.

Pontoon is looking for a pilot project

I haven’t bloged about Pontoon for months and there’s no excuse for that. But that doesn’t mean it wasn’t keeping us busy.

In case you forgot, Pontoon is a website localization tool, which provides localizers with features never before seen in an open source website localization tool: WYSIWYG context and in-place editing.

Many things have changed in the last couple of months, including transition to Mozilla server infrastructure and to Playdoh – a web application template based on Django. We also implemented AJAX-based user sign up and sign in using Persona.

Translations are now automatically saved to DB after every change, but you can also manually save your work to a predefined Transifex project. This is particularly useful for sites which cannot be fully localized using in-place string editing.

I’d like to thank the amazing Transifex team who helped me a lot with using their API and even modified it to suit our needs. Special thanks go to Ratnadeep Debnath, who volunteered his time to vastly improve our PO export and is now finishing Django hooks. You rock!

All of this has brought us to the stage where we’re looking for a pilot project. Any not-yet-localized Mozilla website would be appropriate, but not too big in terms of strings to translate and locales to participate. We don’t want to hurt our localizers too much! :-)

Any candidates?

July 14 is the World Slovenia Day

5 years ago, Gerv suggested we declare the World Slovenia Day, to celebrate Slovenia as the first country in the world where Firefox has the majority market share. Here’s a paragraph from his blog post:

My suggestion at the time was that we declare this day “World Slovenia Day”. We could encourage people to read about Slovenia, learn how to say “Hello” and “We love Firefox” in Slovene, and hail them as the leaders of the Firefox revolution. People would display the Slovenian flag on their blogs and in their windows. We could have “Hug a Slovenian”, where people would either travel to Slovenia or scour the streets of their local big city looking for Slovenians and giving them a hug.

So, have you hugged a Slovenian today, yet? If you live in the States, I collected some ideas for hockey fans, basketball fans and even real estate agents.

Mozillian for 10 years

Exactly 10 years ago I became active Mozilla contributor. It started with this email I sent to the Slovenian Linux user group on July 12, 2002 looking for people working on Mozilla Application Suite localization to Slovenian. This is what my email says:

I’d like to know if someone is already working on localizing Mozilla to Slovenian. I think the project is important enough to be made available in Slovenian. If nobody is localizing it yet, I suggest we form a team and start working on it.

And so Aleks, Urška, Jure and others joined me in a group that is today known as Mozilla Slovenija. A few months later Mozilla Application Suite was released in Slovenian for the first time and Mozilla browser market share in Slovenia started growing from initial 1% to almost 50 % five years later. Gerv even proposed a World Slovenia Day!

10 years later, Firefox still maintains almost 50% market share in Slovenia and I’m still working on Firefox localization. But when I sent that email 5 minutes before going out with my friends (I was 17 and it was Friday) I had absolutely no clue it will change my life significanlty.

I’ve made friends with many, I’ve had the privilege to learn from the best, I work for Mozilla as a l10n driver and I love this community!

Enhanced by Zemanta

The MultilingualWeb: The Way Ahead

The MultilingualWeb project is exploring standards and best practices that support the creation, localization and use of multilingual web-based information. It is coordinated by the World Wide Web Consortium (W3C) and funded by the European Commission.

The fourth (and the last) workshop took place in Luxembourg from March 15 to 16.

We had over 130 attendees from Apple, Intel, Microsoft, Mozilla, Opera, SAP, Wikipedia and many other important players in the field. The schedule was pretty tight for such a short event, but the format of 15-minute talks was really helpful.

Here are the slides from my talk on Pontoon:

Meeting with leading industry experts was useful at least for two reasons:

  • To learn how they solve problems we at Mozilla are also dealing with.
  • The amount of feedback on Pontoon (positive and negative) was really extensive.
Enhanced by Zemanta

HTML5 talk at RTV Slovenija

RTV Slovenija is Slovenia’s national public broadcasting organization. Their Multimedia Centre, which is developing a multimedia web portal, kindly invited me to talk about HTML5, CSS3 and related Web APIs.

Here are my slides: