Dennis¶
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.
It includes 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!
Quick start¶
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
Project details¶
- Code
- Documentation
- Issue tracker
- License
BSD 3-clause; see LICENSE file
User guide¶
- What’s new in Dennis
- Version 1.1.0: June 22nd, 2022
- Version 1.0.0: June 10th, 2022
- Version 0.9.0: February 2nd, 2017
- Version 0.8.0: January 3rd, 2017
- Version 0.7.0: October 2nd, 2015
- Version 0.6.1: December 18th, 2014
- Version 0.6: December 16th, 2014
- Version 0.5: August 24th, 2014
- Version 0.4.3: August 1st, 2014
- Version 0.4.2: May 13th, 2014
- Version 0.4.1: May 9th, 2014
- Version 0.4: May 1st, 2014
- Version 0.3.11: April 16th, 2014
- Version 0.3.10: October 25th, 2013
- Version 0.3.9: October 17th, 2013
- Version 0.3.8: October 16th, 2013
- Version 0.3.7: October 15th, 2013
- Version 0.3.6: September 19th, 2013
- Version 0.3.5: September 17th, 2013
- Version 0.3.4: July 30th, 2013
- Version 0.3.3: July 29th, 2013
- Version 0.3.2: July 23rd, 2013
- Version 0.3.1: July 15th, 2013
- Version 0.3: July 8th, 2013
- Translating!
- Linting!
- Statusing!
- API
- Recipes