Mot-clé : l10n

Tous les mots-clés

Entries list

jeudi 19 décembre 2013

My Q4-2013 report

It's the end of the quarter, just list last quarter I wrote down a summary of what I did this quarter for Mozilla for posterity, here it is ;)

Tools and code

Once again, I spent significant time working on tools this quarter. My activity was focused on Transvision, Langchecker and my FirefoxOS minidashboard.

There were 2 releases of Transvision, 2.9 and 3.0, adding many new features and additional support for Gaia repositories. I also created a #transvision IRC channel on Mozilla IRC server. You can now search strings for 3 locales simultaneaously, check all existing translations for an entity, list all potentially wrong varables in your repo or quickly check  all strings that need some extra QA for Firefox OS.

There were also many improvements to langchecker, the tool that I now maintain with my colleague Francesco Lodolo to track and manage progress of translations for projects using our .lang format. Many views were improved and we added features specific to the metadata used on (page activation and home page promos). We also added checks for UTF8 validity of the source files as well as checks for broken or missing python-style replacement variables in translations. We can also know how much of our l10n user base we cover not only per page but also per string on a page, which allows us to decide when we can activate a minor but visible text change on our pages (recently for example, html meta description and title tag changed for SEO reasons on the Firefox download pages).

As for my FirefoxOS mini dashboard (which syndicates data from the l10n dashboard, the langchecker and also contains some manually maintained data sources), it followed Gaia progresses and now tracks Gaia 1.1 and 1.2 in addition to the master branch.

Community building

This quarter I found 8 new localizers for and key Firefox web parts for the following locales: Afrikaans, Arabic, Basque, Bulgarian, Czech, Slovak and Spanish (Mexico). As usual I tried to focus on helping teams that lack manpower and / or maintain Firefox for a minor language.

I also created / revived IRC channels for these locales to help community building:  Catalan (#mozilla-cat), Slovak (#mozilla-sk) and Serbian (

If we can find 5 to 10 localizers working on key content every quarter, we shouldn't have any problem growing with all of our locales together in the years to come, the thing is that we have to be proactive and look for these people and not wait for them to come to us :),


The only event I went to was the Mozilla Summit, it was great and very productive from a localization point of view, I worked with Dwayne who maintains Locamotion, the Pootle instance focused on Mozilla projects for minor locales (Firefox, content, Firefox OS, Firefox health report) and we worked on improving our collaboration. One of the immediate results this quarter is that now we automate imports of strings for from Locamotion, which takes us a few minutes of work per week  and is faster for both Dwayne and ourselves. We are working on how to make it easier for locales on Locamotion to also follow work as this happens at a much quicker pace than product localization.

I also talked and worked with many localizers either on their specific issues (for example Brano and Wlado from the Slovak team asked me for help finding new localizers) or to check what problems a locale has and how to fix them.

A lot of work happened on this quarter. The most visible one is that we now have the home page available in 55 languages, versus 28 at the end of the last quarter. This is a steadily growing number, I hope that we can get the page in 70 locales, the most important is of course maintenance over time. The home page received also several updates promoting various topics and we scaled out l10n work to cover that (end of year donation promo, lightbeam, webmaker, addons). The webdev team implemented a way for us (l10n-drivers) to manage the activation of promos on the home page without code changes thanks to metadata in our lang files, that allowed us to never show mixed language content on the home page and activate these promos for locales as they get done.

Key pages in the main menu (products, mission, about, contribute) are all localizable and localized to about the same scale as the main page. Other key download pages (firefox/channels and firefox/installer-help) pages are also now translated anf maintained at large scale. Lightbeam and State of Mozilla sections were proposed as opt-in projects and have many translations (between 15 and 20 languages). I am happy that we were able to scale the localization of in terms of content (more pages, more content for products), number of locales and locale-specific improvements on the platform (better rtl support, better fonts, l10n friendly templates..), and our management tools to allow us to grow.

Another cool l10n feature that happened on the site was the creation of a 'translation bar' proposing you a page in your language if it exists. This was entirely done by a volunteer Mozillian, Kohei Yoshino, many thanks to him for this cool feature that may expand to other Mozilla sites ! Kohei wrote about it on the webdev blog. It is really cool to see improvements brought by volunteers and it is also cool to see that many people in the webdev team are also acquiring an l10n culture and often spot potential problems before myself or flod get to them !

That's all for this quarter, overall an excellent quarter for and tools which improve steadily. On a side note, it is also an excellent quarter for me at a personal level  as my daughter was born last month (which explains why I am less often connected  these days ;) )

lundi 4 novembre 2013

PHP: détecter si l'encodage d'un fichier est en utf8

Dans mon boulot on travaille uniquement avec des fichiers source en UTF8, notre site principal est en python mais j'ai des outils de maintenance extérieurs au site qui sont en PHP, étant donné que l'on travaille avec une bonne centaine de bénévoles qui ont accès au svn où nous stockons les fichiers de traduction et que nous avons des milliers de fichiers, il arrive qu'un bénévole envoie un fichier dans le mauvais encodage (genre Latin 1 pour certains europeéns et UTF16 pour certains asiatiques) et là, pour Django, c'est le drame :)

En bash on peut lister tous ces fichiers assez facilement et se créer un alias pour ça :

find . -type f -name "*.lang" -exec file --mime {} + | grep -viE "utf-8|us-ascii"

(via mon collègue italien Francesco Lodolo bien meilleur que moi en bash :) )

Ça marche bien mais je préfèrerais pouvoir afficher cette information dans mes tableaux de bords que je consulte en permanence, j'avais donc besoin d'une fonction pour détecter l'encodage des fichiers et j'ai pas mal sué pour trouver quelque chose qui marche correctement.

Ma première solution qui marchait a été celle là :

function isUTF8($file) 
    return in_array(exec('file --mime-encoding -b ' . $file), ['utf-8', 'us-ascii']) ? true : false;
Je délégais donc au shell la détection du charset, ça marche bien, mais ça a plusieurs inconvénients. Le premier est que ça ne marche pas sous Windows, même si j'avoue que c'est pas ma priorité, l'une des forces de PHP est tout de même sa compatibilité cross-plateforme. Le deuxième problème est que j'aime pas faire des exec, je trouve souvent ça un peu crade et c'est en général l'indice que j'ai pas réussi à le faire en PHP, le troisième problème et c'est le plus grave pour moi c'est que c'est très très lent. En local avec un disque SSD, un script qui mettait 3 secondes à s'éxécuter (et qui parsait déjà un petit millier de fichiers pour chercher des erreurs de variables python dans des chaînes) est passé à 18 secondes avec cette fonction et est interrompu sur le serveur qui n'a probablement pas de ssd pour dépasser les 30 secondes.

Ça marche donc, mais c'est trop lent pour mes besoins et je ne voyais pas comment l'améliorer.

J'ai cherché du côté de mb_detect_encoding() mais j'avais des faux négatifs avec un fichier en UTF8 que je savais corrompu et que php me détectait comme de l'UTF-8 alors que bash me le détectait en fichier binaire et que mon éditeur de texte me donnait en UTF16LE sans BOM. Comme c'est précisément ce genre de problèmes que je cherchais à détecter, après plusieurs heures de recherche du côté des fonctions mb_, j'ai l'aissé tomber.

Finalement ce matin j'ai trouvé une solution qui a des perfs correctes pour mon usage (je suis passé de 3 secondes à 6 secondes et j'ai des idées dans mon contexte précis pour faire baisser ça) en utilisant les fonctions finfo_* que je ne connaissais pas ! la voici :

function isUTF8($filename)
$info = finfo_open(FILEINFO_MIME_ENCODING);
$type = finfo_buffer($info, file_get_contents($filename));

return ($type == 'utf-8' || $type == 'us-ascii') ? true : false;

La fonction ci-dessus correspond bien à mon besoin: pouvoir détecter si l'encodage d'un fichier est en utf-8 ou compatible utf-8 pour une utilisation sur le Web. Si quelqu'un a une meilleure solution, je suis bien sûr preneur :)

mardi 1 octobre 2013

What I did in Q3

A quick recap of what I did in Q3  so as that people know what kind of work we do in the l10n-drivers team and because as a service team to other department, a lot of what we do is not necessarily visible.

Tools and code

I spent significantly more time on tool this quarter than in the past, I am also happy to say that Transvision is now a 6 people team and that we will all be at Brussels for the Summit (see my blog post in April). I like it, I like to create the small tools and scripts that make my life or localizers life better.

  • Two releases of Transvision (release notes) + some preparatory work for future l20n compatibility
  • Created a mini-dashboard for our team so as to help us follow FirefoxOS work
  • Wrote the conversion script to convert our Serbian Cyrillic string repository to Serbian Latin (see this blog post)
  • Turned my langchecker scripts (key part of the Web Dashboard) into a github project and worked with Flod on improving our management scripts for and fhr. A recent improvement is that we can now import automatically translations done on Locamotion You can see a list of the changes in the release notes.
  • Worked on scripts allowing to query bugzilla without using the official API (because the data I want is specific to the mozilla customizations we need for locales), that will probably be part of the Webdashboard soon so as to be able to extract Web localization bugs from multiple components (gist here). Basically I had the idea to use the CSV export feature for advanced search in Bugzilla as a public read-only API :)
  • Several python patches to to fix l10n bugs or improve our tools to ship localized pages (Bug 891835, Bug 905165, Bug 904703). localization

Since we merged all of our major websites (,,, under the single domain name two years ago with a new framework based on Django, we have gained in consistency but localization of several backends under one single domain and a new framework slowed us down for a while. I'd say that we are now mostly back to the old speed of localization, lots of bugs and features were added to Bedrok (nickname of our Django-powered site), we have a very good collaboration with the webdev/webprod teams on the site and we are more people working on it. I think this quarter localizer felt that a lot more work was asked from them on, I'll try to make sure we don't loose locales on the road, this is a website that hosts content for 90 locales, but we are back to speed with tons of new people!

  • Main Firefox download page (and all the download buttons across the site) finally migrated to Bedrock, our Django instance.  Two major updates to that page this quarter (+50 locales), more to come next quarter, this is part of a bigger effort to simplify our download process, stop maintaining so many different specialized download pages and SEO improvements.
  • home page is now l10n-friendly and we just shipped it in 28 languages. Depending on your locale, visitor see custom content (news items, calls for contribution or translation...)
  • Several key high traffic pages (about products updade) are now localized and maintained at large scale (50+ locales)
  • Newsletter center and newsletter subscription process largely migrated to Bedrock and additional locales supported (but there is still work to do there)
  • The plugincheck web application is also largely migrated to Bedrock (61 locales on bedrock, about 30 more to migrate before we can delete the older backend and maintain only one version)
  • The contribute page scaled up tp 28 locales with local teams of volunteers behind answering people that contact us
  • Firefox OS consumer and industry sub-sites released/updated for +10 locales, with some geoIP in addition to locale detection for tailored content!
  • Many small updates to other existing pages and templates

Community growth

This quarter, I tried to spend some time looking for localizers to work on web content as well as acompanying volunteers that contact us. I know that I am good at finding volunteers that share our values and are achievers, unfortunately I don't have that much time to spend on that. Hopefully I will be able to spend a few days on that every quarter because we need to grow and we need to grow with the best open source contributors! :)

  • About 20 people got involved for the folowing locales: French, Czech, Catalan, Slovenian, Tamil, Bengali, Greek, Spanish (Spain variant), Swedish. Several became key localizers and will be at the Mozilla summit
  • A couple of localizers moved from localization to product localization where their help was more needed, I helped them by finding new people to replace them on web localization and/or empowering existing community members to avoid any burn-out
  • I spent several days in a row specifically helping the Catalan community as it needed help to scale since they now also do all the mobile stuff. I opened a #mozilla-cat IRC channel and found 9 brand new volunteers, some of them professional translators, some of them respected localizers from other open source projects. I'll probably spend some more time to help them next quarter to consolidate this growth. I may keep this strategy every quarter since it seems to be efficient (look for localizers in general and also help one specific team to grow and organize itself to scale up)


  • Significant localization work for Firefox Health Report, both Desktop (shipped) and Mobile versions (soon to be shipped)
  • Lots of meetings for lots of different projects for next quarter :)
  • Two work weeks, one focused on tooling in Berlin, one focused on training my new colleagues Peying and Francesco (but to be honest, Francesco didn't need much of it thanks to his 10 years of involvement in Mozilla as a contributor :) )
  • A lot of work to adjust my processes to work with my new colleague Francesco Lodolo (also an old-timer in the community, he is the Italian Firefox localizer). Kudos to Francesco for helping me with all of the projects! Now I can go on holidays knowing that i have a good backup :)

French community involvement

  • In the new Mozilla paris office I organized a meeting with the LinuxFR admins, because I think it's important to work with the rest of the Open Source ecosystem
  • With Julien Wajsberg (Gaia developer) we organized a one day meeting with the Dotclear community, a popular blogging platform alternative to  Wordpress in France (purely not-for-profit), because we think it's important to work with project that build software that allows people to create content on the Web
  • Preparation of more open source events in the Paris office
  • We migrated our server (hosting Transvision,, to the latest Debian Stable, which finally brings us a decent modern version of PHP (5.4). We grew our admin community to 2 more people with Ludo and Geb :). Our server flies!

In a nutshell, a very busy quarter! If you want to speak about some of it with me, I will be at the Mozilla Summit in Brussels this week :)

samedi 2 janvier 2010

My 2009 yearly report

I am not great at blogging in English and communicating about my work so I thought that publishing my yearly report would compensate that ;)

All in all, it has been a busy year, nobody in the localization drivers team and among our localization teams had time to get bored, lots of product releases, lots of pages, lots of travel and events too. I am listing below what I have been directly leading and/or participating in, not some other projects where I was just giving a minor help (usually to my colleagues Stas and Delphine).


  • 2 major releases: Firefox 3.5 and Thunderbird 3 (with a new multilingual Mozilla Messaging website)
  • 26 other releases (maintenance, beta and RC releases)

Mozilla Europe website(s):

  • 3 new locales: Serbian, Bulgarian, Swedish, our geographic coverage of Europe is now almost complete
  • New content for 3.5 release, minor releases and many side projects
  • major cleanups of content and code for easier maintenance (especially maintenance releases) and more features (html5 support, per locale menu navigation, visits now with referrer hints for better locale detection...)
  • Site now sharing same metrics application as other mozilla sites
  • More per country news items than previous years (events, new community sites, community meetings...)
  • 46 blog posts written by our European community on
  • Our events management web application was used for 10 European events (I created it back in summer 2008) website

  • We now have a localized landing page for our 74 locales on top of up to date in-product pages
  • Geolocation page for all locales
  • 3.0 and 3.5 major updates offered for all locales
  • Localized beta download pages to incitate beta-testing of non-English versions of Firefox
  • Better code for our localized pages (better right-to-left, language switching, simpler templates...)
  • Whatsnew/Firstun pages now warn the user in his language if his Flash plugin is outdated  (for better security and stability)
  • Lots of content, css, graphics updates all along the year, everywhere
  • Firefox 3.6 in-product pages (firstrun, whatsnew, major update) localization underway, pluginscheck page localization almost technically ready for localization
  • Fennec pages being localized for 1.0 final

Marketing Sites made multilingual

Mozilla Education:

  • Gave a lecture at the Madrid university about opensource, the mozilla project and community management.
  • MMTC Madrid one week sprint in July, gave Mozilla classes with Paul Rouget and Vivien Nicolas to 30 students (evaluation TBD)
  • Organized CoMeTe project at Evry university, France,  in October with Fabien Cazenave and Laurent Jouanneau as teachers

Community work

  • Found new localizers for a dozain locales, helped some creating blogs, community sites and local events
  • Many community meetings, IRC or IRL
  • Participated in Firefox 3.5 party in Madrid
  • I am since May on twitter, communicating about my work and Mozilla in Europe
  • Organized a theming contest in collaboration with the Dotclear project for our community blog, won by Marie Alhomme
  • Created with Julia a Mozilla Planet for French Speakers
  • Lots of Web l10n QA with Delphine plus some personal QA work on 3.6 looking for Linux specific Firefox bugs
  • Went to 21 events (7 of them internal Mozilla events) like Fosdem, MozCamps Chile + Prague, Ubuntu parties, Solutions Linux, W3C event, Firefox 5 year anniversary, Firefox 3.5 party Madrid, JDLL, Geneva Community meetup... Lots of time abroad and travelling.
  • Blogging in French about the Mozilla project and its place in the FLOSS ecosystem, current focus on Mozilla QA and how to get involved in the project.


  • Some documentation work (mostly on QA of localized pages)
  • Many updates to the webdashboard
  • Helped Delphine setting up Womoz website and general advices on community building
  • Several press interviews for Spain as well as conferences given about the Mozilla project
  • Started this week with Stas and Patrick the localization work needed for the Browser Choice Screen in Windows for Europe
  • Lots of technical self teaching while building projects, I even did my first Jetpack extension this week, Yay!
  • A new expresso machine :)

Happy new year 2010 to all mozillians and FOSS lovers in the world :)

jeudi 2 juillet 2009

July 2003 - July 2009: 6 years of Mozilla Web localization

Although I got into the mozilla project through en-user documentation and support around 2001, I really got involved in Web localization in 2003 when I started to build a Spanish Mozilla community around the Mozilla Suite and I convinced Bob Clary (who also gave me my canconfirm rights in bugzilla, thanks for that!) to publish a page in Spanish on so as to promote Tech Evangelism activities in Spanish.

That was the first non-English page on an official mozilla site ever and the funny thing is that... this page is still online!  ;)

We are now in July 2009 and we just shipped Firefox 3.5 in more than 70 languages, all with a set of in-product pages hosted on But more than in-product pages, we now have with this release a localized home page on for ALL of our locales!

Now that the release is done and millions of users are downloading the best version of Firefox ever every day, I have some time to thank all of the people that have made such an achievement possible.

Thank you to our localizers first, without them, the Mozilla project would not have the international outreach it has and I really think that our localizers are way more than translators, they are involved in every corner of mozilla activities, from code, to marketing and documentation. It is a privilege for us to work with people having so many skills and passionate about FLOSS and the open web!

Thank you also to the rest of the l10n-drivers team (Seth, Axel, Stas, Gandalf...) and thank you to Delphine who did an awesome job with QA of all of the localized pages over the past weeks on our sites!

Happy international browsing :)


dimanche 17 mai 2009

Firefox 3.5 release, translations, events, web sites, your local Mozilla community needs you!

Firefox 3.5 is soon to be released and everybody is working hard in the Mozilla community to make it as great a release as were the previous ones!

This is the perfect moment for you to get involved by helping you local localization team preparing translations for our websites, the sooner our websites are ready in 70 languages, the sooner Firefox 3.5 will be released.

Pages called directly from Firefox like the start page, download pages on, product pages on regional sites, documentation for web developers explaining what new technologies they will find in the product, end-user support documentation, translation of Add-Ons, marketing mini-sites being created for the release...

There are tons of ways you can make a real difference in the Mozilla project, especially if you are not an English speaker as the majority of our users are now using a non-English version of Firefox.

if you want to help change the web in your language, just contact your localization team and ask them how you can help, you can also contact me directly of course (pascal AT mozilla DOT com).

jeudi 5 février 2009

Meet Mozilla at Fosdem, become a Mozilla contributor!!!

As every year, Mozilla is going to be at Fosdem with a booth and our own conference room where you will be able to meet with the people behind the different branches of the Mozilla tree (Mozilla Corporation, Mozilla Foundation, Mozilla Europe, Community members and other European Mozilla related associations...).

Lots of fun ahead, lots of interesting talks and a great opportunity to chat or have a drink with the people that make Firefox, Thunderbird, Fennec, Sunbird and all the amazing software based on the Mozilla platform.

It is also a great opportunity to get involved in the Mozilla community, and particularly in helping us translating and promoting Firefox in Europe!!

We have lots of things to do for the upcoming releases of Firefox 3.1 and Thunderbird 3.0, especially on the web pages front where we definitely need volunteers for all of the languages we support.

We also need more people getting involved in helping our local community websites grow and do more things like publishing news items, helping in forums, going to local open source events, organizing parties...

If you want to get involved in localization, promote Mozilla in your language or even get into Quality Assurance and make sure Mozilla products get even better with time... Really, don't hesitate and come to our booth or talk to us in the Fosdem corridors.

Have a great Fosdem 2009!!!

mercredi 31 décembre 2008

27 languages have their own download page on

This post is a follow up to a previous post last month anouncing our first work on localized home pages hosted on

We now have 26 languages (28 if we count en-US and pt-BR which we already had) with a localized download page for Firefox on our main portal. Several of these locales are 'beta locales', that is localized versions of Firefox which may still countain a few language bugs such as typos or inconsistencies in language. Of course, if you are a native speaker of one of these new locales, your feedback on the translation is very welcome!

I had targeted 37 locales under-represented on mozilla web properties as the first batch of prioritary locales for this project, out of the 11 remaining, 5 are still a short-term target (Bulgarian, Estonian, Esperanto, Welsh and Mongolian) since we have Firefox 3 versions available for them. The remaining 6 are more middle term targets as they are more likely targetting a first release when Firefox 3.1 is out.

Here is the list of languages done:

Great job from all of our localizers and a good start for better download pages in 2009!

NEW YEARS EVE UPDATE: Esperanto is done and published!

mardi 18 novembre 2008 is getting translated download pages

As you may have learned recently on Seth's blog, we have been working lately on creating translated landing pages on for all of the locales that are not already supported on an official regional portal (that is those not on Mozilla Europe/China/Japan).

Now that I have a bit of time I can blog a bit about how this project is going.

We have created this week landing pages on for 7 of our locales (Afrikaans, Frisian, Irish, Indonesian, Georgian, Slovene, Swedish) which is a good start given that we (Laura and me) plan to have all of the 37 locales we are targeting done by the end of the year. By the way, the list of targeted locales is on the Web Dashboard, if your language is on the list of languages we are targeting, don't hesitate to come and help with the translation!

So what does it change for let's say a Slovene user compared to the previous situation? Until one week ago, a user with Internet Explorer in Slovene going to or was redirected to and was offered a link to download Firefox in Slovene but the page was all written in English. This is good enough for people speaking English as a second language, but our target audience is no longer the computer and English savvy advanced users. We were certainly losing potential users for one of these reasons:

  • The user gets to an English page and concludes that Firefox is not localized into his language.
  • The user just doesn't understand what the page is about and leaves.
  • We misdetect the visitor's locale and he downloads Firefox in the wrong language.

It is very clear to me that translating a whole portal like and keeping it up to date is not scalable. Maintaining a reduced version of a portal like we do on Mozilla Europe for 22 languages is already a very big task and could be seen as an ideal solution, but many of the locales we are speaking about have little human resources to keep and, more importantly, maintain an entire web site.

Another drawback of a multilingual portal is that any technical change in the reference language (English) may have an impact on localized pages. This is particularily true for stylesheet changes, I have already seen minor visual fixes on an English page impacting negatively the same page for other languages. So as to avoid that, updates on the English version have to be very carefully done and planned and lots of QA of localized pages has to be done when some files are updated in English. Definitely, this is not scalable or would be possible for a handful of languages only.

The solution chosen is one single landing page to propose the download of Firefox, give a few informations (among which a link to the locale's community portal) and also a link to Thunderbird pages in English. We have a separate stylesheet for that and we only share a cut-down version of the template. Our Hebrew localizer is also working on a Right-To-Left stylesheet, thanks Tomer for that!

Additionally, offering the right locale in a page written into the right language is not the only good news about it. This is also going to help promoting localized versions of Firefox more easily with a short url such as for Afrikaans. Great for printed material, banners or simply to give the url of the site verbally to a friend. This will also allow us to do real Search Engine Optimization in the user's language (as we did in the past on and one of the next things to do will be to evaluate the wording of this page for better result, I'll open bugs about it and we will work with our communities on optimizing the language for better search results. By the way, these pages are in Google results since this morning, which is a good start :)

One other good news is that we promote on this page community portals, which means that this will give more visibility to these portals and hopefully new contributors will join the Mozilla project.

Here is the list of current languages done (in the visitor's language so as to give it a small SEO boost ;) ):


One more locale done today, Galician:

jeudi 21 août 2008

Are you Georgian, Mongolian or Belarusian? We need your help for Firefox :)

UPDATE: our translations are now complete, special thanks to Brian(and his team), Gia and Aleks for stepping up and helping us finishing our work on this bug, now Major Update is just around the corner ;)

If you are part of the Mozilla community, speak Georgian, Mongolian or Belarusian and want to help, you may want to check out this bug:

Translation needed for strings on the new Firefox 2 to Firefox 3 Major Update box

It's a short and easy translation (15 words in total) and our usual contributors are not available at the moment to do it, so if you want to help Mozilla by contributing to Firefox, that's an excellent opportunity to get involved!

Thanks in advance!

mardi 12 août 2008

Mexican Spanish language pack for Firefox is ready!

Thanks to the hard work of Ricardo Meza and his team, the first language pack in Mexican Spanish (es-MX) is now available on (AMO):

Español (México) Language Pack 3.0.2pre

This lang pack is still in the sandbox so you will need an account on AMO and be logged in to be able to install it.

More information (in Spanish) on the Mozilla Mexico localization portal as well as on the Mozilla Hispano news site: