Skip to content

{ Tag Archives } L10n

Adding a debug language to ȧḓḓ-ǿƞş.ḿǿzīŀŀȧ.ǿřɠ

Last week Greg Koberger finally got me to cross “add a test locale to AMO” off my list – and it turns out it only took a few minutes of actual coding. It sounds like others have had some troubles so I wanted to run through what I did. Firstly, you can see what I’m […]

Also tagged , , , ,

PHP is dead! (on

This is just a short note to recognize the long coming milestone of PHP being effectively off[1] on We started the migration in 2010 and just finished it up a couple weeks ago. After the major pages were completed it was hard to budget time for all the minor details we had implemented since […]

Also tagged , , , , , ,

Welcome to the Landfill

Anyone who has tried to set up AMO knows it’s no walk in the park even with the respectable amount of documentation. There are two big stumbling blocks: the database is large and complex, and a portion of the site functionality is still in PHP. Django’s syncdb can make a database, but the relationships in […]

Also tagged , , , , , ,

Maintaining localization between Python and PHP (it’s not fun)

I reached my hand into the barrel of problems our migration to Python is going to cause and came up with Localization. It figures. First out of the chute was the .po files. It turns out the actual formatting is different between the two languages. PHP uses %1$s for its substitutions, but python uses either […]

Also tagged , , , ,

AMO Development Changes in 2010

The AMO team met in Mountain View last week to develop a 2010 plan. We’ve been wanting to change some key areas of our development flow for a while but we needed to make sure time was budgeted in the overall AMO and Mozilla goals. As usual, the timeline will be tight, but the AMO […]

Also tagged , , , , , , , , , ,

Add-on Localization Completeness Script is on AMO

The add-on verification suite launched a few months ago and has been refined with each subsequent milestone. We’ve changed what it searches for based on feedback and our own findings and earlier this month we made it available to anyone on AMO, not just a hosted add-on’s authors. The framework was written in an extensible […]

Also tagged , ,

Using substitution strings in .po files

A couple years ago I recommended using fake msgid’s in .po files and was, predictably, met with some argument. I suggested using this hack because there wasn’t a standard way to store context in a .po file yet.[1] Since that time msgctxt has become a standard part of gettext and makes my substitution string recommendation […]

Also tagged , ,

The Tagging Plan for AMO

Firstly, thanks for all the great feedback. Something as seemingly simple as tagging gets complex quickly when thought out and the varied perspectives of the community are always great to have. Allowing full Unicode would let anyone use meaningful tags in their own character sets but would prevent us from offering similar matches and common […]

Also tagged ,

Some considerations when adding Tags to AMO

Tags broke into the limelight around the time “Web 2.0″ was becoming popularized. They provided a simple but effective way to categorize objects and many sites are using them now. Despite their proliferation, I haven’t found any documentation on the internet regarding standards for implementing tags. A tag library exists for CakePHP but it, and […]

Also tagged , ,

Verbatim: going forward

According to the high level plan, we’re currently on step 4. The Mozilla branch has been merged back into Pootle’s trunk and work on the branch has been discontinued. While writing code it became apparent that the framework Pootle was built on, jToolkit, had some shortcomings that were making it difficult to work with (not […]

Also tagged ,