summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorJustin Bronn <jbronn@gmail.com>2008-02-28 21:24:51 +0000
committerJustin Bronn <jbronn@gmail.com>2008-02-28 21:24:51 +0000
commit22e016ff6c18a35a450519b94de63033f83e6b4f (patch)
tree1e58cc40a636b4e4f3dcf429a5a116c015c36278 /django
parent0b52413cc926446f238fd781b4def6804f64d231 (diff)
gis: Merged revisions 7105-7168 via svnmerge from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@7176 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/conf/global_settings.py4
-rw-r--r--django/conf/locale/eu/LC_MESSAGES/django.mobin0 -> 44912 bytes
-rw-r--r--django/conf/locale/eu/LC_MESSAGES/django.po4248
-rw-r--r--django/conf/locale/eu/LC_MESSAGES/djangojs.mobin0 -> 1575 bytes
-rw-r--r--django/conf/locale/eu/LC_MESSAGES/djangojs.po117
-rw-r--r--django/conf/locale/ka/LC_MESSAGES/django.mobin0 -> 76983 bytes
-rw-r--r--django/conf/locale/ka/LC_MESSAGES/django.po4369
-rw-r--r--django/conf/locale/ka/LC_MESSAGES/djangojs.mobin0 -> 2222 bytes
-rw-r--r--django/conf/locale/ka/LC_MESSAGES/djangojs.po118
-rw-r--r--django/contrib/admin/views/decorators.py12
-rw-r--r--django/contrib/auth/decorators.py7
-rw-r--r--django/contrib/databrowse/plugins/calendars.py2
-rw-r--r--django/contrib/databrowse/plugins/fieldchoices.py2
-rw-r--r--django/contrib/databrowse/views.py2
-rw-r--r--django/contrib/formtools/preview.py1
-rw-r--r--django/contrib/formtools/tests.py5
-rw-r--r--django/contrib/humanize/templatetags/humanize.py3
-rw-r--r--django/contrib/localflavor/ar/forms.py1
-rw-r--r--django/contrib/localflavor/generic/forms.py76
-rw-r--r--django/contrib/localflavor/jp/forms.py2
-rw-r--r--django/contrib/sessions/models.py5
-rw-r--r--django/contrib/webdesign/tests.py1
-rw-r--r--django/core/handlers/base.py3
-rw-r--r--django/core/management/commands/loaddata.py20
-rw-r--r--django/core/management/commands/sqlall.py2
-rw-r--r--django/core/serializers/json.py1
-rw-r--r--django/core/serializers/pyyaml.py1
-rw-r--r--django/db/backends/mysql/base.py1
-rw-r--r--django/db/backends/postgresql/operations.py5
-rw-r--r--django/db/models/base.py9
-rw-r--r--django/db/models/fields/__init__.py78
-rw-r--r--django/db/models/fields/related.py74
-rw-r--r--django/http/__init__.py4
-rw-r--r--django/newforms/forms.py37
-rw-r--r--django/newforms/models.py73
-rw-r--r--django/template/defaultfilters.py6
-rw-r--r--django/test/_doctest.py2
-rw-r--r--django/test/client.py2
-rw-r--r--django/test/simple.py1
-rw-r--r--django/utils/datastructures.py8
-rw-r--r--django/utils/decorators.py6
-rw-r--r--django/utils/functional.py118
-rw-r--r--django/views/decorators/cache.py9
-rw-r--r--django/views/decorators/http.py7
-rw-r--r--django/views/decorators/vary.py9
45 files changed, 9266 insertions, 185 deletions
diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py
index d722fecd23..4c25da9942 100644
--- a/django/conf/global_settings.py
+++ b/django/conf/global_settings.py
@@ -48,10 +48,11 @@ LANGUAGES = (
('en', gettext_noop('English')),
('es', gettext_noop('Spanish')),
('es-ar', gettext_noop('Argentinean Spanish')),
+ ('eu', gettext_noop('Basque')),
('fa', gettext_noop('Persian')),
('fi', gettext_noop('Finnish')),
('fr', gettext_noop('French')),
- ('ga', gettext_noop('Gaeilge')),
+ ('ga', gettext_noop('Irish')),
('gl', gettext_noop('Galician')),
('hu', gettext_noop('Hungarian')),
('he', gettext_noop('Hebrew')),
@@ -59,6 +60,7 @@ LANGUAGES = (
('is', gettext_noop('Icelandic')),
('it', gettext_noop('Italian')),
('ja', gettext_noop('Japanese')),
+ ('ka', gettext_noop('Georgian')),
('ko', gettext_noop('Korean')),
('km', gettext_noop('Khmer')),
('kn', gettext_noop('Kannada')),
diff --git a/django/conf/locale/eu/LC_MESSAGES/django.mo b/django/conf/locale/eu/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..c001bc8268
--- /dev/null
+++ b/django/conf/locale/eu/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/eu/LC_MESSAGES/django.po b/django/conf/locale/eu/LC_MESSAGES/django.po
new file mode 100644
index 0000000000..0cef98a4d9
--- /dev/null
+++ b/django/conf/locale/eu/LC_MESSAGES/django.po
@@ -0,0 +1,4248 @@
+# translation of django.po to
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-02-08 19:37+0100\n"
+"PO-Revision-Date: 2008-02-14 22:12+0100\n"
+"Last-Translator: Ibon\n"
+"Language-Team: <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arabiera"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengalera"
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "Bulgariera"
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr "Katalana"
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr "Txekiera"
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr "Gales"
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr "Daniera"
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr "Alemaniera"
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr "Greziera"
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr "Ingeles"
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr "Espainola"
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "Argentinako espainola"
+
+#: conf/global_settings.py:51
+msgid "Persian"
+msgstr "Persiera"
+
+#: conf/global_settings.py:52
+msgid "Finnish"
+msgstr "Finlandesa"
+
+#: conf/global_settings.py:53
+msgid "French"
+msgstr "Frantzesa"
+
+#: conf/global_settings.py:54
+msgid "Gaeilge"
+msgstr "Gaelikoa"
+
+#: conf/global_settings.py:55
+msgid "Galician"
+msgstr "Galiziarra"
+
+#: conf/global_settings.py:56
+msgid "Hungarian"
+msgstr "Hungarierra"
+
+#: conf/global_settings.py:57
+msgid "Hebrew"
+msgstr "Hebreera"
+
+#: conf/global_settings.py:58
+msgid "Croatian"
+msgstr "Kroaziarra"
+
+#: conf/global_settings.py:59
+msgid "Icelandic"
+msgstr "Islandiera"
+
+#: conf/global_settings.py:60
+msgid "Italian"
+msgstr "Italiera"
+
+#: conf/global_settings.py:61
+msgid "Japanese"
+msgstr "Japoniera"
+
+#: conf/global_settings.py:62
+msgid "Korean"
+msgstr "Koreera"
+
+#: conf/global_settings.py:63
+msgid "Khmer"
+msgstr "khemerera"
+
+#: conf/global_settings.py:64
+msgid "Kannada"
+msgstr "Kanadiera"
+
+#: conf/global_settings.py:65
+msgid "Latvian"
+msgstr "Lituaniera"
+
+#: conf/global_settings.py:66
+msgid "Macedonian"
+msgstr "Mazedoniera"
+
+#: conf/global_settings.py:67
+msgid "Dutch"
+msgstr "Holandesa"
+
+#: conf/global_settings.py:68
+msgid "Norwegian"
+msgstr "Norvegiera"
+
+#: conf/global_settings.py:69
+msgid "Polish"
+msgstr "Poloniera"
+
+#: conf/global_settings.py:70
+msgid "Portugese"
+msgstr "Portugalera"
+
+#: conf/global_settings.py:71
+msgid "Brazilian"
+msgstr "Brasilgo portugalera"
+
+#: conf/global_settings.py:72
+msgid "Romanian"
+msgstr "Errumaniera"
+
+#: conf/global_settings.py:73
+msgid "Russian"
+msgstr "Errusiera"
+
+#: conf/global_settings.py:74
+msgid "Slovak"
+msgstr "Eslovakiera"
+
+#: conf/global_settings.py:75
+msgid "Slovenian"
+msgstr "Esloveniera"
+
+#: conf/global_settings.py:76
+msgid "Serbian"
+msgstr "Serbiera"
+
+#: conf/global_settings.py:77
+msgid "Swedish"
+msgstr "Suediera"
+
+#: conf/global_settings.py:78
+msgid "Tamil"
+msgstr "Tamilera"
+
+#: conf/global_settings.py:79
+msgid "Telugu"
+msgstr "Telegu hizkuntza"
+
+#: conf/global_settings.py:80
+msgid "Turkish"
+msgstr "Turkiera"
+
+#: conf/global_settings.py:81
+msgid "Ukrainian"
+msgstr "Ukrainera"
+
+#: conf/global_settings.py:82
+msgid "Simplified Chinese"
+msgstr "Txinera (sinpletua)"
+
+#: conf/global_settings.py:83
+msgid "Traditional Chinese"
+msgstr "Txinera (tradizionala)"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3> %s gatik:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Dena"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Edozein data"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Gaur"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Aurreko 7 egunak"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Hilabete hau"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Urte hau"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Bai"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "Ez"
+
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Ezezaguna"
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr "Ekintz hordua"
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr "Objetuaren id"
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr "Objeturaren repr"
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr "Ekintza botoia"
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr "Mezua aldatu"
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr "Log sarrera"
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr "log sarrerak"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Ez da lekua aurkitu"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Barkatu, eskatutako lekua ezin daiteke aurkitu"
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Hasiera"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Serbidore errorea"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Serbidor errorea (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Serbidore Errorea <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr "Arazo bat izan da. Web guneraren administradorea e-mail bidez ohartuko da eta laister konpondua egon beharko luke. Barkatu arazoak."
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Ongi etorri."
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentazioa"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "Hitz ezkutua aldatu"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Atera"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django admin. gunea"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administradorea"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Gehitu"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Aurrekoak"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Lekuaren bista"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Arren zuzendu ondoko akatsa"
+msgstr[1] "Arren zuzendu ondoko akatsak"
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Ordenaketa"
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Ordena:"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Gehitu %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Ezabatu"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects: "
+"%(object_name)s '%(escaped_object)s' ezabatuz, erlazionatutako objetuak ere ezabatuko ditu, baina zure kontuak ez du baimenik, hurrengo objetuak ezabatzeko:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Ziur zaude %(object_name)s \"%(escaped_object)s\" ezabatu nai duzula ? "
+"Erlazionaturik dauden hurrengo elementuak ere ezabatuko dira:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Bai, ziur nago"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " %(filter_title)s gatik"
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtroa"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "%(name)s aplikazioan Modeloak."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr ""
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Aldatu"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Ezer aldatzeko baimenik ez dezu."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Azken ekintzak"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Nere ekintzak"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Ez dago ezer"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr "Zerbait gaizki dago zure data-basearekin. Ziurtatu ezazu data-baseko taulak sortuak izan direla eta usuario egokiarengatik irakurriak izan daitekela"
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Usuario Izena:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Hitz ezkutua:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:25
+msgid "Log in"
+msgstr "Sartu"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Data/ordua"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Usuarioa"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Ekintza"
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr "Objetu honek ez du alketa zerrenda bat. Ziur asko, administrazio leku hau erabili gabe gehitua izan da."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Dena erakutsi"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Aurrera"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "%(counter)s emaitza"
+msgstr[1] "%(counter)s emaitzak"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s guztira"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Berria bezala gorde"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Gorde eta beste bat gehitu"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Gorde eta aldatzen jarraitu"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Gorde"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr "Lehenengo usuario izena eta hitz ezkutua idatzi. Gero usuarioaren aukera gehiago aldatu ditzakezu"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Usuario izena"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Hitz ezkutua"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Hitz ezkutua (berriro)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "Idatzi berriro hitz ezkutua."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Hitz ezkutu berria idatzi <strong>%(username)s</strong> usuarioarentzat."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Markadoreak"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Dokumentazio markadoreak"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site. Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">Markadoreak instalatzeko eraman linka zure erreminta panelera (toolbar).\n"
+"Orain markadorea lekuko edozein horritik aukeratu dezakezu. Hauetako \n"
+"markadore batzu, zure ordenadorea 'barnekoa' bezala erregistratua egotea\n"
+"behar dute. Hitzegin web lekuaren administradorearekin azalpen gehiagorako.</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Web horri honentzat dokumentazioa"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr "Edozein lekutik, horriaren bista sortzaileara (view) salto egiten du."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Objetuaren ID erakutsi"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr "Objetu bakarra erakusten duten horrietan, eduki mota (content-type) eta horriaren ID bakarra erakutsi, ."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Objetu hau aldatu ( leiho hau)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Objetu bakarra erakusten horrietan, adminiztrazio gunera joan."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Objetu hay aldatu (leiho berria)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Goian bezala baina administrzazio gune leio berrian irekitzen."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Mila esker gaur zure denbora web gunean erabiltzegatik."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Berrio sartu (log in)"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "Hitz ezkutua aldatu"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Hitz ezkutuaren aldaketa arrakastatsua"
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "Hitz ezkutua aldatua izan da"
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr "Idatzi hitz ezkutu zaharra segurtasun arrazoiengatik eta gero hitz ezkutu berria bi aldiz, akatsik egiten ez duzula ziurtatu dezagun."
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Hitz ezkutu zaharra"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Hitz ezkutu berria:"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Hitz ezkutua baieztatu:"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Nire hitz ezkutua aldatu"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Hitz ezkutua ezabatu"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Hitz ezkutuaren ezabaketa zuzena"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr "Hitz ezkutu berria e-mail bidez bidali dizugu. Epe laburrean jasokor duzu."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Mezu elektroniko hau jaso dezu, hitz ezkutuaren ezabaketa eskatu duzulako"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "%(site_name)s usuario kontuarentzat"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Zure hitz ezkutu berria %(new_password)s da"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Hitz ezkutua aldatu nai baduzu, zoaz web horri honetara joan:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Zure usuario izena (ahaztu badezu):"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Mila esker gure web gunea erabiltzeagatik!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s web gunearen taldea"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr "Hitz ezkutua ahaztu dezu ? Hidatzi zure e-mail helbidea, eta hitz ezkutu berri bat bidaliko dizugu."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mail helbidea:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Hitz ezkutua ezabatu"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Data:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Ordua:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Orain:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Aldatu:"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Data guztiak"
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s arrakastaz gehitua izan da."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "Berriro alkatu zenezake beherago."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Usuario gehitu"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Hitz ezkutua aldaketa zuzena."
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Hitz ezkutua aldatu: %s"
+
+#: contrib/admin/views/decorators.py:11 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr "Mesedez idatzi usuario izena eta hitz ezkutu egokiak. Maiskula eta minuskula ondo bereiztu."
+
+#: contrib/admin/views/decorators.py:63
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr "Mesedez berriro sar saitez, sesioa zahartu bai da. Bidalitakoa gorde egin da."
+
+#: contrib/admin/views/decorators.py:70
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr "Zure nabegatzaileak ez ditu cookie-ak onartzen. Aktiba ezazu hauen erabilera eta ekarri ezazu horria hau berriro."
+
+#: contrib/admin/views/decorators.py:84
+msgid "Usernames cannot contain the '@' character."
+msgstr "Usuario izenek ezin dezkete @ karakterea eduki."
+
+#: contrib/admin/views/decorators.py:86
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Zure e-mail helbidea ez da zure usuario izena. Ahalegindo '%s' rekin."
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "filtroa:"
+
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "bista:"
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "%r aplikazio ez da aurkitu"
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "%(name)r modeloa ez da %(label)r aplikazioan aurkitu"
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "erlazionaturik `%(label)s.%(type)s` objetua"
+
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "modeloa:"
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "erlazionaturik `%(label)s.%(name)s` objetua"
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "%s dena"
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "%s zenbakia"
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s objetuan zutabeak"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "Zenbaki osoa"
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Boolearra (egia ala gezurra)"
+
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Katea (%(max_length)s gehienez)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "Komaz bereiztutako zenbako osoak"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "Data (ordurik gabe)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "Data (orduarekin)"
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "Zenbaki dezimala"
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "E-mail helbidea"
+
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "Fitxegi bidea (path)"
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "Zenbaki erreala (float)"
+
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP helbidea"
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolearra (egia, gezurra edo hutsa[None])"
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr "Gurazo modeloarekin erlazioa"
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "Telefono zenbakia"
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "Textua"
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "Ordua"
+
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "U.S statua (bi letra maiuskula)"
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "XML textua"
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ez dirudi url heredu objetua"
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "Web gunearen administrazioa"
+
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "Beste %s gehitu dezakezu jarraian."
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "%s gehitu"
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "%s gehituta."
+
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "eta"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "%s aldatuta."
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "%s ezabatuta."
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "Ez da zutaberik aldatu."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" aldatuta izan da."
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" arrakastarekin gehituta izan da. Jarraian aldatu dezakezu berriro."
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "%s aldatu"
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "%(fieldname)s bat edo gehiago %(name)s an: %(obj)s"
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "%(fieldname)s bat edo gehiago %(name)s n"
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" arrakastaz ezabatua izan da."
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "Ziur al zaude?"
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "Aldaketa zerrenda: %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "%s aukeratu"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "aldaketarako %s aukeratu"
+
+#: contrib/admin/views/main.py:784
+msgid "Database error"
+msgstr "Data base errorea"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Hitz ezkutuak ez dira berdinak."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Usuario izen hori erabiltzen ari da."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr "Zure nabegatzaileak ez ditu cookiak onartzen. Cookia-k beharrezkoak dira sistemn sartzeko."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Kontu hau az dago aktibatuta."
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr "E-mail helbide horrek ez du usariorik. Ziur al zaude erregistraturik zaudela?"
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "Hitz ezkutu ezabatua %s n"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Bi hitz ezkutu berriak ez dira berdinak."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Zure hitz ezkutu zaharra ez zuzena. Idatzi ezazu berriro."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "izena"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "code izena (codename)"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "baimena"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "baimenak"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "taldea"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:141
+msgid "groups"
+msgstr "taldeak"
+
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "usuario izena"
+
+#: contrib/auth/models.py:131
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Beharrezkoa. 30 karaktere edo gutxiago. Karaktere alfanumerikoak "
+"bakarrik (letra, zembaki eta '_')"
+
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "izena"
+
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "abizena"
+
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "e-mail helbidea"
+
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "hitz ezkutua"
+
+#: contrib/auth/models.py:135
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr "Erabili '[algo]$[salt]$[hexdigest]' edo erabili <a href=\"password/\">hitz ezkuta aldatu </a>."
+
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "Arduraduen egoera"
+
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "Usuarioak administrazio gune honetan sartu dezkeen ala ez izendatzen du."
+
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "Aktiboa"
+
+#: contrib/auth/models.py:137
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr "Usuarioak Django adminiztrazio gunean sartu daitekeen ala ez. Desaktiba ezazu aukera hau,kontua ezabatu ordez."
+
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "Usuario nagusia (superuser)"
+
+#: contrib/auth/models.py:138
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "Usuario honek baimen guztiak ditu, banan banan denak zehaztu gabe."
+
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "azken sarrera"
+
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "erregistro eguna"
+
+#: contrib/auth/models.py:142
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr "Usuario honek, eskuz emandako baimen guztietaz aparte, berari egokitutako talde bakoitzari emandako baimenak ere izango ditu."
+
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "Usuarioaren baimenak"
+
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "Usuarioa"
+
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "Usuarioak"
+
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "Informazio pertsonala"
+
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "Baimenak"
+
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "Data garrantzitsuak"
+
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "Taldeak"
+
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "mezua"
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Sesiotik kanpo"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:176
+msgid "object ID"
+msgstr "objetuaren ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "izenburua"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:177
+msgid "comment"
+msgstr "komentarioa"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "puntaketa #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "puntaketa #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "puntaketa #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "puntaketa #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "puntaketa #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "puntaketa #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "puntaketa #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "puntaketa #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "puntuaketa zuzena"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:179
+msgid "date/time submitted"
+msgstr "data/hordua bidalia"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:180
+msgid "is public"
+msgstr "publikoa"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "ezabatua"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr "Markatu kutxa hau komentario ezegokia bada. A \"Komentario hau ezabatua izan da\" mezua erakutsiko da bere ordez."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "Komentarioak"
+
+#: contrib/comments/models.py:140 contrib/comments/models.py:222
+msgid "Content object"
+msgstr "Eduki objetua"
+
+#: contrib/comments/models.py:168
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"%(user)s -k bidalia %(date)s -n\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:178
+msgid "person's name"
+msgstr "pertsonaren izena"
+
+#: contrib/comments/models.py:181
+msgid "ip address"
+msgstr "ip zenbakia"
+
+#: contrib/comments/models.py:183
+msgid "approved by staff"
+msgstr "arduradunek onartua"
+
+#: contrib/comments/models.py:187
+msgid "free comment"
+msgstr "komentario librea"
+
+#: contrib/comments/models.py:188
+msgid "free comments"
+msgstr "komentario libreak"
+
+#: contrib/comments/models.py:250
+msgid "score"
+msgstr "puntuaketa"
+
+#: contrib/comments/models.py:251
+msgid "score date"
+msgstr "puntuaketa data"
+
+#: contrib/comments/models.py:255
+msgid "karma score"
+msgstr "karma puntuaketa"
+
+#: contrib/comments/models.py:256
+msgid "karma scores"
+msgstr "karma puntuaketak"
+
+#: contrib/comments/models.py:260
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(user)s -k emandako puntaketa: %(score)d"
+
+#: contrib/comments/models.py:277
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"%(user)s -k komentario hay markatu du:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:285
+msgid "flag date"
+msgstr "markatutako eguna"
+
+#: contrib/comments/models.py:289
+msgid "user flag"
+msgstr "usuarioaren markaketa"
+
+#: contrib/comments/models.py:290
+msgid "user flags"
+msgstr "usuariaren markaketak"
+
+#: contrib/comments/models.py:294
+#, python-format
+msgid "Flag by %r"
+msgstr "%r -k markatuta"
+
+#: contrib/comments/models.py:300
+msgid "deletion date"
+msgstr "ezabatze data"
+
+#: contrib/comments/models.py:303
+msgid "moderator deletion"
+msgstr "moderatzaileak ezabatua"
+
+#: contrib/comments/models.py:304
+msgid "moderator deletions"
+msgstr "moderatzaileak ezabatuak"
+
+#: contrib/comments/models.py:308
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "%r moderatzaileak ezabatua"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Hitz ezkutua ahaztu duzu?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Puntuaketak"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Beharrezkoa"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Aukerakoa"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Argazkia bidali"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Komentarioa:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Komentarioa aurreikusi"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Zure izena:"
+
+#: contrib/comments/views/comments.py:28
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Puntuaketa hau beharrezkoa da, gutxienez beste puntaketa bat sartu duzulako"
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] "Komentario hau, %(count)s komentario baino gutxiago egindako usuario batek bidalia da:<br><br>%(text)s"
+msgstr[1] ""
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Komentario hau usuario 'arin' batek bidalia da:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "POST bakarrik onartzen dira"
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Beharrezko fitxategi bat edo gehiago ez dira bidali"
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Norbaitek komentario formularioa maltzurki eraldatu du (segurtasun erasoa)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr "Komentario formularioak 'target' parametroa okerra zuen -- objetuaren ID okerra zen"
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Komentario formularioa ez zuen ez 'berikusi' edo 'bidali'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Usuario ezezagunak ezin dezakete botoa eman"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Komentario ID okerra"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Norberak ezin dezake botoa eman"
+
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "python model class izena"
+
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "edukiera moeta"
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "edukiera moetak"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Adibidez: '/about/contact/'. Ziurta zaitez '/' karaktera hasieran eta bukaeran dagoela."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "izenburua"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "edukiera"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "komentarioak onartu"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "plantila izena"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr "Adibidez: 'flatpages/contact_page.html'. Hau ematen ez bada, sistema 'flatpages/default.html' erabiliko du."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "erregistratzea beharrezkoa da"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Hau markatuta badago, erregistratutako usuarioak bakarrik ikusiko dute horria."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "flat page"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "flat pages"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr "garren"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr "garren"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr "garren"
+
+#: contrib/humanize/templatetags/humanize.py:52
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milioi"
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:55
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f bilioi"
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:58
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f trilioi"
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "one"
+msgstr "bat"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "two"
+msgstr "bi"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "three"
+msgstr "hiru"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "four"
+msgstr "lau"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "five"
+msgstr "bost"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "six"
+msgstr "sei"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "seven"
+msgstr "zazpi"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "eight"
+msgstr "zortzi"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "nine"
+msgstr "bederatzi"
+
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "today"
+msgstr "gaur"
+
+#: contrib/humanize/templatetags/humanize.py:96
+msgid "tomorrow"
+msgstr "bihar"
+
+#: contrib/humanize/templatetags/humanize.py:98
+msgid "yesterday"
+msgstr "atzo"
+
+#: contrib/localflavor/ar/forms.py:28
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "NNNN edo ANNNNAAA formatoan idatzi posta kode bat."
+
+#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "Data honek zenbakiak bakarrik behar ditu."
+
+#: contrib/localflavor/ar/forms.py:51
+msgid "This field requires 7 or 8 digits."
+msgstr "Data honek 7 edo 8 digito behar ditu."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "CUIT zuzena idatzi XX-XXXXXXXX-X edo XXXXXXXXXXXX formatoan."
+
+#: contrib/localflavor/ar/forms.py:81
+msgid "Invalid CUIT."
+msgstr "CUIT okerra."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "4 zenbaki posta kodean idatzi."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "XXXXX-XXX formatoan zip kodea idatzi."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefono zenbakiak XX-XXXX-XXXX formatoa behar dute."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr "Brasilgo estatu zuzen bat aukeratu. Hori ez dago aukeran."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "CPF zenbaki okerra."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Data honek gehienez 11 digito edo 14 karaktere behar ditu."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "CNPJ zenbaki okerra."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "Data honek 14 digito behar ditu gutxienez"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Posta kodea idatzi XXX XXX formatoan."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "zip kodea XXXX formatoan idatzi."
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr ""
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Araba"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Gupuzkoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "Errioxa"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Nafarroa"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Bizkaia"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Asturiaseko printzipadoa"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Euskal Herria"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Canaria uharteak"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "La Mancha-Gaztela"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Gaztela eta Leon"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Katalunia"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Nafarroako komunitate forala"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Valeciako komunitatea"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Kode postal bat idatzi hurrengo formato eta tartearekin: 01XXX - 52XXX"
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr "Telefono zenbaki bat idatzi hurrengo formato batekin: 6XXXXXXXX, 8XXXXXXXX edo 9XXXXXXXX"
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Idatzi NIF,NIE edo CIF zuzena."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Idatzi NIF edo NIE zuzena."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "NIF kontrol kode okerra."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "NIE kontrol kode okerra."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "CIF kontrl kode okerra."
+
+#: contrib/localflavor/es/forms.py:142
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Mesedez idatzi banku kontu zenbaki zuzena XXXX-XXXX-XX-XXXXXXXXXX formatoarekin."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Banku kontu zenbakian kontrol digito okerra."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr ""
+
+#: contrib/localflavor/jp/forms.py:19
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "nondik berbidalia"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr "Hau 'bide' absolutua izan beharko luke, dominio izena kenduta. 'Adibidez: events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "Nora berbidali"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr "Hau 'bide' absolutua (goian bezala) edo URL osoa , 'http://'-rekin hasiz, izan daiteke."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "berbidali"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "berbidali"
+
+#: contrib/sessions/models.py:46
+msgid "session key"
+msgstr "sesioaren giltza"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "sesioaren data"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "amaiera data"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "sesioa"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "sesioak"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "dominio izena"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "erakusteko izena"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "web gunea"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "web guneak"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Balore honek, letrak, zenbakia eta '_' karakterak bakarrik eduki ditzazke."
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "Balore honek, letrak, zenbakia eta '_', '/','-' karakterak bakarrik eduki ditzazke."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Balore honek letrak, zenbakiak eta '_','-' karatereak bakarrik izan ditzazke."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Hemen letra maiuskulak ez dira onartzen."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Hemen letra minukulak ez dira onartzen."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Komaz bereiztutako digitoak bakarrik idatzi."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "E-mail norabide zuzenak idatzi, komaz bereizturik."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Idatzi IP zenbaki zuzena mesedez."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Balore hutsak ez dira hemen onartzen."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Zenbaki karaktereak bakarrik onartzen dira hemen."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Balore honek ezin daiteke digitoz bakarrik osatua egon."
+
+#: core/validators.py:128 newforms/fields.py:151
+msgid "Enter a whole number."
+msgstr "Zenbaki bat idatzi."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Karaktere alfabetikoak bakarrik onartzen dira hemen."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "Urtea 1900 edo haundiagoa izan behar du."
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Data okerra: %s"
+
+#: core/validators.py:156 db/models/fields/__init__.py:509
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Data zuzena idatzi, YYY-MM-DD formatoan."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Hordu zuzena idatzi HH:MM formatoan."
+
+#: core/validators.py:165 db/models/fields/__init__.py:583
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Idatzi data/hordua zuzena YYYY-MM-DD HH:MM formatoan."
+
+#: core/validators.py:170 newforms/fields.py:402
+msgid "Enter a valid e-mail address."
+msgstr "e-mail helbide zuzena idatzi."
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ez da fitxategirik bidali. Baiztatu ezazu formularioren kode formatoa."
+
+#: core/validators.py:193 newforms/fields.py:458
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "Bidali irudi zuzena. Zuk bidalitako fitxategia ez da irudi motako edo akatsa du."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "%s URLa ez da irudi zuzena."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefono zenbakiak XXX-XXX-XXXX formatoa eduki behar dute. \"%s\" okerra."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "%s URLa ez da QuickTime bideo zuzena."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "URL zuzena behar da."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"HTML zuzena behar da. Erroreak daude:\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML okerra: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL okerra: %s"
+
+#: core/validators.py:259 core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "%s URLa ez dabil ondo."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "U.S estatu laburpen zuzen idatzi."
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Kontuz ibili! %s hitza ez dago hemen onartua."
+msgstr[1] ""
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Data hau '%s' data berdindu behar du."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Idatzi gutxienez data bat."
+
+#: core/validators.py:316 core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Hidatzi bi datuak edo utzi biak hutsik."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Data hau idatzi behar da, %(field)s %(value)s balorea badu."
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Data hau idatzi behar da %(field)s %(value)s balorea ez bada."
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "Errepikatutako datak ez dira onartzen."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Balore hau %(lower)s eta %(upper)s artean egon behar du."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Gutxienez %s izan behar du."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Balore hau %s baino txikiagoa izan behar du."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Balore hau %s-ren multiploa izan behar du."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Idatzi zenbaki dezimal zuzena mesedez."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Idatzi zenbaki dezimal zuzena gehienez %s digitorekin."
+msgstr[1] ""
+
+#: core/validators.py:447
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Idatzi zenbaki digital zuzena, %s digitorekin gutxienez alde osoan."
+msgstr[1] ""
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Idatzi zenbaki dezimal zuzena, %s digitorekin dezimalean."
+msgstr[1] ""
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Idatzi zenbaki erreal zuzena."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Ziurta zaitez bidalitako fitxategia gutxienex %s byte tamaina duela."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Ziurta zaitez bidalitako fitxategia gehienez %s byte dituela."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "Data honen formatoa okerra da."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "Data okerra."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Ezin daiteke ezer lortu %s-tik."
+
+#: core/validators.py:539
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "%(url)s URLak content-type okerra itzuli du: '%(contenttype)s'."
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr "Mesedez itxi itxigabeko %(tag)s elementoa %(line)s lerroan. Lerroa hasiera: \"%(start)s\"."
+
+#: core/validators.py:576
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr "Texturen bat %(line)s lerroan ez da onartzen contextu horretan. Lerro hasiera: \"%(start)s\"."
+
+#: core/validators.py:581
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr "\"%(attr)s\" %(line)s lerroan atribitu okerra da. Lerro hasiera: \"%(start)s\"."
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr "\"%(tag)s\" %(line)s lerroan elementu okerra da. Lerro hasiera: \"%(start)s\"."
+
+#: core/validators.py:590
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr "%(line)s lerroan elementu atributu bat edo gehiago faltan ditu. Lerro hasiera:\"%(start)s\"."
+
+#: core/validators.py:595
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" atributoa %(line)s lerroan balore okerra du. (Lerro hasiera: \"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s with this %(type)s already exists for the given %(field)s."
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Badago %(optname)s izenarekin %(fieldname)s-n."
+
+#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318
+#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746
+#: newforms/fields.py:45 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "Kanpo hau beharrezkoa da."
+
+#: db/models/fields/__init__.py:418
+msgid "This value must be an integer."
+msgstr "Balore hau zenbaki osoa izan behar du."
+
+#: db/models/fields/__init__.py:454
+msgid "This value must be either True or False."
+msgstr "Balore hau egia ala gezurra izan behar du (True/False)."
+
+#: db/models/fields/__init__.py:475
+msgid "This field cannot be null."
+msgstr "Datu hau ezin daiteke hutsa izan (null)."
+
+#: db/models/fields/__init__.py:644
+msgid "This value must be a decimal number."
+msgstr "Balore hau zenbaki dezimala izan begar du."
+
+#: db/models/fields/__init__.py:755
+msgid "Enter a valid filename."
+msgstr "Idatzi fitxategi izen zuzena"
+
+#: db/models/fields/__init__.py:908
+msgid "This value must be either None, True or False."
+msgstr "Balore hau hutsa, egia edo gezurra izan behar du (None, True,False)"
+
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Mesades idatzi %s zuzena."
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr "Bereiztu ID zerrenda koma bidez."
+
+#: db/models/fields/related.py:660
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Zapaldu \"Control\" karakterea edo \"Command\" Mac batean, bat baino gehiago aukeratzeko."
+
+#: db/models/fields/related.py:707
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Mesedez idatzi %(self)s ID zuzena. %(value)r okerra da."
+msgstr[1] ""
+
+#: newforms/fields.py:46
+msgid "Enter a valid value."
+msgstr "Idatzi balio zuzena."
+
+#: newforms/fields.py:123
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Ziurta zaitez balore honek gehienez %(max)d karactere dituela, %(length)d ditu orain."
+
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Ziurta zaitez balore honek gutxienez %(min)d karaktere dituela ,%(length)d ditu orain."
+
+#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Ziurta zaitez balore hau %s baino txikiagoa edo berdina dela."
+
+#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Ziurta zaitez balore hau %s baino haundiagoa edo berdina dela."
+
+#: newforms/fields.py:180 newforms/fields.py:209
+msgid "Enter a number."
+msgstr "Idatzi zenbaki bat."
+
+#: newforms/fields.py:212
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Ziurta zaitez %s baino digito gehiago ez dagoela."
+
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Ziurta zaitez %s baino dezimale gehiago ez dagoela."
+
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Ziurta zaitez %s digitu baino gehiago ez dagoela puntu dezimalaren aurretik."
+
+#: newforms/fields.py:262 newforms/fields.py:723
+msgid "Enter a valid date."
+msgstr "Data zuzen bat idatzi."
+
+#: newforms/fields.py:295 newforms/fields.py:724
+msgid "Enter a valid time."
+msgstr "Ordu zuzen bat idatzi."
+
+#: newforms/fields.py:334
+msgid "Enter a valid date/time."
+msgstr "Data/Ordua zuzen bat idatzi."
+
+#: newforms/fields.py:433
+msgid "No file was submitted."
+msgstr "Ez da fitxategirik bidali."
+
+#: newforms/fields.py:434 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Bidalitako fitxategia hutsik dago."
+
+#: newforms/fields.py:496
+msgid "Enter a valid URL."
+msgstr "URL zuzen bat idatzi."
+
+#: newforms/fields.py:497
+msgid "This URL appears to be a broken link."
+msgstr "URL hau ez dabil ondo."
+
+#: newforms/fields.py:559 newforms/models.py:317
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Aukera zuzen bat aukeratu. Aukeratutakoa ez da zuzena."
+
+#: newforms/fields.py:598
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Aukeratu aukera zuzen bat. %(value)s ez da zuzena."
+
+#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:377
+msgid "Enter a list of values."
+msgstr "Balio zerrenda bat idatzi ezazu."
+
+#: newforms/fields.py:752
+msgid "Enter a valid IPv4 address."
+msgstr "IPv4 zuzen bat idatzi."
+
+#: newforms/models.py:378
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Aukera zuzena aukeratu. %s ez da zuzena."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Ziurta zaitez textuak %s karaktere baino gutxiago duela."
+msgstr[1] ""
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "Lerro berriak (line breaks) ez dire onartzen hemen."
+
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Aukera zuzena aukeratu: '%(data)s' ez dago %(choices)s hartean."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Idatzi -32.768 eta 32.767 arteko zenbaki osoa."
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "Zenbaki positboa idatzi."
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Idatzi 0 eta 32.767 arteko zenbaki osoa."
+
+#: template/defaultfilters.py:691
+msgid "yes,no,maybe"
+msgstr "bai,ez,agian"
+
+#: template/defaultfilters.py:722
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] ""
+
+#: template/defaultfilters.py:724
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:726
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:727
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "gauerdia"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "eguerdia"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Astelehena"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Asteartea"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Asteazkena"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Osteguna"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Ostirala"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Larunbata"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Igandea"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Astelehe"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Astear"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Asteaz"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Oste"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Osti"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Lar"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Iga"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Urtarrila"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Otsaila"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "Martxoa"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "Apirila"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Maiatza"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Ekaina"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Uztaila"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "Abuztua"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "Iraila"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Urria"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "Azaroa"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "Abendua"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "urt"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "ots"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "api"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "mai"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "eka"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "uzt"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "abu"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "ira"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "urr"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "aza"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "abe"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Urt."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Ots."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Abu."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Ira."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Urr."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Aza."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Abe."
+
+#: utils/text.py:127
+msgid "or"
+msgstr "edo"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "urtea"
+msgstr[1] ""
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "hilabetea"
+msgstr[1] ""
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "astea"
+msgstr[1] ""
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "eguna"
+msgstr[1] ""
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hordua"
+msgstr[1] ""
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minutu"
+msgstr[1] ""
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutuak"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:404
+msgid "DATE_FORMAT"
+msgstr "DATE_FORMAT"
+
+#: utils/translation/trans_real.py:405
+msgid "DATETIME_FORMAT"
+msgstr "DATETIME_FORMAT"
+
+#: utils/translation/trans_real.py:406
+msgid "TIME_FORMAT"
+msgstr "TIME_FORMAT"
+
+#: utils/translation/trans_real.py:422
+msgid "YEAR_MONTH_FORMAT"
+msgstr "YEAR_MONTH_FORMAT"
+
+#: utils/translation/trans_real.py:423
+msgid "MONTH_DAY_FORMAT"
+msgstr "MONTH_DAY_FORMAT"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s arazorik gabe sortu da"
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s arazorik gabe aldatua izan da."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s ezabatua izan da."
+
diff --git a/django/conf/locale/eu/LC_MESSAGES/djangojs.mo b/django/conf/locale/eu/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000000..b3e94ad711
--- /dev/null
+++ b/django/conf/locale/eu/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/django/conf/locale/eu/LC_MESSAGES/djangojs.po b/django/conf/locale/eu/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000..dd5a8c02e6
--- /dev/null
+++ b/django/conf/locale/eu/LC_MESSAGES/djangojs.po
@@ -0,0 +1,117 @@
+# Spanish translation for the django-admin JS files.
+# Copyright (C)
+# This file is distributed under the same license as the PACKAGE package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Django JavaScript 1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-07-14 13:47-0500\n"
+"PO-Revision-Date: 2007-07-14 13:41-0500\n"
+"Last-Translator: Jorge Gajon <gajon@gajon.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Urtarrila Otsaila Martxoa Apirila Maiatza Ekaina Uztaila Abuztua Iraila Urria "
+"Azaroa Abendua"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "I A A A O O L"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Igandea Astelehene Asteartea Asteazkena Osteguna Ostirala Larunbata"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s Erabilgarri"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Denak aukeratu"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Gehitu"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Ezabatu"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s Aukeratuak"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Egin zure aukerak eta click egin "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Denak garbitu"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Orain"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Erlojua"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Aukeratu ordu bat"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Gauerdia"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Eguerdia"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Atzera"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Gaur"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Egutegia"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Atzo"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Bihar"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Erakutsi"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Izkutatu"
diff --git a/django/conf/locale/ka/LC_MESSAGES/django.mo b/django/conf/locale/ka/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..44309162c0
--- /dev/null
+++ b/django/conf/locale/ka/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/ka/LC_MESSAGES/django.po b/django/conf/locale/ka/LC_MESSAGES/django.po
new file mode 100644
index 0000000000..023a31ece9
--- /dev/null
+++ b/django/conf/locale/ka/LC_MESSAGES/django.po
@@ -0,0 +1,4369 @@
+# Django translation to Georgian language.
+# Copyright (C) 2008
+# This file is distributed under the same license as the PACKAGE package.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-02-17 15:03+0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: David Avsajanishvili <avsd05@gmail.com>\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"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "არაბული"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "ბენგალიური"
+
+#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "ბულგარული"
+
+#: conf/global_settings.py:42
+msgid "Catalan"
+msgstr "კატალანური"
+
+#: conf/global_settings.py:43
+msgid "Czech"
+msgstr "ჩეხური"
+
+#: conf/global_settings.py:44
+msgid "Welsh"
+msgstr "უელსური"
+
+#: conf/global_settings.py:45
+msgid "Danish"
+msgstr "დანიური"
+
+#: conf/global_settings.py:46
+msgid "German"
+msgstr "გერმანული"
+
+#: conf/global_settings.py:47
+msgid "Greek"
+msgstr "ბერძნული"
+
+#: conf/global_settings.py:48
+msgid "English"
+msgstr "ინგლისური"
+
+#: conf/global_settings.py:49
+msgid "Spanish"
+msgstr "ესპანური"
+
+#: conf/global_settings.py:50
+msgid "Argentinean Spanish"
+msgstr "არგენტინის ესპანური"
+
+#: conf/global_settings.py:51
+msgid "Persian"
+msgstr "სპარსული"
+
+#: conf/global_settings.py:52
+msgid "Finnish"
+msgstr "ფინური"
+
+#: conf/global_settings.py:53
+msgid "French"
+msgstr "ფრანგული"
+
+#: conf/global_settings.py:54
+msgid "Gaeilge"
+msgstr "გალიჯური"
+
+#: conf/global_settings.py:55
+msgid "Galician"
+msgstr "გალიციური"
+
+#: conf/global_settings.py:56
+msgid "Hungarian"
+msgstr "უნგრული"
+
+#: conf/global_settings.py:57
+msgid "Hebrew"
+msgstr "ებრაული"
+
+#: conf/global_settings.py:58
+msgid "Croatian"
+msgstr "ხორვატიული"
+
+#: conf/global_settings.py:59
+msgid "Icelandic"
+msgstr "ისლანდიური"
+
+#: conf/global_settings.py:60
+msgid "Italian"
+msgstr "იტალიური"
+
+#: conf/global_settings.py:61
+msgid "Japanese"
+msgstr "იაპონური"
+
+#: conf/global_settings.py:62
+#, fuzzy
+msgid "Georgian"
+msgstr "ქართული"
+
+#: conf/global_settings.py:63
+msgid "Korean"
+msgstr "კორეული"
+
+#: conf/global_settings.py:64
+msgid "Khmer"
+msgstr "ხმერული"
+
+#: conf/global_settings.py:65
+msgid "Kannada"
+msgstr "კანნადა"
+
+#: conf/global_settings.py:66
+msgid "Latvian"
+msgstr "ლატვიური"
+
+#: conf/global_settings.py:67
+msgid "Macedonian"
+msgstr "მაკედონური"
+
+#: conf/global_settings.py:68
+msgid "Dutch"
+msgstr "ჰოლანდიური"
+
+#: conf/global_settings.py:69
+msgid "Norwegian"
+msgstr "ნორვეგიული"
+
+#: conf/global_settings.py:70
+msgid "Polish"
+msgstr "პოლონური"
+
+#: conf/global_settings.py:71
+msgid "Portugese"
+msgstr "პორტუგალიური"
+
+#: conf/global_settings.py:72
+msgid "Brazilian"
+msgstr "ბრაზილიური"
+
+#: conf/global_settings.py:73
+msgid "Romanian"
+msgstr "რუმინული"
+
+#: conf/global_settings.py:74
+msgid "Russian"
+msgstr "რუსული"
+
+#: conf/global_settings.py:75
+msgid "Slovak"
+msgstr "სლოვარური"
+
+#: conf/global_settings.py:76
+msgid "Slovenian"
+msgstr "სლოვენიური"
+
+#: conf/global_settings.py:77
+msgid "Serbian"
+msgstr "სერბული"
+
+#: conf/global_settings.py:78
+msgid "Swedish"
+msgstr "შვედური"
+
+#: conf/global_settings.py:79
+msgid "Tamil"
+msgstr "თამილური"
+
+#: conf/global_settings.py:80
+msgid "Telugu"
+msgstr "ტელუგუ"
+
+#: conf/global_settings.py:81
+msgid "Turkish"
+msgstr "თურქული"
+
+#: conf/global_settings.py:82
+msgid "Ukrainian"
+msgstr "უკრაინული"
+
+#: conf/global_settings.py:83
+msgid "Simplified Chinese"
+msgstr "გამარტივებული ჩინური"
+
+#: conf/global_settings.py:84
+msgid "Traditional Chinese"
+msgstr "ტრადიციული ჩინური"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>%s-ს მიერ:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "ყველა"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "ნებისმიერი თარიღი"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "დღეს"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "ბოლო 7 დღე"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "მიმდინარე თვე"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "მიმდინარე წელი"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "კი"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "არა"
+
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "გაურკვეველი"
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr "მოქმედების დრო"
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr "ობიექტის id"
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr "ობიექტის წარმ."
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr "მოქმედების დროშა"
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr "შეცვლის შეტყობინება"
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr "ლოგის ერთეული"
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr "ლოგის ერთეულები"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "გვერდი ვერ მოიძებნა"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "უკაცრავად, მოთხოვნილი გვერდი ვერ მოიძებნა."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "საწყისი გვერდი"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "სერვერის შეცდომა"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "სერვერის შეცდომა (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "სერვერის შეცდომა <em>(500)</em>"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"აქ იყო შეცდომა. იგი გადაგზავნილია საიტის ადმინისტრატორის ელექტრონულ ფოსტაზე "
+"და მალე გამოსწორდება. გმადლობთ მოთმინებისათვის."
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "კეთილი იყოს თქვენი მობრძანება,"
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "დოკუმენტაცია"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "პაროლის შეცვლა"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "გამოსვლა"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django-ს ადმინისტრირების საიტი"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django-ს ადმინისტრირება"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "დამატება"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "ისტორია"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "წარმოდგენა საიტზე"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "გთხოვთ, გაასწორეთ ქვემოთ მოყვანილი შეცდომა."
+msgstr[1] "გთხოვთ, გაასწორეთ ქვემოთ მოყვანილი შეცდომები."
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "დალაგება"
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "დალაგება:"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "დავამატოთ %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "წავშალოთ"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"ობიექტების წაშლა: %(object_name)s '%(escaped_object)s' გამოიწვევს "
+"დაკავშირებული ობიექტების წაშლას, მაგრამ თქვენ არა გაქვთ შემდეგი ტიპების "
+"ობიექტების წაშლის უფლება:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "კი, ნამდვილად"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " %(filter_title)s მიხედვით "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "ფილტრი"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "%(name)s აპლიკაციაში არსებული მოდელები."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "შეცვლა"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "თქვენ არა გაქვთ რედაქტირების უფლება."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "ბოლო მოქმედებები"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "ჩემი მოქმედებები"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "არ არის მისაწვდომი"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"თქვენი მონაცემთა ბაზის ინსტალაცია არაკორექტულია. დარწმუნდით, რომ მონაცემთა "
+"ბაზის შესაბამისი ცხრილები შექმნილია, და მონაცემთა ბაზის წაკითხვა შეუძლია "
+"შესაბამის მომხმარებელს."
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "მომხმარებლის სახელი:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "პაროლი:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:25
+msgid "Log in"
+msgstr "შესვლა"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "თარიღი/დრო"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "მომხმარებელი"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "მოქმედება"
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"ამ ობიექტს ცვლილებების ისტორია არა აქვს. როგორც ჩანს, იგი არ იყო დამატებული "
+"ადმინისტრირების საიტის მეშვეობით."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "ვაჩვენოთ ყველა"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "ძებნა"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "ერთი შედეგი"
+msgstr[1] "%(counter)s შედეგი"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "სულ %(full_result_count)s"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "შევინახოთ, როგორც ახალი"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "შევინახოთ და დავამატოთ ახალი"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "შევინახოთ და გავაგრძელოთ რედაქტირება"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "შევინახოთ"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"ჯერ შეიყვანეთ მომხმარებლის სახელი და პაროლი. ამის შემდეგ თქვენ გექნებათ "
+"მომხმარებლის სხვა ოპციების რედაქტირების შესაძლებლობა."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "მომხმარებელი"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "პაროლი"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "პაროლი (განმეორებით)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "შეიყვანეთ იგივე პაროლი, დამოწმებისათვის."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr ""
+"შეიყვანეთ ახალი პაროლი მომხმარებლისათვის <strong>%(username)s</strong>."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "სანიშნები"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "დოკუმენტაციის სანიშნები"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site. Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").</p>\n"
+msgstr ""
+"\n"
+"<p class=\"help\">სანიშნების დასაყენებლად გადაათრიეთ ბმული თქვენი "
+"სანიშნების\n"
+"პანელზე, ან დააწკაპეთ ბმულზე მარჯვენა ღილაკით და დაამატეთ იგი სანიშნებში.\n"
+"ამის შემდეგ თქვენ შეძლებთ სანიშნის არჩევას საიტის ნებისმიერი გვერდიდან.\n"
+"გაითვალისწინეთ, რომ ზოგიერთი სანიშნის მოხმარებისათვის საჭიროა, რომ თქვენ\n"
+"იყოთ შესული ამ საიტზე ე.წ. \"შიდა\" კომპიუტერიდან (შეუთანხმდით თქვენს\n"
+"ადმინისტრატორს, თუ არ ხართ დარწმუნებული, რომ თქვენი კომპიუტერი არის\n"
+"\"შიდა\" კომპიუტერი).</p>\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "ამ გვერდის დოკუმენტაცია"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"გადასვლა ნებისმიერი გვერდიდან იმ წარმოდგენის დოკუმენტაციაზე, რომელიც ამ "
+"გვერდს აგენერირებს."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "ობიექტის ID-ის ჩვენება"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"ერთი ობიექტის ამსახველი გვერდის content-type-ის და უნიკალური ID-ის ჩვენება."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "შევცვალოთ ეს ობიექტი (იმავე ფანჯარაში)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "ერთი ობიექტის ამსახველი გვერდების ადმინისტრირებაზე გადასვლა."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "შევცვალოთ ეს ობიექტი (ახალ ფანჯარაში)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "იგივე, ოღონდ ხსნის ადმინისტრირების გვერდს ახალ ფანჯარაში."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "გმადლობთ, რომ დღეს ამ საიტთან მუშაობას დაუთმეთ დრო."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "ხელახლა შესვლა"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "პაროლის შეცვლა"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "პაროლი წარმატებით შეიცვალა"
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "თქვენი პაროლი შეიცვალა."
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"გთხოვთ, უსაფრთხოების დაცვის მიზნით, შეიყვანოთ თქვენი ძველი პაროლი, შემდეგ კი "
+"ახალი პაროლი ორჯერ, რათა დარწმუნდეთ, რომ იგი შეყვანილია სწორად."
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "ძველი პაროლი:"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "ახალი პაროლი:"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "პაროლის დამოწმება:"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "შევცვალოთ ჩემი პაროლი"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "პაროლის აღდგენა"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "პაროლის აღდგენა წარმატებით დასრულდა"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"ახალი პაროლი გაიგზავნა თქვენს მიერ მითითებულ ელექტრონულ ფოსტაზე. თქვენ "
+"მიიღებთ მას უახლოეს დროში."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "თქვენ მიიღეთ ეს წერილი, რადგანაც მოითხოვეთ პაროლის აღდგენა"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "თქვენი მომხმარებლის ანგარიშისათვის %(site_name)s-საიტზე"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "თქვენი ახალი პაროლია: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "თქვენ შეგიძლიათ შეცვალოთ იგი შემდეგი გვერდიდან:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "თქვენი მომხმარებლის სახელი (თუ დაგავიწყდათ):"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "გმადლობთ, რომ იყენებთ ჩვენს საიტს!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s საიტის გუნდი"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"დაგავიწყდათ პაროლი? შეიყვანეთ თქვენი ელექტრონული ფოსტის მისამართი ამ ველში, "
+"ჩვენ დავაგენერირებთ და გამოგიგზავნით ახალ პაროლს."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "ელ. ფოსტა:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "აღვადგინოთ ჩემი პაროლი"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "თარიღი;"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "დრო:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "მიმდინარე:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "შეცვლა:"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "ყველა თარიღი"
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" წარმატებით დაემატა."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "თქვენ შეგიძლიათ შეცვალოთ იგი."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "მომხმარებლის დამატება"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "პაროლი წარმატებით შეიცვალა."
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "შევცვალოთ პაროლი: %s"
+
+#: contrib/admin/views/decorators.py:11 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"გთხოვთ, შეიყვანოთ სწორი მომხმარებლის სახელი და პაროლი. გაითვალისწინეთ, რომ "
+"ორივე ველი დამოკიდებულია რეგისტრზე."
+
+#: contrib/admin/views/decorators.py:63
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"გთხოვთ, შეხვიდეთ კიდევ ერთხელ, რადგანაც თქვენი სესიის დრო ამოიწურა. ნუ "
+"ღელავთ: თქვენს მიერ შეტანილი ცვლილებები შენახულია."
+
+#: contrib/admin/views/decorators.py:70
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"როგორც ჩანს, თქვენი ბროუზერი არ ღებულობს cookie-ებს. გთხოვთ, ჩართოთ cookie-"
+"ების მიღების ფუნქცია, განაახლეთ ეს გვერდი და სცადეთ კიდევ ერთხელ."
+
+#: contrib/admin/views/decorators.py:84
+msgid "Usernames cannot contain the '@' character."
+msgstr "მომხმარებლის სახელი არ უნდა შეიცავდეს სიმბოლოს '@'."
+
+#: contrib/admin/views/decorators.py:86
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"ელ-ფოსტის მისამართი არ არის თქვენი მომხმარებლის სახელი. სცადეთ '%s' მის "
+"ნაცვლად."
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "ტეგი:"
+
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "ფილტრი:"
+
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "წარმოდგენა:"
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "აპლიკაცია %r ვერ მოიძებნა"
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "მოდელი %(name)r ვერ მოიძებნა აპლიკაციაში %(label)r"
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "`%(label)s.%(type)s` დაკავშირებული ობიექტი"
+
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "მოდელი:"
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "`%(label)s.%(name)s` დაკავშირებული ობიექტები"
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "ყველა %s"
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "%s - რაოდენობა"
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "%s ობიექტების ველები"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "მთელი"
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "ლოგიკური (True ან False)"
+
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "სტრიქონი (%(max_length)s სიმბოლომდე)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "მძიმით გამოყოფილი მთელი რიცხვები"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "თარიღი (დროის გარეშე)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "თარიღი (დროსთან ერთად)"
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "ათობითი რიცხვი"
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "ელ. ფოსტის მისამართი"
+
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "გზა ფაილისაკენ"
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "რიცხვი მცოცავი წერტილით"
+
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP-მისამართი"
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "ლოგიკური (True, False ან None)"
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr "მშობელ მოდელთან დამოკიდებულება"
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "ტელეფონის ნომერი"
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "ტექსტი"
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "დრო"
+
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr ""
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "აშშ შტატი (ორი ასომთავრული)"
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "XML ტექსტი"
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s არ არის urlpattern-ის შესაბამისი ობიექტი"
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "საიტის ადმინისტრირება"
+
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "შეგიძლიათ დაამატოთ კიდევ ერთი %s."
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "დავამატოთ %s"
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "%s დამატებულია."
+
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "და"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "%s შეცვლილია."
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "%s წაშლილია."
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "არცერთი ველი არ შეცვლილა."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" წარმატებით შეიცვალა."
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr ""
+"%(name)s \"%(obj)s\" წარმატებით დაემატა. შეგიძლიათ განაგრძოთ მისი "
+"რედაქტირება."
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "შევცვალოთ %s"
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "ერთი ან რამდენიმე %(fieldname)s ობიექტში %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "ერთი ან რამდენიმე %(fieldname)s ობიექტში %(name)s:"
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" წარმატებით წაიშალა."
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "დარწმუნებული ხართ?"
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "ცვლილებების ისტორია: %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "ავირჩიოთ %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "აირჩიეთ %s შესაცვლელად"
+
+#: contrib/admin/views/main.py:784
+msgid "Database error"
+msgstr "მონაცემთა ბაზის შეცდომა"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "პაროლის ორი ველი ერთმანეთს არ ემთხვევა."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "მომხმარებელი ამ სახელით უკვე არსებობს."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"თქვენი ბროუზერი არ ღებულობს cookie-ებს. Cookie საჭიროა საიტზე შესასვლელად."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "თქვენი ანგარიში არააქტიურია."
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"ელ.ფოსტის ეს მისამართი არ შეესაბამება არცერთ მომხმარებელს. ნამდვილად ხართ "
+"დარეგისტრირებული?"
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr "პაროლი შეცვლილია: %s"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "'ახალი პაროლის' ორი ველი ერთმანეთს არ ემთხვევა."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "თქვენი ძველი პაროლი შეყვანილია არასწორად. გთხოვთ, შეიყვანოთ ხელახლა."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "სახელი"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "კოდური სახელი"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "უფლება"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "უფლებები"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "ჯგუფი"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:141
+msgid "groups"
+msgstr "ჯგუფები"
+
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "მომხმარებლის სახელი"
+
+#: contrib/auth/models.py:131
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"აუცილებელია. 30 ან ნაკლები სიმბოლო. მხოლოდ ლათინური ასოები, ციფრები და "
+"ხაზგასმა."
+
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "სახელი"
+
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "გვარი"
+
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "ელ. ფოსტა"
+
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "პაროლი"
+
+#: contrib/auth/models.py:135
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr ""
+"გამოიყენეთ '[algo]$[salt]$[hexdigest]' ან <a href=\"password/\">პაროლის "
+"შეცვლის ფორმა</a>."
+
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "თანამშრომლობის სტატუსი"
+
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr ""
+"განსაზღვრავს, აქვს თუ არა მომხმარებელს ადმინისტრირების საიტზე შესვლის უფლება."
+
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "აქტიურია"
+
+#: contrib/auth/models.py:137
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"განსაზღვრავს, აქვს თუ არა მომხმარებელს Django-ს ადმინისტრირების საიტზე "
+"შესვლის შესაძლებლობა. გადანიშნეთ ეს დროშა მომხმარებლის წაშლის მაგივრად."
+
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "სუპერმომხმარებლის სტატუსი"
+
+#: contrib/auth/models.py:138
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "განსაზღვრავს, რომ ამ მომხმარებელს აქვს ყველა უფლება."
+
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "ბოლო შესვლა"
+
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "გაწევრიანების თარიღი"
+
+#: contrib/auth/models.py:142
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"ინდივიდუალურად მითითებული უფლებების გარდა, ეს მომხმარებელი მიიღებს აგრეთვე "
+"ყველა იმ ჯგუფის უფლებას, რომელშიც იგი გაწევრიანებულია."
+
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "მომხმარებლის უფლებები"
+
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "მომხმარებელი"
+
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "მომხმარებლები"
+
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "პირადი ინფორმაცია"
+
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "უფლებები"
+
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "მნიშვნელოვანი თარიღები"
+
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "ჯგუფები"
+
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "შეტყობინება"
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "გამოსული ხართ"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:176
+msgid "object ID"
+msgstr "ობიექტის ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "ჰედლაინი"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:177
+msgid "comment"
+msgstr "კომენტარი"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "რეიტინგი #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "რეიტინგი #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "რეიტინგი #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "რეიტინგი #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "რეიტინგი #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "რეიტინგი #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "რეიტინგი #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "რეიტინგი #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "დასაშვები რეიტინგია"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:179
+msgid "date/time submitted"
+msgstr "გაგზავნის თარიღი და დრო"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:180
+msgid "is public"
+msgstr "საყოველთაოა"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "წაშლილია"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"მონიშნეთ ეს დროშა, თუ კომენტარი შეუსაბამოა. მის ნაცვლად გაჩნდება "
+"შეტყობინება: \"კომენტარი წაშლილია\"."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "კომენტარები"
+
+#: contrib/comments/models.py:140 contrib/comments/models.py:222
+msgid "Content object"
+msgstr "კონტენტის ობიექტი"
+
+#: contrib/comments/models.py:168
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"გამოგზავნილია %(user)s-ს მიერ, %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:178
+msgid "person's name"
+msgstr "პიროვნების სახელი"
+
+#: contrib/comments/models.py:181
+msgid "ip address"
+msgstr "ip-მისამართი"
+
+#: contrib/comments/models.py:183
+msgid "approved by staff"
+msgstr "მოწონებულია პერსონალის მიერ"
+
+#: contrib/comments/models.py:187
+msgid "free comment"
+msgstr "თავისუფალი კომენტარი"
+
+#: contrib/comments/models.py:188
+msgid "free comments"
+msgstr "თავისუფალი კომენტარები"
+
+#: contrib/comments/models.py:250
+msgid "score"
+msgstr "შეფასება"
+
+#: contrib/comments/models.py:251
+msgid "score date"
+msgstr "შეფასების თარიღი"
+
+#: contrib/comments/models.py:255
+msgid "karma score"
+msgstr "კარმა-შეფასება"
+
+#: contrib/comments/models.py:256
+msgid "karma scores"
+msgstr "კარმა-შეფასებები"
+
+#: contrib/comments/models.py:260
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d შეფასებულია %(user)s-ის მიერ"
+
+#: contrib/comments/models.py:277
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"ეს კომენტარი მონიშნულია %(user)s-ის მიერ:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:285
+msgid "flag date"
+msgstr "მონიშვნის თარიღი"
+
+#: contrib/comments/models.py:289
+msgid "user flag"
+msgstr "მომხმარებლის მონიშვნა"
+
+#: contrib/comments/models.py:290
+msgid "user flags"
+msgstr "მომხმარებლის მონიშვნები"
+
+#: contrib/comments/models.py:294
+#, python-format
+msgid "Flag by %r"
+msgstr "%r-ის მონიშვნები"
+
+#: contrib/comments/models.py:300
+msgid "deletion date"
+msgstr "წაშლის თარიღი"
+
+#: contrib/comments/models.py:303
+msgid "moderator deletion"
+msgstr "მოდერატორის წაშლა"
+
+#: contrib/comments/models.py:304
+msgid "moderator deletions"
+msgstr "მოდერატორის წაშლები"
+
+#: contrib/comments/models.py:308
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "მოდერატორის წაშლა %r-ის მიერ"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "დაგავიწყდათ თქვენი პაროლი?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "რეიტინგები"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "აუცილებელია"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "არასავალდებულოა"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "სურათის გაგზავნა"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "კომენტარი:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "კომენტარის წინასწარი ნახვა"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "თქვენი სახელი:"
+
+#: contrib/comments/views/comments.py:28
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "ეს რეიტინგი აუცილებელია, რადგანაც თქვენ შესულხართ სხვა რეიტინგებში."
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"ეს კომენტარი გამოგზავნილია მომხმარებლის მიერ, რომელსაც %(count)s-ზე ნაკლები "
+"კომენტარი აქვს:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"ეს კომენტარი გამოგზავნილია მომხმარებლის მიერ, რომელსაც %(count)s-ზე ნაკლები "
+"კომენტარი აქვს:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"ეს კომენტარი გამოგზავნილია ზერელე მომხმარებლის მიერ:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "დაშვებულია მხოლოდ POST-ები"
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "ერთი ან რამდენიმე აუცილებელი ველი არ იყო მითითებული"
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "ვიღაცა ჩაერია კომენტარის ფორმაში (უსაფრთხოების დარღვევა)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"კომენტარის ფორმას აქვს არასწორი პარამეტრი 'target' -- ობიექტის ID არ იყო "
+"სწორი"
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "კომენტარის ფორმას არა აქვს 'წინასწარი ხედვის' ან 'გაგზავნის' საშუალება"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "ანონიმურ მომხმარებლებს ხმის მიცემის უფლება არა აქვთ"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "კომენტარის ID არასწორია"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "საკუთარი თავისათვის ხმის მიცემა აკრძალულია"
+
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "python-ის მოდელის კლასის სახელი"
+
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "კონტენტის ტიპი"
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "კონტენტის ტიპები"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"მაგალითი: '/about/contact/'. ყურადღება მიაქციეთ დახრილ ხაზებს თავში და ბოლოში."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "სათაური"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "კონტენტი"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "ჩავრთოთ კომენტარები"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "შაბლონის სახელი"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"მაგალითი: 'flatpages/contact_page.html'. თუ იგი მითითებული არ არის, "
+"გამოყენებული იქნება 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "რეგისტრაცია აუცილებელია"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"თუ ეს დროშა ჩართულია, მხოლო შემოსულ მომხმარებლებს ექნებათ გვერდის "
+"დათვალიერების საშუალება."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "უბრალო გვერდი"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "უბრალო გვერდები"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:52
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f მილიონი"
+msgstr[1] "%(value).1f მილიონი"
+
+#: contrib/humanize/templatetags/humanize.py:55
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f მილიარდი"
+msgstr[1] "%(value).1f მილიარდი"
+
+#: contrib/humanize/templatetags/humanize.py:58
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f ტრილიონი"
+msgstr[1] "%(value).1f ტრილიონი"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "one"
+msgstr "ერთი"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "two"
+msgstr "ორი"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "three"
+msgstr "სამი"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "four"
+msgstr "ოთხი"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "five"
+msgstr "ხუთი"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "six"
+msgstr "ექვსი"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "seven"
+msgstr "შვიდი"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "eight"
+msgstr "რვა"
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "nine"
+msgstr "ცხრა"
+
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "today"
+msgstr "დღეს"
+
+#: contrib/humanize/templatetags/humanize.py:96
+msgid "tomorrow"
+msgstr "ხვალ"
+
+#: contrib/humanize/templatetags/humanize.py:98
+msgid "yesterday"
+msgstr "გუშინ"
+
+#: contrib/localflavor/ar/forms.py:28
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "შეიყვანეთ საფოსტო კოდი ერთ-ერთ ფორმატში: NNNN ან ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "ამ ველში შეიძლება იყოს მხოლოდ ციფრები."
+
+#: contrib/localflavor/ar/forms.py:51
+msgid "This field requires 7 or 8 digits."
+msgstr "ამ ველში შეიძლება იყოს მხოლოდ 7 ან 8 თანრიგი."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+"შეიყვანეთ დასაშვები CUIT ერთ-ერთ ფორმატში: XX-XXXXXXXX-X ან XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:81
+msgid "Invalid CUIT."
+msgstr "არასწორი CUIT."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "შეიყვანეთ ოთხთანრიგიანი საფოსტო კოდი"
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "შეიყვანეთ zip-კოდი ფორმატში: XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "ტელეფონის ნომრები უნდა იყოს XX-XXXX-XXXX ფორმატში."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr ""
+"შეიყვანეთ დასაშვები ბრაზილიური შტატი. მოცემული შტატი არ არის დასაშვები."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "არასწორი CPF ნომერი."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "ეს ველი უნდა შეიცავდეს 11 ციფრს ან 14 სიმბოლოს, ან ნაკლებს."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "არასწორი CNPJ ნომერი."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "ეს ველი მოითხოვს არაუმეტეს 14 თანრიგისა"
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "შეიყვანეთ საფოსტო კოდი ფორმატში: XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr ""
+"შეიყვანეთ კანადაში დასაშვები სოციალური დაზღვევის ნომერი ფორმატში: XXX-XXX-XXX"
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "აარგაუ"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "აპენცელ ინერჰოდენ"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "აპენცელ აუსერჰოდენ"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "ბაზელ-შტადტ"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "ბაზელ-ლანდ"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "ბერნი"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "ფრაიბურგი"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "ჟენევა"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "გლარუსი"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "გრაუბუენდენ"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "ჯურა"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "ლეცერნი"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "ნოიხატლი"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "ნიდვალდენი"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "ობვალდენი"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "შაფჰაუზენი"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "შვიცი"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "სოლოთურნი"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "სენტ-გალენი"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "თურგაუ"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "ტიჯინო"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "ური"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "ვალაისი"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "ვაუდი"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "ცუგი"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "ციურიხი"
+
+#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "შეიყვანეთ zip-კოდი ფორმატში XXXX."
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"შეიყვანეთ შვეიცარიაში დაშვებული პირადი ან პასპორტის ნომერი, ფორმატებში: "
+"X1234567<0 ან 1234567890."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "შეიყვანეთ დასაშვები ჩილიური RUT."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "შეიყვანეთ დასაშვები ჩილიური RUT. ფორმატი: XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "ჩილიური RUT არასწორია."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "ბადენ-ვურტემბერგი"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "ბავარია"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "ბერლინი"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "ბრანდენბურგი"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "ბრემენი"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "ჰამბურგი"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "ჰესენი"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "მეკლენბურგ-ვესტერნ პომერანია"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "ქვემო საქსონია"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "ჩრდილოეთ რაინ-ვესტფალია"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "რაინლანდ-პალატინატა"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "ზაარლანდი"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "საქსონია"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "საქსონია-ანჰალტ"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "შლეზვიგ-ჰოლშტაინი"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "თურინგია"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "შეიყვანეთ zip-კოდი ფორმატში XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"შეიყვანეთ გერმანიაში დასაშვები პირადობის მოწმობის ნომერი, ფორმატში: "
+"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "არავა"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "ალბასეტე"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "ალასანტი"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "ალმერია"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "ავილა"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "ბადაჰოს"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "ილეს ბალეარს"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "ბარსელონა"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "ბურგოს"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "კასერეს"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "კადიზ"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "კასტელო"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "სიუდად რეალ"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "კორდობა"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "ა კორუნია"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "კუენსა"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "გირონა"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "გრანადა"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "გუადალაჯარა"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "გუიპუზკოა"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "ჰუელვა"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "ჰუესკა"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "ჯეინი"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "ლეონი"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "ლეიდა"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "ლა რიოხა"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "ლუგო"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "მადრიდი"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "მალაგა"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "მურსია"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "ნავარე"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "ოურენსი"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "ასტურია"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "პალენსია"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "ლას პალმას"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "პონტევედრა"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "სალამანსა"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "სანტა კრუზ დე ტენერიფე"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "კანტაბრია"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "სეგოვია"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "სევილი"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "სორია"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "ტარაგონა"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "ტერუელი"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "ტოლედო"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "ვალენსია"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "ვალადოლიდი"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "ბიზკაია"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "სამორა"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "სარაგოსა"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "კეუტა"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "მელილა"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "ანდალუზია"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "არაგონ"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "ასტურიის პრინციპატი"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "ბალეარის კუნძულები"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "ბასკების ქვეყანა"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "კანარის კუნძuლები"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "კასტილია ლა მანჩა"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "კასტილია და ლეონი"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "კატალონია"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "ექსტრემადურა"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "გალიცია"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "მურსიის რეგიონი"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "ნავარის ფორალური თემი"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "ვალენსიის თემი"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr ""
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr ""
+
+#: contrib/localflavor/jp/forms.py:19
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr ""
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr ""
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "გადამისამართება გვერდიდან"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"უნდა იყოს აბსოლუტური გზა დომენის სახელის გარეშე. მაგალითი: '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "გადამისამართება გვერდზე"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"უნდა იყოს აბსოლუტური გზა (როგორც ზემოთ) ან სრული URL, რომელიც იწყება "
+"'http://' სტრიქონით."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "გადამისამართება"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "გადამისამართებები"
+
+#: contrib/sessions/models.py:46
+msgid "session key"
+msgstr "სესიის გასაღები"
+
+#: contrib/sessions/models.py:47
+msgid "session data"
+msgstr "სესიის მონაცემები"
+
+#: contrib/sessions/models.py:48
+msgid "expire date"
+msgstr "ამოწურვის თარიღი"
+
+#: contrib/sessions/models.py:53
+msgid "session"
+msgstr "სესია"
+
+#: contrib/sessions/models.py:54
+msgid "sessions"
+msgstr "სესიები"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "დომენის სახელი"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "საჩვენებელი სახელი"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "საიტი"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "საიტები"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr ""
+"ეს მნიშვნელობა შეიძლება შეიცავდეს მხოლოდ ასოებს, ციფრებს და ხაზგასმის "
+"ნიშნებს."
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"ეს მნიშვნელობა შეიძლება შეიცავდეს მხოლოდ ასოებს, ციფრებს, ხაზგასმის ნიშნებს, "
+"ტირეებს და დახრილ ხაზებს."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"ეს მნიშვნელობა შეიძლება შეიცავდეს მხოლოდ ასოებს, ციფრებს, ხაზგასმის ნიშნებს "
+"და დეფისებს."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "ასომთავრულები აქ დაუშვებელია."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "პატარა ასოები აქ დაუშვებელია."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "შეიყვანეთ მხოლოდ მძიმეებით გამოყოფილი ციფრები."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "შეიყვანეთ მძიმეებით გამოყოფილი ელ. ფოსტის მისამართები."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "გთხოვთ, შეიყვანოთ დასაშვები IP-მისამართი"
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "ცარიელი მნიშვნელობები აქ დაუშვებელია."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "არაციფრული სიმბოლოები აქ დაუშვებელია."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "ეს მნიშვნელობა არ უნდა შედგებოდეს მხოლოდ ციფრებისაგან."
+
+#: core/validators.py:128 newforms/fields.py:151
+msgid "Enter a whole number."
+msgstr "შეიყვანეთ მთელი რიცხვი"
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "მხოლოდ ლათინური ასოებია დასაშვები."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "წელი უნდა იყოს 1900 ან მეტი."
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "არასწორი თარიღი: %s"
+
+#: core/validators.py:156 db/models/fields/__init__.py:509
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "შეიყვანეთ სწორი თარიღი YYYY-MM-DD ფორმატში."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "შეიყვანეთ სწორი დრო HH:MM ფორმატში."
+
+#: core/validators.py:165 db/models/fields/__init__.py:583
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "შეიყვანეთ სწორი თარიღი და დრო YYYY-MM-DD HH:MM ფორმატში."
+
+#: core/validators.py:170 newforms/fields.py:402
+msgid "Enter a valid e-mail address."
+msgstr "შეიყვანეთ სწორი ელ. ფოსტის მისამართი."
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"ფაილი არ იყო გამოგზავნილი. შეამოწმეთ კოდირების ტიპი მოცემული ფორმისათვის."
+
+#: core/validators.py:193 newforms/fields.py:458
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"ატვირთეთ დასაშვები გამოსახულება. თქვენს მიერ გამოგზავნილი ფაილი ან არ არის "
+"გამოსახულება, ან დაზიანებულია."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s არ მიუთითებს დასაშვებ გამოსახულებას."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "ტელეფონის ნომრები უნდა იყოს XXX-XXX-XXXX ფორმატში. \"%s\" არასწორია."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s არ მიუთითებს დასაშვებ QuickTime ვიდეოფაილს."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "საჭიროა სწორი URL"
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"საჭიროა სწორი HTML. ტიპიური შეცდომებია:\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "ცუდად დაფორმირებული XML-ია: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "არასწორი URL: %s"
+
+#: core/validators.py:259 core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s არის გაწყვეტილი ბმული."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "შეიყვანეთ სწორი აშშ შტატის აბრევიატურა."
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "ყურადღება მიაქციეთ ლექსიკას! სიტყვა %s აქ დაუშვებელია."
+msgstr[1] "ყურადღება მიაქციეთ ლექსიკას! სიტყვები %s აქ დაუშვებელია."
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "ველი უნდა ემთხვეოდეს '%s' ველს."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "გთხოვთ, შეიყვანოთ რაიმე მნიშვნელობა სულ მცირე ერთ ველში."
+
+#: core/validators.py:316 core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "გთხოვთ, შეავსოთ ორივე ველი, ან ორივე დატოვოთ ცარიელი."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "ეს ველი უნდა იყოს მითითებული, თუ %(field)s არის %(value)s"
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "ეს ველი უნდა იყოს მითითებული, თუ %(field)s არ არის %(value)s"
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "განმეორებითი მნიშვნელობები დაუშვებელია."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "მნიშვნელობა უნდა იყოს %(lower)s და %(upper)s შორის."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "მნიშვნელობა უნდა იყოს სულ მცირე %s."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "მნიშვნელობა არ უნდა აღემატებოდეს %s-ს."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "მნიშვნელობა უნდა იყოს %s-ის ხარისხი."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "გთხოვთ, შეიყვანოთ სწორი ათობითი რიცხვი."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] ""
+"გთხოვთ, შეიყვანოთ სწორი, არაუმეტეს %s თანრიგისაგან შემდგარი ათობითი რიცხვი"
+msgstr[1] ""
+"გთხოვთ, შეიყვანოთ სწორი, არაუმეტეს %s თანრიგისაგან შემდგარი ათობითი რიცხვი"
+
+#: core/validators.py:447
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] ""
+"გთხოვთ, შეიყვანოთ სწორი ათობითი რიცხვი, რომლის მთელი ნაწილის სიგრძე არ "
+"აღემატება %s თანრიგს."
+msgstr[1] ""
+"გთხოვთ, შეიყვანოთ სწორი ათობითი რიცხვი, რომლის მთელი ნაწილის სიგრძე არ "
+"აღემატება %s თანრიგს."
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"გთხოვთ, შეიყვანოთ სწორი ათობითი რიცხვი, რომლის წილადი ნაწილის სიგრძე არ "
+"აღემატება %s ციფრს."
+msgstr[1] ""
+"გთხოვთ, შეიყვანოთ სწორი ათობითი რიცხვი, რომლის წილადი ნაწილის სიგრძე არ "
+"აღემატება %s ციფრს."
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "გთხოვთ, შეიყვანოთ სწორი რიცხვი მცოცავი ათობითი წერტილით."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+"დარწმუნდით, რომ თქვენს მიერ ატვირთული ფაილის სიგრძე არ არის %s ბაიტზე "
+"ნაკლები."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+"დარწმუნდით, რომ თქვენს მიერ ატვირთული ფაილის სიგრძე არ აღემატება %s ბაიტს."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "ამ ველის ფორმატი არასწორია."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "ველი არასწორია."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "%s-დან მნიშვნელობის ამოღება შეუძლებელია."
+
+#: core/validators.py:539
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"URL %(url)s მისამართმა დააბრუნა არასწორი Content-Type სათაური '%(contenttype)"
+"s'."
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"გთხოვთ, დახუროთ დაუხურავი %(tag)s ტეგი, ხაზის ნომერია %(line)s. "
+"(სტრიქონი იწყება ტექსტით: \"%(start)s\".)"
+
+#: core/validators.py:576
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"ტექსტის ნაწილი, რომელიც %(line)s ხაზზე იწყება, დაუშვებელია მიმდინარე კონტექსტში. (სტრიქონი "
+"იწყება ტექსტით: \"%(start)s\".)"
+
+#: core/validators.py:581
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"%(attr)s\" ატრიბუტი არასწორია %(line)s ხაზზე. (სტრიქონი იწყება ტექსტით: \"%"
+"(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"\"<%(tag)s>\" ტეგი არასწორია %(line)s ხაზზე. (სტრიქონი იწყება ტექსტით: \"%"
+"(start)s\".)"
+
+#: core/validators.py:590
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"ტეგში %(line)s ხაზზე ერთი ან რამდენიმე ატრიბუტი გამოტოვებულია. (სტრიქონი იწყება "
+"ტექსტით: \"%(start)s\".)"
+
+#: core/validators.py:595
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"\"%(attr)s\" ატრიბუტს %(line)s ხაზზე აქვს არასწორი მნიშვნელობა. (სტრიქონი "
+"იწყება ტექსტით: \"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s მოცემული %(type)s-ით უკვე არსებობს მოცემული %(field)s-თვის."
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s მოცემული %(fieldname)s-ით უკვე არსებობს."
+
+#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318
+#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746
+#: newforms/fields.py:45 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "ეს ველი აუცილებელია."
+
+#: db/models/fields/__init__.py:418
+msgid "This value must be an integer."
+msgstr "ეს მნიშვნელობა უნდა იყოს მთელი."
+
+#: db/models/fields/__init__.py:454
+msgid "This value must be either True or False."
+msgstr "ეს მნიშვნელობა უნდა იყოს True ან False."
+
+#: db/models/fields/__init__.py:475
+msgid "This field cannot be null."
+msgstr "ეს მნიშვნელობა არ შეიძლება იყოს null."
+
+#: db/models/fields/__init__.py:644
+msgid "This value must be a decimal number."
+msgstr "ეს მნიშვნელობა უნდა იყოს ათობითი რიცხვი."
+
+#: db/models/fields/__init__.py:755
+msgid "Enter a valid filename."
+msgstr "შეიყვანეთ სწორი ფაილის სახელი."
+
+#: db/models/fields/__init__.py:908
+msgid "This value must be either None, True or False."
+msgstr "ეს მნიშვნელობა უნდა იყოს None, True ან False."
+
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "გთხოვთ, შეიყვანოთ სწორი %s."
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr "გამოყავით ID-ები მძიმეებით."
+
+#: db/models/fields/related.py:660
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"დააჭირეთ \"Control\", ან \"Command\" Mac-ზე, ერთზე მეტი მნიშვნელობის ასარჩევად."
+
+#: db/models/fields/related.py:707
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "გთხოვთ, შეიყვანოთ სწორი %(self)s ID-ები. მნიშვნელობა %(value)r არასწორია."
+msgstr[1] "გთხოვთ, შეიყვანოთ სწორი %(self)s ID-ები. მნიშვნელობები %(value)r არასწორია."
+
+#: newforms/fields.py:46
+msgid "Enter a valid value."
+msgstr "შეიყვანეთ სწორი მნიშვნელობა."
+
+#: newforms/fields.py:123
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "დარწმუნდით, რომ მნიშვნელობა შედგება არაუმეტეს %(max)d სიმბოლოსაგან (ახლა მისი სიგრძეა %(length)d)."
+
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "დარწმუნდით, რომ მნიშვნელობა შედგება არანაკლებ %(min)d სიმბოლოსაგან (ახლა მისი სიგრძეა %(length)d)."
+
+#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "დარწმუნდით, რომ მნიშვნელობა ნაკლებია ან ტოლია %s-ზე."
+
+#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "დარწმუნდით, რომ მნიშვნელობა მეტია ან ტოლია %s-ზე."
+
+#: newforms/fields.py:180 newforms/fields.py:209
+msgid "Enter a number."
+msgstr "შეიყვანეთ რიცხვი."
+
+#: newforms/fields.py:212
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "დარწმუნდით, რომ მნიშვნელობა %s თანრიგს არ აღემატება."
+
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "დარწმუნდით, რომ წილადი ნაწილი %s თანრიგს არ აღემატება."
+
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "დარწმუნდით, რომ მთელი ნაწილი %s თანრიგს არ აღემატება."
+
+#: newforms/fields.py:262 newforms/fields.py:723
+msgid "Enter a valid date."
+msgstr "შეიყვანეთ სწორი თარიღი."
+
+#: newforms/fields.py:295 newforms/fields.py:724
+msgid "Enter a valid time."
+msgstr "შეიყვანეთ სწორი დრო."
+
+#: newforms/fields.py:334
+msgid "Enter a valid date/time."
+msgstr "შეიყვანეთ სწორი თარიღი და დრო."
+
+#: newforms/fields.py:433
+msgid "No file was submitted."
+msgstr "ფაილი არ იყო გამოგზავნილი."
+
+#: newforms/fields.py:434 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "გამოგზავნილი ფაილი ცარიელია."
+
+#: newforms/fields.py:496
+msgid "Enter a valid URL."
+msgstr "შეიყვანეთ სწორი URL."
+
+#: newforms/fields.py:497
+msgid "This URL appears to be a broken link."
+msgstr "როგორც ჩანს, URL არის გაწყვეტილი ბმული."
+
+#: newforms/fields.py:559 newforms/models.py:317
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "აირჩიეთ დასაშვები მნიშვნელობა. ეს არჩევანი დასაშვები არ არის."
+
+#: newforms/fields.py:598
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "აირჩიეთ დასაშვები მნიშვნელობა. %(value)s დასაშვები არ არის."
+
+#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:377
+msgid "Enter a list of values."
+msgstr "შეიყვანეთ მნიშვნელობების სია."
+
+#: newforms/fields.py:752
+msgid "Enter a valid IPv4 address."
+msgstr "შეიყვანეთ სწორი IPv4 მისამართი."
+
+#: newforms/models.py:378
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "აირჩიეთ დასაშვები მნიშვნელობა. %s დასაშვები არ არის."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "დარწმუნდით, რომ თქვენს მიერ შეყვანილი ტექსტი %s სიმბოლოზე ნაკლებია."
+msgstr[1] "დარწმუნდით, რომ თქვენს მიერ შეყვანილი ტექსტი %s სიმბოლოზე ნაკლებია."
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "ახალ ხაზზე გადასვლა აქ დაუშვებელია."
+
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "აირჩიეთ დასაშვები მნიშვნელობა; '%(data)s' არ არის %(choices)s მნიშვნელობების სიაში."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "შეიყვანეთ მთელი რიცხვი -32,768-დან 32,767-მდე."
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "შეიყვანეთ დადებითი რიცხვი."
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "შეიყვანეთ მთელი რიცხვი 0-დან 32,767-მდე."
+
+#: template/defaultfilters.py:691
+msgid "yes,no,maybe"
+msgstr "კი,არა,შესაძლოა"
+
+#: template/defaultfilters.py:722
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d ბაიტი"
+msgstr[1] "%(size)d ბაიტი"
+
+#: template/defaultfilters.py:724
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f კბაიტი"
+
+#: template/defaultfilters.py:726
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f მბაიტი"
+
+#: template/defaultfilters.py:727
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f გბაიტი"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr ""
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr ""
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr ""
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr ""
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "შუაღამე"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "შუადღე"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "ორშაბათი"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "სამშაბათი"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "ოთხშაბათი"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "ხუთშაბათი"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "პარასკევი"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "შაბათი"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "კვირა"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "ორშ"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "სამ"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "ოთხ"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "ხუთ"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "პარ"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "შაბ"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "კვრ"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "იანვარი"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "თებერვალი"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "მარტი"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "აპრილი"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "მაისი"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "ივნისი"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "ივლისი"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "აგვისტო"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "სექტემბერი"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "ოქტომბერი"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "ნოემბერი"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "დეკემბერი"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "იან"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "თებ"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "მარ"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "აპრ"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "მაი"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "ივნ"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "ივლ"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "აგვ"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "სექ"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "ოქტ"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "ნოე"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "დეკ"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "იან."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "თებ."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "აგვ."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "სექტ."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "ოქტ."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "ნოემ."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "დეკ."
+
+#: utils/text.py:127
+msgid "or"
+msgstr "ან"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "წელი"
+msgstr[1] "წელი"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "თვე"
+msgstr[1] "თვე"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "კვირა"
+msgstr[1] "კვირა"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "დღე"
+msgstr[1] "დღე"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "საათი"
+msgstr[1] "საათი"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "წუთი"
+msgstr[1] "წუთი"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "წუთი"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr ""
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ""
+
+#: utils/translation/trans_real.py:399
+msgid "DATE_FORMAT"
+msgstr "d.m.Y"
+
+#: utils/translation/trans_real.py:400
+msgid "DATETIME_FORMAT"
+msgstr "d.m.Y H:i"
+
+#: utils/translation/trans_real.py:401
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:417
+msgid "YEAR_MONTH_FORMAT"
+msgstr "d.m.Y"
+
+#: utils/translation/trans_real.py:418
+msgid "MONTH_DAY_FORMAT"
+msgstr "d.m.Y"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s წარმატებით შეიქმნა."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s წარმატებით შეიცვალა."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s წაიშალა."
diff --git a/django/conf/locale/ka/LC_MESSAGES/djangojs.mo b/django/conf/locale/ka/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000000..3725146189
--- /dev/null
+++ b/django/conf/locale/ka/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/django/conf/locale/ka/LC_MESSAGES/djangojs.po b/django/conf/locale/ka/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000..61aaf1070a
--- /dev/null
+++ b/django/conf/locale/ka/LC_MESSAGES/djangojs.po
@@ -0,0 +1,118 @@
+# Translation of Django Java-script part to Georgian.
+# Copyright (C) 2008
+# This file is distributed under the same license as the PACKAGE package.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: django 0.97\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-02-16 22:31+0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: David Avsajanishvili <avsd05@gmail.com>\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"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "მისაწვდომი %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "ავირჩიოთ ყველა"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "დავამატოთ"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "წავშალოთ"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "არჩეული %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "აირჩიეთ და დააწკაპეთ "
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "გავასუფთავოთ ყველა"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "იანვარი თებერვალი მარტი აპრილი მაისი ივნისი ივლისი აგვისტო სექტემბერი "
+"ოქტომბერი ნოემბერი დეკემბერი"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "კ ო ს ო ხ პ შ"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "კვირა ორშაბათი სამშაბათი ოთხშაბათი ხუთშაბათი პარასკევი შაბათი"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "ვაჩვენოთ"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "დავმალოთ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "ახლა"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "საათი"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "ავირჩიოთ დრო"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "შუაღამე"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "დილის 6 სთ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "შუადღე"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "უარი"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "დღეს"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "კალენდარი"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "გუშინ"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "ხვალ"
diff --git a/django/contrib/admin/views/decorators.py b/django/contrib/admin/views/decorators.py
index 4f6662c970..b9fd9ab900 100644
--- a/django/contrib/admin/views/decorators.py
+++ b/django/contrib/admin/views/decorators.py
@@ -1,3 +1,11 @@
+import base64
+import md5
+import cPickle as pickle
+try:
+ from functools import wraps
+except ImportError:
+ from django.utils.functional import wraps # Python 2.3, 2.4 fallback.
+
from django import http, template
from django.conf import settings
from django.contrib.auth.models import User
@@ -5,8 +13,6 @@ from django.contrib.auth import authenticate, login
from django.shortcuts import render_to_response
from django.utils.translation import ugettext_lazy, ugettext as _
from django.utils.safestring import mark_safe
-import base64, datetime, md5
-import cPickle as pickle
ERROR_MESSAGE = ugettext_lazy("Please enter a correct username and password. Note that both fields are case-sensitive.")
LOGIN_FORM_KEY = 'this_is_the_login_form'
@@ -104,4 +110,4 @@ def staff_member_required(view_func):
else:
return _display_login_form(request, ERROR_MESSAGE)
- return _checklogin
+ return wraps(view_func)(_checklogin)
diff --git a/django/contrib/auth/decorators.py b/django/contrib/auth/decorators.py
index f3f7f530ef..25bc20780e 100644
--- a/django/contrib/auth/decorators.py
+++ b/django/contrib/auth/decorators.py
@@ -1,3 +1,8 @@
+try:
+ from functools import wraps, update_wrapper
+except ImportError:
+ from django.utils.functional import wraps, update_wrapper # Python 2.3, 2.4 fallback.
+
from django.contrib.auth import REDIRECT_FIELD_NAME
from django.http import HttpResponseRedirect
from django.utils.http import urlquote
@@ -51,7 +56,7 @@ class _CheckLogin(object):
self.test_func = test_func
self.login_url = login_url
self.redirect_field_name = redirect_field_name
- self.__name__ = view_func.__name__
+ update_wrapper(self, view_func)
def __get__(self, obj, cls=None):
view_func = self.view_func.__get__(obj, cls)
diff --git a/django/contrib/databrowse/plugins/calendars.py b/django/contrib/databrowse/plugins/calendars.py
index 5d5a020e6d..a798868b55 100644
--- a/django/contrib/databrowse/plugins/calendars.py
+++ b/django/contrib/databrowse/plugins/calendars.py
@@ -8,8 +8,6 @@ from django.utils.translation import get_date_formats
from django.utils.encoding import force_unicode
from django.utils.safestring import mark_safe
from django.views.generic import date_based
-import datetime
-import time
class CalendarPlugin(DatabrowsePlugin):
def __init__(self, field_names=None):
diff --git a/django/contrib/databrowse/plugins/fieldchoices.py b/django/contrib/databrowse/plugins/fieldchoices.py
index dea6bac700..0a58e7a6ab 100644
--- a/django/contrib/databrowse/plugins/fieldchoices.py
+++ b/django/contrib/databrowse/plugins/fieldchoices.py
@@ -7,8 +7,6 @@ from django.utils.text import capfirst
from django.utils.encoding import smart_str, force_unicode
from django.utils.safestring import mark_safe
from django.views.generic import date_based
-import datetime
-import time
import urllib
class FieldChoicePlugin(DatabrowsePlugin):
diff --git a/django/contrib/databrowse/views.py b/django/contrib/databrowse/views.py
index d493f9dad3..c17aad5d85 100644
--- a/django/contrib/databrowse/views.py
+++ b/django/contrib/databrowse/views.py
@@ -2,8 +2,6 @@ from django.db.models import FieldDoesNotExist, DateTimeField
from django.http import Http404
from django.shortcuts import render_to_response
from django.contrib.databrowse.datastructures import EasyModel, EasyChoice
-import datetime
-import time
###########
# CHOICES #
diff --git a/django/contrib/formtools/preview.py b/django/contrib/formtools/preview.py
index bd0ce5cbb7..66583dde95 100644
--- a/django/contrib/formtools/preview.py
+++ b/django/contrib/formtools/preview.py
@@ -3,7 +3,6 @@ Formtools Preview application.
"""
from django.conf import settings
-from django.core.exceptions import ImproperlyConfigured
from django.http import Http404
from django.shortcuts import render_to_response
from django.template.context import RequestContext
diff --git a/django/contrib/formtools/tests.py b/django/contrib/formtools/tests.py
index a5a9222c46..feda6e041e 100644
--- a/django/contrib/formtools/tests.py
+++ b/django/contrib/formtools/tests.py
@@ -3,8 +3,6 @@ from django.contrib.formtools import preview
from django import http
from django.conf import settings
from django.test import TestCase
-from django.test.client import Client
-
success_string = "Done was called!"
test_data = {'field1': u'foo',
@@ -88,6 +86,3 @@ class PreviewTests(TestCase):
response = self.client.post('/test1/', test_data)
self.assertEqual(response.content, success_string)
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/django/contrib/humanize/templatetags/humanize.py b/django/contrib/humanize/templatetags/humanize.py
index 4aa5a32e3f..05d322363b 100644
--- a/django/contrib/humanize/templatetags/humanize.py
+++ b/django/contrib/humanize/templatetags/humanize.py
@@ -2,8 +2,7 @@ from django.utils.translation import ungettext, ugettext as _
from django.utils.encoding import force_unicode
from django import template
from django.template import defaultfilters
-from django.conf import settings
-from datetime import date, timedelta
+from datetime import date
import re
register = template.Library()
diff --git a/django/contrib/localflavor/ar/forms.py b/django/contrib/localflavor/ar/forms.py
index 7827698e77..b23923b47a 100644
--- a/django/contrib/localflavor/ar/forms.py
+++ b/django/contrib/localflavor/ar/forms.py
@@ -7,7 +7,6 @@ from django.newforms import ValidationError
from django.newforms.fields import RegexField, CharField, Select, EMPTY_VALUES
from django.utils.encoding import smart_unicode
from django.utils.translation import ugettext
-import re
class ARProvinceSelect(Select):
"""
diff --git a/django/contrib/localflavor/generic/forms.py b/django/contrib/localflavor/generic/forms.py
index a6d813723c..a5e431e4b3 100644
--- a/django/contrib/localflavor/generic/forms.py
+++ b/django/contrib/localflavor/generic/forms.py
@@ -1,38 +1,38 @@
-from django import newforms as forms
-
-DEFAULT_DATE_INPUT_FORMATS = (
- '%Y-%m-%d', '%d/%m/%Y', '%d/%m/%y', # '2006-10-25', '25/10/2006', '25/10/06'
- '%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006'
- '%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006'
- '%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006'
- '%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006'
-)
-
-DEFAULT_DATETIME_INPUT_FORMATS = (
- '%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
- '%Y-%m-%d %H:%M', # '2006-10-25 14:30'
- '%Y-%m-%d', # '2006-10-25'
- '%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
- '%d/%m/%Y %H:%M', # '25/10/2006 14:30'
- '%d/%m/%Y', # '25/10/2006'
- '%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59'
- '%d/%m/%y %H:%M', # '25/10/06 14:30'
- '%d/%m/%y', # '25/10/06'
-)
-
-class DateField(forms.DateField):
- """
- A date input field which uses non-US date input formats by default.
- """
- def __init__(self, input_formats=None, *args, **kwargs):
- input_formats = input_formats or DEFAULT_DATE_INPUT_FORMATS
- super(DateField, self).__init__(input_formats=input_formats, *args, **kwargs)
-
-class DateTimeField(forms.DateTimeField):
- """
- A date and time input field which uses non-US date and time input formats
- by default.
- """
- def __init__(self, input_formats=None, *args, **kwargs):
- input_formats = input_formats or DEFAULT_DATETIME_INPUT_FORMATS
- super(DateTimeField, self).__init__(input_formats=input_formats, *args, **kwargs)
+from django import newforms as forms
+
+DEFAULT_DATE_INPUT_FORMATS = (
+ '%Y-%m-%d', '%d/%m/%Y', '%d/%m/%y', # '2006-10-25', '25/10/2006', '25/10/06'
+ '%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006'
+ '%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006'
+ '%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006'
+ '%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006'
+)
+
+DEFAULT_DATETIME_INPUT_FORMATS = (
+ '%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
+ '%Y-%m-%d %H:%M', # '2006-10-25 14:30'
+ '%Y-%m-%d', # '2006-10-25'
+ '%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
+ '%d/%m/%Y %H:%M', # '25/10/2006 14:30'
+ '%d/%m/%Y', # '25/10/2006'
+ '%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59'
+ '%d/%m/%y %H:%M', # '25/10/06 14:30'
+ '%d/%m/%y', # '25/10/06'
+)
+
+class DateField(forms.DateField):
+ """
+ A date input field which uses non-US date input formats by default.
+ """
+ def __init__(self, input_formats=None, *args, **kwargs):
+ input_formats = input_formats or DEFAULT_DATE_INPUT_FORMATS
+ super(DateField, self).__init__(input_formats=input_formats, *args, **kwargs)
+
+class DateTimeField(forms.DateTimeField):
+ """
+ A date and time input field which uses non-US date and time input formats
+ by default.
+ """
+ def __init__(self, input_formats=None, *args, **kwargs):
+ input_formats = input_formats or DEFAULT_DATETIME_INPUT_FORMATS
+ super(DateTimeField, self).__init__(input_formats=input_formats, *args, **kwargs)
diff --git a/django/contrib/localflavor/jp/forms.py b/django/contrib/localflavor/jp/forms.py
index 13083aab6e..d726f822d7 100644
--- a/django/contrib/localflavor/jp/forms.py
+++ b/django/contrib/localflavor/jp/forms.py
@@ -7,8 +7,6 @@ from django.newforms import ValidationError
from django.utils.translation import ugettext
from django.newforms.fields import RegexField, Select
-import re
-
class JPPostalCodeField(RegexField):
"""
A form field that validates its input is a Japanese postcode.
diff --git a/django/contrib/sessions/models.py b/django/contrib/sessions/models.py
index dfa7bed226..4769e63b1b 100644
--- a/django/contrib/sessions/models.py
+++ b/django/contrib/sessions/models.py
@@ -1,10 +1,5 @@
-import os
-import sys
-import time
-import datetime
import base64
import md5
-import random
import cPickle as pickle
from django.db import models
diff --git a/django/contrib/webdesign/tests.py b/django/contrib/webdesign/tests.py
index da9237a43b..d155620902 100644
--- a/django/contrib/webdesign/tests.py
+++ b/django/contrib/webdesign/tests.py
@@ -14,7 +14,6 @@ u'lorem ipsum dolor'
"""
from django.contrib.webdesign.lorem_ipsum import *
-import datetime
if __name__ == '__main__':
import doctest
diff --git a/django/core/handlers/base.py b/django/core/handlers/base.py
index 7f68946f3d..a81bec322f 100644
--- a/django/core/handlers/base.py
+++ b/django/core/handlers/base.py
@@ -109,7 +109,8 @@ class BaseHandler(object):
except exceptions.PermissionDenied:
return http.HttpResponseForbidden('<h1>Permission denied</h1>')
except SystemExit:
- pass # See http://code.djangoproject.com/ticket/1023
+ # Allow sys.exit() to actually exit. See tickets #1023 and #4701
+ raise
except: # Handle everything else, including SuspiciousOperation, etc.
# Get the exception info now, in case another exception is thrown later.
exc_info = sys.exc_info()
diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py
index e95be6b8d7..dde9e6eb80 100644
--- a/django/core/management/commands/loaddata.py
+++ b/django/core/management/commands/loaddata.py
@@ -30,7 +30,8 @@ class Command(BaseCommand):
show_traceback = options.get('traceback', False)
# Keep a count of the installed objects and fixtures
- count = [0, 0]
+ fixture_count = 0
+ object_count = 0
models = set()
humanize = lambda dirname: dirname and "'%s'" % dirname or 'absolute path'
@@ -65,7 +66,12 @@ class Command(BaseCommand):
else:
print "Skipping fixture '%s': %s is not a known serialization format" % (fixture_name, format)
- for fixture_dir in app_fixtures + list(settings.FIXTURE_DIRS) + ['']:
+ if os.path.isabs(fixture_name):
+ fixture_dirs = [fixture_name]
+ else:
+ fixture_dirs = app_fixtures + list(settings.FIXTURE_DIRS) + ['']
+
+ for fixture_dir in fixture_dirs:
if verbosity > 1:
print "Checking %s for fixtures..." % humanize(fixture_dir)
@@ -86,14 +92,14 @@ class Command(BaseCommand):
transaction.leave_transaction_management()
return
else:
- count[1] += 1
+ fixture_count += 1
if verbosity > 0:
print "Installing %s fixture '%s' from %s." % \
(format, fixture_name, humanize(fixture_dir))
try:
objects = serializers.deserialize(format, fixture)
for obj in objects:
- count[0] += 1
+ object_count += 1
models.add(obj.object.__class__)
obj.save()
label_found = True
@@ -113,7 +119,7 @@ class Command(BaseCommand):
print "No %s fixture '%s' in %s." % \
(format, fixture_name, humanize(fixture_dir))
- if count[0] > 0:
+ if object_count > 0:
sequence_sql = connection.ops.sequence_reset_sql(self.style, models)
if sequence_sql:
if verbosity > 1:
@@ -124,9 +130,9 @@ class Command(BaseCommand):
transaction.commit()
transaction.leave_transaction_management()
- if count[0] == 0:
+ if object_count == 0:
if verbosity >= 2:
print "No fixtures found."
else:
if verbosity > 0:
- print "Installed %d object(s) from %d fixture(s)" % tuple(count)
+ print "Installed %d object(s) from %d fixture(s)" % (object_count, fixture_count)
diff --git a/django/core/management/commands/sqlall.py b/django/core/management/commands/sqlall.py
index d63dfb4b10..bf3c734bb6 100644
--- a/django/core/management/commands/sqlall.py
+++ b/django/core/management/commands/sqlall.py
@@ -1,7 +1,7 @@
from django.core.management.base import AppCommand
class Command(AppCommand):
- help = "Prints the CREATE TABLE, initial-data and CREATE INDEX SQL statements for the given model module name(s)."
+ help = "Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s)."
output_transaction = True
diff --git a/django/core/serializers/json.py b/django/core/serializers/json.py
index e17b821f52..20797c02f6 100644
--- a/django/core/serializers/json.py
+++ b/django/core/serializers/json.py
@@ -4,7 +4,6 @@ Serialize data to/from JSON
import datetime
from django.utils import simplejson
-from django.utils.simplejson import decoder
from django.core.serializers.python import Serializer as PythonSerializer
from django.core.serializers.python import Deserializer as PythonDeserializer
try:
diff --git a/django/core/serializers/pyyaml.py b/django/core/serializers/pyyaml.py
index 4c32a9686f..58cf59bed9 100644
--- a/django/core/serializers/pyyaml.py
+++ b/django/core/serializers/pyyaml.py
@@ -4,7 +4,6 @@ YAML serializer.
Requires PyYaml (http://pyyaml.org/), but that's checked for in __init__.
"""
-import datetime
from django.db import models
from django.core.serializers.python import Serializer as PythonSerializer
from django.core.serializers.python import Deserializer as PythonDeserializer
diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py
index ba3e9efda8..697dcd3a67 100644
--- a/django/db/backends/mysql/base.py
+++ b/django/db/backends/mysql/base.py
@@ -21,7 +21,6 @@ if (version < (1,2,1) or (version[:3] == (1, 2, 1) and
from MySQLdb.converters import conversions
from MySQLdb.constants import FIELD_TYPE
-import types
import re
# Raise exceptions for database warnings if DEBUG is on
diff --git a/django/db/backends/postgresql/operations.py b/django/db/backends/postgresql/operations.py
index 20392b238e..15ca957bac 100644
--- a/django/db/backends/postgresql/operations.py
+++ b/django/db/backends/postgresql/operations.py
@@ -27,6 +27,11 @@ class DatabaseOperations(BaseDatabaseOperations):
def deferrable_sql(self):
return " DEFERRABLE INITIALLY DEFERRED"
+ def field_cast_sql(self, db_type):
+ if db_type == 'inet':
+ return 'HOST(%s)'
+ return '%s'
+
def last_insert_id(self, cursor, table_name, pk_name):
cursor.execute("SELECT CURRVAL('\"%s_%s_seq\"')" % (table_name, pk_name))
return cursor.fetchone()[0]
diff --git a/django/db/models/base.py b/django/db/models/base.py
index 60bf021e4e..d96c93fb0d 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -41,7 +41,9 @@ class ModelBase(type):
# Build complete list of parents
for base in parents:
- if base is not Model:
+ # Things without _meta aren't functional models, so they're
+ # uninteresting parents.
+ if hasattr(base, '_meta'):
new_class._meta.parents.append(base)
new_class._meta.parents.extend(base._meta.parents)
@@ -133,13 +135,16 @@ class Model(object):
def __ne__(self, other):
return not self.__eq__(other)
+ def __hash__(self):
+ return hash(self._get_pk_val())
+
def __init__(self, *args, **kwargs):
dispatcher.send(signal=signals.pre_init, sender=self.__class__, args=args, kwargs=kwargs)
# There is a rather weird disparity here; if kwargs, it's set, then args
# overrides it. It should be one or the other; don't duplicate the work
# The reason for the kwargs check is that standard iterator passes in by
- # args, and nstantiation for iteration is 33% faster.
+ # args, and instantiation for iteration is 33% faster.
args_len = len(args)
if args_len > len(self._meta.fields):
# Daft, but matches old exception sans the err msg.
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 383000d0aa..d16bb9d15d 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -228,7 +228,11 @@ class Field(object):
value = int(value)
except ValueError:
raise ValueError("The __year lookup type requires an integer argument")
- return ['%s-01-01 00:00:00' % value, '%s-12-31 23:59:59.999999' % value]
+ if settings.DATABASE_ENGINE == 'sqlite3':
+ first = '%s-01-01'
+ else:
+ first = '%s-01-01 00:00:00'
+ return [first % value, '%s-12-31 23:59:59.999999' % value]
raise TypeError("Field has invalid lookup: %s" % lookup_type)
def has_default(self):
@@ -451,6 +455,9 @@ class BooleanField(Field):
kwargs['blank'] = True
Field.__init__(self, *args, **kwargs)
+ def get_internal_type(self):
+ return "BooleanField"
+
def to_python(self, value):
if value in (True, False): return value
if value in ('t', 'True', '1'): return True
@@ -469,6 +476,9 @@ class CharField(Field):
def get_manipulator_field_objs(self):
return [oldforms.TextField]
+ def get_internal_type(self):
+ return "CharField"
+
def to_python(self, value):
if isinstance(value, basestring):
return value
@@ -499,6 +509,9 @@ class DateField(Field):
kwargs['blank'] = True
Field.__init__(self, verbose_name, name, **kwargs)
+ def get_internal_type(self):
+ return "DateField"
+
def to_python(self, value):
if value is None:
return value
@@ -568,6 +581,9 @@ class DateField(Field):
return super(DateField, self).formfield(**defaults)
class DateTimeField(DateField):
+ def get_internal_type(self):
+ return "DateTimeField"
+
def to_python(self, value):
if value is None:
return value
@@ -638,6 +654,9 @@ class DecimalField(Field):
self.max_digits, self.decimal_places = max_digits, decimal_places
Field.__init__(self, verbose_name, name, **kwargs)
+ def get_internal_type(self):
+ return "DecimalField"
+
def to_python(self, value):
if value is None:
return value
@@ -697,9 +716,6 @@ class EmailField(CharField):
kwargs['max_length'] = kwargs.get('max_length', 75)
CharField.__init__(self, *args, **kwargs)
- def get_internal_type(self):
- return "CharField"
-
def get_manipulator_field_objs(self):
return [oldforms.EmailField]
@@ -717,6 +733,9 @@ class FileField(Field):
kwargs['max_length'] = kwargs.get('max_length', 100)
Field.__init__(self, verbose_name, name, **kwargs)
+ def get_internal_type(self):
+ return "FileField"
+
def get_db_prep_save(self, value):
"Returns field's value prepared for saving into a database."
# Need to convert UploadedFile objects provided via a form to unicode for database insertion
@@ -826,12 +845,18 @@ class FilePathField(Field):
def get_manipulator_field_objs(self):
return [curry(oldforms.FilePathField, path=self.path, match=self.match, recursive=self.recursive)]
+ def get_internal_type(self):
+ return "FilePathField"
+
class FloatField(Field):
empty_strings_allowed = False
def get_manipulator_field_objs(self):
return [oldforms.FloatField]
+ def get_internal_type(self):
+ return "FloatField"
+
def formfield(self, **kwargs):
defaults = {'form_class': forms.FloatField}
defaults.update(kwargs)
@@ -854,6 +879,9 @@ class ImageField(FileField):
if not self.height_field:
setattr(cls, 'get_%s_height' % self.name, curry(cls._get_FIELD_height, field=self))
+ def get_internal_type(self):
+ return "ImageField"
+
def save_file(self, new_data, new_object, original_object, change, rel, save=True):
FileField.save_file(self, new_data, new_object, original_object, change, rel, save)
# If the image has height and/or width field(s) and they haven't
@@ -876,6 +904,9 @@ class IntegerField(Field):
def get_manipulator_field_objs(self):
return [oldforms.IntegerField]
+ def get_internal_type(self):
+ return "IntegerField"
+
def formfield(self, **kwargs):
defaults = {'form_class': forms.IntegerField}
defaults.update(kwargs)
@@ -890,6 +921,9 @@ class IPAddressField(Field):
def get_manipulator_field_objs(self):
return [oldforms.IPAddressField]
+ def get_internal_type(self):
+ return "IPAddressField"
+
def validate(self, field_data, all_data):
validators.isValidIPAddress4(field_data, None)
@@ -904,6 +938,9 @@ class NullBooleanField(Field):
kwargs['null'] = True
Field.__init__(self, *args, **kwargs)
+ def get_internal_type(self):
+ return "NullBooleanField"
+
def to_python(self, value):
if value in (None, True, False): return value
if value in ('None'): return None
@@ -923,6 +960,9 @@ class PhoneNumberField(IntegerField):
def get_manipulator_field_objs(self):
return [oldforms.PhoneNumberField]
+ def get_internal_type(self):
+ return "PhoneNumberField"
+
def validate(self, field_data, all_data):
validators.isValidPhone(field_data, all_data)
@@ -936,6 +976,9 @@ class PositiveIntegerField(IntegerField):
def get_manipulator_field_objs(self):
return [oldforms.PositiveIntegerField]
+ def get_internal_type(self):
+ return "PositiveIntegerField"
+
def formfield(self, **kwargs):
defaults = {'min_value': 0}
defaults.update(kwargs)
@@ -945,6 +988,9 @@ class PositiveSmallIntegerField(IntegerField):
def get_manipulator_field_objs(self):
return [oldforms.PositiveSmallIntegerField]
+ def get_internal_type(self):
+ return "PositiveSmallIntegerField"
+
def formfield(self, **kwargs):
defaults = {'min_value': 0}
defaults.update(kwargs)
@@ -959,14 +1005,23 @@ class SlugField(CharField):
kwargs['db_index'] = True
super(SlugField, self).__init__(*args, **kwargs)
+ def get_internal_type(self):
+ return "SlugField"
+
class SmallIntegerField(IntegerField):
def get_manipulator_field_objs(self):
return [oldforms.SmallIntegerField]
+ def get_internal_type(self):
+ return "SmallIntegerField"
+
class TextField(Field):
def get_manipulator_field_objs(self):
return [oldforms.LargeTextField]
+ def get_internal_type(self):
+ return "TextField"
+
def formfield(self, **kwargs):
defaults = {'widget': forms.Textarea}
defaults.update(kwargs)
@@ -980,6 +1035,9 @@ class TimeField(Field):
kwargs['editable'] = False
Field.__init__(self, verbose_name, name, **kwargs)
+ def get_internal_type(self):
+ return "TimeField"
+
def get_db_prep_lookup(self, lookup_type, value):
if settings.DATABASE_ENGINE == 'oracle':
# Oracle requires a date in order to parse.
@@ -1044,9 +1102,6 @@ class URLField(CharField):
def get_manipulator_field_objs(self):
return [oldforms.URLField]
- def get_internal_type(self):
- return "CharField"
-
def formfield(self, **kwargs):
defaults = {'form_class': forms.URLField, 'verify_exists': self.verify_exists}
defaults.update(kwargs)
@@ -1056,6 +1111,9 @@ class USStateField(Field):
def get_manipulator_field_objs(self):
return [oldforms.USStateField]
+ def get_internal_type(self):
+ return "USStateField"
+
def formfield(self, **kwargs):
from django.contrib.localflavor.us.forms import USStateSelect
defaults = {'widget': USStateSelect}
@@ -1067,9 +1125,6 @@ class XMLField(TextField):
self.schema_path = schema_path
Field.__init__(self, verbose_name, name, **kwargs)
- def get_internal_type(self):
- return "TextField"
-
def get_manipulator_field_objs(self):
return [curry(oldforms.XMLLargeTextField, schema_path=self.schema_path)]
@@ -1080,8 +1135,5 @@ class OrderingField(IntegerField):
kwargs['null'] = True
IntegerField.__init__(self, **kwargs )
- def get_internal_type(self):
- return "IntegerField"
-
def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True):
return [oldforms.HiddenField(name_prefix + self.name)]
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index 2ccf1e3dd0..ab23fee210 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -23,26 +23,64 @@ RECURSIVE_RELATIONSHIP_CONSTANT = 'self'
pending_lookups = {}
-def add_lookup(rel_cls, field):
- name = field.rel.to
- module = rel_cls.__module__
- key = (module, name)
- # Has the model already been loaded?
- # If so, resolve the string reference right away
- model = get_model(rel_cls._meta.app_label, field.rel.to, False)
+def add_lazy_relation(cls, field, relation):
+ """
+ Adds a lookup on ``cls`` when a related field is defined using a string,
+ i.e.::
+
+ class MyModel(Model):
+ fk = ForeignKey("AnotherModel")
+
+ This string can be:
+
+ * RECURSIVE_RELATIONSHIP_CONSTANT (i.e. "self") to indicate a recursive
+ relation.
+
+ * The name of a model (i.e "AnotherModel") to indicate another model in
+ the same app.
+
+ * An app-label and model name (i.e. "someapp.AnotherModel") to indicate
+ another model in a different app.
+
+ If the other model hasn't yet been loaded -- almost a given if you're using
+ lazy relationships -- then the relation won't be set up until the
+ class_prepared signal fires at the end of model initialization.
+ """
+ # Check for recursive relations
+ if relation == RECURSIVE_RELATIONSHIP_CONSTANT:
+ app_label = cls._meta.app_label
+ model_name = cls.__name__
+
+ else:
+ # Look for an "app.Model" relation
+ try:
+ app_label, model_name = relation.split(".")
+ except ValueError:
+ # If we can't split, assume a model in current app
+ app_label = cls._meta.app_label
+ model_name = relation
+
+ # Try to look up the related model, and if it's already loaded resolve the
+ # string right away. If get_model returns None, it means that the related
+ # model isn't loaded yet, so we need to pend the relation until the class
+ # is prepared.
+ model = get_model(app_label, model_name, False)
if model:
field.rel.to = model
- field.do_related_class(model, rel_cls)
+ field.do_related_class(model, cls)
else:
- # Mark the related field for later lookup
- pending_lookups.setdefault(key, []).append((rel_cls, field))
-
+ key = (app_label, model_name)
+ value = (cls, field)
+ pending_lookups.setdefault(key, []).append(value)
+
def do_pending_lookups(sender):
- other_cls = sender
- key = (other_cls.__module__, other_cls.__name__)
- for rel_cls, field in pending_lookups.setdefault(key, []):
- field.rel.to = other_cls
- field.do_related_class(other_cls, rel_cls)
+ """
+ Handle any pending relations to the sending model. Sent from class_prepared.
+ """
+ key = (sender._meta.app_label, sender.__name__)
+ for cls, field in pending_lookups.pop(key, []):
+ field.rel.to = sender
+ field.do_related_class(sender, cls)
dispatcher.connect(do_pending_lookups, signal=signals.class_prepared)
@@ -66,9 +104,7 @@ class RelatedField(object):
sup.contribute_to_class(cls, name)
other = self.rel.to
if isinstance(other, basestring):
- if other == RECURSIVE_RELATIONSHIP_CONSTANT:
- self.rel.to = cls.__name__
- add_lookup(cls, self)
+ add_lazy_relation(cls, self, other)
else:
self.do_related_class(other, cls)
diff --git a/django/http/__init__.py b/django/http/__init__.py
index 69e9d51204..7a85e20515 100644
--- a/django/http/__init__.py
+++ b/django/http/__init__.py
@@ -171,7 +171,7 @@ class QueryDict(MultiValueDict):
dict.__setitem__(result, key, value)
return result
- def __deepcopy__(self, memo={}):
+ def __deepcopy__(self, memo):
import copy
result = self.__class__('', mutable=True)
memo[id(self)] = result
@@ -223,7 +223,7 @@ class QueryDict(MultiValueDict):
def copy(self):
"Returns a mutable copy of this object."
- return self.__deepcopy__()
+ return self.__deepcopy__({})
def urlencode(self):
output = []
diff --git a/django/newforms/forms.py b/django/newforms/forms.py
index 04bf62e445..b4ac80c5aa 100644
--- a/django/newforms/forms.py
+++ b/django/newforms/forms.py
@@ -22,23 +22,40 @@ def pretty_name(name):
name = name[0].upper() + name[1:]
return name.replace('_', ' ')
-class DeclarativeFieldsMetaclass(type):
+def get_declared_fields(bases, attrs, with_base_fields=True):
"""
- Metaclass that converts Field attributes to a dictionary called
- 'base_fields', taking into account parent class 'base_fields' as well.
+ Create a list of form field instances from the passed in 'attrs', plus any
+ similar fields on the base classes (in 'bases'). This is used by both the
+ Form and ModelForm metclasses.
+
+ If 'with_base_fields' is True, all fields from the bases are used.
+ Otherwise, only fields in the 'declared_fields' attribute on the bases are
+ used. The distinction is useful in ModelForm subclassing.
"""
- def __new__(cls, name, bases, attrs):
- fields = [(field_name, attrs.pop(field_name)) for field_name, obj in attrs.items() if isinstance(obj, Field)]
- fields.sort(lambda x, y: cmp(x[1].creation_counter, y[1].creation_counter))
+ fields = [(field_name, attrs.pop(field_name)) for field_name, obj in attrs.items() if isinstance(obj, Field)]
+ fields.sort(lambda x, y: cmp(x[1].creation_counter, y[1].creation_counter))
- # If this class is subclassing another Form, add that Form's fields.
- # Note that we loop over the bases in *reverse*. This is necessary in
- # order to preserve the correct order of fields.
+ # If this class is subclassing another Form, add that Form's fields.
+ # Note that we loop over the bases in *reverse*. This is necessary in
+ # order to preserve the correct order of fields.
+ if with_base_fields:
for base in bases[::-1]:
if hasattr(base, 'base_fields'):
fields = base.base_fields.items() + fields
+ else:
+ for base in bases[::-1]:
+ if hasattr(base, 'declared_fields'):
+ fields = base.declared_fields.items() + fields
+
+ return SortedDict(fields)
- attrs['base_fields'] = SortedDict(fields)
+class DeclarativeFieldsMetaclass(type):
+ """
+ Metaclass that converts Field attributes to a dictionary called
+ 'base_fields', taking into account parent class 'base_fields' as well.
+ """
+ def __new__(cls, name, bases, attrs):
+ attrs['base_fields'] = get_declared_fields(bases, attrs)
return type.__new__(cls, name, bases, attrs)
class BaseForm(StrAndUnicode):
diff --git a/django/newforms/models.py b/django/newforms/models.py
index 0ee911a82f..f3809dc370 100644
--- a/django/newforms/models.py
+++ b/django/newforms/models.py
@@ -11,7 +11,7 @@ from django.utils.datastructures import SortedDict
from django.core.exceptions import ImproperlyConfigured
from util import ValidationError, ErrorList
-from forms import BaseForm
+from forms import BaseForm, get_declared_fields
from fields import Field, ChoiceField, EMPTY_VALUES
from widgets import Select, SelectMultiple, MultipleHiddenInput
@@ -211,57 +211,39 @@ class ModelFormOptions(object):
self.fields = getattr(options, 'fields', None)
self.exclude = getattr(options, 'exclude', None)
+
class ModelFormMetaclass(type):
def __new__(cls, name, bases, attrs,
formfield_callback=lambda f: f.formfield()):
- fields = [(field_name, attrs.pop(field_name)) for field_name, obj in attrs.items() if isinstance(obj, Field)]
- fields.sort(lambda x, y: cmp(x[1].creation_counter, y[1].creation_counter))
-
- # If this class is subclassing another Form, add that Form's fields.
- # Note that we loop over the bases in *reverse*. This is necessary in
- # order to preserve the correct order of fields.
- for base in bases[::-1]:
- if hasattr(base, 'base_fields'):
- fields = base.base_fields.items() + fields
- declared_fields = SortedDict(fields)
-
- opts = ModelFormOptions(attrs.get('Meta', None))
- attrs['_meta'] = opts
-
- # Don't allow more than one Meta model definition in bases. The fields
- # would be generated correctly, but the save method won't deal with
- # more than one object.
- base_models = []
- for base in bases:
- base_opts = getattr(base, '_meta', None)
- base_model = getattr(base_opts, 'model', None)
- if base_model is not None:
- base_models.append(base_model)
- if len(base_models) > 1:
- raise ImproperlyConfigured("%s's base classes define more than one model." % name)
+ try:
+ parents = [b for b in bases if issubclass(b, ModelForm)]
+ except NameError:
+ # We are defining ModelForm itself.
+ parents = None
+ if not parents:
+ return super(ModelFormMetaclass, cls).__new__(cls, name, bases,
+ attrs)
- # If a model is defined, extract form fields from it and add them to base_fields
- if attrs['_meta'].model is not None:
- # Don't allow a subclass to define a different Meta model than a
- # parent class has. Technically the right fields would be generated,
- # but the save method will not deal with more than one model.
- for base in bases:
- base_opts = getattr(base, '_meta', None)
- base_model = getattr(base_opts, 'model', None)
- if base_model and base_model is not opts.model:
- raise ImproperlyConfigured('%s defines a different model than its parent.' % name)
- model_fields = fields_for_model(opts.model, opts.fields,
- opts.exclude, formfield_callback)
- # fields declared in base classes override fields from the model
- model_fields.update(declared_fields)
- attrs['base_fields'] = model_fields
+ new_class = type.__new__(cls, name, bases, attrs)
+ declared_fields = get_declared_fields(bases, attrs, False)
+ opts = new_class._meta = ModelFormOptions(getattr(new_class, 'Meta', None))
+ if opts.model:
+ # If a model is defined, extract form fields from it.
+ fields = fields_for_model(opts.model, opts.fields,
+ opts.exclude, formfield_callback)
+ # Override default model fields with any custom declared ones
+ # (plus, include all the other declared fields).
+ fields.update(declared_fields)
else:
- attrs['base_fields'] = declared_fields
- return type.__new__(cls, name, bases, attrs)
+ fields = declared_fields
+ new_class.declared_fields = declared_fields
+ new_class.base_fields = fields
+ return new_class
class BaseModelForm(BaseForm):
def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
- initial=None, error_class=ErrorList, label_suffix=':', instance=None):
+ initial=None, error_class=ErrorList, label_suffix=':',
+ instance=None):
opts = self._meta
if instance is None:
# if we didn't get an instance, instantiate a new one
@@ -277,7 +259,8 @@ class BaseModelForm(BaseForm):
def save(self, commit=True):
"""
- Saves this ``form``'s cleaned_data into model instance ``self.instance``.
+ Saves this ``form``'s cleaned_data into model instance
+ ``self.instance``.
If commit=True, then the changes to ``instance`` will be saved to the
database. Returns ``instance``.
diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py
index d3400baac8..8e5bcf5bd8 100644
--- a/django/template/defaultfilters.py
+++ b/django/template/defaultfilters.py
@@ -2,6 +2,10 @@
import re
import random as random_module
+try:
+ from functools import wraps
+except ImportError:
+ from django.utils.functional import wraps # Python 2.3, 2.4 fallback.
from django.template import Variable, Library
from django.conf import settings
@@ -35,7 +39,7 @@ def stringfilter(func):
for attr in ('is_safe', 'needs_autoescape'):
if hasattr(func, attr):
setattr(_dec, attr, getattr(func, attr))
- return _dec
+ return wraps(func)(_dec)
###################
# STRINGS #
diff --git a/django/test/_doctest.py b/django/test/_doctest.py
index d1308b855e..a56483c3ab 100644
--- a/django/test/_doctest.py
+++ b/django/test/_doctest.py
@@ -100,7 +100,7 @@ __all__ = [
import __future__
-import sys, traceback, inspect, linecache, os, re, types
+import sys, traceback, inspect, linecache, os, re
import unittest, difflib, pdb, tempfile
import warnings
from StringIO import StringIO
diff --git a/django/test/client.py b/django/test/client.py
index b02d298418..67d3aa9030 100644
--- a/django/test/client.py
+++ b/django/test/client.py
@@ -1,7 +1,5 @@
-import datetime
import sys
from cStringIO import StringIO
-from urlparse import urlparse
from django.conf import settings
from django.contrib.auth import authenticate, login
from django.core.handlers.base import BaseHandler
diff --git a/django/test/simple.py b/django/test/simple.py
index 6fa381ac4d..43e1156a0a 100644
--- a/django/test/simple.py
+++ b/django/test/simple.py
@@ -146,4 +146,3 @@ def run_tests(test_labels, verbosity=1, interactive=True, extra_tests=[]):
teardown_test_environment()
return len(result.failures) + len(result.errors)
- \ No newline at end of file
diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py
index 82d914000f..4c278c0d8e 100644
--- a/django/utils/datastructures.py
+++ b/django/utils/datastructures.py
@@ -3,7 +3,7 @@ class MergeDict(object):
A simple class for creating new "virtual" dictionaries that actually look
up values in more than one dictionary, passed in the constructor.
- If a key appears in more than one of the passed in dictionaries, only the
+ If a key appears in more than one of the given dictionaries, only the
first occurrence will be used.
"""
def __init__(self, *dicts):
@@ -145,7 +145,7 @@ class SortedDict(dict):
"""Returns a copy of this object."""
# This way of initializing the copy means it works for subclasses, too.
obj = self.__class__(self)
- obj.keyOrder = self.keyOrder
+ obj.keyOrder = self.keyOrder[:]
return obj
def __repr__(self):
@@ -155,6 +155,10 @@ class SortedDict(dict):
"""
return '{%s}' % ', '.join(['%r: %r' % (k, v) for k, v in self.items()])
+ def clear(self):
+ super(SortedDict, self).clear()
+ self.keyOrder = []
+
class MultiValueDictKeyError(KeyError):
pass
diff --git a/django/utils/decorators.py b/django/utils/decorators.py
index 57ce29fca4..27a080e740 100644
--- a/django/utils/decorators.py
+++ b/django/utils/decorators.py
@@ -1,6 +1,10 @@
"Functions that help with dynamically creating decorators for views."
import types
+try:
+ from functools import wraps
+except ImportError:
+ from django.utils.functional import wraps # Python 2.3, 2.4 fallback.
def decorator_from_middleware(middleware_class):
"""
@@ -53,5 +57,5 @@ def decorator_from_middleware(middleware_class):
if result is not None:
return result
return response
- return _wrapped_view
+ return wraps(view_func)(_wrapped_view)
return _decorator_from_middleware
diff --git a/django/utils/functional.py b/django/utils/functional.py
index e0c862b0b7..3de693e18c 100644
--- a/django/utils/functional.py
+++ b/django/utils/functional.py
@@ -1,8 +1,120 @@
+# License for code in this file that was taken from Python 2.5.
+
+# PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+# --------------------------------------------
+#
+# 1. This LICENSE AGREEMENT is between the Python Software Foundation
+# ("PSF"), and the Individual or Organization ("Licensee") accessing and
+# otherwise using this software ("Python") in source or binary form and
+# its associated documentation.
+#
+# 2. Subject to the terms and conditions of this License Agreement, PSF
+# hereby grants Licensee a nonexclusive, royalty-free, world-wide
+# license to reproduce, analyze, test, perform and/or display publicly,
+# prepare derivative works, distribute, and otherwise use Python
+# alone or in any derivative version, provided, however, that PSF's
+# License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
+# 2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software Foundation;
+# All Rights Reserved" are retained in Python alone or in any derivative
+# version prepared by Licensee.
+#
+# 3. In the event Licensee prepares a derivative work that is based on
+# or incorporates Python or any part thereof, and wants to make
+# the derivative work available to others as provided herein, then
+# Licensee hereby agrees to include in any such work a brief summary of
+# the changes made to Python.
+#
+# 4. PSF is making Python available to Licensee on an "AS IS"
+# basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+# IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+# DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+# FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+# INFRINGE ANY THIRD PARTY RIGHTS.
+#
+# 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+# FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+# A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+# OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+#
+# 6. This License Agreement will automatically terminate upon a material
+# breach of its terms and conditions.
+#
+# 7. Nothing in this License Agreement shall be deemed to create any
+# relationship of agency, partnership, or joint venture between PSF and
+# Licensee. This License Agreement does not grant permission to use PSF
+# trademarks or trade name in a trademark sense to endorse or promote
+# products or services of Licensee, or any third party.
+#
+# 8. By copying, installing or otherwise using Python, Licensee
+# agrees to be bound by the terms and conditions of this License
+# Agreement.
+
+
def curry(_curried_func, *args, **kwargs):
def _curried(*moreargs, **morekwargs):
return _curried_func(*(args+moreargs), **dict(kwargs, **morekwargs))
return _curried
+### Begin from Python 2.5 functools.py ########################################
+
+# Summary of changes made to the Python 2.5 code below:
+# * swapped ``partial`` for ``curry`` to maintain backwards-compatibility
+# in Django.
+# * Wrapped the ``setattr`` call in ``update_wrapper`` with a try-except
+# block to make it compatible with Python 2.3, which doesn't allow
+# assigning to ``__name__``.
+
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software Foundation.
+# All Rights Reserved.
+
+###############################################################################
+
+# update_wrapper() and wraps() are tools to help write
+# wrapper functions that can handle naive introspection
+
+WRAPPER_ASSIGNMENTS = ('__module__', '__name__', '__doc__')
+WRAPPER_UPDATES = ('__dict__',)
+def update_wrapper(wrapper,
+ wrapped,
+ assigned = WRAPPER_ASSIGNMENTS,
+ updated = WRAPPER_UPDATES):
+ """Update a wrapper function to look like the wrapped function
+
+ wrapper is the function to be updated
+ wrapped is the original function
+ assigned is a tuple naming the attributes assigned directly
+ from the wrapped function to the wrapper function (defaults to
+ functools.WRAPPER_ASSIGNMENTS)
+ updated is a tuple naming the attributes off the wrapper that
+ are updated with the corresponding attribute from the wrapped
+ function (defaults to functools.WRAPPER_UPDATES)
+ """
+ for attr in assigned:
+ try:
+ setattr(wrapper, attr, getattr(wrapped, attr))
+ except TypeError: # Python 2.3 doesn't allow assigning to __name__.
+ pass
+ for attr in updated:
+ getattr(wrapper, attr).update(getattr(wrapped, attr))
+ # Return the wrapper so this can be used as a decorator via curry()
+ return wrapper
+
+def wraps(wrapped,
+ assigned = WRAPPER_ASSIGNMENTS,
+ updated = WRAPPER_UPDATES):
+ """Decorator factory to apply update_wrapper() to a wrapper function
+
+ Returns a decorator that invokes update_wrapper() with the decorated
+ function as the wrapper argument and the arguments to wraps() as the
+ remaining arguments. Default arguments are as for update_wrapper().
+ This is a convenience function to simplify applying curry() to
+ update_wrapper().
+ """
+ return curry(update_wrapper, wrapped=wrapped,
+ assigned=assigned, updated=updated)
+
+### End from Python 2.5 functools.py ##########################################
+
def memoize(func, cache, num_args):
"""
Wrap a function so that results for any argument tuple are stored in
@@ -18,7 +130,7 @@ def memoize(func, cache, num_args):
result = func(*args)
cache[mem_args] = result
return result
- return wrapper
+ return wraps(func)(wrapper)
class Promise(object):
"""
@@ -110,7 +222,7 @@ def lazy(func, *resultclasses):
# Creates the proxy object, instead of the actual value.
return __proxy__(args, kw)
- return __wrapper__
+ return wraps(func)(__wrapper__)
def allow_lazy(func, *resultclasses):
"""
@@ -126,4 +238,4 @@ def allow_lazy(func, *resultclasses):
else:
return func(*args, **kwargs)
return lazy(func, *resultclasses)(*args, **kwargs)
- return wrapper
+ return wraps(func)(wrapper)
diff --git a/django/views/decorators/cache.py b/django/views/decorators/cache.py
index b04cc2340b..8b620c1345 100644
--- a/django/views/decorators/cache.py
+++ b/django/views/decorators/cache.py
@@ -11,6 +11,11 @@ Additionally, all headers from the response's Vary header will be taken into
account on caching -- just like the middleware does.
"""
+try:
+ from functools import wraps
+except ImportError:
+ from django.utils.functional import wraps # Python 2.3, 2.4 fallback.
+
from django.utils.decorators import decorator_from_middleware
from django.utils.cache import patch_cache_control, add_never_cache_headers
from django.middleware.cache import CacheMiddleware
@@ -26,7 +31,7 @@ def cache_control(**kwargs):
patch_cache_control(response, **kwargs)
return response
- return _cache_controlled
+ return wraps(viewfunc)(_cache_controlled)
return _cache_controller
@@ -39,4 +44,4 @@ def never_cache(view_func):
response = view_func(request, *args, **kwargs)
add_never_cache_headers(response)
return response
- return _wrapped_view_func
+ return wraps(view_func)(_wrapped_view_func)
diff --git a/django/views/decorators/http.py b/django/views/decorators/http.py
index 9feb8c0d84..dd4f90ea9c 100644
--- a/django/views/decorators/http.py
+++ b/django/views/decorators/http.py
@@ -2,6 +2,11 @@
Decorators for views based on HTTP headers.
"""
+try:
+ from functools import wraps
+except ImportError:
+ from django.utils.functional import wraps # Python 2.3, 2.4 fallback.
+
from django.utils.decorators import decorator_from_middleware
from django.middleware.http import ConditionalGetMiddleware
from django.http import HttpResponseNotAllowed
@@ -24,7 +29,7 @@ def require_http_methods(request_method_list):
if request.method not in request_method_list:
return HttpResponseNotAllowed(request_method_list)
return func(request, *args, **kwargs)
- return inner
+ return wraps(func)(inner)
return decorator
require_GET = require_http_methods(["GET"])
diff --git a/django/views/decorators/vary.py b/django/views/decorators/vary.py
index 9b49c45cf2..ea1b8d307d 100644
--- a/django/views/decorators/vary.py
+++ b/django/views/decorators/vary.py
@@ -1,3 +1,8 @@
+try:
+ from functools import wraps
+except ImportError:
+ from django.utils.functional import wraps # Python 2.3, 2.4 fallback.
+
from django.utils.cache import patch_vary_headers
def vary_on_headers(*headers):
@@ -16,7 +21,7 @@ def vary_on_headers(*headers):
response = func(*args, **kwargs)
patch_vary_headers(response, headers)
return response
- return inner_func
+ return wraps(func)(inner_func)
return decorator
def vary_on_cookie(func):
@@ -32,4 +37,4 @@ def vary_on_cookie(func):
response = func(*args, **kwargs)
patch_vary_headers(response, ('Cookie',))
return response
- return inner_func
+ return wraps(func)(inner_func)