• Response to a Swahili localization enthusiast

    July 2nd, 2009 by seth bindernagel with 2 comments »

    Those who read this blog may remember that we are trying to finalize a version of Firefox in Swahili.  As it happens now and again, we have two groups who have completed translations at nearly the same time.  The l10n-drivers team is now trying to find the most judicious solution to the problem: determining fairly which translation is best and shipping that.  Amazingly, the differences between the the strings for the two localizations number in the thousands, and properly evaluating the discrepancies is a sizable undertaking for us to find the better version of the two.  If you’d like to see the existing diff, comment here and we’ll send it your way.  Now that we have a finalized Firefox 3.5, I’ve asked each team leader to update the strings in their language pack for final evaluation and we’ll prepare the final diff.

    Sadly, amidst all we have done to ship Firefox to seventy-five locales, it was frustrating to read a blog post from one person suggesting that Mozilla’s l10n-drivers team is playing politics when it comes to shipping the Swahili version.  If it needs to be made explicitly clear, we are in the business of shipping excellent localized software to as many locales as possible.  If our team allowed politics to disrupt prudent judgment, I am not sure we would scale at all.

    In his post, huarya writes, “The Mozilla people want to play nice with everyone instead of giving priority to the team that has actually showed results, real result!”.  I responded extensively in the comment thread, an d here is a copy of my lengthy response for those who care to read it:

    huayra:  I’m not sure if we have ever spoken personally, so it seems a bit careless to suggest that we are playing politics.  If we have spoken via email or IRC, then my apologies.  You can find me on irc.mozilla.org, nick: sethb.

    We ship Firefox now in 75 locales.  We are not in the business of playing games.  It’s about scaling our localization communities in the most sustainable way possible AND providing an excellent finished product.

    But, as you can see through the comments in this post, you’ve planted the seed that our team at Mozilla is doing something dubious.  We are not and that’s irresponsible on your part since you do not mention the full story in your post.  Exactly what do you mean by “The Mozilla people want to play nice with everyone instead of giving priority to the team that has actually showed results, real result!”?

    Here are the facts and consider rewriting your post:

    We do have two language packs from the two teams with thousands of differences.  With those two language packs, my team prepared a presentation of grammatical and translation differences between the two versions and reached out to many different linguistic professors who have expertise in East African Language Studies.  One was eager to help and we are trying to get a final evaluation from him since he wants to get sw-TZ users a version of Firefox.  Another academic contact requested tens of thousands of dollars to do the evaluation and we cannot fund that since no other locale has been afforded any funding to help settle disputes.  A final academic contact did a rough evaluation, said that both translations contained many errors, he wouldn’t be comfortable with either, and would need to charge Mozilla a fee for him to do the thorough evaluation.  These responses come from department heads at leading universities.

    Playing politics would be something less prudent.

    Please also keep in mind that we have several things going on right now, not the least of which is shipping Firefox to 75 locales to our 300+ million users who want updates to Firefox 3.5.  In addition, we are actively working with many other new locales who want to participate.  Yes, sw-TZ has been trying to localize Firefox for many years now.  But, we are responding to requests from all over the world and do our best to manage it all and have done fairly well since we have scaled to 75 localizations.  Most importantly, we want our end users to have something that is an excellent finished product.

    sw-TZ is unique because we have two translations asking to be the official one.  We are seeking the most judicious result as possible because surely one team will be quite disappointed if their translation is not chosen.  The team at Mozilla is the group who deals with the aftermath of that decision.  And, not making a wise decision would only complicate things.

    I’d ask for your patience and understanding as we come to a resolution. And, please minimize the flaming when you don’t have all the facts. Not sure how that helps.

  • Does localizing the Getting Started page lead to a better end-user experience for Firefox?

    June 17th, 2009 by seth bindernagel with 2 comments »

    Have you had a chance to look at the Getting Started page lately?  I really like the design, interaction, and contents of the page.  Each localized version has a Work, Learn, Play, and Connect section where we feature websites or add-ons for end-users to check out.  That’s right, each l10n team works with the l10n-drivers to determine the best local services to feature on this page.  Subsequently, the l10n-drivers team has compiled research on websites and services that are popular in roughly seventy-five local markets.  Not every locale has a robust set of local services, so sometimes the en-US defaults ship.  But, I really believe this page can be a critical step in helping users optimize their experience on the Web.

    Here’s a little anecdote on why I believe that.

    Although it may be known by some, we try to ship each localized version of Firefox with a language dictionary so users can have the same spell-checking functionality in their native language that en-US users have when writing web mail, blogs, or whatever.  Sometimes, licensing issues determine if we can ship Firefox with a particular dictionary.  If an open source license prevents us from shipping that dictionary, the dictionary still can be created as an add-on and offered to end users from our Add-ons website via the Getting Started page.

    This was the case in Denmark.  When a license prevented a dictionary from shipping, our localizers thought creatively and suggested that we feature the Danish add-on on the Getting Started page.  The experiment resulted in a bit of a surprise.  The link became the most popular click-through on the page!  See the attached image I mocked up.

    Danish Getting Started page

    The above image is a “heat map” from the month of May that shows total number of user clicks and the ranking of those links out of the total number of points of interaction on the page.  You can see that the dictionary ranked one out of twenty-eight with 2,216 clicks.  I’d like to think that over 2,000 users added the dictionary after clicking.  When you check the download statistics on the add-on’s page, you can see that it is quite popular.

    Where else could we see this benefit to dictionaries?  I suspect that it would be useful to present dictionary add-ons on the Getting Stared pages where bilingual users are prevalent.  Don’t hesitate to make the suggestion to us and we’ll make the change if feasible. And, if you are a localizer who faces a licensing conflict with a dictionary, please let us know.  Let’s put it on the Getting Started page.

  • How do we scale the Mozilla localization community?

    June 5th, 2009 by seth bindernagel with 3 comments »

    Between the release of Firefox 3 and the upcoming release of Firefox 3.5, Mozilla will add twenty-six new localizations to the Firefox’s list of localized versions.  It’s likely that we will ship Firefox in seventy-four locales, not including the en-US version.  What does it take to scale our community and increase our locale count by over fifty-four percent?

    It turns out that many who learn about our growth often ask if we can articulate any of the magic behind this scale.  It’s not really magical, and it’s pretty straight forward.  In fact, I’ve been meaning to write something on my blog about our process to describe the many things that make this possible.  Coincidentally, Greg Bell, who helps run the website Open Logic, learned of our growth and asked me if I’d answer this very question in a post for his site.  This seemed like the best opportunity since Greg provided a deadline that would force me finally to write it.  He and his staff titled the article Go Local, Be Global: Scaling the Mozilla Localization Community and they wrote a very nice introduction about Mozilla.  I hope you find time to read it.

    Of course, it’s quite easy to write a piece like this when we have a remarkable community of contributors.  Special thanks has to go out to the l10n community and l10n-drivers team who have been building for years the foundation that has made this scale possible.  Most of all, Axel Hecht and Pascal Chevrel have been the two Mozilla employees most responsible for our global growth.  Hats of to them.

    Finally, many thanks to Greg for offering me the opportunity to write.  He caught me at the height of our Firefox 3.5 release work, so it took me a few more weeks than expected to write it. Luckily, he let me slip my deadline twice until I finally got this together.

  • NSPR/NSS/JSS Mac OS X build/QA/tinderbox support

    June 2nd, 2009 by seth bindernagel with 2 comments »

    The beginning of the title to this post is either a really poor set of letters for a game of Scrabble, or…

    In December, 2008, the Community Giving Program provided five Mac Minis to the NSS community that are being used as 1) an internal build machine, 2) an internal nightly automated QA machine, 3) an NSS stable branch tinderbox, 4) an NSS trunk tinderbox, and 5) a developer test/QA machine.

    Today, on behalf of the NSS community, Glen Beasley updated me with a quick report:

    “We have been running full internal build/QA on two of the Mac Mini’s. These reports can be sent to external NSS users if they request to be on the list. We also have tinderboxes for 32 bit and 64 bit Mac OS X builds.”

    http://tinderbox.mozilla.org/NSS/

    “In the past months the Mac OS tinderbox’s have revealed a few developer build breakages and QA issues that likely would have gone unnoticed for several days/weeks had we not had the tinderbox/build machines in place.”

    The first four machines benefit Mac OS X support because, in the past, we have gone weeks before finding out that a Mac OS build had been broken by a checkin.   With more solid Tier 1 build/QA support for Mac OS X, the community has been able to find breakages sooner.  Finally, the last Mini is accessible by NSS developers to address build/regression failures and develop Mac OS X specific functionality.

    It should also be mentioned that anyone interested in contributing to the NSPR/NSS/JSS team should comment here and I will be sure to make the introductions to Glen and the team.

    As always, if you know of any potential recipients for Community Giving program that would empower someone or a community with Mozilla, please let me know.  Though I focus mostly on Localization, this program is still thriving and we are always seeking leveraged opportunities to support recipients.

  • L10n web dashboard improvements

    June 1st, 2009 by seth bindernagel with no comments »

    At the beginning of this quarter, the l10n-drivers set a goal to improve our dashboards so people could begin to use them as both communication platforms and better aggregators of l10n information.  Among the many things he is presently doing for our localization community, Pascal has been hard at work on improving Mozilla’s web l10n dashboard.  Here is a summary of his changes:

    Communication improvements

    • Placed a highly visible subscription link to the RSS feed so updates to relevant bugs are seen immediately by localizers
    • Began sorting feeds chronologically with better description of tasks
    • Fixed a bug on feed page so that the feed now leads directly to a locale’s page
    • Added “last update of data” information on pages
    • Improved the readability with CSS and template changes

    Organization of locales

    • Added the metalocale ‘es’ Spanish for tracking of projects shared by all Spanish-speaking teams (mostly marketing sites and support)
    • Added the locales es-CL, ms, or, rm, ta-LK

    Projects views

    • Added support for a bug to belong to multiple projects in tracking sections
    • Added new subsections for Firefox 3.5 release for tracking
      • Projects and sections can be added/removed editing a config file, useful for short term projects like mini-sites

    New tool  

    • main.lang checker, which I blogged about in the past
    • Warns the localizer of UI strings missing or identical to en-GB (as the reference locale) on mozilla.com/mozilla europe/mozilla messaging
    • Added main.lang checker data to the web dashboard
      • if main.lang files are out of date, it is displayed in the rss feed and the web dashboard page

    Other

  • Responding to Walt’s rhetorical criticism

    May 29th, 2009 by seth bindernagel with 7 comments »

    If you advance to the two minute thirty-five second point of this interview of Mitchell Baker and John Lilly, you’ll hear Walt Mossberg remark about the quality of Mozilla’s localizations by saying,

    “I have a deep distrust of somebody who I don’t know to be actually responsible for the quality of the end product.”

    We’ve heard that before, haven’t we?  To entertain the point, I’ll answer a question, “Just how do we know that our translated product is high quality?” by linking to several posts (with very brief summaries) as a response to Mossberg’s rhetorical criticism. 

    • Testing the latest localized version of Firefox 3.5 — In this post, I ask our localizers to test a release, with specific steps that each locale can follow.
    • Moving a locale out of beta — This is a basic software release principle.  No, our localizers don’t get a free pass into “official status”.  We give each locale a proper amount of time to bake so the beta users can provide feedback to our localizers.  After feedback is “triaged”, bugs are fixed, and signs of user adoption become obvious, we move a locale out of beta.
    • Localization-QA survey results — At the end of 2008, we conducted a survey to gauge our teams’ testing efforts.  The posted results point us to where localizers might need our assistance.  From this, we have begun an experiment to provide a third-party QA service to help test a sample of our localized versions.
    • Adding contextual information to a localized build –  Some of our localizers even create, share, and use customized tools to help perfect translations

    Perhaps it’s hard to express without sounding naive or idealistic, but maybe there is an important theme that didn’t make Mossberg’s conversation that should be articulated:

    We take localization very seriously.  This is not just a hobby for our community, and many have the battle scars to prove it.  Just ask someone who has stayed up all night to perfect a translation before a code freeze and you’ll understand what I am getting at.  Each of our localizers is keenly aware that greater than fifty percent of our end-users are NOT using an en-US version.  When a localizer is responsible for a translation, the quality of their work impacts a massive amount of end users.  We could ask our German localizer Kadir, whose localized version of Firefox is being used by an estimated twenty-five million people.  Or, Romi, our Indonesian localizer, who’s translated version has climbed to sixty-three percent market share.  That level of impact keeps our localizers sharp and tremendously dedicated.

    Other highlights from the transcript:

    “Walt: 71 of the foreign-language versions of Firefox are written by volunteers. Why should I use a product like that? Lilly says Mozilla has a system for verifying the quality of these other versions and vets them prior to release. Beyond that, users will alert the company to any problems.”

    “Walt: Why wouldn’t it just be better for the consumer to go with the company that’s hired experts to do its translations? Baker: How much software do you really think is great? Walt: Not very much. Lilly: But it’s all written by experts. Walt nods, point taken.”

    NB:  John Lilly mentions that we’ll have seventy-one localizations for Firefox 3.5.  We’re growing everyday!  We are actually going to ship seventy-three localizations for Firefox 3.5’s release candidate, with an outside chance of seventy-five for final release.

  • Adding contextual information to a localized build

    May 26th, 2009 by seth bindernagel with 2 comments »

    A volunteer from the Tanzanian Linux User Group passed me this blog post that describes a tool he created to help localizers with context of strings in the Firefox user interface. As Alberto writes,

    “It is difficult to translate something that you have never used before, functionalities that the translation team is not familiar with or English words that can be understood in several ways.”

    His tool allows a localizer to add tags to each string so that when the localizer builds Firefox locally, they can see the translation with a tag in the UI.  If the translation seems incorrect in the context, the localizer can use the tag to find the file that needs adjustment.  See the screen shot below and check out his post for more information.

    2_1241777494_umoja_firefox_35pre5_debug

  • Koala

    May 26th, 2009 by seth bindernagel with no comments »

    Many of you may remember our localization intern, Adrian Kalla, from last year.  A dedicated community member before his internship, Adrian returned to school to continue his contribution to Mozilla.  Recently, he approached us with a request to support a project that would help complete his course of studies.  After expanding the idea with Axel, he had a project idea to pursue and the l10n-drivers jumped at supporting such an interesting experiment that Adrian calls “Koala”.

    He will be blogging about his project on a regular basis, but he asked me to post the following initially to describe the idea:

    During my internship at Mozilla last year, I developed a Silme-based “compare-locales” version. It is a command-line only tool, that requires from the user to have experience in working with a console. Well - we all know that a text-interface is not necessarily a user’s first-choice, so Axel came up with a great idea to develop a user-friendly graphical front-end for it.

    Being back at my University, one part of my major is to work on a project, which may be done in cooperation with external companies. This project is officially scheduled for the term directly after the internship - that is, the chance to move Axel’s idea from the ‘ideabox’ to the ‘real’ world.  I see it as a great opportunity to continue my work on Mozilla L10n tools and my major at the same time.   Everything went quickly: Axel defined the project and its details, which was then accepted by my professor as an official university project. Together with my fellow computer science students, namely Adam Kowalewski and Florian Schloegl, we created a project team. And…

    What exactly are we working on?

    Calling the project just a “graphical interface for compare-locales” would underestimate the objectives we have set for it. It will be an extension for the Komodo Edit & Komodo IDE developer-editor/IDE applications, which are based on Mozilla technologies, that will help with the daily work of holding Mozilla localizations up-to-date. Starting with pulling Mercurial repositories, comparing the changes, showing that changes to the user directly in the work files, …, ending with helping during the translation process (e.g. translation-suggestions, syntax highlighting) and committing the changes back to a repository – everything in just one tool.

    We named the extension “Koala”, which stands for “Komodo Advanced Localization Addon”.

    More information will be available soon on http://koala.mozdev.org .

    To accomplish the project, we have a September, 15 (2009 of course ;) ) deadline. But you will hear of us sooner. Stay tuned.

  • An experiment to integrate Silme with Narro

    May 22nd, 2009 by seth bindernagel with no comments »

    Many of you know Romi Hardiyanto as our Indonesian localizer who has helped grow Firefox’s market share in Indonesia to 50% since he started localizing in 2007.  Romi is also a dedicated Mozilla contributor who recently hosted a terrific add-ons workshop at the Information System Department Park, ITS Campus in Sukolilo, Surabaya, Indonesia.  (But, I know you’ve read Gen’s post about that.)

    Recently, Romi responded to a Google Summer of Code idea I had posted about helping to enhance Mozilla’s dashboard.  The l10n-drivers knew that this project was a bit of an imperative, so we decided to take on development within our team before we had any guarantee from GSoC if our proposal would be accepted.  (Some blog post about the dashboard vision and progress are coming from me and Axel.)  Given the amount of ambiguity on the resources Mozilla would commit to the idea, the GSoC proposal was rejected.

    But, from the ashes came an idea to do a similar summer of code style project within Mozilla.  What if we could redirect Romi to do another experimental project that would have some benefit to the localization community?  Could Romi contribute to Silme by working on an implementation?  In the past, we’ve supported some of our tool authors with funding and development resources.  It turns out that Narro, another tool used by many of our localization teams, seemed like a good fit for the experiment.  Voila, a new proposal took shape.

    I am pleased to announce that Romi will be working to integrate Silme, a library of localization scripts created by Gandalf, into Narro.  With Silme integration, we should be able to get exports of translated strings from Narro that are file-type independent (because Silme does that nicely) and can be used by the localizers and l10n-drivers to smooth out any commit bugs when it comes time to push changes back to the l10n code repositories.

    Why is this important?

    I’ve blogged in the past about the uniqueness of Mozilla’s DTD and property file types.  Our file structure and file types can create conflicts with the output people who choose to localize with tools send to us.  With Silme integration, we’ll have something that maps a bit more nicely to DTD and property files with less conflict.  You can read more about Silme on Gandalf’s blog, including this wiki page that describes what features we hope to add in the 0.7 release.

    The early challenge for Romi’s project is going to be embedding a Python interpreter into Narro’s PHP code base  He researched a bit about PECL and will blog soon about his findings.  If you can provide any ideas on how to do this, Romi would love to hear your remarks.  We also have some stretch goals to hit if Silme gets integrated into Narro, and Romi will continue to blog about his progress, and those goals, over the next couple months.  Please welcome Romi when his first post to Planet appears and provide any advice you might have.

  • Testing the latest localized version for Firefox 3.5

    May 22nd, 2009 by seth bindernagel with 10 comments »

    I posted this to the Mozilla L10n newsgroup, but for maximum coverage, I’ve reposted it on my blog.  Special thanks to Marcia, Axel, and Chofmann the various resources I reference below.

    ——————————————–

    To all of our great community localizers and testers…

    Over the past few weeks, many of our Mozilla community members have done testing and landed fixes for Firefox 3.5 as we close in on our release.  We are now in the last hours before we ship our release candidate that we can comfortably call Firefox 3.5. If you have time this weekend, it is a great opportunity to do some last minute testing for your localization.

    Where to download the latest localized nightly version of the Firefox 3.5

    http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-1.9.1-l10n/

    Please hammer on these builds mercilessly to make sure that things work well.  If you notice things that worked in Firefox 3.5 beta 4, but do not work in this release, we would like to know about it right away.

    What to Test

    You can run a set of localization test cases by going to Litmus, Mozilla’s testing suite.  This URL will take you to the “l10n run”.

    https://litmus.mozilla.org/run_tests.cgi?test_run_id=36

    If you don’t have a Litmus account, you should be able to create one quickly.  Please email us if you need any help.

    How to report feedback

    Please try filing a bug for your locale with Bugzilla.  The basic set of instructions are below.  If you are not comfortable filing a bug, you can report it to your locale leader who should be listed in the specific locale on this main Teams page:

    https://wiki.mozilla.org/L10n:Teams

    Things to remember when filing a bug in https://bugzilla.mozilla.org/:

    1. Always include the Build ID that you tested on.  If you type about: in the URL bar, this will give you the Build ID.
    2. Always include clear “Steps to Reproduce” the bug.
    3. Always check to see if your bug has already been filed.  This link will help: http://tinyurl.com/2465be
    4. Use the regression keyword if it indeed a regression from a previous release.  And, please tell us in the main comment of the bug if it is a regression from a previous release.
    5. If you happen to crash, please include the Breakpad ID in the bug.  You can get this by typing about:crashes in the URL bar.

    If you don’t wish to file a bug, report issues through http://feedback.mozilla.org or through the mozilla.feedback.firefox.prerelease newsgroup (I just linked to the Google Group).  However, we prefer bugs as feedback since those are easier to track.

    Finally, keep in mind that no comments or questions are off limits.   Please send along any remarks or questions that you think are appropriate at you test.   It’s all appreciated.

    Thanks to all of you for helping test Firefox and making it the browser of choice for millions and millions of people all over the world!