Add more ``Plural-Forms``. Document how the current ``Plural-Forms`` were
obtained.

 * http://translate.sourceforge.net/wiki/l10n/pluralforms
 * http://unicode.org/cldr/trac/browser/trunk/common/supplemental/plurals.xml

Complain about incorrect locale codes:

 * ``al`` → ``sq``
 * ``bh`` → ``bho`` | ``mai`` | ``mag``
 * ``ca-XV`` → ``ca@valencia``
 * ``cn`` → ``zh``
 * ``cz`` → ``cs``
 * ``dk`` → ``da``
 * ``en_UK`` → ``en_GB``
 * ``gr`` → ``el``
 * ``in`` → ``id``
 * ``iw`` → ``he``
 * ``ji`` → ``yi``
 * ``mo`` → ``ro_MD``
 * ``no`` → ``nb``
 * ``sh_BA`` → ``bs_BA``
 * ``sh_HR`` → ``hr_HR``
 * ``sh_RS`` → ``sr_RS``
 * ``sr@Latn`` → ``sr@latin``
 * ``sr_CS`` → ``sr``
 * ``sr_SR`` → ``sr_RS``
 * ``sr_YU`` → ``sr``
 * ``uk_UK`` → ``uk_UA``
 * ``vn`` → ``vi``

Correct locale codes in invalid format, e.g.:

 * ``da-DK`` → ``da_DK``: http://sources.debian.net/data/main/d/debian-handbook/6.0+20121031/da-DK/00a_preface.po
 * ``pt_br`` → ``pt_BR``: http://sources.debian.net/data/main/p/pam-pkcs11/0.6.8-1/po/pt_br.po
 * ``Pt`` → ``pt``: http://sources.debian.net/data/main/d/darcsweb/1.1-3.1/debian/po/pt.po

Correct ``Language`` with both a natural language and a language code, e.g.

 * ``nl (Dutch)``: http://sources.debian.net/data/main/g/garcon/0.1.12-1/po/nl.po
 * ``Serbian (sr)``: http://sources.debian.net/data/main/a/at-spi2-atk/2.5.3-2/po/sr.po

Guess language from ``Language-Team``.

 * http://translationproject.org/team/

Add ``characters=``\ … for more languages. Document how the current values were
obtained.

Fix support for ``X-Poedit-Language: (Afan) Oromo``.

Fix support for ``X-Poedit-Language: Serbian (Latin)``.

Document the security model.

Add tests for:

 * Debian source packages
 * Debian binary packages
 * MO files (at least against some tags)
 * languages with multiple correct Plural-Forms
 * lib.moparser
 * all non-Python encodings
 * 0x5c byte as a part of a multibyte character:
   http://sources.debian.net/src/vim/2:7.3.547-7/src/po/zh_TW.po#L13
 * SHIFT_JIS encoding:
   http://git.savannah.gnu.org/cgit/gettext.git/tree/gettext-tools/src/po-lex.c?id=v0.18.3#n179

Detect question marks in unusual places.

Add support for configuration files. Once it's implemented:

 * Disable --debian by default.
 * Disable --pedantic by default.

Add support for profiles: severity of a tag may depend on whether you are
upstream, a translator, or a user.

Add support for overrides.

Add option for disabling/forcing colored output.

Use `blessings <https://pypi.python.org/pypi/blessings/>`_ for colored output.

Check for POT files containing translations.

Run ``msgfmt --check-format`` on PO files.

Reimplement the EUC-TW codec with PyICU.

Check for hardcoded Language in POT files.

Add option for printing tag descriptions.

When emitting encoding-in-language-header-field, check if the encoding
matches the one from Content-Type. Test-cases:

 * http://sources.debian.net/data/main/r/rhn-client-tools/1.8.9-3/po/zh_CN.GB2312.po

Split no-email-address-in-last-translator from invalid-last-translator.
Test-cases:

 * http://sources.debian.net/data/main/m/mtpaint/3.40-1/po/de.po
 * http://sources.debian.net/data/main/y/yaboot-installer/1.1.26/debian/po/hi.po

Split missing-timezone-in-date from invalid-date.

Check for non-ASCII (translated?) project id. Test-case:

 * http://sources.debian.net/data/main/a/alarm-clock/1.2.5-1.2/po/sr.po

Split {trailing,leading}-junk-in-plural-forms from
syntax-error-in-plural-forms. Test-case:

 * http://sources.debian.net/data/main/d/dpkg/1.16.10/po/ja.po

Decide what to do with commas in Last-Translator: either accept them, or
provide a better error message. Test-case:

 * http://sources.debian.net/data/main/i/installation-guide/20130503/po/zh_TW/using-d-i.po

polib PO encoding detection is not robust enough. Test-case: xfail-header-imitation.po

Add support for system-dependent messages (minor revision 1).

Check for PO files that are not encoding-aware:

 * http://www.monkey.org/openbsd/archive2/ports/200105/msg00081.html

Add support for MediaWiki Translate's ``invalid-plural`` flag. Test-case:

 * http://sources.debian.net/data/main/e/evolution/3.4.4-3/po/fi.po

Add support for pygettext's ``docstring`` flag.

Apparently some versions of ``xgettext`` incorrectly produce entries with
duplicate format flags. Find out and document which versions are affected.
Test-case:

 * http://sources.debian.net/src/recode/3.6-20/i18n/recode.pot#L324

Check .desktop files:

 * http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s04.html

Check Shared Mime Info files:

  * http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html

Figure out what to do with software that call ``gettext("")`` intentionally.
Test-case:

 * http://sources.debian.net/src/evolution/3.4.4-3/shell/main.c#L579

.. vim:ft=rst
