
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
dennis
Advanced tools
Utilities for working with gettext PO and POT files to ease development and improve localization quality
Dennis is a set of utilities for working with PO files to ease development and improve quality. Translate POT files to find problems with localization in your code. Lint PO files for common problems like variable formatting, mismatched HTML, missing variables, etc.
dennis-cmd has the following subcommands:
lint: Lints PO and POT files for problems including errors that can cause your production system to crash and problems in strings that can lead to poor translations.
The system allows for defining other variable formats.
status: Get a high-level status of a PO file including a list of unstranslated strings.
translate: Translates strings in PO files into something else! Comes with an HTML extractor (tokenizes strings so that only the text is translated) and a bunch of translations like Pirate!.
This is helpful for l10n testing, development, finding unicode/layout problems, amazing your friends, hilarious April 1st shenanigans, etc.
Specify the tokenizer/transform pipeline you want to use that combines things. Zombie? Sure! Shouty Zombie? Ok! Manic shouty Dubstep? Bring it on!
This also works on strings passed in as command line arguments and as stdin---it doesn't have to be a PO file or in a PO format format. For example, Dennis uses Dennis to translate all Dennis commit messages into Pirate!. That's how cool Dennis is!
Install::
$ pip install dennis
Lint a PO file for problems::
$ dennis-cmd lint locale/fr/LC_MESSAGES/messages.po
Lint all your PO files for errors::
$ dennis-cmd lint --errorsonly locale/
Lint a POT file for problems::
$ dennis-cmd lint locale/templates/LC_MESSAGES/messages.pot
Translate a PO file in place into Pirate!::
$ dennis-cmd translate --pipeline=html,pirate \
locale/xx/LC_MESSAGES/messages.po
Get help::
$ dennis-cmd
:Code: https://github.com/mozilla/dennis :Documentation: https://dennis.readthedocs.io/ :Issue tracker: https://github.com/mozilla/dennis/issues :License: BSD 3-clause; see LICENSE file
This is how @willkg names his software projects.
FAQs
Utilities for working with gettext PO and POT files to ease development and improve localization quality
We found that dennis demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.