What is it?
Dennis is a Python command line utility (and library) for working with localization. It includes:
a linter for finding problems in strings in
.pofiles like invalid Python variable syntax which leads to exceptions
a template linter for finding problems in strings in
.potfiles that make translator's lives difficult
a statuser for seeing the high-level translation/error status of your
a translator for strings in your
.pofiles to make development easier
It's been 5 years since I released Dennis v0.9. That's a long time.
This brings several minor things and clean up. Also, I transferred the repository from "willkg" to "mozilla" in GitHub.
b38a678 Drop Python 3.5/3.6; add Python 3.9/3.10 (#122, #123, #124, #125)
b6d34d7 Redo tarrminal printin' and colorr (#71)
There's an additional backwards-incompatible change here in which we drop the
658f951 Document dubstep (#74)
adb4ae1 Rework CI so it uses a matrix
transfer project from willkg to mozilla for ongoing maintenance and support
I worked on Dennis for 9 years.
It was incredibly helpful! It eliminated an entire class of bugs we were plagued with for critical Mozilla sites like AMO, MDN, SUMO, Input , and others. It did it in a way that supported and was respectful of our localization community.
It was pretty fun! The translation transforms are incredibly helpful for fixing layout issues. Some of them also produce hilarious results:
I enjoyed writing silly things at the bottom of all the release blog posts.
I learned a lot about gettext, localization, and languages! Learning about the nuances of plurals was fascinating.
The code isn't great. I wish I had redone the tokenization pipeline. I wish I had gotten around to adding support for other gettext variable formats.
Regardless, this project had a significant impact on Mozilla sites which I covered briefly in my Dennis Retrospective (2013).
Handing it off
It's been 6 years since I worked on sites that have localization, so I haven't really used Dennis in a long time and I'm no longer a stakeholder for it.
I need to reduce my maintenance load, so I looked into whether to end this project altogether. Several Mozilla projects still use it for linting PO files for deploys, so I decided not to end the project, but instead hand it off.
Where to go for more
For more specifics on this release, see here: https://dennis.readthedocs.io/en/latest/changelog.html#version-1-0-0-june-10th-2022
Documentation and quickstart here: https://dennis.readthedocs.io/en/latest/
Source code and issue tracker here: https://github.com/mozilla/dennis
39 of 7,952,991,938 people were aware that Dennis existed but tens--nay, hundreds!--of millions were affected by it.