1. Ronny Pfannschmidt
  2. flatland-hacks

Commits

jason kirtland  committed 69716db

Starting on i18n.

  • Participants
  • Parent commits e9dbea2
  • Branches default

Comments (0)

Files changed (6)

File flatland/i18n/en/LC_MESSAGES/flatland.po

View file
+# English translations for flatland.
+# Copyright (C) 2010 the flatland authors and contributors
+# This file is distributed under the same license as the flatland project.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: flatland dev\n"
+"Report-Msgid-Bugs-To: flatland-users@googlegroups.com\n"
+"POT-Creation-Date: 2010-06-25 16:31+0700\n"
+"PO-Revision-Date: 2010-06-25 16:49-0700\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: en <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.5\n"
+
+#. TRANSLATORS: NotDuplicated.failure
+#: flatland/validation/containers.py:80
+#, python-format
+msgid "%(label)s may not be repeated within %(container_label)s."
+msgstr ""
+
+#. TRANSLATORS: HasAtLeast.failure singular
+#: flatland/validation/containers.py:142
+#, python-format
+msgid "%(label)s must contain at least one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasAtLeast.failure plural
+#: flatland/validation/containers.py:144
+#, python-format
+msgid "%(label)s must contain at least %(minimum)s %(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasAtMost.failure singular
+#: flatland/validation/containers.py:196
+#, python-format
+msgid "%(label)s must contain at most one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasAtMost.failure plural
+#: flatland/validation/containers.py:198
+#, python-format
+msgid "%(label)s must contain at most %(maximum)s %(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.range singular
+#: flatland/validation/containers.py:263
+#, python-format
+msgid ""
+"%(label)s must contain at least %(minimum)s and at most %(maximum)s "
+"%(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.range plural
+#: flatland/validation/containers.py:266
+#, python-format
+msgid ""
+"%(label)s must contain at least %(minimum)s and at most %(maximum)s "
+"%(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.exact singular
+#: flatland/validation/containers.py:271
+#, python-format
+msgid "%(label)s must contain exactly one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.exact plural
+#: flatland/validation/containers.py:273
+#, python-format
+msgid "%(label)s must contain exactly %(minimum)s %(child_label)ss"
+msgstr ""
+
+#: flatland/validation/network.py:58
+#, python-format
+msgid "%(label)s is not a valid email address."
+msgstr ""
+
+#: flatland/validation/network.py:154 flatland/validation/network.py:155
+#: flatland/validation/network.py:156 flatland/validation/network.py:241
+#: flatland/validation/network.py:242 flatland/validation/network.py:243
+#: flatland/validation/network.py:312
+#, python-format
+msgid "%(label)s is not a valid URL."
+msgstr ""
+
+#: flatland/validation/number.py:30
+#, python-format
+msgid "The %(label)s can not be verified."
+msgstr ""
+
+#: flatland/validation/number.py:76
+#, python-format
+msgid "The %(label)s was not entered correctly."
+msgstr ""
+
+#: flatland/validation/scalars.py:20
+#, python-format
+msgid "%(label)s may not be blank."
+msgstr ""
+
+#: flatland/validation/scalars.py:39
+#, python-format
+msgid "%(label)s must be True."
+msgstr ""
+
+#: flatland/validation/scalars.py:58
+#, python-format
+msgid "%(label)s must be False."
+msgstr ""
+
+#: flatland/validation/scalars.py:93
+#, python-format
+msgid "%(value)s is not a valid value for %(label)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:130
+#, python-format
+msgid "%(label)s is not correct."
+msgstr ""
+
+#: flatland/validation/scalars.py:171
+#, python-format
+msgid "%(label)s may not exceed %(maxlength)s characters."
+msgstr ""
+
+#: flatland/validation/scalars.py:220
+#, python-format
+msgid "%(label)s must be at least %(minlength)s characters."
+msgstr ""
+
+#: flatland/validation/scalars.py:275
+#, python-format
+msgid "%(label)s must be between %(minlength)s and %(maxlength)s characters long."
+msgstr ""
+
+#: flatland/validation/scalars.py:321
+#, python-format
+msgid "%(label)s must be less than %(boundary)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:359
+#, python-format
+msgid "%(label)s must be less than or equal to %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:397
+#, python-format
+msgid "%(label)s must be greater than %(boundary)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:435
+#, python-format
+msgid "%(label)s must be greater than or equal to %(minimum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:491
+#, python-format
+msgid "%(label)s must be in the range %(minimum)s to %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:493
+#, python-format
+msgid "%(label)s must be greater than %(minimum)s and less than %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:544
+#, python-format
+msgid "%(labels)s and %(last_label)s do not match."
+msgstr ""
+
+#: flatland/validation/string.py:7
+#, python-format
+msgid "The %(label)s is not valid."
+msgstr ""
+
+#: flatland/validation/string.py:9
+#, python-format
+msgid "%(label)s must be a ten-digit phone number without extension."
+msgstr ""
+

File flatland/i18n/es/LC_MESSAGES/flatland.po

View file
+# Spanish translations for flatland.
+# Copyright (C) 2010 the flatland authors and contributors
+# This file is distributed under the same license as the flatland project.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: flatland dev\n"
+"Report-Msgid-Bugs-To: flatland-users@googlegroups.com\n"
+"POT-Creation-Date: 2010-06-25 16:31+0700\n"
+"PO-Revision-Date: 2010-06-25 16:49-0700\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: es <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.5\n"
+
+#. TRANSLATORS: NotDuplicated.failure
+#: flatland/validation/containers.py:80
+#, python-format
+msgid "%(label)s may not be repeated within %(container_label)s."
+msgstr ""
+
+#. TRANSLATORS: HasAtLeast.failure singular
+#: flatland/validation/containers.py:142
+#, python-format
+msgid "%(label)s must contain at least one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasAtLeast.failure plural
+#: flatland/validation/containers.py:144
+#, python-format
+msgid "%(label)s must contain at least %(minimum)s %(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasAtMost.failure singular
+#: flatland/validation/containers.py:196
+#, python-format
+msgid "%(label)s must contain at most one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasAtMost.failure plural
+#: flatland/validation/containers.py:198
+#, python-format
+msgid "%(label)s must contain at most %(maximum)s %(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.range singular
+#: flatland/validation/containers.py:263
+#, python-format
+msgid ""
+"%(label)s must contain at least %(minimum)s and at most %(maximum)s "
+"%(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.range plural
+#: flatland/validation/containers.py:266
+#, python-format
+msgid ""
+"%(label)s must contain at least %(minimum)s and at most %(maximum)s "
+"%(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.exact singular
+#: flatland/validation/containers.py:271
+#, python-format
+msgid "%(label)s must contain exactly one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.exact plural
+#: flatland/validation/containers.py:273
+#, python-format
+msgid "%(label)s must contain exactly %(minimum)s %(child_label)ss"
+msgstr ""
+
+#: flatland/validation/network.py:58
+#, python-format
+msgid "%(label)s is not a valid email address."
+msgstr ""
+
+#: flatland/validation/network.py:154 flatland/validation/network.py:155
+#: flatland/validation/network.py:156 flatland/validation/network.py:241
+#: flatland/validation/network.py:242 flatland/validation/network.py:243
+#: flatland/validation/network.py:312
+#, python-format
+msgid "%(label)s is not a valid URL."
+msgstr ""
+
+#: flatland/validation/number.py:30
+#, python-format
+msgid "The %(label)s can not be verified."
+msgstr ""
+
+#: flatland/validation/number.py:76
+#, python-format
+msgid "The %(label)s was not entered correctly."
+msgstr ""
+
+#: flatland/validation/scalars.py:20
+#, python-format
+msgid "%(label)s may not be blank."
+msgstr ""
+
+#: flatland/validation/scalars.py:39
+#, python-format
+msgid "%(label)s must be True."
+msgstr ""
+
+#: flatland/validation/scalars.py:58
+#, python-format
+msgid "%(label)s must be False."
+msgstr ""
+
+#: flatland/validation/scalars.py:93
+#, python-format
+msgid "%(value)s is not a valid value for %(label)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:130
+#, python-format
+msgid "%(label)s is not correct."
+msgstr ""
+
+#: flatland/validation/scalars.py:171
+#, python-format
+msgid "%(label)s may not exceed %(maxlength)s characters."
+msgstr ""
+
+#: flatland/validation/scalars.py:220
+#, python-format
+msgid "%(label)s must be at least %(minlength)s characters."
+msgstr ""
+
+#: flatland/validation/scalars.py:275
+#, python-format
+msgid "%(label)s must be between %(minlength)s and %(maxlength)s characters long."
+msgstr ""
+
+#: flatland/validation/scalars.py:321
+#, python-format
+msgid "%(label)s must be less than %(boundary)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:359
+#, python-format
+msgid "%(label)s must be less than or equal to %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:397
+#, python-format
+msgid "%(label)s must be greater than %(boundary)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:435
+#, python-format
+msgid "%(label)s must be greater than or equal to %(minimum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:491
+#, python-format
+msgid "%(label)s must be in the range %(minimum)s to %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:493
+#, python-format
+msgid "%(label)s must be greater than %(minimum)s and less than %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:544
+#, python-format
+msgid "%(labels)s and %(last_label)s do not match."
+msgstr ""
+
+#: flatland/validation/string.py:7
+#, python-format
+msgid "The %(label)s is not valid."
+msgstr ""
+
+#: flatland/validation/string.py:9
+#, python-format
+msgid "%(label)s must be a ten-digit phone number without extension."
+msgstr ""
+

File flatland/i18n/flatland.pot

View file
+# Translations template for flatland.
+# Copyright (C) 2010 the flatland authors and contributors
+# This file is distributed under the same license as the flatland project.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: flatland dev\n"
+"Report-Msgid-Bugs-To: flatland-users@googlegroups.com\n"
+"POT-Creation-Date: 2010-06-25 16:31-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.5\n"
+
+#. TRANSLATORS: NotDuplicated.failure
+#: flatland/validation/containers.py:80
+#, python-format
+msgid "%(label)s may not be repeated within %(container_label)s."
+msgstr ""
+
+#. TRANSLATORS: HasAtLeast.failure singular
+#: flatland/validation/containers.py:142
+#, python-format
+msgid "%(label)s must contain at least one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasAtLeast.failure plural
+#: flatland/validation/containers.py:144
+#, python-format
+msgid "%(label)s must contain at least %(minimum)s %(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasAtMost.failure singular
+#: flatland/validation/containers.py:196
+#, python-format
+msgid "%(label)s must contain at most one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasAtMost.failure plural
+#: flatland/validation/containers.py:198
+#, python-format
+msgid "%(label)s must contain at most %(maximum)s %(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.range singular
+#: flatland/validation/containers.py:263
+#, python-format
+msgid ""
+"%(label)s must contain at least %(minimum)s and at most %(maximum)s "
+"%(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.range plural
+#: flatland/validation/containers.py:266
+#, python-format
+msgid ""
+"%(label)s must contain at least %(minimum)s and at most %(maximum)s "
+"%(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.exact singular
+#: flatland/validation/containers.py:271
+#, python-format
+msgid "%(label)s must contain exactly one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.exact plural
+#: flatland/validation/containers.py:273
+#, python-format
+msgid "%(label)s must contain exactly %(minimum)s %(child_label)ss"
+msgstr ""
+
+#: flatland/validation/network.py:58
+#, python-format
+msgid "%(label)s is not a valid email address."
+msgstr ""
+
+#: flatland/validation/network.py:154 flatland/validation/network.py:155
+#: flatland/validation/network.py:156 flatland/validation/network.py:241
+#: flatland/validation/network.py:242 flatland/validation/network.py:243
+#: flatland/validation/network.py:312
+#, python-format
+msgid "%(label)s is not a valid URL."
+msgstr ""
+
+#: flatland/validation/number.py:30
+#, python-format
+msgid "The %(label)s can not be verified."
+msgstr ""
+
+#: flatland/validation/number.py:76
+#, python-format
+msgid "The %(label)s was not entered correctly."
+msgstr ""
+
+#: flatland/validation/scalars.py:20
+#, python-format
+msgid "%(label)s may not be blank."
+msgstr ""
+
+#: flatland/validation/scalars.py:39
+#, python-format
+msgid "%(label)s must be True."
+msgstr ""
+
+#: flatland/validation/scalars.py:58
+#, python-format
+msgid "%(label)s must be False."
+msgstr ""
+
+#: flatland/validation/scalars.py:93
+#, python-format
+msgid "%(value)s is not a valid value for %(label)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:130
+#, python-format
+msgid "%(label)s is not correct."
+msgstr ""
+
+#: flatland/validation/scalars.py:171
+#, python-format
+msgid "%(label)s may not exceed %(maxlength)s characters."
+msgstr ""
+
+#: flatland/validation/scalars.py:220
+#, python-format
+msgid "%(label)s must be at least %(minlength)s characters."
+msgstr ""
+
+#: flatland/validation/scalars.py:275
+#, python-format
+msgid "%(label)s must be between %(minlength)s and %(maxlength)s characters long."
+msgstr ""
+
+#: flatland/validation/scalars.py:321
+#, python-format
+msgid "%(label)s must be less than %(boundary)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:359
+#, python-format
+msgid "%(label)s must be less than or equal to %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:397
+#, python-format
+msgid "%(label)s must be greater than %(boundary)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:435
+#, python-format
+msgid "%(label)s must be greater than or equal to %(minimum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:491
+#, python-format
+msgid "%(label)s must be in the range %(minimum)s to %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:493
+#, python-format
+msgid "%(label)s must be greater than %(minimum)s and less than %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:544
+#, python-format
+msgid "%(labels)s and %(last_label)s do not match."
+msgstr ""
+
+#: flatland/validation/string.py:7
+#, python-format
+msgid "The %(label)s is not valid."
+msgstr ""
+
+#: flatland/validation/string.py:9
+#, python-format
+msgid "%(label)s must be a ten-digit phone number without extension."
+msgstr ""
+

File flatland/i18n/fr/LC_MESSAGES/flatland.po

View file
+# French translations for flatland.
+# Copyright (C) 2010 the flatland authors and contributors
+# This file is distributed under the same license as the flatland project.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: flatland dev\n"
+"Report-Msgid-Bugs-To: flatland-users@googlegroups.com\n"
+"POT-Creation-Date: 2010-06-25 16:31+0700\n"
+"PO-Revision-Date: 2010-06-25 16:49-0700\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: fr <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.5\n"
+
+#. TRANSLATORS: NotDuplicated.failure
+#: flatland/validation/containers.py:80
+#, python-format
+msgid "%(label)s may not be repeated within %(container_label)s."
+msgstr ""
+
+#. TRANSLATORS: HasAtLeast.failure singular
+#: flatland/validation/containers.py:142
+#, python-format
+msgid "%(label)s must contain at least one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasAtLeast.failure plural
+#: flatland/validation/containers.py:144
+#, python-format
+msgid "%(label)s must contain at least %(minimum)s %(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasAtMost.failure singular
+#: flatland/validation/containers.py:196
+#, python-format
+msgid "%(label)s must contain at most one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasAtMost.failure plural
+#: flatland/validation/containers.py:198
+#, python-format
+msgid "%(label)s must contain at most %(maximum)s %(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.range singular
+#: flatland/validation/containers.py:263
+#, python-format
+msgid ""
+"%(label)s must contain at least %(minimum)s and at most %(maximum)s "
+"%(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.range plural
+#: flatland/validation/containers.py:266
+#, python-format
+msgid ""
+"%(label)s must contain at least %(minimum)s and at most %(maximum)s "
+"%(child_label)ss"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.exact singular
+#: flatland/validation/containers.py:271
+#, python-format
+msgid "%(label)s must contain exactly one %(child_label)s"
+msgstr ""
+
+#. TRANSLATORS: HasBetween.exact plural
+#: flatland/validation/containers.py:273
+#, python-format
+msgid "%(label)s must contain exactly %(minimum)s %(child_label)ss"
+msgstr ""
+
+#: flatland/validation/network.py:58
+#, python-format
+msgid "%(label)s is not a valid email address."
+msgstr ""
+
+#: flatland/validation/network.py:154 flatland/validation/network.py:155
+#: flatland/validation/network.py:156 flatland/validation/network.py:241
+#: flatland/validation/network.py:242 flatland/validation/network.py:243
+#: flatland/validation/network.py:312
+#, python-format
+msgid "%(label)s is not a valid URL."
+msgstr ""
+
+#: flatland/validation/number.py:30
+#, python-format
+msgid "The %(label)s can not be verified."
+msgstr ""
+
+#: flatland/validation/number.py:76
+#, python-format
+msgid "The %(label)s was not entered correctly."
+msgstr ""
+
+#: flatland/validation/scalars.py:20
+#, python-format
+msgid "%(label)s may not be blank."
+msgstr ""
+
+#: flatland/validation/scalars.py:39
+#, python-format
+msgid "%(label)s must be True."
+msgstr ""
+
+#: flatland/validation/scalars.py:58
+#, python-format
+msgid "%(label)s must be False."
+msgstr ""
+
+#: flatland/validation/scalars.py:93
+#, python-format
+msgid "%(value)s is not a valid value for %(label)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:130
+#, python-format
+msgid "%(label)s is not correct."
+msgstr ""
+
+#: flatland/validation/scalars.py:171
+#, python-format
+msgid "%(label)s may not exceed %(maxlength)s characters."
+msgstr ""
+
+#: flatland/validation/scalars.py:220
+#, python-format
+msgid "%(label)s must be at least %(minlength)s characters."
+msgstr ""
+
+#: flatland/validation/scalars.py:275
+#, python-format
+msgid "%(label)s must be between %(minlength)s and %(maxlength)s characters long."
+msgstr ""
+
+#: flatland/validation/scalars.py:321
+#, python-format
+msgid "%(label)s must be less than %(boundary)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:359
+#, python-format
+msgid "%(label)s must be less than or equal to %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:397
+#, python-format
+msgid "%(label)s must be greater than %(boundary)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:435
+#, python-format
+msgid "%(label)s must be greater than or equal to %(minimum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:491
+#, python-format
+msgid "%(label)s must be in the range %(minimum)s to %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:493
+#, python-format
+msgid "%(label)s must be greater than %(minimum)s and less than %(maximum)s."
+msgstr ""
+
+#: flatland/validation/scalars.py:544
+#, python-format
+msgid "%(labels)s and %(last_label)s do not match."
+msgstr ""
+
+#: flatland/validation/string.py:7
+#, python-format
+msgid "The %(label)s is not valid."
+msgstr ""
+
+#: flatland/validation/string.py:9
+#, python-format
+msgid "%(label)s must be a ten-digit phone number without extension."
+msgstr ""
+

File flatland/validation/containers.py

View file
 
     """
 
+    # TRANSLATORS: NotDuplicated.failure
     failure = N_(u'%(label)s may not be repeated within %(container_label)s.')
 
     comparator = operator.eq
 
     minimum = 1
 
+    # TRANSLATORS: HasAtLeast.failure singular
     failure = (N_("%(label)s must contain at least one %(child_label)s"),
+               # TRANSLATORS: HasAtLeast.failure plural
                N_("%(label)s must contain at least %(minimum)s "
                   "%(child_label)ss"),
                'minimum')
 
     maximum = 1
 
+    # TRANSLATORS: HasAtMost.failure singular
     failure = (N_("%(label)s must contain at most one %(child_label)s"),
+               # TRANSLATORS: HasAtMost.failure plural
                N_("%(label)s must contain at most %(maximum)s "
                   "%(child_label)ss"),
                'maximum')
     minimum = 1
     maximum = 1
 
+    # TRANSLATORS: HasBetween.range singular
     range = (N_("%(label)s must contain at least %(minimum)s and at most "
                 "%(maximum)s %(child_label)s"),
+             # TRANSLATORS: HasBetween.range plural
              N_("%(label)s must contain at least %(minimum)s and at most "
                 "%(maximum)s %(child_label)ss"),
              'maximum')
 
+    # TRANSLATORS: HasBetween.exact singular
     exact = (N_("%(label)s must contain exactly one %(child_label)s"),
+             # TRANSLATORS: HasBetween.exact plural
              N_("%(label)s must contain exactly %(minimum)s %(child_label)ss"),
              'minimum')
 

File setup.cfg

View file
 [extract_messages]
 output_file = flatland/i18n/flatland.pot
 msgid_bugs_address = flatland-users@googlegroups.com
+charset = utf-8
 sort_by_file = 1
+width = 80
+add_comments = TRANSLATORS:
 
 [update_catalog]
+domain = flatland
 input_file = flatland/i18n/flatland.pot
-domain = flatland
 output_dir = flatland/i18n
+previous = true
 
 [compile_catalog]
 domain = flatland
 directory = flatland/i18n
+statistics = true
+
+[init_catalog]
+domain = flatland
+input_file = flatland/i18n/flatland.pot
+output_dir = flatland/i18n
+