On Thursday, a couple of RFEs (Request For Enhancements) that had been filed a long time ago were brought to my attention again – these were for support of the Mozilla “.dtd” message file format in our translation tools.

So I decided to have a “drop everything afternoon”, where I’d stop whatever I was doing at the time and give a good estimate as to how long it’d take to support. People were complaining that having to manually do wordcounts and leave translators up to using whatever tools they could find was making the process of doing Mozilla translations a pain in the neck : especially since we already had .properties files supported, it meant that they’d have to use two separate tools to complete the localisation. Well, it turns out that Mozilla DTD files weren’t too complex :

<!ENTITY     props.box.label                "About this cookie">
<!ENTITY     props.name.label               "Name:">
<!ENTITY     props.value.label              "Content:">
<!ENTITY     props.domain.label             "Host:">
<!ENTITY     props.path.label               "Path:">

Given that we’d already got a reasonable DTD parser written using JavaCC, I decided to write the filter there and then. It was pretty straight-forward to write a visitor which ran over the parse tree and gave us the object type that the rest of our software message filters can use. On Friday, I added a few extra bits of magic to throw errors in case we come across valid DTD tags that would suggest that we’re not actually parsing a Mozilla software-message-dtd file, like <!ELEMENT declarations, then integrated the code into the rest of the TM server and taught the editor not to be afraid of files of this format type. Another file format supported ! Just need to deploy to the production server later this week.

Next step (for someone else thankfully) is to write a filter configuration file for our XML filter in order to deal with the Mozilla “.rdf” files that also need to be localised.

In other news, I’m on a SunU course this week : the Sun Global Resolution Troubleshooting training, which is based on some material from Kepner Tregoe – anyone I’ve talked to who’s been on the course has said that it’s terrific (in the vein of “if you’re an engineer, you need to get yourself on this course”). We’ll see how it goes…