From aef8a8305d2190b00386b8b1603deb03a2949f5b Mon Sep 17 00:00:00 2001 From: Justin Bronn Date: Thu, 26 Jun 2008 15:11:55 +0000 Subject: [PATCH] gis: Merged revisions 7643-7662,7667-7668,7672-7682,7686-7693,7695-7698,7700-7702,7704-7706,7710,7712-7729,7731-7732,7738-7758,7760-7766 via svnmerge from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@7768 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 3 + LICENSE | 2 +- django/bin/profiling/gather_profile_stats.py | 2 + django/conf/global_settings.py | 2 + django/conf/locale/ca/LC_MESSAGES/django.mo | Bin 67276 -> 67353 bytes django/conf/locale/ca/LC_MESSAGES/django.po | 316 +- django/conf/locale/de/LC_MESSAGES/django.mo | Bin 48100 -> 52607 bytes django/conf/locale/de/LC_MESSAGES/django.po | 1096 ++--- django/conf/locale/de/LC_MESSAGES/djangojs.mo | Bin 1556 -> 1571 bytes django/conf/locale/de/LC_MESSAGES/djangojs.po | 123 +- django/conf/locale/es/LC_MESSAGES/django.mo | Bin 62977 -> 63019 bytes django/conf/locale/es/LC_MESSAGES/django.po | 259 +- django/conf/locale/et/LC_MESSAGES/django.mo | Bin 0 -> 62632 bytes django/conf/locale/et/LC_MESSAGES/django.po | 4340 +++++++++++++++++ django/conf/locale/et/LC_MESSAGES/djangojs.mo | Bin 0 -> 1636 bytes django/conf/locale/et/LC_MESSAGES/djangojs.po | 115 + django/conf/locale/he/LC_MESSAGES/django.mo | Bin 62501 -> 62444 bytes django/conf/locale/he/LC_MESSAGES/django.po | 1447 ++++-- django/conf/locale/hr/LC_MESSAGES/django.mo | Bin 31812 -> 65301 bytes django/conf/locale/hr/LC_MESSAGES/django.po | 1235 ++--- django/conf/locale/hr/LC_MESSAGES/djangojs.mo | Bin 1605 -> 1605 bytes django/conf/locale/hr/LC_MESSAGES/djangojs.po | 2 +- django/conf/locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 44186 bytes django/conf/locale/lt/LC_MESSAGES/django.po | 2868 +++++++++++ django/conf/locale/lt/LC_MESSAGES/djangojs.mo | Bin 0 -> 1667 bytes django/conf/locale/lt/LC_MESSAGES/djangojs.po | 116 + django/conf/locale/pl/LC_MESSAGES/django.mo | Bin 66404 -> 66481 bytes django/conf/locale/pl/LC_MESSAGES/django.po | 226 +- django/contrib/auth/views.py | 23 +- django/contrib/flatpages/models.py | 3 +- django/contrib/formtools/tests.py | 4 + django/contrib/formtools/wizard.py | 2 +- django/contrib/localflavor/ar/forms.py | 12 +- django/contrib/localflavor/au/forms.py | 4 +- django/contrib/localflavor/br/forms.py | 2 +- django/contrib/localflavor/ca/forms.py | 6 +- django/contrib/localflavor/ch/forms.py | 6 +- django/contrib/localflavor/cl/forms.py | 8 +- django/contrib/localflavor/de/forms.py | 6 +- django/contrib/localflavor/es/forms.py | 2 +- django/contrib/localflavor/fi/forms.py | 6 +- django/contrib/localflavor/fr/forms.py | 4 +- django/contrib/localflavor/is_/forms.py | 6 +- django/contrib/localflavor/it/forms.py | 10 +- django/contrib/localflavor/jp/forms.py | 4 +- django/contrib/localflavor/nl/forms.py | 2 +- django/contrib/localflavor/no/forms.py | 6 +- django/contrib/localflavor/pe/forms.py | 10 +- django/contrib/localflavor/pl/forms.py | 2 +- django/contrib/localflavor/sk/forms.py | 4 +- django/contrib/localflavor/uk/forms.py | 4 +- django/contrib/localflavor/uk/uk_regions.py | 2 +- django/contrib/localflavor/us/forms.py | 6 +- django/contrib/redirects/models.py | 1 + django/contrib/sessions/backends/base.py | 30 +- django/contrib/sessions/backends/cache.py | 3 +- django/contrib/sessions/backends/db.py | 6 +- django/contrib/sessions/backends/file.py | 16 +- django/contrib/sessions/middleware.py | 2 +- django/contrib/sessions/models.py | 9 +- django/contrib/sessions/tests.py | 60 + django/contrib/sites/management.py | 1 + django/contrib/sites/models.py | 9 + django/contrib/sites/tests.py | 13 + django/core/management/commands/loaddata.py | 7 +- django/core/management/commands/sql.py | 2 +- django/core/management/commands/sqlall.py | 2 +- django/core/management/commands/sqlclear.py | 2 +- django/core/management/commands/sqlcustom.py | 2 +- django/core/management/commands/sqlflush.py | 2 +- django/core/management/commands/sqlindexes.py | 2 +- django/core/management/commands/sqlreset.py | 2 +- .../management/commands/sqlsequencereset.py | 2 +- django/core/management/commands/startapp.py | 13 +- .../core/management/commands/startproject.py | 12 +- django/core/management/commands/syncdb.py | 10 +- django/core/servers/basehttp.py | 2 +- django/core/urlresolvers.py | 2 +- django/db/backends/__init__.py | 10 +- django/db/backends/mysql/base.py | 1 + django/db/backends/mysql_old/base.py | 1 + django/db/backends/oracle/base.py | 4 +- django/db/backends/oracle/creation.py | 12 +- django/db/models/base.py | 19 +- django/db/models/fields/__init__.py | 36 +- django/db/models/fields/related.py | 9 +- django/db/models/loading.py | 14 +- django/db/models/options.py | 11 +- django/db/models/query.py | 144 +- django/db/models/sql/query.py | 72 +- django/db/models/sql/subqueries.py | 8 +- django/middleware/common.py | 2 +- django/newforms/fields.py | 1 - django/newforms/models.py | 25 +- django/newforms/widgets.py | 16 +- django/template/defaulttags.py | 24 +- django/template/loader_tags.py | 16 +- django/templatetags/cache.py | 25 +- django/utils/cache.py | 2 +- django/utils/datastructures.py | 31 + django/utils/html.py | 52 +- django/views/defaults.py | 3 +- docs/cache.txt | 11 + docs/contributing.txt | 102 +- docs/db-api.txt | 10 +- docs/django-admin.txt | 23 +- docs/form_preview.txt | 6 +- docs/model-api.txt | 38 +- docs/modelforms.txt | 7 + docs/newforms.txt | 14 + docs/sessions.txt | 4 +- docs/settings.txt | 14 +- docs/templates.txt | 4 +- docs/templates_python.txt | 7 +- docs/tutorial01.txt | 4 +- extras/django_bash_completion | 12 +- setup.py | 4 +- tests/modeltests/delete/__init__.py | 1 + tests/modeltests/delete/models.py | 179 + tests/modeltests/model_inheritance/models.py | 45 +- tests/regressiontests/datastructures/tests.py | 8 + tests/regressiontests/defaultfilters/tests.py | 23 +- tests/regressiontests/forms/forms.py | 20 +- tests/regressiontests/forms/regressions.py | 4 +- tests/regressiontests/forms/widgets.py | 18 +- .../model_inheritance_regress/models.py | 22 +- tests/regressiontests/queries/models.py | 95 +- tests/regressiontests/templates/loaders.py | 26 +- tests/regressiontests/templates/tests.py | 85 +- .../urlpatterns_reverse/tests.py | 1 + 130 files changed, 11148 insertions(+), 2685 deletions(-) create mode 100644 django/conf/locale/et/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/et/LC_MESSAGES/django.po create mode 100644 django/conf/locale/et/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/et/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/lt/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/lt/LC_MESSAGES/django.po create mode 100644 django/conf/locale/lt/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/lt/LC_MESSAGES/djangojs.po create mode 100644 django/contrib/sites/tests.py mode change 100644 => 100755 extras/django_bash_completion create mode 100644 tests/modeltests/delete/__init__.py create mode 100644 tests/modeltests/delete/models.py diff --git a/AUTHORS b/AUTHORS index bb77b68ad5..94dc8891a4 100644 --- a/AUTHORS +++ b/AUTHORS @@ -65,6 +65,7 @@ answer newbie questions, and generally made Django that much better: Mikaël Barbero Jiri Barton Ned Batchelder + batiste@dosimple.ch Shannon -jj Behrens Esdras Beleza Chris Bennett @@ -228,6 +229,7 @@ answer newbie questions, and generally made Django that much better: Nicola Larosa Rune Rønde Laursen Eugene Lazutkin + lcordier@point45.com Jeong-Min Lee Jannis Leidel Christopher Lenz @@ -374,6 +376,7 @@ answer newbie questions, and generally made Django that much better: Wang Chun Filip Wasilewski Dan Watson + Joel Watts Chris Wesseling James Wheare charly.wilhelm@gmail.com diff --git a/LICENSE b/LICENSE index ba3e68a060..b0716a3908 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2005, the Lawrence Journal-World +Copyright (c) Django Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, diff --git a/django/bin/profiling/gather_profile_stats.py b/django/bin/profiling/gather_profile_stats.py index c0844930e9..0fd2b7fca9 100644 --- a/django/bin/profiling/gather_profile_stats.py +++ b/django/bin/profiling/gather_profile_stats.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python + """ gather_profile_stats.py /path/to/dir/of/profiles diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 9f24f0c2df..006ab421dd 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -52,6 +52,7 @@ LANGUAGES = ( ('el', gettext_noop('Greek')), ('en', gettext_noop('English')), ('es', gettext_noop('Spanish')), + ('et', gettext_noop('Estonian')), ('es-ar', gettext_noop('Argentinean Spanish')), ('eu', gettext_noop('Basque')), ('fa', gettext_noop('Persian')), @@ -70,6 +71,7 @@ LANGUAGES = ( ('km', gettext_noop('Khmer')), ('kn', gettext_noop('Kannada')), ('lv', gettext_noop('Latvian')), + ('lt', gettext_noop('Lithuanian')), ('mk', gettext_noop('Macedonian')), ('nl', gettext_noop('Dutch')), ('no', gettext_noop('Norwegian')), diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo index 4f61dfbbcd288496f6b914c1ba8cdbec02c44467..1775e0a8498bb559967a8155af3f0dff9d926f41 100644 GIT binary patch delta 21689 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∨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 delta 21611 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 diff --git a/django/conf/locale/ca/LC_MESSAGES/django.po b/django/conf/locale/ca/LC_MESSAGES/django.po index 36511eb58c..783fd99760 100644 --- a/django/conf/locale/ca/LC_MESSAGES/django.po +++ b/django/conf/locale/ca/LC_MESSAGES/django.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-05-26 10:35+0200\n" -"PO-Revision-Date: 2008-05-14 11:15+0200\n" +"POT-Creation-Date: 2008-06-20 12:36+0200\n" +"PO-Revision-Date: 2008-06-20 12:48+0200\n" "Last-Translator: Django Catalan Group \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" @@ -14,193 +14,201 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: conf/global_settings.py:43 -msgid "Arabic" -msgstr "Arabic" - #: conf/global_settings.py:44 -msgid "Bengali" -msgstr "Bengalí" +msgid "Arabic" +msgstr "aràbic" #: conf/global_settings.py:45 -msgid "Bulgarian" -msgstr "Búlgar" +msgid "Bengali" +msgstr "bengalí" #: conf/global_settings.py:46 -msgid "Catalan" -msgstr "Català" +msgid "Bulgarian" +msgstr "búlgar" #: conf/global_settings.py:47 -msgid "Czech" -msgstr "Txec" +msgid "Catalan" +msgstr "català" #: conf/global_settings.py:48 -msgid "Welsh" -msgstr "Galès" +msgid "Czech" +msgstr "txec" #: conf/global_settings.py:49 -msgid "Danish" -msgstr "Danès" +msgid "Welsh" +msgstr "galès" #: conf/global_settings.py:50 -msgid "German" -msgstr "Alemany" +msgid "Danish" +msgstr "danès" #: conf/global_settings.py:51 -msgid "Greek" -msgstr "Grec" +msgid "German" +msgstr "alemany" #: conf/global_settings.py:52 -msgid "English" -msgstr "Anglès" +msgid "Greek" +msgstr "grec" #: conf/global_settings.py:53 -msgid "Spanish" -msgstr "Espanyol" +msgid "English" +msgstr "anglès" #: conf/global_settings.py:54 -msgid "Argentinean Spanish" -msgstr "Castellà Argentí" +msgid "Spanish" +msgstr "espanyol" #: conf/global_settings.py:55 -msgid "Basque" -msgstr "Euskera" +msgid "Estonian" +msgstr "estonià" #: conf/global_settings.py:56 -msgid "Persian" -msgstr "Persa" +msgid "Argentinean Spanish" +msgstr "castellà argentí" #: conf/global_settings.py:57 -msgid "Finnish" -msgstr "Finlandès" +msgid "Basque" +msgstr "euskera" #: conf/global_settings.py:58 -msgid "French" -msgstr "Francès" +msgid "Persian" +msgstr "persa" #: conf/global_settings.py:59 -msgid "Irish" -msgstr "Irlandès" +msgid "Finnish" +msgstr "finlandès" #: conf/global_settings.py:60 -msgid "Galician" -msgstr "Gallec" +msgid "French" +msgstr "francès" #: conf/global_settings.py:61 -msgid "Hungarian" -msgstr "Húngar" +msgid "Irish" +msgstr "irlandès" #: conf/global_settings.py:62 -msgid "Hebrew" -msgstr "Hebreu" +msgid "Galician" +msgstr "gallec" #: conf/global_settings.py:63 -msgid "Croatian" -msgstr "Croat" +msgid "Hungarian" +msgstr "húngar" #: conf/global_settings.py:64 -msgid "Icelandic" -msgstr "Islandès" +msgid "Hebrew" +msgstr "hebreu" #: conf/global_settings.py:65 -msgid "Italian" -msgstr "Italià" +msgid "Croatian" +msgstr "croat" #: conf/global_settings.py:66 -msgid "Japanese" -msgstr "Japonès" +msgid "Icelandic" +msgstr "islandès" #: conf/global_settings.py:67 -msgid "Georgian" -msgstr "Georgià" +msgid "Italian" +msgstr "italià" #: conf/global_settings.py:68 -msgid "Korean" -msgstr "Coreà" +msgid "Japanese" +msgstr "japonès" #: conf/global_settings.py:69 -msgid "Khmer" -msgstr "Khmer" +msgid "Georgian" +msgstr "georgià" #: conf/global_settings.py:70 -msgid "Kannada" -msgstr "Canès" +msgid "Korean" +msgstr "coreà" #: conf/global_settings.py:71 -msgid "Latvian" -msgstr "Letó" +msgid "khmer" +msgstr "khmer" #: conf/global_settings.py:72 -msgid "Macedonian" -msgstr "Macedoni" +msgid "Kannada" +msgstr "canès" #: conf/global_settings.py:73 -msgid "Dutch" -msgstr "Holandès" +msgid "Latvian" +msgstr "letó" #: conf/global_settings.py:74 -msgid "Norwegian" -msgstr "Norueg" +msgid "Lithuanian" +msgstr "lituà" #: conf/global_settings.py:75 -msgid "Polish" -msgstr "Polac" +msgid "Macedonian" +msgstr "macedoni" #: conf/global_settings.py:76 -msgid "Portugese" -msgstr "Portuguès" +msgid "Dutch" +msgstr "holandès" #: conf/global_settings.py:77 -msgid "Brazilian Portuguese" -msgstr "Portuguès de Brasil" +msgid "Norwegian" +msgstr "norueg" #: conf/global_settings.py:78 -msgid "Romanian" -msgstr "Rumanès" +msgid "Polish" +msgstr "polac" #: conf/global_settings.py:79 -msgid "Russian" -msgstr "Rús" +msgid "Portugese" +msgstr "portuguès" #: conf/global_settings.py:80 -msgid "Slovak" -msgstr "Eslovac" +msgid "Brazilian Portuguese" +msgstr "portuguès de brasil" #: conf/global_settings.py:81 -msgid "Slovenian" -msgstr "Esloveni" +msgid "Romanian" +msgstr "rumanès" #: conf/global_settings.py:82 -msgid "Serbian" -msgstr "Serbi" +msgid "Russian" +msgstr "rús" #: conf/global_settings.py:83 -msgid "Swedish" -msgstr "Suec" +msgid "Slovak" +msgstr "eslovac" #: conf/global_settings.py:84 -msgid "Tamil" -msgstr "Tàmil" +msgid "Slovenian" +msgstr "esloveni" #: conf/global_settings.py:85 -msgid "Telugu" -msgstr "Telugu" +msgid "Serbian" +msgstr "serbi" #: conf/global_settings.py:86 -msgid "Turkish" -msgstr "Turc" +msgid "Swedish" +msgstr "suec" #: conf/global_settings.py:87 -msgid "Ukrainian" -msgstr "Ucranià" +msgid "Tamil" +msgstr "tàmil" #: conf/global_settings.py:88 -msgid "Simplified Chinese" -msgstr "Xinès simplificat" +msgid "Telugu" +msgstr "telugu" #: conf/global_settings.py:89 +msgid "Turkish" +msgstr "turc" + +#: conf/global_settings.py:90 +msgid "Ukrainian" +msgstr "ucranià" + +#: conf/global_settings.py:91 +msgid "Simplified Chinese" +msgstr "xinès simplificat" + +#: conf/global_settings.py:92 msgid "Traditional Chinese" -msgstr "Xinès tradicional" +msgstr "xinès tradicional" #: contrib/admin/filterspecs.py:44 #, python-format @@ -1137,15 +1145,15 @@ msgstr "permisos" msgid "group" msgstr "grup" -#: contrib/auth/models.py:98 contrib/auth/models.py:141 +#: contrib/auth/models.py:98 contrib/auth/models.py:148 msgid "groups" msgstr "grups" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:138 msgid "username" msgstr "nom d'usuari" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:138 msgid "" "Required. 30 characters or fewer. Alphanumeric characters only (letters, " "digits and underscores)." @@ -1153,23 +1161,23 @@ msgstr "" "Obligatori. 30 o menys caràcters. Només caràcters alfanumèrics (lletres, " "dígits i el guió baix)." -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:139 msgid "first name" msgstr "nom propi" -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:140 msgid "last name" msgstr "cognoms" -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:141 msgid "e-mail address" msgstr "adreça de correu electrònic" -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:142 msgid "password" msgstr "contrasenya" -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:142 msgid "" "Use '[algo]$[salt]$[hexdigest]' or use the change " "password form." @@ -1177,19 +1185,19 @@ msgstr "" "Utilitzeu '[algo]$[salt]$[hexdigest]' o el formulari " "de canvi de contrasenya." -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:143 msgid "staff status" msgstr "membre del personal" -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:143 msgid "Designates whether the user can log into this admin site." msgstr "Indica si l'usuari pot entrar en el lloc administratiu." -#: contrib/auth/models.py:137 +#: contrib/auth/models.py:144 msgid "active" msgstr "actiu" -#: contrib/auth/models.py:137 +#: contrib/auth/models.py:144 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1197,11 +1205,11 @@ msgstr "" "Designa si aquest usuari ha de ser tractat com a actiu. Deseleccioneu-ho " "enlloc d'esborrar comptes d'usuari." -#: contrib/auth/models.py:138 +#: contrib/auth/models.py:145 msgid "superuser status" msgstr "estat de superusuari" -#: contrib/auth/models.py:138 +#: contrib/auth/models.py:145 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -1209,15 +1217,15 @@ msgstr "" "Designa que aquest usuari té tots els permissos sense assignar-los " "explícitament." -#: contrib/auth/models.py:139 +#: contrib/auth/models.py:146 msgid "last login" msgstr "últim inici de sessió" -#: contrib/auth/models.py:140 +#: contrib/auth/models.py:147 msgid "date joined" msgstr "data de creació" -#: contrib/auth/models.py:142 +#: contrib/auth/models.py:149 msgid "" "In addition to the permissions manually assigned, this user will also get " "all permissions granted to each group he/she is in." @@ -1225,39 +1233,39 @@ msgstr "" "Junt amb els permissos asignats manualment, aquest usuari tindrà, també, els " "permissos dels grups dels que sigui membre." -#: contrib/auth/models.py:143 +#: contrib/auth/models.py:150 msgid "user permissions" msgstr "permissos de l'usuari" -#: contrib/auth/models.py:147 +#: contrib/auth/models.py:154 msgid "user" msgstr "usuari" -#: contrib/auth/models.py:148 +#: contrib/auth/models.py:155 msgid "users" msgstr "usuaris" -#: contrib/auth/models.py:154 +#: contrib/auth/models.py:161 msgid "Personal info" msgstr "Informació personal" -#: contrib/auth/models.py:155 +#: contrib/auth/models.py:162 msgid "Permissions" msgstr "permisos" -#: contrib/auth/models.py:156 +#: contrib/auth/models.py:163 msgid "Important dates" msgstr "Dates importants" -#: contrib/auth/models.py:157 +#: contrib/auth/models.py:164 msgid "Groups" msgstr "Grups" -#: contrib/auth/models.py:316 +#: contrib/auth/models.py:323 msgid "message" msgstr "missatge" -#: contrib/auth/views.py:47 +#: contrib/auth/views.py:48 msgid "Logged out" msgstr "Sessió finalitzada" @@ -3897,12 +3905,12 @@ msgstr "" msgid "%(object)s with this %(type)s already exists for the given %(field)s." msgstr "Ja existeix un %(object)s del tipus %(type)s amb aquest %(field)s." -#: db/models/fields/__init__.py:54 +#: db/models/fields/__init__.py:51 #, python-format msgid "%(optname)s with this %(fieldname)s already exists." msgstr "Ja existeix %(optname)s amb aquest %(fieldname)s." -#: db/models/fields/__init__.py:179 db/models/fields/__init__.py:348 +#: db/models/fields/__init__.py:176 db/models/fields/__init__.py:348 #: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791 #: newforms/fields.py:46 oldforms/__init__.py:374 msgid "This field is required." @@ -3937,18 +3945,18 @@ msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)" msgid "Please enter a valid %s." msgstr "Si us plau, introduïu un %s vàlid." -#: db/models/fields/related.py:721 +#: db/models/fields/related.py:746 msgid "Separate multiple IDs with commas." msgstr "Separi múltiples IDs amb comes." -#: db/models/fields/related.py:723 +#: db/models/fields/related.py:748 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Premeu la tecla \"Control\" -o \"Command\" en un Mac- per seleccionar més " "d'un valor." -#: db/models/fields/related.py:770 +#: db/models/fields/related.py:795 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -4007,11 +4015,11 @@ msgstr "Assegureu-vos de que no hi ha més de %s decimals." msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Assegureu-vos de que no hi ha més de %s dígits decimals." -#: newforms/fields.py:263 newforms/fields.py:751 +#: newforms/fields.py:263 newforms/fields.py:750 msgid "Enter a valid date." msgstr "Introduïu una data vàlida." -#: newforms/fields.py:296 newforms/fields.py:752 +#: newforms/fields.py:296 newforms/fields.py:751 msgid "Enter a valid time." msgstr "Introduïu una hora vàlida." @@ -4035,25 +4043,25 @@ msgstr "Introduïu una URL vàlida." msgid "This URL appears to be a broken link." msgstr "Aquesta URL sembla ser un enllaç trencat." -#: newforms/fields.py:560 newforms/models.py:299 +#: newforms/fields.py:559 newforms/models.py:305 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "" "Escolli una opció vàlida; Aquesta opció no és una de les opcions disponibles." -#: newforms/fields.py:599 +#: newforms/fields.py:598 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Esculliu una opció vàlida. %(value)s no és una de les opcions vàlides." -#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371 +#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:372 msgid "Enter a list of values." msgstr "Introduïu una llista de valors." -#: newforms/fields.py:780 +#: newforms/fields.py:779 msgid "Enter a valid IPv4 address." msgstr "Introduïu una adreça IPv4 vàlida." -#: newforms/models.py:372 +#: newforms/models.py:373 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Escolliu una opció vàlida; %s' no és una de les opcions vàlides." @@ -4194,51 +4202,51 @@ msgstr "Dg" #: utils/dates.py:18 msgid "January" -msgstr "Gener" +msgstr "gener" #: utils/dates.py:18 msgid "February" -msgstr "Febrer" +msgstr "febrer" #: utils/dates.py:18 utils/dates.py:31 msgid "March" -msgstr "Març" +msgstr "març" #: utils/dates.py:18 utils/dates.py:31 msgid "April" -msgstr "Abril" +msgstr "abril" #: utils/dates.py:18 utils/dates.py:31 msgid "May" -msgstr "Maig" +msgstr "maig" #: utils/dates.py:18 utils/dates.py:31 msgid "June" -msgstr "Juny" +msgstr "juny" #: utils/dates.py:19 utils/dates.py:31 msgid "July" -msgstr "Juliol" +msgstr "juliol" #: utils/dates.py:19 msgid "August" -msgstr "Agost" +msgstr "agost" #: utils/dates.py:19 msgid "September" -msgstr "Setembre" +msgstr "setembre" #: utils/dates.py:19 msgid "October" -msgstr "Octubre" +msgstr "octubre" #: utils/dates.py:19 msgid "November" -msgstr "Novembre" +msgstr "novembre" #: utils/dates.py:20 msgid "December" -msgstr "Desembre" +msgstr "desembre" #: utils/dates.py:23 msgid "jan" @@ -4290,31 +4298,31 @@ msgstr "des" #: utils/dates.py:31 msgid "Jan." -msgstr "Gen." +msgstr "gen." #: utils/dates.py:31 msgid "Feb." -msgstr "Feb." +msgstr "feb." #: utils/dates.py:32 msgid "Aug." -msgstr "Ago." +msgstr "ago." #: utils/dates.py:32 msgid "Sept." -msgstr "Set." +msgstr "set." #: utils/dates.py:32 msgid "Oct." -msgstr "Oct." +msgstr "oct." #: utils/dates.py:32 msgid "Nov." -msgstr "Nov." +msgstr "nov." #: utils/dates.py:32 msgid "Dec." -msgstr "Des." +msgstr "des." #: utils/text.py:127 msgid "or" diff --git a/django/conf/locale/de/LC_MESSAGES/django.mo b/django/conf/locale/de/LC_MESSAGES/django.mo index 226c64c560d98106f707a91810be9a4feaeedab5..234819f87931ef3854bf5b0851a31b0efeccf80e 100644 GIT binary patch delta 15949 zcmajl2YgjU-p28hPC_W5Ce%v}p@h(p9zy7yP^Bg0LIU9ilN*}Cg;0VZf?ld1AVpL< zK|pZ@M35o~EVv3PC>AUz*jZHG-*eAIzjA&t5(U#@0V(pAI2xDk46GQMh<8I?Ytgntx6S;-zFrcL!J1~W~ zIjW!47>UP_wOQ|BFkVB}XMKv{jBkBmDtRlo?Wi1o1=c12BKJZiv6s0DdU{SvH9ya%h}TdL4jerx%ZkMu9DVR>mi9CdQM6*$c(DM`- zy)NglF8+*-u||SD@F46-ycl`B))mwQ%5|~_8jhOa6l{Pyu|K|t+L?wl?uI?EAuh)# zJdU*(-@0aJtRR*fO+`J_N(NvD+>W*J7V1!z>0);fjdh6QQDNBXF z_#Cw}eqHGsD`Ax0|4C#zP_Piy@C??#8>o&$n7&@0im3WHjKi*|9h-(aBb%`%zKoj4 zHH^X1-F+*y+F~^E7}SCmVH3u;_L9-F{1l5|WDm9rtMOwZPQ*aGimJbkE%9^I#H#ar zLa_w~V?2gnR~(3aF$|wYO>_@xhu%QXWHQ&u=*Gdl>@VF&)Icey@(HL8vrPGPQ$EMU z3r*}rf7(5TMe%72!sku>E>u7JP5f#v_Fn@WHx+Lp=f=8(T5(iwdu3HnE2v}QCfJ3z zE$URy!x^|7H9+Y;=8>TuVH_62PFMo_qYhz8ANF6FM@+#A)HBcs4$Uo8yI_{3iHD&&jzB%SN~n&LQCq$ebtbl8DSQsg;UVOE;;}B8g5pWM`&87z z;@A(>a5QQKQ&6XT0cz`?L~Z#>6K_DRcnfOa9atL=VJv=xO)!F2Lj5LUtlt0OWYp0j z)QXmwcnxain^6(C4z5gyU zn)!6p%yUuCdMRq_pGJP~SZ8o3h7GnqSgFYWtS$V|qxlsbSZ;`I3)Bt_K|U3h2Up-3 zoR2AV=E)`VIhmT6G0c7hPhex>f1tMRHqODS4_a0pZo)BGZ@9fe1Fm?Qj#+VT>Qi{%e3F3bcX|SQ^J+Z+sZFlGE4@OOCQXJbkbw@k*?Y z=TUFbcc^~uqHo2c?cah$Q9Bcj8n`KH+%6t6IxKxr1CBy9*om6RQPj*YqdI;Mwe_E3 z8|==u?ZQ0NfGtw&*S9@then|8Pe#?Jp$^|9)Py~cmJrAGBh|JamLtwZwOftV@T7^qz{Dq zA8T2yuqpEOwKA~=9!AyQK()8V*}rD%<9x#YCVm%n7VaZ&rWKWD{~?lzP4)h-C$pD| zOQ;p+rQ0jmh~g*X|j<1Ez5Heqc%iY@RaY6lz>>@Q_UINo+ZPpYu(0%*fqm`9jBshd>S>-VXTTDpuS|kp|-g3MEftHWYo?qL_NZt*cor3 z&Q?>GeTL>>0P$kk@v!L!E8s2zCU)LWVMK!K=s z#gR{pRSu(Z5^4ulWwQSo@D2rla2-N$+uI?3LVW*AQFL>{A+h1%LH$m6$4J!DU8 z8tVQTsQ&U$3t5WsxB~SE-@!UqB8&Z3!*p&%`H;r?EKY=THlKAN2@6HSyOb{t30Cp8I69!tfk>;0jopxHhVTR;U3JQ0=;) zZXAf3XbNgT7iz0#Ub7$hflEwbf8w;0R6GCiJKW) zp$2S^nqUHIVttLnPzy*!wVPygqxzeQ>i=Q%Xoj=MXoZiWZd``i;tg0HccKP3VLWfV zV*J?nwee@8|5W?FaMZx%P~%0R`ma8f{nvnTrePZ_OWYZ2;&9Y6o{gGd9%@BTqPBPi zY6sS#`q_pW-~j5rBdC?0F!34G{TEOZx;&NrR|oG1?)8&i!L7)`kw_2|}O4cv?6@ok)dUt=5&n`Qs@T!bv#W9=cM*Wm!_8NP~T@HFbR zxn|<8QCk-<+g?c-)E3u4?Mwr#gDp@yI2!dSpMbs{M(xC6T!t&Ktls~6x%N!su`3lr zQ5|nYO>8Tc!kwrsJc{b*vZ?<7wKJcX_!jE^?@^ELE;=xHj{QN4MlG~AR%U!_7#R&T z6*Y5@X|ND|r`(jU!$|6%M{V_Ms2zC+wPT;7CiWZZ@P^Fg_X(E8nz#nl{}I&vXV9aD zACjqx-=Ma#1b3;UDAY`=8)H!uZDrzkRJ&fNPwF7l4vj@kXgX@ZC8+zJ!a#fmb>Fk| z%=^E~6dXcL=yg1f7jXoxn$KUl_#=+O_&oc!-!rH~mXEsc4C_^cC zb*8$ZCOl+;o29F2-W-g?2wP zkT=d+k1eqBB73I?qVCJ_kclF57Gv-;?1B-G*?&k3MGd$dJL5&vPDCxX|211G_9Q-l zLoo1hdm$sRHSr>h$2Tw)Lzme9(#nN{h&`*xB#^m{nn2T~_Dn}&C*l>Tj;~mx2({>z#(Uf;Xb?^|D#Ya&SU5}c;v#1@|YswFx zCi}H_0Y&N#WRoEOaVFfJu zjD1FGqXvjUJ%TvwjqR}oK8~933Dg8UZ@ZajcGq;H^B zde!(Ts>3^|9sAM5_fcmnaFcz1IMySsgiZARceOLtBUpxt-B=%wqdNK)!|@(!z#^ON z6_!S|uYhXT5Vb=sQD>?TR>9F&6+NbYJys^(k1=}xFOktR{SEc3ifpmBt{kf4TBySr zi>i-Dz2|+f8_q)~zJ-Ia*|YpA$HiD3gSXnxJ_hR&_s51f1A8#OwS&wHco!eX&CglZ zENt?;{Yl_=GX)KVg#;5Pf;>E z$>^EBj1}=5hT|8QjX#<42|Mg(n1^AMuS5;B(YOu$iT7a$9xxt8_4@{D>u;dWlHX4D zUkxL6+FKrl+Uh!}0a{}*?2PIl3ESc%?2bDz0qY`e>TBqhJqq?7vo8a<@HjWz@iNCT@)>#Jw>R_n7k2sCMrgZ(=I(cc_UC*~8z7xCu3&bFY1< zU8o&egIf4H4;gjzEC%2n)J$JA9>zf8Q`iyDVFQfF=U>-idmM|~u`!n3XIT$oXKaWY zjTceh3I7-EiBv`hv8OwkI5HDZTeubnW-`>)PQLoht*ac7F2#h#jf1)$d zLA(+*p@Uc-zr+m~dC-nu!b*DoKP96X2fSpzR->>h@p9xbSs!3EeEem51-r2}@fp-< z{ub4~-66X?57mArM&o&O;LoUuM7?7Fy6=q9djIE;(HYo=Zaj$E(gy#q|E<+B)DC@( z+M%ki+OK6NRO~W(u?6u#)IhgU6R3RHo=_roA|8kRaXTh?$lNER*D&dbeKL#p-%Hm<6Mj)UWhtWn^A{tE9wmGMor*l)LZlss^8nF`g^GV|H%qEYJZ^yp?1K7 z>gapa&isn%AnY~!mrf+=_3DEqa3;>c$5E$0{1|`P;$Za0v#9>gqZaxuY671eWB+@R z`G$fv*!Fe%)J{j;@B#*4KGwnms1D!9Qg|Jk;dj^?V~*R8%8AX1S70Wd#bMa?ggx*o ztVg`@1pD8J%sC1wqxFW}K@|)k?1Mo#7&YJsEQ6Cw`8*6EUWA&c7b9_{iFX_Kp+30> zQ42eb+JS$1$mp58kHL7;#NVK{{@@W7#Zwm5K|R!fO;KCg(%1>rUtcVa4`LvW z$Fi7->Te$Eevg+-2$_|}^{5qZ#nQL~i{Mezj89`ryoBnw*eUzhZ7E|7)Iyq~`fZI` zNCIj?eNht}g`6FaHJ*%SG#$0Y3s5s#V_a|CggR_nQCoQcOX4Zi1h1e5x`7(tHfnj+MaTdjBhu(M;iC8Lh#qi^P>!8$BT`8KS82e1xaM76(%dL%(_+AAuH+Q}$XKh>}(Hbk{= zjapzLs$I`F*?+Axi2@zE5vU1`L3Q9nb&zfJpq}|6RJ*lU57(h~@HDEQw~Uuj170=t zAECzk4D~kLev|#zvkpFMZ*dh2CvJdh*vgn-%6noM`*e!p1!HnmF8Ak;L{e|lHN)IULf5-C+N*23Ln$C6LL zy7(JuG)dQJ>R%*(mo&gGvSP?LH2wLL_ry?v2o--xo|xRX?tr0Yveva{A^^7F}8B9${`Z&B8fyv~)rKYzMDr*a4--~Or8 z4nC!>CIgD1o6-!*iEMhzPR+PmNFCpIo z*AnaRg*-pT??b_JR8*&6FBV**DF2>dPoc6trg8>lwN3eO+7(>So3alI-SaT{9i&?{ z(%17C`6HxZB;Wa)LT0+@;W_L@3Zhd78 zT30pFMA|)tLot~&lz#LDeU~(Zyr&k0x}L=m6eN@1LVkiN_f;19v4Z?!6aP@CO(OY| zls`c#NxmCqpngAi3$-J(`Z3M|d{XOAB+#!}eRd13RVLG!8*iDL!)RB%P)Dic`%<=- zwku5eS)554OWE5b{Z431n|Dxu*!D2(BFL{K-$~E^Q8N0QPS;fO!?8X-LVAeQl=L>~ zd(v6zu97;?X;)%hU2rh*1^k(Ki?5Wwo`|QCzh~O1co+F_6W^9P|2Ii5liU;x!qxZ~ zsRnsnpOLDlaiMDtaa9J@HIV#FJ8OlIFG0#C9#1+!>O;H+`Lp3qS32dMrgTz@w3Vt$ zq^{&^;cukoaUQTq_K1uXgYnLcmzq;Bc!IJVx(~Dr(h~+1WA|v zBlpSpwP}CRjPLvBF*SJ4RM^w9{{sGovf`wtNc(6Lfk&_%oxMhWB&j`dN8$uhCUH%? zgkH+OBI&AYW8I;A9QB=vN9y-~J<{W*avUZTU!_r1QWN4LSa79~DNenvdZf-Kf0#DC ziKFpXY(aXLd^74RoBKn^KSOyM@z?ky`u_V5^42wiipmtaUZyOKxDIwBrI0!ipU3xc zB@eBn6SS7HUZN`xQueP10=A zDM~9AYS)ms4TEKx)-}inkaQigv7(4`xaTs-kJP}Q2VH@}+NOb1H&IcZ_&e0qg|ct# ztncRyeqJFhHT4Bmi-@<8_L0_;`je`WULo}(Eg-d}u?KYxBSq`^KjaJfep9iGd=zdn zjZBr5M7wsBy=DpqV`Ji#IN!8&;Sf?5Wo2j|PyR0XG597PB~>DSouum*^wg(e!Bvie zQ=}QD-~~KS>SE$Ze31HPq<@o-!`HE=>Ek8xCn+0^1y?symrMDtq%%}3HI?al|AT2z zS&c|pG>F6)#au1XK?)B=WPPQEA7uQiKQnKX&?7)jR-8*3WQ zHTShuW3FqY_c(vP|0-=Fh3!p)H8`I1Ds}5{5Owch2jWjj|0G|Gbc6Iy;#Ww|kS|Y~ zK)yc7k9*D#e@8wEb@it#Uv2QZuY|FOlKFx3G3kOSY(S&NMGR zPIQIhhd98*Eveg+-z%IyZ$*wWZR7d6{cY3BPJAYEMX?}suESJ;!S@Us49ep#i z+&SZNoY~I&-Ys$iDrTo;=47NgQk)KVmNVJSjmg=LiWuI?!QfV#3sfJc;snk2`s)!<92J#hK+8o9<+! zI=#E~jd7&A9PTuyV{B&D#ALVHt0NNsvpcZ!zT#Lb(dFj;WXI&>jPz7T!oY4x>cGB< z`;;-m`Xc=>U3(X_FBzMV>`G2ePj)#5WR6Ks&Tw>dW#?pRmkMU)>&!P6!+K}6kBm=9 zOV4m}NB@CIe;K||l_TkoMWkmlqgaMkYTylSzth`lc-7Lee`zzsd%sZ60JY_Xi4s|J>Qv=t zblK|{n(j`^Nmg5LrEV8OdghGL+mruQxAfq!-rYKD!M(dBdav~>Uy`uCg8C{<=+;?< z-VeK!uC68hakhOYOF#Hu!9~+r-kp7G=RevvJ}6{NraOa$druCGt&ozHJUu-_$Cc;k zcIy1_iYV`0Jg7>bFSC14RQ@jm+XY7!I;Rc}pexgDza;rhhc^oH*l%2x^P!ydEN8Z( zQ6ooc`nYs=cC3|@M(h8mZlP7Q{GUz!cP-Q8rO9?X8a4Ix@}N8WZwI2?L=Nd6^U=WE zGbSxLi%*X;>%UAe)0HvJyaCzyBa_>O1`o^O%}C2%Gd?eZTBwQAg?UR+~u z!$}px3QC$a%1@f~ui(;&SyPz&ks)y7zWo1wV($RSxCVwLhZXrFm_=?%dkmfc#Q* z9O)Aso&WZOX*VzUWU8CG_D8bN4Zoi~eJf4>zQgF9m0Kfdf=krA$ zCC2DW=SpWOPJIZy7xK#0`j4_d&FPPi-xGNb@21>~-iBLhdV}Va@OpAbCeJURiR>sZr8C{-oXB(J zw^3%sIN$4U_SC7man2N{>%V;Gbkpx&I`5vj<#=etyfbHqnYq;rx4%~@yjjf}n`c?L zK{0QY`8nR*b3zN>n7?HH0zdDP+%gna@`f!qTqH5u?c0w0lMB}R`#W9U5sT{RV|DBm z-^VI<(KqH}mAcr^KeT7MJ2}U?+ zetoVejp>o;;>&0@sL**aU#ma9S~@4*rK?JMyRWM4?XbFGe)mo{p3Pgrd!L+>J>}Tuv<&Yvb0WRh*OkmqUUxRwk?rK& z|I=C1OXtXOjXU;AhC6*+e$1BdgFM-e&iVs_CvK i-rDJMrzK}FpqaBPzsk0CVIjkgz2f`i9eOb)`2PU8oNYM( delta 12887 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 Rp|5A}+u4OZy*`Zg`#%Tg#d`n% diff --git a/django/conf/locale/de/LC_MESSAGES/django.po b/django/conf/locale/de/LC_MESSAGES/django.po index 754c840de0..f529167baa 100644 --- a/django/conf/locale/de/LC_MESSAGES/django.po +++ b/django/conf/locale/de/LC_MESSAGES/django.po @@ -1,14 +1,14 @@ # Translation of django.po to German # -# Copyright (C) 2005-2007, +# Copyright (C) 2005-2008, # This file is distributed under the same license as the django package. # msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-03-18 15:10-0500\n" -"PO-Revision-Date: 2008-03-03 16:10+0100\n" +"POT-Creation-Date: 2008-06-23 20:23+0200\n" +"PO-Revision-Date: 2008-06-23 20:51+0100\n" "Last-Translator: Jannis Leidel \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -19,191 +19,199 @@ msgstr "" "X-Poedit-SourceCharset: utf-8\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: conf/global_settings.py:39 +#: conf/global_settings.py:44 msgid "Arabic" msgstr "Arabisch" -#: conf/global_settings.py:40 +#: conf/global_settings.py:45 msgid "Bengali" msgstr "Bengali" -#: conf/global_settings.py:41 +#: conf/global_settings.py:46 msgid "Bulgarian" msgstr "Bulgarisch" -#: conf/global_settings.py:42 +#: conf/global_settings.py:47 msgid "Catalan" msgstr "Katalanisch" -#: conf/global_settings.py:43 +#: conf/global_settings.py:48 msgid "Czech" msgstr "Tschechisch" -#: conf/global_settings.py:44 +#: conf/global_settings.py:49 msgid "Welsh" msgstr "Walisisch" -#: conf/global_settings.py:45 +#: conf/global_settings.py:50 msgid "Danish" msgstr "Dänisch" -#: conf/global_settings.py:46 +#: conf/global_settings.py:51 msgid "German" msgstr "Deutsch" -#: conf/global_settings.py:47 +#: conf/global_settings.py:52 msgid "Greek" msgstr "Griechisch" -#: conf/global_settings.py:48 +#: conf/global_settings.py:53 msgid "English" msgstr "Englisch" -#: conf/global_settings.py:49 +#: conf/global_settings.py:54 msgid "Spanish" msgstr "Spanisch" -#: conf/global_settings.py:50 +#: conf/global_settings.py:55 +msgid "Estonian" +msgstr "Estnisch" + +#: conf/global_settings.py:56 msgid "Argentinean Spanish" msgstr "Argentinisches Spanisch" -#: conf/global_settings.py:51 +#: conf/global_settings.py:57 msgid "Basque" msgstr "Baskisch" -#: conf/global_settings.py:52 +#: conf/global_settings.py:58 msgid "Persian" msgstr "Persisch" -#: conf/global_settings.py:53 +#: conf/global_settings.py:59 msgid "Finnish" msgstr "Finnisch" -#: conf/global_settings.py:54 +#: conf/global_settings.py:60 msgid "French" msgstr "Französisch" -#: conf/global_settings.py:55 +#: conf/global_settings.py:61 msgid "Irish" msgstr "Irisch" -#: conf/global_settings.py:56 +#: conf/global_settings.py:62 msgid "Galician" msgstr "Galicisch" -#: conf/global_settings.py:57 +#: conf/global_settings.py:63 msgid "Hungarian" msgstr "Ungarisch" -#: conf/global_settings.py:58 +#: conf/global_settings.py:64 msgid "Hebrew" msgstr "Hebräisch" -#: conf/global_settings.py:59 +#: conf/global_settings.py:65 msgid "Croatian" msgstr "Kroatisch" -#: conf/global_settings.py:60 +#: conf/global_settings.py:66 msgid "Icelandic" msgstr "Isländisch" -#: conf/global_settings.py:61 +#: conf/global_settings.py:67 msgid "Italian" msgstr "Italienisch" -#: conf/global_settings.py:62 +#: conf/global_settings.py:68 msgid "Japanese" msgstr "Japanisch" -#: conf/global_settings.py:63 +#: conf/global_settings.py:69 msgid "Georgian" msgstr "Georgisch" -#: conf/global_settings.py:64 +#: conf/global_settings.py:70 msgid "Korean" msgstr "Koreanisch" -#: conf/global_settings.py:65 +#: conf/global_settings.py:71 msgid "Khmer" msgstr "Khmer" -#: conf/global_settings.py:66 +#: conf/global_settings.py:72 msgid "Kannada" msgstr "Kannada" -#: conf/global_settings.py:67 +#: conf/global_settings.py:73 msgid "Latvian" msgstr "Lettisch" -#: conf/global_settings.py:68 +#: conf/global_settings.py:74 +msgid "Lithuanian" +msgstr "Litauisch" + +#: conf/global_settings.py:75 msgid "Macedonian" msgstr "Mazedonisch" -#: conf/global_settings.py:69 +#: conf/global_settings.py:76 msgid "Dutch" msgstr "Holländisch" -#: conf/global_settings.py:70 +#: conf/global_settings.py:77 msgid "Norwegian" msgstr "Norwegisch" -#: conf/global_settings.py:71 +#: conf/global_settings.py:78 msgid "Polish" msgstr "Polnisch" -#: conf/global_settings.py:72 +#: conf/global_settings.py:79 msgid "Portugese" msgstr "Portugiesisch" -#: conf/global_settings.py:73 -msgid "Brazilian" +#: conf/global_settings.py:80 +msgid "Brazilian Portuguese" msgstr "Brasilianisches Portugiesisch" -#: conf/global_settings.py:74 +#: conf/global_settings.py:81 msgid "Romanian" msgstr "Rumänisch" -#: conf/global_settings.py:75 +#: conf/global_settings.py:82 msgid "Russian" msgstr "Russisch" -#: conf/global_settings.py:76 +#: conf/global_settings.py:83 msgid "Slovak" msgstr "Slowakisch" -#: conf/global_settings.py:77 +#: conf/global_settings.py:84 msgid "Slovenian" msgstr "Slowenisch" -#: conf/global_settings.py:78 +#: conf/global_settings.py:85 msgid "Serbian" msgstr "Serbisch" -#: conf/global_settings.py:79 +#: conf/global_settings.py:86 msgid "Swedish" msgstr "Schwedisch" -#: conf/global_settings.py:80 +#: conf/global_settings.py:87 msgid "Tamil" msgstr "Tamilisch" -#: conf/global_settings.py:81 +#: conf/global_settings.py:88 msgid "Telugu" msgstr "Telugisch" -#: conf/global_settings.py:82 +#: conf/global_settings.py:89 msgid "Turkish" msgstr "Türkisch" -#: conf/global_settings.py:83 +#: conf/global_settings.py:90 msgid "Ukrainian" msgstr "Ukrainisch" -#: conf/global_settings.py:84 +#: conf/global_settings.py:91 msgid "Simplified Chinese" msgstr "Vereinfachtes Chinesisch" -#: conf/global_settings.py:85 +#: conf/global_settings.py:92 msgid "Traditional Chinese" msgstr "Traditionelles Chinesisch" @@ -216,8 +224,10 @@ msgstr "" "

Nach %s:

\n" "
    \n" -#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92 -#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173 +#: contrib/admin/filterspecs.py:74 +#: contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 +#: contrib/admin/filterspecs.py:173 msgid "All" msgstr "Alle" @@ -241,17 +251,20 @@ msgstr "Diesen Monat" msgid "This year" msgstr "Dieses Jahr" -#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: contrib/admin/filterspecs.py:147 +#: newforms/widgets.py:231 #: oldforms/__init__.py:592 msgid "Yes" msgstr "Ja" -#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: contrib/admin/filterspecs.py:147 +#: newforms/widgets.py:231 #: oldforms/__init__.py:592 msgid "No" msgstr "Nein" -#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231 +#: contrib/admin/filterspecs.py:154 +#: newforms/widgets.py:231 #: oldforms/__init__.py:592 msgid "Unknown" msgstr "Unbekannt" @@ -291,8 +304,7 @@ msgstr "Seite nicht gefunden" #: contrib/admin/templates/admin/404.html:10 msgid "We're sorry, but the requested page could not be found." -msgstr "" -"Es tut uns leid, aber die angeforderte Seite konnte nicht gefunden werden." +msgstr "Es tut uns leid, aber die angeforderte Seite konnte nicht gefunden werden." #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/base.html:37 @@ -324,13 +336,8 @@ msgid "Server Error (500)" msgstr "Serverfehler (500)" #: 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 "" -"Ein Fehler ist aufgetreten. Dieser Fehler wurde an die Serververwalter per E-" -"Mail weitergegeben und sollte bald behoben sein. Vielen Dank für Ihr " -"Verständnis." +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 "Ein Fehler ist aufgetreten. Dieser Fehler wurde an die Serververwalter per E-Mail weitergegeben und sollte bald behoben sein. Vielen Dank für Ihr Verständnis." #: contrib/admin/templates/admin/base.html:26 msgid "Welcome," @@ -401,23 +408,13 @@ msgstr "Löschen" #: 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 "" -"Die Löschung des %(object_name)s '%(escaped_object)s' hätte die Löschung von " -"abhängigen Daten zur Folge, aber Sie haben nicht die nötigen Rechte um die " -"folgenden abhängigen Daten zu löschen:" +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 "Die Löschung des %(object_name)s '%(escaped_object)s' hätte die Löschung von abhängigen Daten zur Folge, aber Sie haben nicht die nötigen Rechte um die folgenden abhängigen Daten zu löschen:" #: 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 "" -"Sind Sie sicher, dass Sie %(object_name)s \"%(escaped_object)s\" löschen " -"wollen? Es werden zusätzlich die folgenden abhängigen Daten mit gelöscht:" +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 "Sind Sie sicher, dass Sie %(object_name)s \"%(escaped_object)s\" löschen wollen? Es werden zusätzlich die folgenden abhängigen Daten mit gelöscht:" #: contrib/admin/templates/admin/delete_confirmation.html:25 msgid "Yes, I'm sure" @@ -463,14 +460,8 @@ msgid "None available" msgstr "Keine vorhanden" #: 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 "" -"Etwas stimmt nicht mit der Datenbankkonfiguration. Bitte sicherstellen, dass " -"die richtigen Datenbanktabellen angelegt wurden und die Datenbank vom " -"verwendeten Datenbankbenutzer auch lesbar ist." +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 "Etwas stimmt nicht mit der Datenbankkonfiguration. Bitte sicherstellen, dass die richtigen Datenbanktabellen angelegt wurden und die Datenbank vom verwendeten Datenbankbenutzer auch lesbar ist." #: contrib/admin/templates/admin/login.html:17 #: contrib/comments/templates/comments/form.html:6 @@ -505,12 +496,8 @@ msgid "DATE_WITH_TIME_FULL" msgstr "j. N Y, H:i" #: 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 "" -"Dieses Objekt hat keine Änderungsgeschichte. Es wurde möglicherweise nicht " -"über diese Verwaltungsseiten angelegt." +msgid "This object doesn't have a change history. It probably wasn't added via this admin site." +msgstr "Dieses Objekt hat keine Änderungsgeschichte. Es wurde möglicherweise nicht über diese Verwaltungsseiten angelegt." #: contrib/admin/templates/admin/pagination.html:10 msgid "Show all" @@ -549,12 +536,8 @@ msgid "Save" msgstr "Sichern" #: 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 "" -"Zuerst einen Benutzer und ein Passwort eingeben. Danach können weitere " -"Optionen für den Benutzer geändert werden." +msgid "First, enter a username and password. Then, you'll be able to edit more user options." +msgstr "Zuerst einen Benutzer und ein Passwort eingeben. Danach können weitere Optionen für den Benutzer geändert werden." #: contrib/admin/templates/admin/auth/user/add_form.html:12 msgid "Username" @@ -578,9 +561,7 @@ msgstr "Bitte das gleiche Passwort zur Überprüfung nochmal eingeben." #: contrib/admin/templates/admin/auth/user/change_password.html:27 #, python-format msgid "Enter a new password for the user %(username)s." -msgstr "" -"Bitte geben Sie ein neues Passwort für den Benutzer %(username)s ein." +msgstr "Bitte geben Sie ein neues Passwort für den Benutzer %(username)s ein." #: contrib/admin/templates/admin_doc/bookmarklets.html:3 msgid "Bookmarklets" @@ -601,12 +582,9 @@ msgid "" "your computer is \"internal\").

    \n" msgstr "" "\n" -"

    Um Bookmarklets zu installieren, müssen diese Links in " -"die\n" -"Browser-Werkzeugleiste gezogen werden, oder mittels rechter Maustaste in " -"die\n" -"Bookmarks gespeichert werden. Danach können die Bookmarklets von jeder " -"Seite\n" +"

    Um Bookmarklets zu installieren, müssen diese Links in die\n" +"Browser-Werkzeugleiste gezogen werden, oder mittels rechter Maustaste in die\n" +"Bookmarks gespeichert werden. Danach können die Bookmarklets von jeder Seite\n" "aufgerufen werden. Einige Bookmarklets sind für den Zugriff von 'internen'\n" "Rechnern eingeschränkt. Falls nicht klar ist, ob ein Rechner als 'intern'\n" "bewertet wird, bitte den Administrator fragen.

    \n" @@ -616,24 +594,16 @@ msgid "Documentation for this page" msgstr "Dokumentation für diese Seite" #: 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 "" -"Springt von jeder Seite zu der Dokumentation für den View der diese Seite " -"erzeugt." +msgid "Jumps you from any page to the documentation for the view that generates that page." +msgstr "Springt von jeder Seite zu der Dokumentation für den View der diese Seite erzeugt." #: contrib/admin/templates/admin_doc/bookmarklets.html:21 msgid "Show object ID" msgstr "Objekt-ID anzeigen" #: contrib/admin/templates/admin_doc/bookmarklets.html:22 -msgid "" -"Shows the content-type and unique ID for pages that represent a single " -"object." -msgstr "" -"Zeigt den Content-Type und die eindeutige ID für Seiten die ein einzelnes " -"Objekt repräsentieren." +msgid "Shows the content-type and unique ID for pages that represent a single object." +msgstr "Zeigt den Content-Type und die eindeutige ID für Seiten die ein einzelnes Objekt repräsentieren." #: contrib/admin/templates/admin_doc/bookmarklets.html:24 msgid "Edit this object (current window)" @@ -641,9 +611,7 @@ msgstr "Dieses Objekt im aktuellen Fenster ändern." #: contrib/admin/templates/admin_doc/bookmarklets.html:25 msgid "Jumps to the admin page for pages that represent a single object." -msgstr "" -"Springt zu der Administrationsseite für dieses Objekt, wenn diese Seite ein " -"Objekt repräsentiert." +msgstr "Springt zu der Administrationsseite für dieses Objekt, wenn diese Seite ein Objekt repräsentiert." #: contrib/admin/templates/admin_doc/bookmarklets.html:27 msgid "Edit this object (new window)" @@ -651,8 +619,7 @@ msgstr "Dieses Objekt in einem neuen Fenster ändern." #: contrib/admin/templates/admin_doc/bookmarklets.html:28 msgid "As above, but opens the admin page in a new window." -msgstr "" -"Wie zuvor, aber öffnet die Administrationsseite in einem neuen Fenster." +msgstr "Wie zuvor, aber öffnet die Administrationsseite in einem neuen Fenster." #: contrib/admin/templates/registration/logged_out.html:8 msgid "Thanks for spending some quality time with the Web site today." @@ -679,13 +646,8 @@ msgid "Your password was changed." msgstr "Ihr Passwort wurde geändert." #: 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 "" -"Bitte geben Sie aus Sicherheitsgründen erst Ihr altes Passwort und darunter " -"dann zweimal (um sicherzustellen, dass Sie es korrekt eingegeben haben) das " -"neue Kennwort ein." +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 "Bitte geben Sie aus Sicherheitsgründen erst Ihr altes Passwort und darunter dann zweimal (um sicherzustellen, dass Sie es korrekt eingegeben haben) das neue Kennwort ein." #: contrib/admin/templates/registration/password_change_form.html:16 msgid "Old password:" @@ -716,12 +678,8 @@ msgid "Password reset successful" msgstr "Passwort wurde erfolgreich zurückgesetzt" #: 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 "" -"Wir haben ein neues Passwort an die von Ihnen angegebene E-Mail-Adresse " -"geschickt. Sie sollten es in Kürze erhalten." +msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly." +msgstr "Wir haben ein neues Passwort an die von Ihnen angegebene E-Mail-Adresse geschickt. Sie sollten es in Kürze erhalten." #: contrib/admin/templates/registration/password_reset_email.html:2 msgid "You're receiving this e-mail because you requested a password reset" @@ -755,12 +713,8 @@ msgid "The %(site_name)s team" msgstr "Das Team von %(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 "" -"Passwort vergessen? Einfach die E-Mail-Adresse eingeben und wir setzen das " -"Passwort zurück und lassen es Ihnen per E-Mail zukommen." +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 "Passwort vergessen? Einfach die E-Mail-Adresse eingeben und wir setzen das Passwort zurück und lassen es Ihnen per E-Mail zukommen." #: contrib/admin/templates/registration/password_reset_form.html:16 msgid "E-mail address:" @@ -790,12 +744,14 @@ msgstr "Ändern:" msgid "All dates" msgstr "Alle Tage" -#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267 +#: 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\" wurde erfolgreich hinzugefügt." -#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271 +#: 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 "Das Element kann jetzt weiter bearbeitet werden." @@ -813,52 +769,42 @@ msgstr "Passwort erfolgreich geändert." msgid "Change password: %s" msgstr "Passwort ändern: %s" -#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60 -msgid "" -"Please enter a correct username and password. Note that both fields are case-" -"sensitive." -msgstr "" -"Bitte einen gültigen Benutzernamen und ein Passwort eingeben. Beide Felder " -"berücksichtigen die Groß-/Kleinschreibung." +#: contrib/admin/views/decorators.py:17 +#: contrib/auth/forms.py:60 +msgid "Please enter a correct username and password. Note that both fields are case-sensitive." +msgstr "Bitte einen gültigen Benutzernamen und ein Passwort eingeben. Beide Felder berücksichtigen die Groß-/Kleinschreibung." #: contrib/admin/views/decorators.py:69 -msgid "" -"Please log in again, because your session has expired. Don't worry: Your " -"submission has been saved." -msgstr "" -"Bitte neu anmelden, da die Session ausgelaufen ist. Keine Angst, die " -"Beiträge wurden gesichert." +msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved." +msgstr "Bitte neu anmelden, da die Session ausgelaufen ist. Keine Angst, die Beiträge wurden gesichert." #: contrib/admin/views/decorators.py:76 -msgid "" -"Looks like your browser isn't configured to accept cookies. Please enable " -"cookies, reload this page, and try again." -msgstr "" -"Es sieht danach aus, dass der Browser keine Cookies akzeptiert. Bitte im " -"Browser Cookies aktivieren und diese Seite neu laden." +msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." +msgstr "Es sieht danach aus, dass der Browser keine Cookies akzeptiert. Bitte im Browser Cookies aktivieren und diese Seite neu laden." -#: contrib/admin/views/decorators.py:90 +#: contrib/admin/views/decorators.py:89 +#, python-format +msgid "Your e-mail address is not your username. Try '%s' instead." +msgstr "Die E-Mail-Adresse entspricht nicht Ihrem Benutzernamen. Bitte stattdessen '%s' versuchen." + +#: contrib/admin/views/decorators.py:93 msgid "Usernames cannot contain the '@' character." msgstr "Benutzernamen dürfen das Zeichen '@' nicht enthalten." -#: contrib/admin/views/decorators.py:92 -#, python-format -msgid "Your e-mail address is not your username. Try '%s' instead." -msgstr "" -"Die E-Mail-Adresse entspricht nicht Ihrem Benutzernamen. Bitte stattdessen " -"'%s' versuchen." - -#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50 +#: contrib/admin/views/doc.py:48 +#: contrib/admin/views/doc.py:50 #: contrib/admin/views/doc.py:52 msgid "tag:" msgstr "Schlagwort:" -#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81 +#: contrib/admin/views/doc.py:79 +#: contrib/admin/views/doc.py:81 #: contrib/admin/views/doc.py:83 msgid "filter:" msgstr "Filter:" -#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139 +#: contrib/admin/views/doc.py:137 +#: contrib/admin/views/doc.py:139 #: contrib/admin/views/doc.py:141 msgid "view:" msgstr "Ansicht:" @@ -878,8 +824,10 @@ msgstr "Modell %(name)r wurde nicht in Anwendung %(label)r gefunden" msgid "the related `%(label)s.%(type)s` object" msgstr "Das verknüpfte `%(label)s.%(type)s` Objekt" -#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207 -#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226 +#: 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 "Modell:" @@ -903,9 +851,12 @@ msgstr "Anzahl von %s" msgid "Fields on %s objects" msgstr "Felder am %s Objekt" -#: 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 +#: 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 "Ganzzahl" @@ -913,7 +864,8 @@ msgstr "Ganzzahl" msgid "Boolean (Either True or False)" msgstr "Boolscher Wert (True oder False)" -#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314 +#: contrib/admin/views/doc.py:295 +#: contrib/admin/views/doc.py:314 #, python-format msgid "String (up to %(max_length)s)" msgstr "Zeichenkette (bis zu %(max_length)s Zeichen)" @@ -938,7 +890,8 @@ msgstr "Dezimalzahl" msgid "E-mail address" msgstr "E-Mail-Adresse" -#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302 +#: contrib/admin/views/doc.py:301 +#: contrib/admin/views/doc.py:302 #: contrib/admin/views/doc.py:305 msgid "File path" msgstr "Dateipfad" @@ -947,7 +900,8 @@ msgstr "Dateipfad" msgid "Floating point number" msgstr "Fließkommazahl" -#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89 +#: contrib/admin/views/doc.py:307 +#: contrib/comments/models.py:89 msgid "IP address" msgstr "IP-Adresse" @@ -971,7 +925,8 @@ msgstr "Text" msgid "Time" msgstr "Zeit" -#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7 +#: contrib/admin/views/doc.py:318 +#: contrib/flatpages/models.py:8 msgid "URL" msgstr "Adresse (URL)" @@ -992,7 +947,8 @@ msgstr "%s ist scheinbar kein urlpattern Objekt" msgid "Site administration" msgstr "Website-Verwaltung" -#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365 +#: contrib/admin/views/main.py:280 +#: contrib/admin/views/main.py:365 #, python-format msgid "You may add another %s below." msgstr "Jetzt kann ein weiteres Element vom Typ %s angelegt werden." @@ -1007,8 +963,10 @@ msgstr "%s hinzufügen" msgid "Added %s." msgstr "%s hinzugefügt." -#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346 -#: contrib/admin/views/main.py:348 core/validators.py:283 +#: 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 "und" @@ -1034,11 +992,8 @@ msgstr "%(name)s \"%(obj)s\" wurde erfolgreich geändert." #: 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\" wurde erfolgreich hinzugefügt. Das Element kann jetzt " -"geändert werden." +msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt. Das Element kann jetzt geändert werden." #: contrib/admin/views/main.py:400 #, python-format @@ -1079,11 +1034,12 @@ msgstr "%s auswählen" msgid "Select %s to change" msgstr "%s zur Änderung auswählen" -#: contrib/admin/views/main.py:784 +#: contrib/admin/views/main.py:765 msgid "Database error" msgstr "Datenbankfehler" -#: contrib/auth/forms.py:17 contrib/auth/forms.py:138 +#: contrib/auth/forms.py:17 +#: contrib/auth/forms.py:138 msgid "The two password fields didn't match." msgstr "Die beiden Passwörter sind nicht identisch." @@ -1092,24 +1048,16 @@ msgid "A user with that username already exists." msgstr "Ein Benutzer mit diesem Namen existiert bereits." #: contrib/auth/forms.py:53 -msgid "" -"Your Web browser doesn't appear to have cookies enabled. Cookies are " -"required for logging in." -msgstr "" -"Der Webbrowser scheint keine Cookies aktiviert zu haben. Cookies sind für " -"die Anmeldung zwingend erforderlich." +msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in." +msgstr "Der Webbrowser scheint keine Cookies aktiviert zu haben. Cookies sind für die Anmeldung zwingend erforderlich." #: contrib/auth/forms.py:62 msgid "This account is inactive." msgstr "Dieser Benutzer ist inaktiv." #: contrib/auth/forms.py:84 -msgid "" -"That e-mail address doesn't have an associated user account. Are you sure " -"you've registered?" -msgstr "" -"Zu dieser E-Mail-Adresse existiert kein Benutzer. Sicher, dass Sie sich mit " -"dieser Adresse angemeldet haben?" +msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?" +msgstr "Zu dieser E-Mail-Adresse existiert kein Benutzer. Sicher, dass Sie sich mit dieser Adresse angemeldet haben?" #: contrib/auth/forms.py:107 #, python-format @@ -1124,7 +1072,8 @@ msgstr "Die beiden neuen Passwörter sind nicht identisch." msgid "Your old password was entered incorrectly. Please enter it again." msgstr "Das alte Passwort war falsch. Bitte neu eingeben." -#: contrib/auth/models.py:73 contrib/auth/models.py:93 +#: contrib/auth/models.py:73 +#: contrib/auth/models.py:93 msgid "name" msgstr "Name" @@ -1136,7 +1085,8 @@ msgstr "Codename" msgid "permission" msgstr "Berechtigung" -#: contrib/auth/models.py:79 contrib/auth/models.py:94 +#: contrib/auth/models.py:79 +#: contrib/auth/models.py:94 msgid "permissions" msgstr "Berechtigungen" @@ -1144,133 +1094,113 @@ msgstr "Berechtigungen" msgid "group" msgstr "Gruppe" -#: contrib/auth/models.py:98 contrib/auth/models.py:141 +#: contrib/auth/models.py:98 +#: contrib/auth/models.py:148 msgid "groups" msgstr "Gruppen" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:138 msgid "username" msgstr "Benutzername" -#: contrib/auth/models.py:131 -msgid "" -"Required. 30 characters or fewer. Alphanumeric characters only (letters, " -"digits and underscores)." -msgstr "" -"Erforderlich. 30 Zeichen oder weniger. Alphanumerische Zeichen (Buchstaben, " -"Ziffern und Unterstriche sind erlaubt)." +#: contrib/auth/models.py:138 +msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)." +msgstr "Erforderlich. 30 Zeichen oder weniger. Alphanumerische Zeichen (Buchstaben, Ziffern und Unterstriche sind erlaubt)." -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:139 msgid "first name" msgstr "Vorname" -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:140 msgid "last name" msgstr "Nachname" -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:141 msgid "e-mail address" msgstr "E-Mail-Adresse" -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:142 msgid "password" msgstr "Passwort" -#: contrib/auth/models.py:135 -msgid "" -"Use '[algo]$[salt]$[hexdigest]' or use the change " -"password form." -msgstr "" -"Die Form '[algo]$[salt]$[hexdigest]' verwenden, oder das Passwort ändern Formular benutzen." +#: contrib/auth/models.py:142 +msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form." +msgstr "Die Form '[algo]$[salt]$[hexdigest]' verwenden, oder das Passwort ändern Formular benutzen." -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:143 msgid "staff status" msgstr "Administrator" -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:143 msgid "Designates whether the user can log into this admin site." -msgstr "" -"Legt fest, ob sich der Benutzer an der Administrationsseite anmelden kann." +msgstr "Legt fest, ob sich der Benutzer an der Administrationsseite anmelden kann." -#: contrib/auth/models.py:137 +#: contrib/auth/models.py:144 msgid "active" msgstr "Aktiv" -#: contrib/auth/models.py:137 -msgid "" -"Designates whether this user can log into the Django admin. Unselect this " -"instead of deleting accounts." -msgstr "" -"Legt fest, ob sich der Benutzer an der Administrationsseite anmelden kann. " -"Anstatt einen Benutzer zu löschen, kann er hier auch einfach deaktiviert " -"werden." +#: contrib/auth/models.py:144 +msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." +msgstr "Legt fest, ob dieser Benutzer aktiv ist. Kann deaktiviert werden, anstatt Benutzer zu löschen." -#: contrib/auth/models.py:138 +#: contrib/auth/models.py:145 msgid "superuser status" msgstr "Hauptadmin." -#: contrib/auth/models.py:138 -msgid "" -"Designates that this user has all permissions without explicitly assigning " -"them." -msgstr "" -"Legt fest, dass der Benutzer alle Berechtigungen hat, ohne diese einzeln " -"zuweisen zu müssen." +#: contrib/auth/models.py:145 +msgid "Designates that this user has all permissions without explicitly assigning them." +msgstr "Legt fest, dass der Benutzer alle Berechtigungen hat, ohne diese einzeln zuweisen zu müssen." -#: contrib/auth/models.py:139 +#: contrib/auth/models.py:146 msgid "last login" msgstr "Letzte Anmeldung" -#: contrib/auth/models.py:140 +#: contrib/auth/models.py:147 msgid "date joined" msgstr "Mitglied seit" -#: 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 "" -"Zusätzlich zu den manuell angelegten Rechten erhält dieser Benutzer auch " -"alle Rechte, die seine zugewiesenen Gruppen haben." +#: contrib/auth/models.py:149 +msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in." +msgstr "Zusätzlich zu den manuell angelegten Rechten erhält dieser Benutzer auch alle Rechte, die seine zugewiesenen Gruppen haben." -#: contrib/auth/models.py:143 +#: contrib/auth/models.py:150 msgid "user permissions" msgstr "Berechtigungen" -#: contrib/auth/models.py:147 +#: contrib/auth/models.py:154 msgid "user" msgstr "Benutzer" -#: contrib/auth/models.py:148 +#: contrib/auth/models.py:155 msgid "users" msgstr "Benutzer" -#: contrib/auth/models.py:154 +#: contrib/auth/models.py:161 msgid "Personal info" msgstr "Persönliche Infos" -#: contrib/auth/models.py:155 +#: contrib/auth/models.py:162 msgid "Permissions" msgstr "Berechtigungen" -#: contrib/auth/models.py:156 +#: contrib/auth/models.py:163 msgid "Important dates" msgstr "Wichtige Daten" -#: contrib/auth/models.py:157 +#: contrib/auth/models.py:164 msgid "Groups" msgstr "Gruppen" -#: contrib/auth/models.py:316 +#: contrib/auth/models.py:323 msgid "message" msgstr "Mitteilung" -#: contrib/auth/views.py:47 +#: contrib/auth/views.py:48 msgid "Logged out" msgstr "Abgemeldet" -#: contrib/comments/models.py:71 contrib/comments/models.py:176 +#: contrib/comments/models.py:71 +#: contrib/comments/models.py:176 msgid "object ID" msgstr "Objekt-ID" @@ -1278,7 +1208,8 @@ msgstr "Objekt-ID" msgid "headline" msgstr "Überschrift" -#: contrib/comments/models.py:73 contrib/comments/models.py:95 +#: contrib/comments/models.py:73 +#: contrib/comments/models.py:95 #: contrib/comments/models.py:177 msgid "comment" msgstr "Kommentar" @@ -1319,11 +1250,13 @@ msgstr "Bewertung #8" msgid "is valid rating" msgstr "ist eine Bewertung" -#: contrib/comments/models.py:87 contrib/comments/models.py:179 +#: contrib/comments/models.py:87 +#: contrib/comments/models.py:179 msgid "date/time submitted" msgstr "Datum/Zeit Erstellung" -#: contrib/comments/models.py:88 contrib/comments/models.py:180 +#: contrib/comments/models.py:88 +#: contrib/comments/models.py:180 msgid "is public" msgstr "ist öffentlich" @@ -1332,18 +1265,15 @@ msgid "is removed" msgstr "ist gelöscht" #: 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 "" -"Hier einen Haken setzen, wenn der Kommentar unpassend ist. Stattdessen wird " -"dann \"Dieser Kommentar wurde entfernt\" Meldung angezeigt." +msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead." +msgstr "Hier einen Haken setzen, wenn der Kommentar unpassend ist. Stattdessen wird dann \"Dieser Kommentar wurde entfernt\" Meldung angezeigt." #: contrib/comments/models.py:96 msgid "comments" msgstr "Kommentare" -#: contrib/comments/models.py:140 contrib/comments/models.py:222 +#: contrib/comments/models.py:140 +#: contrib/comments/models.py:222 msgid "Content object" msgstr "Inhaltsobjekt" @@ -1485,32 +1415,25 @@ msgid "Your name:" msgstr "Ihr Name:" #: contrib/comments/views/comments.py:28 -msgid "" -"This rating is required because you've entered at least one other rating." -msgstr "" -"Diese Abstimmung ist zwingend erforderlich, da Sie an mindestens einer " -"weiteren Abstimmung teilnehmen." +msgid "This rating is required because you've entered at least one other rating." +msgstr "Diese Abstimmung ist zwingend erforderlich, da Sie an mindestens einer weiteren Abstimmung teilnehmen." #: 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" +"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" +"This comment was posted by a user who has posted fewer than %(count)s comments:\n" "\n" "%(text)s" msgstr[0] "" -"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s " -"Kommentar:\n" +"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s Kommentar:\n" "\n" "%(text)s" msgstr[1] "" -"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s " -"Kommentaren:\n" +"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s Kommentaren:\n" "\n" "%(text)s" @@ -1538,23 +1461,17 @@ msgstr "Eines oder mehrere der erforderlichen Felder fehlen" #: contrib/comments/views/comments.py:198 #: contrib/comments/views/comments.py:289 msgid "Somebody tampered with the comment form (security violation)" -msgstr "" -"Jemand hat mit dem Kommentarformular herumgespielt (Sicherheitsverletzung)" +msgstr "Jemand hat mit dem Kommentarformular herumgespielt (Sicherheitsverletzung)" #: 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 "" -"Das Kommentarformular hatte einen falschen 'target' Parameter -- die Objekt-" -"ID ist ungültig." +msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid" +msgstr "Das Kommentarformular hatte einen falschen 'target' Parameter -- die Objekt-ID ist ungültig." #: contrib/comments/views/comments.py:259 #: contrib/comments/views/comments.py:324 msgid "The comment form didn't provide either 'preview' or 'post'" -msgstr "" -"Das Kommentarformular wurde nicht mit 'preview' oder 'post' abgeschickt" +msgstr "Das Kommentarformular wurde nicht mit 'preview' oder 'post' abgeschickt" #: contrib/comments/views/karma.py:21 msgid "Anonymous users cannot vote" @@ -1580,54 +1497,50 @@ msgstr "Inhaltstyp" msgid "content types" msgstr "Inhaltstypen" -#: contrib/flatpages/models.py:8 -msgid "" -"Example: '/about/contact/'. Make sure to have leading and trailing slashes." -msgstr "" -"Beispiel: '/about/contact/'. Wichtig: Am Anfang und Ende muss ein / stehen." - #: contrib/flatpages/models.py:9 +msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "Beispiel: '/about/contact/'. Wichtig: Am Anfang und Ende muss ein / stehen." + +#: contrib/flatpages/models.py:10 msgid "title" msgstr "Titel" -#: contrib/flatpages/models.py:10 +#: contrib/flatpages/models.py:11 msgid "content" msgstr "Inhalt" -#: contrib/flatpages/models.py:11 +#: contrib/flatpages/models.py:12 msgid "enable comments" msgstr "Kommentare aktivieren" -#: contrib/flatpages/models.py:12 +#: contrib/flatpages/models.py:13 msgid "template name" msgstr "Name der Vorlage" -#: contrib/flatpages/models.py:13 -msgid "" -"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " -"will use 'flatpages/default.html'." -msgstr "" -"Beispiel: 'flatpages/contact_page.html'. Wenn dieses Feld nicht gefüllt ist, " -"wird 'flatpages/default.html' als Standard gewählt." - #: contrib/flatpages/models.py:14 +msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'." +msgstr "Beispiel: 'flatpages/contact_page.html'. Wenn dieses Feld nicht gefüllt ist, wird 'flatpages/default.html' als Standard gewählt." + +#: contrib/flatpages/models.py:15 msgid "registration required" msgstr "Registrierung erforderlich" -#: contrib/flatpages/models.py:14 +#: contrib/flatpages/models.py:15 msgid "If this is checked, only logged-in users will be able to view the page." -msgstr "" -"Wenn hier ein Haken gesetzt ist, können nur angemeldete Benutzer diese Seite " -"sehen." +msgstr "Wenn hier ein Haken gesetzt ist, können nur angemeldete Benutzer diese Seite sehen." -#: contrib/flatpages/models.py:18 +#: contrib/flatpages/models.py:20 msgid "flat page" msgstr "Webseite" -#: contrib/flatpages/models.py:19 +#: contrib/flatpages/models.py:21 msgid "flat pages" msgstr "Webseiten" +#: contrib/flatpages/models.py:27 +msgid "Advanced options" +msgstr "Erweiterte Optionen" + #: contrib/humanize/templatetags/humanize.py:19 msgid "th" msgstr "." @@ -1714,31 +1627,26 @@ msgid "yesterday" msgstr "gestern" #: contrib/localflavor/ar/forms.py:27 -#, fuzzy msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" -"Bitte eine gültige Postleitzahl im Format NNNN oder ANNNNAAA eingeben." +msgstr "Bitte eine gültige Postleitzahl im Format NNNN oder ANNNNAAA eingeben." -#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96 -#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23 +#: contrib/localflavor/ar/forms.py:49 +#: contrib/localflavor/br/forms.py:96 +#: contrib/localflavor/br/forms.py:135 +#: contrib/localflavor/pe/forms.py:23 #: contrib/localflavor/pe/forms.py:51 -#, fuzzy msgid "This field requires only numbers." msgstr "Dieses Feld darf nur Ziffern enthalten." #: contrib/localflavor/ar/forms.py:50 -#, fuzzy msgid "This field requires 7 or 8 digits." msgstr "Dieses Feld benötigt 7 oder 8 Ziffern." #: contrib/localflavor/ar/forms.py:79 -#, fuzzy msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" -"Bitte eine gültige CUIT im Format XX-XXXXXXXX-X oder XXXXXXXXXXXX eingeben." +msgstr "Bitte eine gültige CUIT im Format XX-XXXXXXXX-X oder XXXXXXXXXXXX eingeben." #: contrib/localflavor/ar/forms.py:80 -#, fuzzy msgid "Invalid CUIT." msgstr "Ungültige CUIT." @@ -1755,10 +1663,7 @@ msgid "Phone numbers must be in XX-XXXX-XXXX format." msgstr "Telefonnummern müssen das Format XX-XXXX-XXXX haben." #: contrib/localflavor/br/forms.py:58 -#, fuzzy -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." +msgid "Select a valid brazilian state. That state is not one of the available states." msgstr "Bitte einen gültigen brasilianischen Bundesstaat auswählen." #: contrib/localflavor/br/forms.py:94 @@ -1766,7 +1671,6 @@ msgid "Invalid CPF number." msgstr "Ungültige CPF-Nummer." #: contrib/localflavor/br/forms.py:95 -#, fuzzy msgid "This field requires at most 11 digits or 14 characters." msgstr "Dieses Feld benötigt mindestens 11 Ziffern oder 14 Zeichen." @@ -1775,21 +1679,16 @@ msgid "Invalid CNPJ number." msgstr "Ungültige CNPJ-Nummer." #: contrib/localflavor/br/forms.py:136 -#, fuzzy msgid "This field requires at least 14 digits" msgstr "Dieses Feld benötigt mindestens 14 Ziffern." #: contrib/localflavor/ca/forms.py:17 -#, fuzzy msgid "Enter a postal code in the format XXX XXX." -msgstr "Bitte eine gültige Postleitzahl im Format XXXXX eingeben." +msgstr "Bitte eine gültige Postleitzahl im Format XXX XXX eingeben." #: contrib/localflavor/ca/forms.py:88 -#, fuzzy msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Bitte eine gültige kanadische Sozialversicherungsnummer im Format XXX-" -"XXX-XXX eingeben." +msgstr "Bitte eine gültige kanadische Sozialversicherungsnummer im Format XXX-XXX-XXX eingeben." #: contrib/localflavor/ch/ch_states.py:5 msgid "Aargau" @@ -1812,7 +1711,6 @@ msgid "Basel-Land" msgstr "" #: contrib/localflavor/ch/ch_states.py:10 -#, fuzzy msgid "Berne" msgstr "Bern" @@ -1825,22 +1723,20 @@ msgid "Geneva" msgstr "Genf" #: contrib/localflavor/ch/ch_states.py:13 -#, fuzzy msgid "Glarus" -msgstr "Gruppen" +msgstr "" #: contrib/localflavor/ch/ch_states.py:14 msgid "Graubuenden" -msgstr "" +msgstr "Graubünden" #: contrib/localflavor/ch/ch_states.py:15 msgid "Jura" msgstr "" #: contrib/localflavor/ch/ch_states.py:16 -#, fuzzy msgid "Lucerne" -msgstr "Benutzername" +msgstr "Luzern" #: contrib/localflavor/ch/ch_states.py:17 msgid "Neuchatel" @@ -1871,7 +1767,6 @@ msgid "St. Gallen" msgstr "" #: contrib/localflavor/ch/ch_states.py:24 -#, fuzzy msgid "Thurgau" msgstr "" @@ -1880,7 +1775,6 @@ msgid "Ticino" msgstr "" #: contrib/localflavor/ch/ch_states.py:26 -#, fuzzy msgid "Uri" msgstr "" @@ -1893,41 +1787,33 @@ msgid "Vaud" msgstr "" #: contrib/localflavor/ch/ch_states.py:29 -#, fuzzy msgid "Zug" msgstr "" #: contrib/localflavor/ch/ch_states.py:30 -#, fuzzy msgid "Zurich" msgstr "Zürich" -#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12 +#: contrib/localflavor/ch/forms.py:16 +#: contrib/localflavor/no/forms.py:12 msgid "Enter a zip code in the format XXXX." msgstr "Bitte eine gültige Postleitzahl im Format XXXX eingeben." #: contrib/localflavor/ch/forms.py:64 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Bitte eine gültige Schweizer Identifikations- oder Reisepassnummer im Format" -"X1234567<0 oder 1234567890 eingeben." +msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format." +msgstr "Bitte eine gültige Schweizer Identifikations- oder Reisepassnummer im FormatX1234567<0 oder 1234567890 eingeben." #: contrib/localflavor/cl/forms.py:29 -#, fuzzy msgid "Enter a valid Chilean RUT." -msgstr "Bitte einen gültige chilenische RUT eingeben." +msgstr "Bitte eine gültige chilenische RUT eingeben." #: contrib/localflavor/cl/forms.py:30 -#, fuzzy msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." msgstr "Bitte eine chilenische RUT im Format XX.XXX.XXX-X eingeben." #: contrib/localflavor/cl/forms.py:31 -#, fuzzy msgid "The Chilean RUT is not valid." -msgstr "Dieses Feld ist ungültig." +msgstr "Diese chilenische RUT ist ungültig." #: contrib/localflavor/de/de_states.py:5 msgid "Baden-Wuerttemberg" @@ -1993,18 +1879,15 @@ msgstr "Schleswig-Holstein" msgid "Thuringia" msgstr "Thüringen" -#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12 +#: 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 "Bitte eine gültige Postleitzahl im Format XXXXX eingeben." #: contrib/localflavor/de/forms.py:41 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Bitte eine gültige deutsche Personalausweisnummer im Format XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X eingeben." +msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format." +msgstr "Bitte eine gültige deutsche Personalausweisnummer im Format XXXXXXXXXXX-XXXXXXX-XXXXXXX-X eingeben." #: contrib/localflavor/es/es_provinces.py:5 msgid "Arava" @@ -2023,7 +1906,6 @@ msgid "Almeria" msgstr "" #: contrib/localflavor/es/es_provinces.py:9 -#, fuzzy msgid "Avila" msgstr "" @@ -2036,7 +1918,6 @@ msgid "Illes Balears" msgstr "" #: contrib/localflavor/es/es_provinces.py:12 -#, fuzzy msgid "Barcelona" msgstr "" @@ -2077,7 +1958,6 @@ msgid "Girona" msgstr "" #: contrib/localflavor/es/es_provinces.py:22 -#, fuzzy msgid "Granada" msgstr "" @@ -2094,17 +1974,14 @@ msgid "Huelva" msgstr "" #: contrib/localflavor/es/es_provinces.py:26 -#, fuzzy msgid "Huesca" msgstr "" #: contrib/localflavor/es/es_provinces.py:27 -#, fuzzy msgid "Jaen" msgstr "" #: contrib/localflavor/es/es_provinces.py:28 -#, fuzzy msgid "Leon" msgstr "" @@ -2147,7 +2024,6 @@ msgid "Asturias" msgstr "" #: contrib/localflavor/es/es_provinces.py:38 -#, fuzzy msgid "Palencia" msgstr "" @@ -2169,12 +2045,10 @@ msgstr "" #: contrib/localflavor/es/es_provinces.py:43 #: contrib/localflavor/es/es_regions.py:11 -#, fuzzy msgid "Cantabria" msgstr "" #: contrib/localflavor/es/es_provinces.py:44 -#, fuzzy msgid "Segovia" msgstr "" @@ -2183,7 +2057,6 @@ msgid "Seville" msgstr "" #: contrib/localflavor/es/es_provinces.py:46 -#, fuzzy msgid "Soria" msgstr "" @@ -2192,7 +2065,6 @@ msgid "Tarragona" msgstr "" #: contrib/localflavor/es/es_provinces.py:48 -#, fuzzy msgid "Teruel" msgstr "" @@ -2201,7 +2073,6 @@ msgid "Toledo" msgstr "" #: contrib/localflavor/es/es_provinces.py:50 -#, fuzzy msgid "Valencia" msgstr "" @@ -2250,7 +2121,6 @@ msgid "Basque Country" msgstr "" #: contrib/localflavor/es/es_regions.py:10 -#, fuzzy msgid "Canary Islands" msgstr "" @@ -2263,7 +2133,6 @@ msgid "Castile and Leon" msgstr "" #: contrib/localflavor/es/es_regions.py:14 -#, fuzzy msgid "Catalonia" msgstr "" @@ -2272,7 +2141,6 @@ msgid "Extremadura" msgstr "" #: contrib/localflavor/es/es_regions.py:16 -#, fuzzy msgid "Galicia" msgstr "Galicien" @@ -2289,27 +2157,18 @@ msgid "Valencian Community" msgstr "" #: contrib/localflavor/es/forms.py:19 -#, fuzzy msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" -"Bitte eine gültige Postleitzahl im Format 01XXX bis 52XXX eingeben." +msgstr "Bitte eine gültige Postleitzahl im Format 01XXX bis 52XXX eingeben." #: contrib/localflavor/es/forms.py:39 -#, fuzzy -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Bitte eine gültige Telefonnummer in einem der folgenden Formate eingeben " -"6XXXXXXXX, 8XXXXXXXX oder 9XXXXXXXX." +msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX." +msgstr "Bitte eine gültige Telefonnummer in einem der folgenden Formate eingeben 6XXXXXXXX, 8XXXXXXXX oder 9XXXXXXXX." #: contrib/localflavor/es/forms.py:66 -#, fuzzy msgid "Please enter a valid NIF, NIE, or CIF." msgstr "Bitte eine gültige NIF, NIE oder CIF eingeben." #: contrib/localflavor/es/forms.py:67 -#, fuzzy msgid "Please enter a valid NIF or NIE." msgstr "Bitte eine gültige NIF oder NIE eingeben." @@ -2326,11 +2185,8 @@ msgid "Invalid checksum for CIF." msgstr "Ungültige Prüfsumme für CIF." #: contrib/localflavor/es/forms.py:142 -#, fuzzy -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Bitte eine gültige Kontonummer im Format XXXX-XXXX-XX-XXXXXXXXXX eingeben." +msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." +msgstr "Bitte eine gültige Kontonummer im Format XXXX-XXXX-XX-XXXXXXXXXX eingeben." #: contrib/localflavor/es/forms.py:143 msgid "Invalid checksum for bank account number." @@ -2341,41 +2197,32 @@ msgid "Enter a valid Finnish social security number." msgstr "Bitte eine gültige finnische Sozialversicherungsnummer eingeben." #: contrib/localflavor/in_/forms.py:14 -#, fuzzy msgid "Enter a zip code in the format XXXXXXX." msgstr "Bitte eine gültige Postleitzahl im Format XXXXXXX eingeben." #: contrib/localflavor/is_/forms.py:17 -#, fuzzy -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Bitte eine gültige isländische Identifikationsnummer im Format XXXXXX-XXXX " -"eingeben." +msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +msgstr "Bitte eine gültige isländische Identifikationsnummer im Format XXXXXX-XXXX eingeben." #: contrib/localflavor/is_/forms.py:18 msgid "The Icelandic identification number is not valid." msgstr "Die isländische Identifikationsnummer ist nicht gültig." #: contrib/localflavor/it/forms.py:14 -#, fuzzy msgid "Enter a valid zip code." -msgstr "Bitte eine Postleitzahl eingeben." +msgstr "Bitte eine gültige Postleitzahl eingeben." #: contrib/localflavor/it/forms.py:43 -#, fuzzy msgid "Enter a valid Social Security number." msgstr "Bitte eine gültige Sozialversicherungsnummer eingeben." #: contrib/localflavor/it/forms.py:68 -#, fuzzy msgid "Enter a valid VAT number." msgstr "Bitte eine gültige Umsatzsteuernummer eingeben." #: contrib/localflavor/jp/forms.py:17 msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" -"Bitte eine gültige Postleitzahl im Format XXXXXXX oder XXX-XXXX eingeben." +msgstr "Bitte eine gültige Postleitzahl im Format XXXXXXX oder XXX-XXXX eingeben." #: contrib/localflavor/jp/jp_prefectures.py:4 msgid "Hokkaido" @@ -2578,7 +2425,6 @@ msgid "Baja California Sur" msgstr "" #: contrib/localflavor/mx/mx_states.py:15 -#, fuzzy msgid "Campeche" msgstr "" @@ -2607,7 +2453,6 @@ msgid "Durango" msgstr "" #: contrib/localflavor/mx/mx_states.py:22 -#, fuzzy msgid "Guerrero" msgstr "" @@ -2660,7 +2505,6 @@ msgid "Quintana Roo" msgstr "" #: contrib/localflavor/mx/mx_states.py:35 -#, fuzzy msgid "Sinaloa" msgstr "" @@ -2697,22 +2541,18 @@ msgid "Zacatecas" msgstr "" #: contrib/localflavor/nl/forms.py:21 -#, fuzzy msgid "Enter a valid postal code" msgstr "Bitte eine gültige Postleitzahl eingeben." #: contrib/localflavor/nl/forms.py:52 -#, fuzzy msgid "Enter a valid phone number" msgstr "Bitte eine gültige Telefonnummer eingeben." #: contrib/localflavor/nl/forms.py:78 -#, fuzzy msgid "Enter a valid SoFi number" msgstr "Bitte eine gültige SoFi-Nummer eingeben." #: contrib/localflavor/nl/nl_provinces.py:4 -#, fuzzy msgid "Drente" msgstr "" @@ -2725,17 +2565,14 @@ msgid "Friesland" msgstr "" #: contrib/localflavor/nl/nl_provinces.py:7 -#, fuzzy msgid "Gelderland" msgstr "" #: contrib/localflavor/nl/nl_provinces.py:8 -#, fuzzy msgid "Groningen" msgstr "" #: contrib/localflavor/nl/nl_provinces.py:9 -#, fuzzy msgid "Limburg" msgstr "" @@ -2752,12 +2589,10 @@ msgid "Overijssel" msgstr "" #: contrib/localflavor/nl/nl_provinces.py:13 -#, fuzzy msgid "Utrecht" msgstr "" #: contrib/localflavor/nl/nl_provinces.py:14 -#, fuzzy msgid "Zeeland" msgstr "" @@ -2770,12 +2605,10 @@ msgid "Enter a valid Norwegian social security number." msgstr "Bitte eine gültige norwegische Sozialversicherungsnummer eingeben." #: contrib/localflavor/pe/forms.py:24 -#, fuzzy msgid "This field requires 8 digits." msgstr "Dieses Feld benötigt 8 Zeichen." #: contrib/localflavor/pe/forms.py:52 -#, fuzzy msgid "This field requires 11 digits." msgstr "Dieses Feld benötigt 11 Zeichen." @@ -2788,12 +2621,8 @@ msgid "Wrong checksum for the National Identification Number." msgstr "Falsche Prüfsumme für die nationale Identifikationsnummer." #: contrib/localflavor/pl/forms.py:72 -#, fuzzy -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." -msgstr "" -"Bitte eine Steuernummer (NIP) im Format XXX-XXX-XX-XX oder XX-XX-XXX-XXX " -"eingeben." +msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." +msgstr "Bitte eine Steuernummer (NIP) im Format XXX-XXX-XX-XX oder XX-XX-XXX-XXX eingeben." #: contrib/localflavor/pl/forms.py:73 msgid "Wrong checksum for the Tax Number (NIP)." @@ -2801,21 +2630,17 @@ msgstr "Falsche Prüfsumme für die Steuernummer (NIP)." #: contrib/localflavor/pl/forms.py:112 msgid "National Business Register Number (REGON) consists of 7 or 9 digits." -msgstr "Nationale Geschäftsregistrierungsnummer (REGON) besteht aus 7 oder " -"9 Zeichen." +msgstr "Nationale Geschäftsregistrierungsnummer (REGON) besteht aus 7 oder 9 Zeichen." #: contrib/localflavor/pl/forms.py:113 msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Falsche Prüfsumme für die nationale Geschäftsregistrierungsnummer " -"(REGON)." +msgstr "Falsche Prüfsumme für die nationale Geschäftsregistrierungsnummer (REGON)." #: contrib/localflavor/pl/forms.py:156 -#, fuzzy msgid "Enter a postal code in the format XX-XXX." msgstr "Bitte eine gültige Postleitzahl im Format XX-XXX eingeben." #: contrib/localflavor/pl/pl_voivodeships.py:8 -#, fuzzy msgid "Lower Silesia" msgstr "" @@ -2844,7 +2669,6 @@ msgid "Masovia" msgstr "" #: contrib/localflavor/pl/pl_voivodeships.py:15 -#, fuzzy msgid "Opole" msgstr "" @@ -2857,12 +2681,10 @@ msgid "Podlasie" msgstr "" #: contrib/localflavor/pl/pl_voivodeships.py:18 -#, fuzzy msgid "Pomerania" msgstr "" #: contrib/localflavor/pl/pl_voivodeships.py:19 -#, fuzzy msgid "Silesia" msgstr "" @@ -2879,15 +2701,12 @@ msgid "Greater Poland" msgstr "" #: contrib/localflavor/pl/pl_voivodeships.py:23 -#, fuzzy msgid "West Pomerania" msgstr "" #: contrib/localflavor/sk/forms.py:30 -#, fuzzy msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" -"Bitte eine gültige Postleitzahl im Format XXXXX oder XXX XX eingeben." +msgstr "Bitte eine gültige Postleitzahl im Format XXXXX oder XXX XX eingeben." #: contrib/localflavor/sk/sk_districts.py:8 msgid "Banska Bystrica" @@ -2906,7 +2725,6 @@ msgid "Banovce nad Bebravou" msgstr "" #: contrib/localflavor/sk/sk_districts.py:12 -#, fuzzy msgid "Brezno" msgstr "" @@ -2951,12 +2769,10 @@ msgid "Dunajska Streda" msgstr "" #: contrib/localflavor/sk/sk_districts.py:23 -#, fuzzy msgid "Galanta" msgstr "" #: contrib/localflavor/sk/sk_districts.py:24 -#, fuzzy msgid "Gelnica" msgstr "" @@ -2977,7 +2793,6 @@ msgid "Kezmarok" msgstr "" #: contrib/localflavor/sk/sk_districts.py:29 -#, fuzzy msgid "Komarno" msgstr "" @@ -3026,12 +2841,10 @@ msgid "Lucenec" msgstr "" #: contrib/localflavor/sk/sk_districts.py:41 -#, fuzzy msgid "Malacky" msgstr "" #: contrib/localflavor/sk/sk_districts.py:42 -#, fuzzy msgid "Martin" msgstr "" @@ -3072,7 +2885,6 @@ msgid "Pezinok" msgstr "" #: contrib/localflavor/sk/sk_districts.py:52 -#, fuzzy msgid "Piestany" msgstr "" @@ -3117,7 +2929,6 @@ msgid "Ruzomberok" msgstr "" #: contrib/localflavor/sk/sk_districts.py:63 -#, fuzzy msgid "Sabinov" msgstr "" @@ -3126,17 +2937,14 @@ msgid "Senec" msgstr "" #: contrib/localflavor/sk/sk_districts.py:65 -#, fuzzy msgid "Senica" msgstr "" #: contrib/localflavor/sk/sk_districts.py:66 -#, fuzzy msgid "Skalica" msgstr "" #: contrib/localflavor/sk/sk_districts.py:67 -#, fuzzy msgid "Snina" msgstr "" @@ -3161,7 +2969,6 @@ msgid "Svidnik" msgstr "" #: contrib/localflavor/sk/sk_districts.py:73 -#, fuzzy msgid "Sala" msgstr "" @@ -3174,7 +2981,6 @@ msgid "Trebisov" msgstr "" #: contrib/localflavor/sk/sk_districts.py:76 -#, fuzzy msgid "Trencin" msgstr "" @@ -3251,7 +3057,6 @@ msgid "Zilina region" msgstr "" #: contrib/localflavor/uk/forms.py:21 -#, fuzzy msgid "Enter a valid postcode." msgstr "Bitte eine gültige Postleitzahl eingeben." @@ -3280,7 +3085,6 @@ msgid "Derbyshire" msgstr "" #: contrib/localflavor/uk/uk_regions.py:18 -#, fuzzy msgid "Devon" msgstr "" @@ -3321,7 +3125,6 @@ msgid "Hertfordshire" msgstr "" #: contrib/localflavor/uk/uk_regions.py:28 -#, fuzzy msgid "Kent" msgstr "" @@ -3386,9 +3189,8 @@ msgid "Suffolk" msgstr "" #: contrib/localflavor/uk/uk_regions.py:44 -#, fuzzy msgid "Surrey" -msgstr "Derzeit:" +msgstr "" #: contrib/localflavor/uk/uk_regions.py:45 msgid "Tyne and Wear" @@ -3475,7 +3277,6 @@ msgid "West Glamorgan" msgstr "" #: contrib/localflavor/uk/uk_regions.py:75 -#, fuzzy msgid "Borders" msgstr "" @@ -3488,12 +3289,10 @@ msgid "Dumfries and Galloway" msgstr "" #: contrib/localflavor/uk/uk_regions.py:78 -#, fuzzy msgid "Fife" msgstr "" #: contrib/localflavor/uk/uk_regions.py:79 -#, fuzzy msgid "Grampian" msgstr "" @@ -3502,7 +3301,6 @@ msgid "Highland" msgstr "" #: contrib/localflavor/uk/uk_regions.py:81 -#, fuzzy msgid "Lothian" msgstr "" @@ -3527,7 +3325,6 @@ msgid "Western Isles" msgstr "" #: contrib/localflavor/uk/uk_regions.py:90 -#, fuzzy msgid "England" msgstr "England" @@ -3536,48 +3333,38 @@ msgid "Northern Ireland" msgstr "Nordirland" #: contrib/localflavor/uk/uk_regions.py:92 -#, fuzzy msgid "Scotland" msgstr "Schottland" #: contrib/localflavor/uk/uk_regions.py:93 -#, fuzzy msgid "Wales" -msgstr "Wales" +msgstr "" #: contrib/localflavor/us/forms.py:16 msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" -"Bitte eine gültige Postleitzahl im Format XXXXX oder XXXXX-XXXX eingeben." +msgstr "Bitte eine gültige Postleitzahl im Format XXXXX oder XXXXX-XXXX eingeben." #: contrib/localflavor/us/forms.py:54 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Bitte eine gültige US-amerikanische Sozialversicherungsnummer im Format XXX-" -"XX-XXXX eingeben." +msgstr "Bitte eine gültige US-amerikanische Sozialversicherungsnummer im Format XXX-XX-XXXX eingeben." #: contrib/localflavor/za/forms.py:20 -#, fuzzy msgid "Enter a valid South African ID number" -msgstr "Bitte eine gültige südafrikanische Sozialversicherungsnummer eingeben." +msgstr "Bitte eine gültige südafrikanische Identifikationsnummer eingeben." #: contrib/localflavor/za/forms.py:54 -#, fuzzy msgid "Enter a valid South African postal code" msgstr "Bitte eine gültige südafrikanische Postleitzahl eingeben." #: contrib/localflavor/za/za_provinces.py:4 -#, fuzzy msgid "Eastern Cape" msgstr "" #: contrib/localflavor/za/za_provinces.py:5 -#, fuzzy msgid "Free State" msgstr "" #: contrib/localflavor/za/za_provinces.py:6 -#, fuzzy msgid "Gauteng" msgstr "" @@ -3598,12 +3385,10 @@ msgid "Northern Cape" msgstr "" #: contrib/localflavor/za/za_provinces.py:11 -#, fuzzy msgid "North West" msgstr "" #: contrib/localflavor/za/za_provinces.py:12 -#, fuzzy msgid "Western Cape" msgstr "" @@ -3612,24 +3397,16 @@ msgid "redirect from" msgstr "Umleitung von" #: contrib/redirects/models.py:8 -msgid "" -"This should be an absolute path, excluding the domain name. Example: '/" -"events/search/'." -msgstr "" -"Hier sollte ein absoluter Pfad stehen, ohne den Domainnamen. Beispiel: '/" -"events/search/'." +msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'." +msgstr "Hier sollte ein absoluter Pfad stehen, ohne den Domainnamen. Beispiel: '/events/search/'." #: contrib/redirects/models.py:9 msgid "redirect to" msgstr "Umleitung zu" #: contrib/redirects/models.py:10 -msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"'http://'." -msgstr "" -"Hier muss entweder ein absoluter Pfad oder eine komplette URL mit http:// am " -"Anfang stehen." +msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'." +msgstr "Hier muss entweder ein absoluter Pfad oder eine komplette URL mit http:// am Anfang stehen." #: contrib/redirects/models.py:13 msgid "redirect" @@ -3639,23 +3416,23 @@ msgstr "Umleitung" msgid "redirects" msgstr "Umleitungen" -#: contrib/sessions/models.py:41 +#: contrib/sessions/models.py:45 msgid "session key" msgstr "Sitzungs-ID" -#: contrib/sessions/models.py:42 +#: contrib/sessions/models.py:47 msgid "session data" msgstr "Sitzungsdaten" -#: contrib/sessions/models.py:43 +#: contrib/sessions/models.py:48 msgid "expire date" msgstr "Verfallsdatum" -#: contrib/sessions/models.py:48 +#: contrib/sessions/models.py:53 msgid "session" msgstr "Sitzung" -#: contrib/sessions/models.py:49 +#: contrib/sessions/models.py:54 msgid "sessions" msgstr "Sitzungen" @@ -3680,18 +3457,12 @@ msgid "This value must contain only letters, numbers and underscores." msgstr "Dieser Wert darf nur Buchstaben, Ziffern und Unterstriche enthalten." #: core/validators.py:76 -msgid "" -"This value must contain only letters, numbers, underscores, dashes or " -"slashes." -msgstr "" -"Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Schrägstriche " -"enthalten." +msgid "This value must contain only letters, numbers, underscores, dashes or slashes." +msgstr "Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Schrägstriche enthalten." #: core/validators.py:80 msgid "This value must contain only letters, numbers, underscores or hyphens." -msgstr "" -"Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Bindestriche " -"enthalten." +msgstr "Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Bindestriche enthalten." #: core/validators.py:84 msgid "Uppercase letters are not allowed here." @@ -3725,7 +3496,8 @@ msgstr "Nichtnumerische Zeichen sind hier nicht erlaubt." msgid "This value can't be comprised solely of digits." msgstr "Dieser Wert darf nicht nur aus Ziffern bestehen." -#: core/validators.py:128 newforms/fields.py:151 +#: core/validators.py:128 +#: newforms/fields.py:152 msgid "Enter a whole number." msgstr "Bitte eine ganze Zahl eingeben." @@ -3742,7 +3514,8 @@ msgstr "Das Jahr muss 1900 oder später sein." msgid "Invalid date: %s" msgstr "Ungültiges Datum: %s" -#: core/validators.py:156 db/models/fields/__init__.py:527 +#: core/validators.py:156 +#: db/models/fields/__init__.py:548 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Bitte ein gültiges Datum im Format JJJJ-MM-TT eingeben." @@ -3750,29 +3523,27 @@ msgstr "Bitte ein gültiges Datum im Format JJJJ-MM-TT eingeben." msgid "Enter a valid time in HH:MM format." msgstr "Bitte eine gültige Zeit im Format SS:MM eingeben." -#: core/validators.py:165 db/models/fields/__init__.py:604 +#: core/validators.py:165 +#: db/models/fields/__init__.py:625 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." -msgstr "" -"Bitte eine gültige Datums- und Zeitangabe im Format JJJJ-MM-TT SS:MM " -"eingeben." +msgstr "Bitte eine gültige Datums- und Zeitangabe im Format JJJJ-MM-TT SS:MM eingeben." -#: core/validators.py:170 newforms/fields.py:402 +#: core/validators.py:170 +#: newforms/fields.py:403 msgid "Enter a valid e-mail address." msgstr "Bitte eine gültige E-Mail-Adresse eingeben." -#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432 +#: core/validators.py:182 +#: core/validators.py:474 +#: newforms/fields.py:433 #: oldforms/__init__.py:687 msgid "No file was submitted. Check the encoding type on the form." -msgstr "" -"Es wurde keine Datei übermittelt. Eventuell ist das Formular-Encoding falsch." +msgstr "Es wurde keine Datei übermittelt. Eventuell ist das Formular-Encoding falsch." -#: 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 "" -"Bitte ein Bild hochladen. Die hochgeladene Datei ist kein Bild, oder ist " -"defekt." +#: core/validators.py:193 +#: newforms/fields.py:459 +msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." +msgstr "Bitte ein Bild hochladen. Die hochgeladene Datei ist kein Bild, oder ist defekt." #: core/validators.py:200 #, python-format @@ -3782,8 +3553,7 @@ msgstr "Die URL %s zeigt nicht auf ein gültiges Bild." #: core/validators.py:204 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." -msgstr "" -"Telefonnummern müssen das Format XXX-XXX-XXXX haben. \"%s\" ist ungültig." +msgstr "Telefonnummern müssen das Format XXX-XXX-XXXX haben. \"%s\" ist ungültig." #: core/validators.py:212 #, python-format @@ -3813,7 +3583,8 @@ msgstr "Ungültiges XML: %s" msgid "Invalid URL: %s" msgstr "Ungültige URL: %s" -#: core/validators.py:259 core/validators.py:261 +#: core/validators.py:259 +#: core/validators.py:261 #, python-format msgid "The URL %s is a broken link." msgstr "Die URL %s funktioniert nicht." @@ -3838,21 +3609,20 @@ msgstr "Dieses Feld muss zum Feld '%s' passen." msgid "Please enter something for at least one field." msgstr "Bitte mindestens eines der Felder ausfüllen." -#: core/validators.py:316 core/validators.py:327 +#: core/validators.py:316 +#: core/validators.py:327 msgid "Please enter both fields or leave them both empty." msgstr "Bitte entweder beide Felder ausfüllen, oder beide leer lassen." #: core/validators.py:335 #, python-format msgid "This field must be given if %(field)s is %(value)s" -msgstr "" -"Dieses Feld muss gefüllt sein, wenn Feld %(field)s den Wert %(value)s hat." +msgstr "Dieses Feld muss gefüllt sein, wenn Feld %(field)s den Wert %(value)s hat." #: core/validators.py:348 #, python-format msgid "This field must be given if %(field)s is not %(value)s" -msgstr "" -"Dieses Feld muss gefüllt sein, wenn Feld %(field)s nicht %(value)s ist." +msgstr "Dieses Feld muss gefüllt sein, wenn Feld %(field)s nicht %(value)s ist." #: core/validators.py:367 msgid "Duplicate values are not allowed." @@ -3885,33 +3655,23 @@ msgstr "Bitte eine gültige Dezimalzahl eingeben." #: 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." +msgid_plural "Please enter a valid decimal number with at most %s total digits." msgstr[0] "Bitte eine gültige Dezimalzahl mit maximal %s Ziffer eingeben." msgstr[1] "Bitte eine gültige Dezimalzahl mit maximal %s Ziffern eingeben." #: 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] "" -"Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffer " -"eingeben." -msgstr[1] "" -"Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffern " -"eingeben." +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] "Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffer eingeben." +msgstr[1] "Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffern eingeben." #: 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] "" -"Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstelle eingeben." -msgstr[1] "" -"Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstellen eingeben." +msgid_plural "Please enter a valid decimal number with at most %s decimal places." +msgstr[0] "Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstelle eingeben." +msgstr[1] "Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstellen eingeben." #: core/validators.py:458 msgid "Please enter a valid floating point number." @@ -3920,15 +3680,12 @@ msgstr "Bitte eine gültige Dezimalzahl eingeben." #: core/validators.py:467 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." -msgstr "" -"Bitte sicherstellen, dass die hochgeladene Datei mindestens %s Bytes groß " -"ist." +msgstr "Bitte sicherstellen, dass die hochgeladene Datei mindestens %s Bytes groß ist." #: core/validators.py:468 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." -msgstr "" -"Bitte sicherstellen, dass die hochgeladene Datei maximal %s Bytes groß ist." +msgstr "Bitte sicherstellen, dass die hochgeladene Datei maximal %s Bytes groß ist." #: core/validators.py:485 msgid "The format for this field is wrong." @@ -3945,226 +3702,202 @@ msgstr "Konnte nichts von %s empfangen." #: core/validators.py:539 #, python-format -msgid "" -"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." +msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "Die URL %(url)s lieferte den falschen 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 "" -"Bitte das ungeschlossene %(tag)s Tag in Zeile %(line)s schließen. Die Zeile " -"beginnt mit \"%(start)s\"." +msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)" +msgstr "Bitte das ungeschlossene %(tag)s Tag in Zeile %(line)s schließen. Die Zeile beginnt mit \"%(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 "" -"In Zeile %(line)s ist Text, der nicht in dem Kontext erlaubt ist. Die Zeile " -"beginnt mit \"%(start)s\"." +msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)" +msgstr "In Zeile %(line)s ist Text, der nicht in dem Kontext erlaubt ist. Die Zeile beginnt mit \"%(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 "" -"Das Attribute %(attr)s in Zeile %(line)s ist ungültig. Die Zeile beginnt mit " -"\"%(start)s\"." +msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)" +msgstr "Das Attribute %(attr)s in Zeile %(line)s ist ungültig. Die Zeile beginnt mit \"%(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> in Zeile %(line)s ist ungültig. Die Zeile beginnt mit \"%(start)s" -"\"." +msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)" +msgstr "<%(tag)s> in Zeile %(line)s ist ungültig. Die Zeile beginnt mit \"%(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 "" -"Ein Tag in Zeile %(line)s hat eines oder mehrere Pflichtattribute nicht. Die " -"Zeile beginnt mit \"%(start)s\"." +msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)" +msgstr "Ein Tag in Zeile %(line)s hat eines oder mehrere Pflichtattribute nicht. Die Zeile beginnt mit \"%(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 "" -"Das Attribut %(attr)s in Zeile %(line)s hat einen ungültigen Wert. Die Zeile " -"beginnt mit \"%(start)s\"." +msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)" +msgstr "Das Attribut %(attr)s in Zeile %(line)s hat einen ungültigen Wert. Die Zeile beginnt mit \"%(start)s\"." #: db/models/manipulators.py:308 #, python-format msgid "%(object)s with this %(type)s already exists for the given %(field)s." -msgstr "" -"Ein '%(object)s' in dieser '%(type)s' existiert bereits für dieses '%(field)" -"s'." +msgstr "Ein '%(object)s' in dieser '%(type)s' existiert bereits für dieses '%(field)s'." -#: db/models/fields/__init__.py:52 +#: db/models/fields/__init__.py:51 #, python-format msgid "%(optname)s with this %(fieldname)s already exists." msgstr "Ein '%(optname)s' mit diesem '%(fieldname)s' existiert bereits." -#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:327 -#: db/models/fields/__init__.py:759 db/models/fields/__init__.py:770 -#: newforms/fields.py:45 oldforms/__init__.py:374 +#: db/models/fields/__init__.py:176 +#: db/models/fields/__init__.py:348 +#: db/models/fields/__init__.py:780 +#: db/models/fields/__init__.py:791 +#: newforms/fields.py:46 +#: oldforms/__init__.py:374 msgid "This field is required." msgstr "Dieses Feld ist zwingend erforderlich." -#: db/models/fields/__init__.py:427 +#: db/models/fields/__init__.py:448 msgid "This value must be an integer." msgstr "Dieser Wert muss eine Ganzzahl sein." -#: db/models/fields/__init__.py:466 +#: db/models/fields/__init__.py:487 msgid "This value must be either True or False." msgstr "Dieser Wert muss wahr oder falsch sein." -#: db/models/fields/__init__.py:490 +#: db/models/fields/__init__.py:511 msgid "This field cannot be null." msgstr "Dieses Feld darf nicht leer sein." -#: db/models/fields/__init__.py:668 +#: db/models/fields/__init__.py:689 msgid "This value must be a decimal number." msgstr "Dieser Wert muss eine Ganzzahl sein." -#: db/models/fields/__init__.py:779 +#: db/models/fields/__init__.py:800 msgid "Enter a valid filename." msgstr "Bitte einen gültigen Dateinamen eingeben." -#: db/models/fields/__init__.py:950 +#: db/models/fields/__init__.py:981 msgid "This value must be either None, True or False." msgstr "Dieser Wert muss None, True oder False sein." -#: db/models/fields/related.py:93 +#: db/models/fields/related.py:94 #, python-format msgid "Please enter a valid %s." msgstr "Bitte ein gültiges '%s' eingeben." -#: db/models/fields/related.py:694 +#: db/models/fields/related.py:746 msgid "Separate multiple IDs with commas." msgstr "Mehrere IDs können mit Komma getrennt werden." -#: db/models/fields/related.py:696 -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" -"Um mehr als eine Selektion zu treffen, \"Strg\", oder auf dem Mac \"Command" -"\", beim Klicken gedrückt halten." +#: db/models/fields/related.py:748 +msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "Um mehr als eine Selektion zu treffen, \"Strg\", oder auf dem Mac \"Command\", beim Klicken gedrückt halten." -#: db/models/fields/related.py:743 +#: db/models/fields/related.py:795 #, 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] "" -"Bitte gültige IDs für %(self)s eingeben. Der Wert %(value)r ist ungültig." -msgstr[1] "" -"Bitte gültige IDs für %(self)s eingeben. Die Werte %(value)r sind ungültig." +msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid." +msgstr[0] "Bitte gültige IDs für %(self)s eingeben. Der Wert %(value)r ist ungültig." +msgstr[1] "Bitte gültige IDs für %(self)s eingeben. Die Werte %(value)r sind ungültig." -#: newforms/fields.py:46 +#: newforms/fields.py:47 msgid "Enter a valid value." msgstr "Bitte einen gültigen Wert eingeben." -#: newforms/fields.py:123 -#, python-format -msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." -msgstr "" -"Bitte sicherstellen, dass der Text maximal %(max)d Zeichen hat. (Er hat %" -"(length)d)." - #: newforms/fields.py:124 #, python-format -msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." -msgstr "" -"Bitte sicherstellen, dass der Text wenigstens %(min)d Zeichen hat. (Er hat %" -"(length)d.)" +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "Bitte sicherstellen, dass der Text maximal %(max)d Zeichen hat. (Er hat %(length)d)." -#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210 +#: newforms/fields.py:125 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "Bitte sicherstellen, dass der Text wenigstens %(min)d Zeichen hat. (Er hat %(length)d.)" + +#: newforms/fields.py:153 +#: newforms/fields.py:182 +#: newforms/fields.py:211 #, python-format msgid "Ensure this value is less than or equal to %s." msgstr "Dieser Wert darf maximal %s sein." -#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211 +#: newforms/fields.py:154 +#: newforms/fields.py:183 +#: newforms/fields.py:212 #, python-format msgid "Ensure this value is greater than or equal to %s." msgstr "Dieser Wert muss größer oder gleich %s sein." -#: newforms/fields.py:180 newforms/fields.py:209 +#: newforms/fields.py:181 +#: newforms/fields.py:210 msgid "Enter a number." msgstr "Bitte eine Zahl eingeben." -#: newforms/fields.py:212 +#: newforms/fields.py:213 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Bitte geben Sie nicht mehr als insgesamt %s Ziffern ein." -#: newforms/fields.py:213 +#: newforms/fields.py:214 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Bitte geben Sie nicht mehr als %s Dezimalstellen ein." -#: newforms/fields.py:214 +#: newforms/fields.py:215 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Bitte geben Sie nicht mehr als %s Ziffern vor dem Komma ein." -#: newforms/fields.py:262 newforms/fields.py:723 +#: newforms/fields.py:263 +#: newforms/fields.py:750 msgid "Enter a valid date." msgstr "Bitte ein gültiges Datum eingeben." -#: newforms/fields.py:295 newforms/fields.py:724 +#: newforms/fields.py:296 +#: newforms/fields.py:751 msgid "Enter a valid time." msgstr "Bitte eine gültige Uhrzeit eingeben." -#: newforms/fields.py:334 +#: newforms/fields.py:335 msgid "Enter a valid date/time." msgstr "Bitte gültiges Datum und Uhrzeit eingeben." -#: newforms/fields.py:433 +#: newforms/fields.py:434 msgid "No file was submitted." msgstr "Es wurde keine Datei übertragen." -#: newforms/fields.py:434 oldforms/__init__.py:689 +#: newforms/fields.py:435 +#: oldforms/__init__.py:689 msgid "The submitted file is empty." msgstr "Die ausgewählte Datei ist leer." -#: newforms/fields.py:496 +#: newforms/fields.py:497 msgid "Enter a valid URL." msgstr "Bitte eine gültige Adresse eingeben." -#: newforms/fields.py:497 +#: newforms/fields.py:498 msgid "This URL appears to be a broken link." msgstr "Diese Adresse scheint nicht gültig zu sein." -#: newforms/fields.py:559 newforms/models.py:300 +#: newforms/fields.py:559 +#: newforms/models.py:305 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "Bitte eine gültige Auswahl treffen." #: newforms/fields.py:598 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." -msgstr "" -"Bitte eine gültige Auswahl treffen. %(value)s ist keine gültige Auswahl." +msgstr "Bitte eine gültige Auswahl treffen. %(value)s ist keine gültige Auswahl." -#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:360 +#: newforms/fields.py:599 +#: newforms/fields.py:661 +#: newforms/models.py:372 msgid "Enter a list of values." msgstr "Eine Liste mit Werten eingeben." -#: newforms/fields.py:752 +#: newforms/fields.py:779 msgid "Enter a valid IPv4 address." msgstr "Bitte eine gültige IPv4-Adresse eingeben." -#: newforms/models.py:361 +#: newforms/models.py:373 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Bitte eine gültige Auswahl treffen. %s ist keine gültige Auswahl." @@ -4180,11 +3913,12 @@ msgstr[1] "Bitte sicherstellen, dass der Text weniger als %s Zeichen hat." msgid "Line breaks are not allowed here." msgstr "Zeilenumbrüche sind hier nicht erlaubt." -#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625 +#: 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 "" -"Bitte eine gültige Auswahl treffen; '%(data)s' ist nicht in %(choices)s." +msgstr "Bitte eine gültige Auswahl treffen; '%(data)s' ist nicht in %(choices)s." #: oldforms/__init__.py:745 msgid "Enter a whole number between -32,768 and 32,767." @@ -4198,28 +3932,28 @@ msgstr "Bitte eine ganze, positive Zahl eingeben." msgid "Enter a whole number between 0 and 32,767." msgstr "Bitte eine ganze Zahl zwischen 0 und 32.767 eingeben." -#: template/defaultfilters.py:695 +#: template/defaultfilters.py:698 msgid "yes,no,maybe" msgstr "Ja,Nein,Vielleicht" -#: template/defaultfilters.py:726 +#: template/defaultfilters.py:729 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d Byte" msgstr[1] "%(size)d Bytes" -#: template/defaultfilters.py:728 +#: template/defaultfilters.py:731 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:730 +#: template/defaultfilters.py:733 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:731 +#: template/defaultfilters.py:734 #, python-format msgid "%.1f GB" msgstr "%.1f GB" @@ -4312,23 +4046,28 @@ msgstr "Januar" msgid "February" msgstr "Februar" -#: utils/dates.py:18 utils/dates.py:31 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "March" msgstr "März" -#: utils/dates.py:18 utils/dates.py:31 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "April" msgstr "April" -#: utils/dates.py:18 utils/dates.py:31 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "May" msgstr "Mai" -#: utils/dates.py:18 utils/dates.py:31 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "June" msgstr "Juni" -#: utils/dates.py:19 utils/dates.py:31 +#: utils/dates.py:19 +#: utils/dates.py:31 msgid "July" msgstr "Juli" @@ -4516,3 +4255,4 @@ msgstr "%(verbose_name)s wurde erfolgreich aktualisiert." #, python-format msgid "The %(verbose_name)s was deleted." msgstr "%(verbose_name)s wurde gelöscht" + diff --git a/django/conf/locale/de/LC_MESSAGES/djangojs.mo b/django/conf/locale/de/LC_MESSAGES/djangojs.mo index 55f527318a5d5617e177d1b32b80ef3d208e88b4..fcf656818da4ce71d8e52b2300d11fab9470c5e3 100644 GIT binary patch delta 373 zcmX}my-UMD7zXgSHqlyZTR}k);RJD!NE)d~ETTgf&1OcI(_Cuwyh1+E%|%3TQ6h*q zy6EEK=Hw=>or{zIg1b+m2ru{JdAWPIo61Aws((6LAUZD+=|uFX5skoSScR{!1V7*~ z?7<<}hjsV`Yw-I|9VMuu30Q_xa2w9StoH;C!ZV1WOP$v8;%lT)Ebie9e1ciQJ6wf5 zh@mQ8X9eRpvX4x^+!dMw^%cWhHmoIPnRe4!Fs<~nINAPRHf$5ihG~`^9>sb1uwWzd_M7vTbFCEh_ h<`IthzGQJId|xP*D35K)VDFIe#HV(key_gi?hloGN>=~? delta 358 zcmXZWze~eF6bJBEo3vV^7IAPqCkIK%RWmddvEYxz&En(|?KLUJ6E0UOI*5x1E<#)~ zIXE~tx`|t6adHz!{{&b4rWGFV!}sxccMsN`b^CcSTOhhB5}8Dl8bp)u9!|q2I1XRn z1k7L=zQHQ|fHUy>-yeumRKl@*zXEsR9L(>Aumm+k(YZ-$!^KOaDGY8PgDD(744cRq zMA0u=e!xV_KVm(n1$V6K+PrQ%4aT|W@+F5SU&Z;Y(Qt+FWv`wO9jCJ6$J%ZyU&fKI zPn5?tdg_R6#)n}f6kF{e)x;>R2gj#1DRj~__LE0LmG^`?5GqI(%\n" +"POT-Creation-Date: 2008-06-23 20:52+0200\n" +"PO-Revision-Date: 2008-06-23 21:02+0100\n" +"Last-Translator: Jannis Leidel \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language-Team: \n" #: contrib/admin/media/js/SelectFilter2.js:33 #, perl-format @@ -38,82 +39,78 @@ msgstr "Ausgewählte %s" #: contrib/admin/media/js/SelectFilter2.js:54 msgid "Select your choice(s) and click " -msgstr "Gewünschte Auswahl treffen und " +msgstr "Auswahl treffen und Klick auf" #: contrib/admin/media/js/SelectFilter2.js:59 msgid "Clear all" msgstr "Alles abwählen" -#: contrib/admin/media/js/dateparse.js:26 #: contrib/admin/media/js/calendar.js:24 -msgid "" -"January February March April May June July August September October November " -"December" -msgstr "" -"Januar Februar März April Mai Juni Juli August September Oktober November " -"Dezember" - -#: contrib/admin/media/js/dateparse.js:27 -msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" -msgstr "Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag" +#: contrib/admin/media/js/dateparse.js:32 +msgid "January February March April May June July August September October November December" +msgstr "Januar Februar März April Mai Juni Juli August September Oktober November Dezember" #: contrib/admin/media/js/calendar.js:25 msgid "S M T W T F S" msgstr "S M D M D F S" -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45 -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80 -msgid "Now" -msgstr "Jetzt" - -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48 -msgid "Clock" -msgstr "Uhr" - -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77 -msgid "Choose a time" -msgstr "Uhrzeit" - -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 -msgid "Midnight" -msgstr "Mitternacht" - -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82 -msgid "6 a.m." -msgstr "6 Uhr" - -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 -msgid "Noon" -msgstr "Mittag" - -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87 -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168 -msgid "Cancel" -msgstr "Abbrechen" - -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111 -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162 -msgid "Today" -msgstr "Heute" - -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114 -msgid "Calendar" -msgstr "Kalender" - -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160 -msgid "Yesterday" -msgstr "Gestern" - -#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164 -msgid "Tomorrow" -msgstr "Morgen" +#: contrib/admin/media/js/dateparse.js:33 +msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" +msgstr "Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag" #: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 msgid "Show" -msgstr "Anzeigen" +msgstr "Einblenden" #: contrib/admin/media/js/admin/CollapsedFieldsets.js:63 msgid "Hide" -msgstr "Verbergen" +msgstr "Ausblenden" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 +msgid "Now" +msgstr "Jetzt" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51 +msgid "Clock" +msgstr "Uhr" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78 +msgid "Choose a time" +msgstr "Uhrzeit" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82 +msgid "Midnight" +msgstr "Mitternacht" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 +msgid "6 a.m." +msgstr "6 Uhr" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84 +msgid "Noon" +msgstr "Mittag" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183 +msgid "Cancel" +msgstr "Abbrechen" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177 +msgid "Today" +msgstr "Heute" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132 +msgid "Calendar" +msgstr "Kalender" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175 +msgid "Yesterday" +msgstr "Gestern" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179 +msgid "Tomorrow" +msgstr "Morgen" diff --git a/django/conf/locale/es/LC_MESSAGES/django.mo b/django/conf/locale/es/LC_MESSAGES/django.mo index f07a280c142a294ded39212815fe980dc43f0348..a2fd2f77dba917c1f059db3233047d1d2d4f7ed0 100644 GIT binary patch delta 15705 zcmYk@4Sdbz|Htv~+1M~+%*>FTjbR&Ob2In1<)(y;=qGY)XLHzg*4ZX0o!mq>l6*xX zCArJJBP3FWNPekERHAf8DGA;A^?$whz5c)dzsIjVuj~3=*Y){a*Y*8=&pE%}<2U`s z@by22Z>i!6hFg|(Xs~6~#P=`)PhmAYi`DTvjKM2d3&Vz3R#mKHjK@gox1h$Qpytg$ zjn6XIyP5i}*ogMQL#$xsfQd9Ha49O#RIHCrVI01K3b+f^?=9m&)BZkAqx~a{#-T$k zD;CFMI}D%_Ta8t4GisjgLxax5Z_=O@yo2@d2-e24sEICP42Iq1T#rRvZ;48@6YBa9 z)QZQU0#3vlSc*~j2rBTCsGWQ^NI`*LMy+tIsc%9Z$qsCS71#{FGVPJWoR!u?O_Xfv znW%9+u?`MGEodxO?l3CBsiq#BML~g|LM8I7sV_0Ugj&feRG>|$3HF-ycTp=pjtY1l zHP2O4zrRrPSIuz}h(fj3#kv;f-`FWwZBSd<2V-#7>U zj_Q8_wNsZ+JM*Wx9yP*AG!ZpVDpn!B)rNuswnq)@j+$r?DnJfy!uxP2*1FrWI;)Oe zT!NbLA5_4qBb}$FK5C_{P)|h0zUk6!@>6<{U>1$+jzvPGDLt5G|17!}|+D#1@s z{k}oL~WVBZW(*A^9H8g}M(jaWiJ%d8CUK z^Dk!wK8&Y63wz-*R6<{11N;fwVZ>;*8M|N_=3y2-gNnOMVg8Ru+yHfkqEpb{>^9DE!#&*#_+ucP{9dw3FX2x{J7 zDTR6z=Ab$(!?w5`wPoL69L9`yo{r|IMD9RsZ4kB6b*L47fLhQERKF&<&QT6S-HfyF z4qSvqdj7wnpqp@Lp7U{ zFQEGUgc^4PBk(2$6`)Fi)1fA+ULQ5EiLnLVO1&*s!E)3DQ;pLxlKSJQK=V<7UO*-C zGDhNh)b$Yd$GrvYzdBZ(;Jl%tP|tA!PQz5xz%{6QU^D8jJ%DU&K69n`oZru`%AP5l(+ zV8TRae33DL+OY?)IzECL|9Fss0zYdSmY_0w#kkg7--McA2WrK8Q4<_PP524cz;mX4 z3AIDlQ1gdRa{5Q19>aR5IKk!=v^A|vhn}d32A~G!pmt(3YQk}-M2d~&sD2M)63#*e zSZ%KFLXF>N>IYC?P>v$wg4U-L6!09D;w4m|`wE>GN)amHbH-(;fGdsbQ2|1zv)zT7 z?+9w#3Dhh6GwgtMi=6QTu=4pINv zFQJZRHKyWbY>lT;FQCX`r@tE`xc{tX6ttprHDEhbfG(zfn{g0o;vCeO--}v#KHiFx zP%GSmn(tfVWmNy`7>$C{75 z3%^7KxNQ6z6}U!;lW0BEW1N6mU`7e&uN8HsAqxATc3?27eFSQSV^J&0HT6lRUSgbr z3j8QG$9b56ucJPME}$0B;C`pQ4Qjz-?>EnX9t{dygbG|{I!r?ao{7r%Db&s^LalfS zs{dNl0=Am^UW}oB2y5dh)Q8Y_*aX7@&iJGt1#L-N)En$J)Rx_cn$Tw~M(5M-+GCHCVmaI#XC`F zyAO4S|3*#lC2C85N4^wUuBlD}xu}WDQGp*u^_z>D?>Xa(sD-UE^(|QW`M=9F>{SCD z4x%!D50$_PtdHNIUNnEB0$2|@{i|a=sv7nL`dZZEa~?JEcbJTqO?w?ayESh-Do_$O!cSsaTe-Go<=3O4At)vYND&A9`T5?kXoqg$*2U=PzhzC;&esL z-}@2HUl(qtL3ihH?1sB=GhRbYu!?>fxB)fsHq_DVMxE(V)Xnz^-hvlU0m2@2jv@+m zbn&S98ewIEK~qRWtuPC9cD+#@?nDI`fl6Q;D&c(8L?y-tQ1{Lw*aK%`L)?$|;um-y zcA4%xo-d#t@8A&%Z7Ia@P|JR(o9zM2zc-+FhWwkC)=!!%xfe$rcE-Hcf zrsE5E5A|2D1^$id*KD416fIFJo{pMtHfsDcn2t+O2^>TvcnsC=#60$2EBb;4o!u3z zfl1Fe6Sl%A>Y1nk-LWS2Lw)$C=2@rzC{zL-Q!hnL_^@#{>XkbmwNo1~8n>W! zb0}!bpF*wR1yqJBO?|zoZ$~Av2ep+)P=QZjEPjm|e*+cJdd}%r1vRcNs(&IXUOHCQ z^WTL6TVeGw9fqPNxEGbkIMfkLK&`kGwZ&76GtBk5*qrvosD5vu0#~3CK90J_&Z2hm z0(MZwmnbN}Z^nO60ctFA+UubbOhhHt#&#vdR{l4KU1?E>{-)<})X4i#YxS9WIcj9k zI1{zBIj9VtLG8)&rhN@6#m!h3ccAw82rAwei@0;N#)~wB;m@f0uf`jwfPbR~Sc{#+ zqK)yW1d~wxS{pM_^L0SY*9nzichna3Lyfy@F(;=@9YaGrPC~7GrtxXxV&e+qdgJTH zea0iGz#pRmeuA3+OH{z0Q1kzRaTp$a-uakGK%Ht2RED>rRx|{)#W|=Q7>$}}0xCcm zYTPu`N@tq-6e|E{R{ZZ+PH^b1-;oq{zQm0><=qEdX-#maCqCNFiq5qz}F`I7eo zdg*uPi_SYTgbMTl>L&XXJL8Yo8k;XCDIAV^RhD5U@vUbmXvG!AOQm| zo{l=ZyD%9Gus%MCTKNhr!wsnZNiRDI_DAh-F6ybs$H*XsA{DS4wPn*#6U{?CuuD)o zvkogCBh+Jd1hu7~8qcD3;DYfd)X`i=&HESXdd(Hi{Bam;PJ^3*0`*5_HWIZ(V^J%6 z2({t`sDNux{WhTzf8Esgq84-jHQ%kTIOB%nK_oyAYhRIm>Rp))t0UJ=i6B97s)E_n1m!NiTE7rqzQ6FEQqvBl-Qqan8 zpw8$&=0fdNPQ3x@dMau_TVrR`3j3f|HV8F-B!=;whf3fmM&Jq5(R_xwegoN= zpcTHx$vgoyAPt*fJJi5o#(Pj1k3$74!bmJN^@mJ-I%?b#s3Vz=+L_mkZ=x3TK34uW zho>l1q2VlQ1z)3Xx}Q)9-9%*^vDW#CQWtZmAH=?xu#WA1_UP8*l0!jTUxv#3Db(G(0F!VdM&bup9Z#9|^Qei#*E_#BnxpEsW91H^0+nJ7 zT!5PAMa;le80<&k1ci>+XoK@Ja~O`Hz8TwL^hU?tSVFxV)A3t$W8F>8ufleyh0Mf6 zd;z=RZp^|PsQJ=1JHIB!Zsz>E)3Ahw;dly_P^&G@uf$T+ijH6p{1Llg`c|HC%*PgZ z5=Y@p)b+c!IpdziHq^IcGrWLpv3iJ)dh8Nn|L>%*ng)GX{D!(qGq#(pL}grrx8Mp? zBKyqs|DeVtz3wD38q=uH#DC!?RN(46obTHim_oe-TjQc21-)1fpaPsX9sa@g)Khjk zXZ0`C^(Rm(ScBTRPq72m-{t&}AB0Ny5zN4C*b~pA5>I-=c>#^XVbp^G3fhW;7=@X; zou{EY>SpPKTG8!T56iJOK8djh5W{F+ib`ZTYGtdj7H&gL_zr5q!>0Zbs^4i;0^gt(^oyzgfm%qFy^JTm zRfB>8)Im*@fEw5oH88`NjiageLIqxCTxom_HP2SmxHnLN_G2_2HrGEv#W{6OVxG$`ZGjo+XWx@`OnwX#1^M-}$Ab3GC@F51-VV-EGkI0#En^Xx^9t3WN}Fe>f` zZwH+TPSc*n0sdvXZ)cd2x--GJ!G3^tB z6cp%T)RxaM9iBr?v>cW3I#j8SB-P+Q#*`(RJhXTc1-1-D_i zZtvq16!-*cMQ2bGe1!`5gQ;IP-b77Y<)E{|Xskj#9*1CK?23h``PLe@pmt;z>Ztdt zPJHX6>F_01rT!i2NPfaF{0}N)*CFR@6Y*~9y|6JZ#um68HSy=Dqx;!-6O~BRyH299 zsK>7X2DOE)DJZi}s5e(1jKIODm5xBIa4be*uBlHl^%CP0)WnZs3O4*9Lhqm`e2mN!VD84cf~?#}4IHKrYQB8bQIw$K&2bD`^C&3Lb668!Hg3ea)OVvMJcc^E zFHsZTL@!2u?0m5(LQVWQ*2ZT{{Uy{9tw!C%n^5sWmF=AWTjs){$_9S1nEJ=4K%b)S zfv-?2xN5G~IN?lO8x=Snbx$-weaf{*B|a3ju<@vVepEt}rJnysC@9cu)CBYKU$`0v zq3fix)q{ibZ4@4KiK9LIY21uDT`QRD7B(Wm<1G7-$I-!oHH&(6`_2wIci8u+>?;$>8#ubyWA zRoFm-GTM&%Znqm_%ds&Y z#{T#X=3(oz&WkR%fP$Nb-KZDFXPAsNzvK%hw!tKP9~PI( z`ma3i{Q5nJTF95!8UMs?*#4`^?}S0?ehO|HmSa=ghl%*L)4>Y=+Igk6#U$GOs55;Q z{rCdjhBYoYKU#;Pc5)Lo!7s1{{%z{bzHxT4FJ|fUe*%RzbXbbb@u=zWEB2xu|E;sa zQN|Uhv%iSp_#5gT`W++C`pz*Dt5B_lRWTNocmhUZGKLf1N~53&Gf*8np(g5K+Hb>1 z>O)NXNYsmEENa3MjKl{~&-HZF_=Tu`OHqk#H0@ha{dQqc0gqD9L?2>0obDG)@XMxsTabdD z&y%RT^;aB%b$%i{^x#lDh)T5nW#_q0!V%Q(KsTbDvdXd}Atb&SKE z$h<-8m{YJmLjdI zru{YJHq<+PH|jItBr3oa)QbPYFbuouth6d> zfl;V9^-&9Kc-0zPnQ2QJlyL`Cz&@tqUB(fpo97{Zh5DNoS>rdy2B;L9qavrG_P8Tz=6^UjTXy`%sElQDp24M%(|A2RkPLO{(+S59%ccp|gTPIUFKGkcFr$zb@WO!X1}wxxUy-{9X!GJKHCqA<2zsrpYNaT>KsZK z5b1KYvXch3aJ2~y9QbI}(80mKyFv$twiy`Rv2|uAcUD%H_8rpOW`$fYyj&%v$XDp* z-$H+}x712$IoVTK?oG|e%va-oFW7sQr`X4q$Jnngujd*cs{T@<%T9gyu2A6RR<3HE z@d0063kh z9{asleuE6OWk)@mdD%2R$gma;t!OS7nE15E7eqe0-jQW4D%NFDni9h zi+5_V-x_aUe08oX*M4ACo5lltrDYYNfG^jt4n_VvU%oHblk3yc?A@zUn)r*$n8#bO z)noPb6pi#1zm9;$k{x!oR@_e}& zR$l1nnyX>13HH9%4o3Ql3kpeh!G`Ac*7ZGO+=U)yFY=H}uCK^bXkXb-&tASh);_ns zS}0?~iSQ`*s8Ove|1+w!ow+O4PTG=Y58Bc*jIErz$I z+O_Y{F}qt^w?8y1^tQ`BvLnXMd3|A+yR&`QmIn6mowe;LJL2pQcGkDM?dWSqQ-6BL z+8PbGc{o3hUAU(gtsD0YU>mRR z*~H&fdz-m@q4)O2y9jswthbs6iW5}}%Zsf-d*6XMwX@xRcV~BA z#l`|(nZGn6bl1W5uKMoD{xVOX)a&-RODi_=0F@T`t-*Gy!wu}vp&r$X{eg0Cf!`{& z|2)*pRct4|n-byAEz7X{q1)emAk0+~+J9ubEB?X%e_v7#1iZP#2+cpbI=q&1SLGKH zsJP4<>iR(zJe{zF|p~I={I^NPk|6~u(LuJ9sR`qzK zp}qLjtSBP*O3Di>LT<0^KHJzH{^?1V*G@ZK5SQmKviO&0!f)kF_T?4(CNbyg)2VgJ zJiJ+~;hsQ%mqD?|Dhr)ET^JVOouXX~<$PWi;VQQee>FU8W3k=j>jr7%#qOet6;pgg zl}~kM=6`pb?ayrQ&h-R5xnmKecDfH!ftulM_cRgI?q08U(3k&CAvhTmx%pQF))|5{s7WpdH zS^5*m^%pWnAD_2)vbUH=t&OLZRS?R%v@pz-WB>6}dsj{<<8rp{UGLA=YkCWP>;i8g z-BaU#+30fZwqt&s%{IMwAi-Y$>yxgGP=~8E!s6WHQd$;z#(N7>OEXehmOWVFO)VW~ J55KnYe*idG1hoJF delta 15607 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 A^Z)<= diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po index db86ac3b53..b665fcf9a6 100644 --- a/django/conf/locale/es/LC_MESSAGES/django.po +++ b/django/conf/locale/es/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-06-13 16:14+0200\n" -"PO-Revision-Date: 2008-03-30 01:04+0100\n" +"PO-Revision-Date: 2008-06-18 22:45+0200\n" "Last-Translator: Django Spanish Translation Team \n" "Language-Team: Django Spanish Translation Team \n" "MIME-Version: 1.0\n" @@ -16,191 +16,191 @@ msgstr "" #: conf/global_settings.py:44 msgid "Arabic" -msgstr "Árabe" +msgstr "árabe" #: conf/global_settings.py:45 msgid "Bengali" -msgstr "Bengalí" +msgstr "bengalí" #: conf/global_settings.py:46 msgid "Bulgarian" -msgstr "Búlgaro" +msgstr "búlgaro" #: conf/global_settings.py:47 msgid "Catalan" -msgstr "Catalán" +msgstr "catalán" #: conf/global_settings.py:48 msgid "Czech" -msgstr "Checo" +msgstr "checo" #: conf/global_settings.py:49 msgid "Welsh" -msgstr "Galés" +msgstr "galés" #: conf/global_settings.py:50 msgid "Danish" -msgstr "Danés" +msgstr "danés" #: conf/global_settings.py:51 msgid "German" -msgstr "Alemán" +msgstr "alemán" #: conf/global_settings.py:52 msgid "Greek" -msgstr "Griego" +msgstr "griego" #: conf/global_settings.py:53 msgid "English" -msgstr "Inglés" +msgstr "inglés" #: conf/global_settings.py:54 msgid "Spanish" -msgstr "Español" +msgstr "español" #: conf/global_settings.py:55 msgid "Argentinean Spanish" -msgstr "Español Argentino" +msgstr "español de Argentina" #: conf/global_settings.py:56 msgid "Basque" -msgstr "Vasco" +msgstr "vasco" #: conf/global_settings.py:57 msgid "Persian" -msgstr "Persa" +msgstr "persa" #: conf/global_settings.py:58 msgid "Finnish" -msgstr "Finés" +msgstr "finés" #: conf/global_settings.py:59 msgid "French" -msgstr "Francés" +msgstr "francés" #: conf/global_settings.py:60 msgid "Irish" -msgstr "Irlandés" +msgstr "irlandés" #: conf/global_settings.py:61 msgid "Galician" -msgstr "Gallego" +msgstr "gallego" #: conf/global_settings.py:62 msgid "Hungarian" -msgstr "Húngaro" +msgstr "húngaro" #: conf/global_settings.py:63 msgid "Hebrew" -msgstr "Hebreo" +msgstr "hebreo" #: conf/global_settings.py:64 msgid "Croatian" -msgstr "Croata" +msgstr "croata" #: conf/global_settings.py:65 msgid "Icelandic" -msgstr "Islandés" +msgstr "islandés" #: conf/global_settings.py:66 msgid "Italian" -msgstr "Italiano" +msgstr "italiano" #: conf/global_settings.py:67 msgid "Japanese" -msgstr "Japonés" +msgstr "japonés" #: conf/global_settings.py:68 msgid "Georgian" -msgstr "Georgiano" +msgstr "georgiano" #: conf/global_settings.py:69 msgid "Korean" -msgstr "Koreano" +msgstr "koreano" #: conf/global_settings.py:70 msgid "Khmer" -msgstr "Khmer" +msgstr "khmer" #: conf/global_settings.py:71 msgid "Kannada" -msgstr "Kannada" +msgstr "kannada" #: conf/global_settings.py:72 msgid "Latvian" -msgstr "Latvio" +msgstr "letón" #: conf/global_settings.py:73 msgid "Macedonian" -msgstr "Macedonio" +msgstr "macedonio" #: conf/global_settings.py:74 msgid "Dutch" -msgstr "Holandés" +msgstr "holandés" #: conf/global_settings.py:75 msgid "Norwegian" -msgstr "Noruego" +msgstr "noruego" #: conf/global_settings.py:76 msgid "Polish" -msgstr "Polaco" +msgstr "polaco" #: conf/global_settings.py:77 msgid "Portugese" -msgstr "Portugés" +msgstr "portugués" #: conf/global_settings.py:78 msgid "Brazilian Portuguese" -msgstr "Portugés Brasileño" +msgstr "portugués de Brasil" #: conf/global_settings.py:79 msgid "Romanian" -msgstr "Rumano" +msgstr "rumano" #: conf/global_settings.py:80 msgid "Russian" -msgstr "Ruso" +msgstr "ruso" #: conf/global_settings.py:81 msgid "Slovak" -msgstr "Eslovaco" +msgstr "eslovaco" #: conf/global_settings.py:82 msgid "Slovenian" -msgstr "Esloveno" +msgstr "esloveno" #: conf/global_settings.py:83 msgid "Serbian" -msgstr "Serbio" +msgstr "serbio" #: conf/global_settings.py:84 msgid "Swedish" -msgstr "Sueco" +msgstr "sueco" #: conf/global_settings.py:85 msgid "Tamil" -msgstr "Tamil" +msgstr "tamil" #: conf/global_settings.py:86 msgid "Telugu" -msgstr "Telugu" +msgstr "telugu" #: conf/global_settings.py:87 msgid "Turkish" -msgstr "Turco" +msgstr "turco" #: conf/global_settings.py:88 msgid "Ukrainian" -msgstr "Ucraniano" +msgstr "ucraniano" #: conf/global_settings.py:89 msgid "Simplified Chinese" -msgstr "Chino simplificado" +msgstr "chino simplificado" #: conf/global_settings.py:90 msgid "Traditional Chinese" -msgstr "Chino tradicional" +msgstr "chino tradicional" #: contrib/admin/filterspecs.py:44 #, python-format @@ -339,7 +339,7 @@ msgstr "Documentación" #: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:45 msgid "Change password" -msgstr "Cambiar clave" +msgstr "Cambiar contraseña" #: contrib/admin/templates/admin/base.html:30 #: contrib/comments/templates/comments/form.html:6 @@ -356,8 +356,8 @@ msgstr "Administración de Django" #: contrib/admin/templates/admin/change_form.html:14 #: contrib/admin/templates/admin/index.html:28 -msgid "Añadir" -msgstr "Agregar" +msgid "Add" +msgstr "Añadir" #: contrib/admin/templates/admin/change_form.html:20 #: contrib/admin/templates/admin/object_history.html:4 @@ -802,14 +802,14 @@ msgstr "La contraseña se ha cambiado con éxito." #: contrib/admin/views/auth.py:65 #, python-format msgid "Change password: %s" -msgstr "Cambiar clave: %s" +msgstr "Cambiar contraseña: %s" #: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60 msgid "" "Please enter a correct username and password. Note that both fields are case-" "sensitive." msgstr "" -"Por favor, introduzca un nombre de usuario correcto y una contraseña. Note que " +"Por favor, introduzca un nombre de usuario y contraseña correctos. Note que " "ambos campos son sensibles a mayúsculas/minúsculas." #: contrib/admin/views/decorators.py:69 @@ -867,7 +867,7 @@ msgstr "El modelo %(name)s no se ha encontrado en la aplicación %(label)r" #: contrib/admin/views/doc.py:185 #, python-format msgid "the related `%(label)s.%(type)s` object" -msgstr "el objeto relacionado`%(label)s.%(type)s` " +msgstr "el objeto relacionado `%(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 @@ -1057,7 +1057,7 @@ msgstr "¿Está seguro?" #: contrib/admin/views/main.py:549 #, python-format msgid "Change history: %s" -msgstr "Modificar histórico: %s" +msgstr "Histórico de modificaciones: %s" #: contrib/admin/views/main.py:583 #, python-format @@ -1067,7 +1067,7 @@ msgstr "Escoja %s" #: contrib/admin/views/main.py:583 #, python-format msgid "Select %s to change" -msgstr "Escoja %s para modificar" +msgstr "Escoja %s a modificar" #: contrib/admin/views/main.py:765 msgid "Database error" @@ -1079,7 +1079,7 @@ msgstr "Las dos contraseñas no coinciden." #: contrib/auth/forms.py:25 msgid "A user with that username already exists." -msgstr "Ya existe un usuario con este nombre." +msgstr "Ya existe un usuario con este nombre." #: contrib/auth/forms.py:53 msgid "" @@ -1114,7 +1114,7 @@ msgstr "" #: contrib/auth/forms.py:124 msgid "Your old password was entered incorrectly. Please enter it again." msgstr "" -"Tu contraseña antigua es incorrecta. Por favor, vuelva a introducirla " +"Su contraseña antigua es incorrecta. Por favor, vuelva a introducirla " "correctamente." #: contrib/auth/models.py:73 contrib/auth/models.py:93 @@ -1211,7 +1211,7 @@ msgstr "" #: contrib/auth/models.py:146 msgid "last login" -msgstr "Último inicio de sesión" +msgstr "último inicio de sesión" #: contrib/auth/models.py:147 msgid "date joined" @@ -1424,11 +1424,11 @@ msgstr "Marca de %r" #: contrib/comments/models.py:300 msgid "deletion date" -msgstr "fecha de borrado" +msgstr "fecha de eliminación" #: contrib/comments/models.py:303 msgid "moderator deletion" -msgstr "borrado del moderador" +msgstr "eliminación del moderador" #: contrib/comments/models.py:304 msgid "moderator deletions" @@ -1441,7 +1441,7 @@ msgstr "Eliminación del moderador %r" #: contrib/comments/templates/comments/form.html:8 msgid "Forgotten your password?" -msgstr "¿Has olvidado tu contraseña?" +msgstr "¿Ha olvidado su contraseña?" #: contrib/comments/templates/comments/form.html:12 msgid "Ratings" @@ -1473,7 +1473,7 @@ msgstr "Previsualizar comentario" #: contrib/comments/templates/comments/freeform.html:4 msgid "Your name:" -msgstr "Tu nombre:" +msgstr "Su nombre:" #: contrib/comments/views/comments.py:28 msgid "" @@ -1528,8 +1528,7 @@ msgstr "No se proporcionó uno o más de los siguientes campos requeridos" #: contrib/comments/views/comments.py:289 msgid "Somebody tampered with the comment form (security violation)" msgstr "" -"Alguien realizó manipulaciones con el formulario de comentarios (violación de " -"seguridad)" +"Alguien manipuló el formulario de comentarios (violación de seguridad)" #: contrib/comments/views/comments.py:208 #: contrib/comments/views/comments.py:295 @@ -1555,7 +1554,7 @@ msgstr "ID de comentario no válido" #: contrib/comments/views/karma.py:27 msgid "No voting for yourself" -msgstr "No puedes votarte a ti mismo" +msgstr "No puede votarse a sí mismo" #: contrib/contenttypes/models.py:67 msgid "python model class name" @@ -1641,21 +1640,21 @@ msgstr "º" msgid "%(value).1f million" msgid_plural "%(value).1f million" msgstr[0] "%(value).1f millón" -msgstr[1] "%(value).1f millión" +msgstr[1] "%(value).1f millón" #: contrib/humanize/templatetags/humanize.py:54 #, python-format msgid "%(value).1f billion" msgid_plural "%(value).1f billion" -msgstr[0] "%(value).1f billón" -msgstr[1] "%(value).1f billón" +msgstr[0] "%(value).1f mil millones" +msgstr[1] "%(value).1f mil millones" #: contrib/humanize/templatetags/humanize.py:57 #, python-format msgid "%(value).1f trillion" msgid_plural "%(value).1f trillion" -msgstr[0] "%(value).1f trillón" -msgstr[1] "%(value).1f trillón" +msgstr[0] "%(value).1f billón" +msgstr[1] "%(value).1f billón" #: contrib/humanize/templatetags/humanize.py:73 msgid "one" @@ -1717,11 +1716,11 @@ msgstr "Este campo sólo acepta números." #: contrib/localflavor/ar/forms.py:50 msgid "This field requires 7 or 8 digits." -msgstr "Este campo necesita 7 o 8 dígitos." +msgstr "Este campo necesita 7 u 8 dígitos." #: contrib/localflavor/ar/forms.py:79 msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Introduzca un CUIT válido en el formato XX-XXXXXXXX-X or XXXXXXXXXXXX." +msgstr "Introduzca un CUIT válido en el formato XX-XXXXXXXX-X o XXXXXXXXXXXX." #: contrib/localflavor/ar/forms.py:80 msgid "Invalid CUIT." @@ -1753,15 +1752,15 @@ msgstr "Número CPF inválido." #: contrib/localflavor/br/forms.py:95 msgid "This field requires at most 11 digits or 14 characters." -msgstr "Este campo necesita al menos 11 o 14 caracteres" +msgstr "Este campo necesita un máximo de 11 dígitos o 14 caracteres." #: contrib/localflavor/br/forms.py:134 msgid "Invalid CNPJ number." -msgstr "Número CNPJ inválido" +msgstr "Número CNPJ inválido." #: contrib/localflavor/br/forms.py:136 msgid "This field requires at least 14 digits" -msgstr "Este campo necesita 14 dígitos como máximo" +msgstr "Este campo necesita 14 dígitos como mínimo" #: contrib/localflavor/ca/forms.py:17 msgid "Enter a postal code in the format XXX XXX." @@ -1770,7 +1769,7 @@ msgstr "Introduzca un código postal en el formato XXX XXX." #: contrib/localflavor/ca/forms.py:88 msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." msgstr "" -"Introduzca un Número del Seguro Social de Canada válido en el formato XXX-" +"Introduzca un Número del Seguro Social de Canadá válido en el formato XXX-" "XXX-XXX." #: contrib/localflavor/ch/ch_states.py:5 @@ -1886,12 +1885,12 @@ msgid "" "Enter a valid Swiss identity or passport card number in X1234567<0 or " "1234567890 format." msgstr "" -"Introduzca una identificación suiza válida o un número de pasaporte en el " -"formato X1234567<0 or 1234567890." +"Introduzca un número de identificación o pasaporte suizos válidos en el " +"formato X1234567<0 o 1234567890." #: contrib/localflavor/cl/forms.py:29 msgid "Enter a valid Chilean RUT." -msgstr "Introduzca un RUT chileno válido" +msgstr "Introduzca un RUT chileno válido." #: contrib/localflavor/cl/forms.py:30 msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." @@ -2255,7 +2254,7 @@ msgid "" "9XXXXXXXX." msgstr "" "Introduzca un número de teléfono válido en el formato 6XXXXXXXX, 8XXXXXXXX " -"or 9XXXXXXXX." +"o 9XXXXXXXX." #: contrib/localflavor/es/forms.py:66 msgid "Please enter a valid NIF, NIE, or CIF." @@ -2723,7 +2722,7 @@ msgstr "El Número de Identificación Nacional es incorrecto." msgid "" "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." msgstr "" -"Introduzca un número de impuesto (NIP) en el formato XXX-XXX-XX-XX or XX-XX-" +"Introduzca un número de impuesto (NIP) en el formato XXX-XXX-XX-XX o XX-XX-" "XXX-XXX." #: contrib/localflavor/pl/forms.py:73 @@ -2733,7 +2732,7 @@ msgstr "El Número de Identificación Tributaria (NIP) es incorrecto." #: contrib/localflavor/pl/forms.py:112 msgid "National Business Register Number (REGON) consists of 7 or 9 digits." msgstr "" -"El Número Nacional de Registro de Negocios (REGON) consiste en 11 dígitos" +"El Número Nacional de Registro de Negocios (REGON) consiste en 7 o 9 dígitos." #: contrib/localflavor/pl/forms.py:113 msgid "Wrong checksum for the National Business Register Number (REGON)." @@ -3161,7 +3160,7 @@ msgstr "Región de Zilina" #: contrib/localflavor/uk/forms.py:21 msgid "Enter a valid postcode." -msgstr "Introduzca un código postal válido" +msgstr "Introduzca un código postal válido." #: contrib/localflavor/uk/uk_regions.py:11 msgid "Bedfordshire" @@ -3454,11 +3453,11 @@ msgstr "" #: contrib/localflavor/za/forms.py:20 msgid "Enter a valid South African ID number" -msgstr "Introduzca un ID Sur Africano válido" +msgstr "Introduzca un ID surafricano válido" #: contrib/localflavor/za/forms.py:54 msgid "Enter a valid South African postal code" -msgstr "Introduzca un código postal Sur Africano válido" +msgstr "Introduzca un código postal surafricano válido" #: contrib/localflavor/za/za_provinces.py:4 msgid "Eastern Cape" @@ -3642,7 +3641,7 @@ msgstr "Introduzca una fecha/hora válida en formato AAAA-MM-DD HH:MM." #: core/validators.py:170 newforms/fields.py:403 msgid "Enter a valid e-mail address." -msgstr "Introduzca una dirección de correo electrónico válida" +msgstr "Introduzca una dirección de correo electrónico válida." #: core/validators.py:182 core/validators.py:474 newforms/fields.py:433 #: oldforms/__init__.py:687 @@ -3712,8 +3711,8 @@ msgstr "Introduzca una abreviatura válida de estado de los EEUU." #, 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] "¡Cuida tu vocabulario! Aquí no admitimos la palabra %s." -msgstr[1] "¡Cuida tu vocabulario! Aquí no admitimos las palabras %s." +msgstr[0] "¡Cuide su vocabulario! Aquí no admitimos la palabra %s." +msgstr[1] "¡Cuide su vocabulario! Aquí no admitimos las palabras %s." #: core/validators.py:288 #, python-format @@ -3805,7 +3804,7 @@ msgstr[1] "" #: core/validators.py:458 msgid "Please enter a valid floating point number." -msgstr "Por favor, introduzca un número decimal válido." +msgstr "Por favor, introduzca un número de coma flotante válido." #: core/validators.py:467 #, python-format @@ -4005,7 +4004,7 @@ msgstr "Asegúrese de que no hay más de %s decimales." #: newforms/fields.py:215 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." -msgstr "Asegúrese de que no hay más de %s dígitos antes del punto decimal." +msgstr "Asegúrese de que no hay más de %s dígitos antes de la coma decimal." #: newforms/fields.py:263 newforms/fields.py:751 msgid "Enter a valid date." @@ -4037,7 +4036,7 @@ msgstr "La URL parece ser un enlace roto." #: newforms/fields.py:560 newforms/models.py:299 msgid "Select a valid choice. That choice is not one of the available choices." -msgstr "Escoja una opción válida. Esa opción no está entre las aceptadas." +msgstr "Escoja una opción válida. Esa opción no está entre las disponibles." #: newforms/fields.py:599 #, python-format @@ -4076,7 +4075,7 @@ msgstr "Escoja una opción válida; '%(data)s' no está en %(choices)s." #: oldforms/__init__.py:745 msgid "Enter a whole number between -32,768 and 32,767." -msgstr "Introduzca un número entero entre -32,768 y 32,767." +msgstr "Introduzca un número entero entre -32.768 y 32.767." #: oldforms/__init__.py:755 msgid "Enter a positive number." @@ -4084,7 +4083,7 @@ msgstr "Introduzca un número positivo." #: oldforms/__init__.py:765 msgid "Enter a whole number between 0 and 32,767." -msgstr "Introduzca un número entero entre 0 y 32,767." +msgstr "Introduzca un número entero entre 0 y 32.767." #: template/defaultfilters.py:698 msgid "yes,no,maybe" @@ -4114,11 +4113,11 @@ msgstr "%.1f GB" #: utils/dateformat.py:41 msgid "p.m." -msgstr "p.m" +msgstr "p.m." #: utils/dateformat.py:42 msgid "a.m." -msgstr "a.m" +msgstr "a.m." #: utils/dateformat.py:47 msgid "PM" @@ -4138,107 +4137,107 @@ msgstr "medio día" #: utils/dates.py:6 msgid "Monday" -msgstr "Lunes" +msgstr "lunes" #: utils/dates.py:6 msgid "Tuesday" -msgstr "Martes" +msgstr "martes" #: utils/dates.py:6 msgid "Wednesday" -msgstr "Miércoles" +msgstr "miércoles" #: utils/dates.py:6 msgid "Thursday" -msgstr "Jueves" +msgstr "jueves" #: utils/dates.py:6 msgid "Friday" -msgstr "Viernes" +msgstr "viernes" #: utils/dates.py:7 msgid "Saturday" -msgstr "Sábado" +msgstr "sábado" #: utils/dates.py:7 msgid "Sunday" -msgstr "Domingo" +msgstr "domingo" #: utils/dates.py:10 msgid "Mon" -msgstr "Lun" +msgstr "lun" #: utils/dates.py:10 msgid "Tue" -msgstr "Mar" +msgstr "mar" #: utils/dates.py:10 msgid "Wed" -msgstr "Mie" +msgstr "mié" #: utils/dates.py:10 msgid "Thu" -msgstr "Jue" +msgstr "jue" #: utils/dates.py:10 msgid "Fri" -msgstr "Vie" +msgstr "vie" #: utils/dates.py:11 msgid "Sat" -msgstr "Sab" +msgstr "sáb" #: utils/dates.py:11 msgid "Sun" -msgstr "Dom" +msgstr "dom" #: utils/dates.py:18 msgid "January" -msgstr "Enero" +msgstr "enero" #: utils/dates.py:18 msgid "February" -msgstr "Febrero" +msgstr "febrero" #: utils/dates.py:18 utils/dates.py:31 msgid "March" -msgstr "Marzo" +msgstr "marzo" #: utils/dates.py:18 utils/dates.py:31 msgid "April" -msgstr "Abril" +msgstr "abril" #: utils/dates.py:18 utils/dates.py:31 msgid "May" -msgstr "Mayo" +msgstr "mayo" #: utils/dates.py:18 utils/dates.py:31 msgid "June" -msgstr "Junio" +msgstr "junio" #: utils/dates.py:19 utils/dates.py:31 msgid "July" -msgstr "Julio" +msgstr "julio" #: utils/dates.py:19 msgid "August" -msgstr "Agosto" +msgstr "agosto" #: utils/dates.py:19 msgid "September" -msgstr "Septiembre" +msgstr "septiembre" #: utils/dates.py:19 msgid "October" -msgstr "Octubre" +msgstr "octubre" #: utils/dates.py:19 msgid "November" -msgstr "Noviembre" +msgstr "noviembre" #: utils/dates.py:20 msgid "December" -msgstr "Diciembre" +msgstr "diciembre" #: utils/dates.py:23 msgid "jan" @@ -4290,31 +4289,31 @@ msgstr "dic" #: utils/dates.py:31 msgid "Jan." -msgstr "Ene." +msgstr "ene." #: utils/dates.py:31 msgid "Feb." -msgstr "Feb." +msgstr "feb." #: utils/dates.py:32 msgid "Aug." -msgstr "Ago." +msgstr "ago." #: utils/dates.py:32 msgid "Sept." -msgstr "Sept." +msgstr "sept." #: utils/dates.py:32 msgid "Oct." -msgstr "Oct." +msgstr "oct." #: utils/dates.py:32 msgid "Nov." -msgstr "Nov." +msgstr "nov." #: utils/dates.py:32 msgid "Dec." -msgstr "Dic." +msgstr "dic." #: utils/text.py:127 msgid "or" @@ -4393,7 +4392,7 @@ msgstr "j \\de F" #: views/generic/create_update.py:43 #, python-format msgid "The %(verbose_name)s was created successfully." -msgstr "El %(verbose_name)s se ha creado correctamente." +msgstr "El %(verbose_name)s se ha creado exitosamente." #: views/generic/create_update.py:117 #, python-format diff --git a/django/conf/locale/et/LC_MESSAGES/django.mo b/django/conf/locale/et/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f29aa1a77f41da7c1f15725adcf5b433cf7410e6 GIT binary patch literal 62632 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�cj3P=*Ke{j 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

    Xs7dU)EZ8^a`&PpLk*NH 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 literal 0 HcmV?d00001 diff --git a/django/conf/locale/et/LC_MESSAGES/django.po b/django/conf/locale/et/LC_MESSAGES/django.po new file mode 100644 index 0000000000..3c96818210 --- /dev/null +++ b/django/conf/locale/et/LC_MESSAGES/django.po @@ -0,0 +1,4340 @@ +# Estonian translation for the Django Project. +# Copyright (C) 2008, Django Project +# This file is distributed under the same license as the django package. +msgid "" +msgstr "" +"Project-Id-Version: Django\n" +"Report-Msgid-Bugs-To: removethis-eallik_at_gmail-com\n" +"POT-Creation-Date: 2008-06-02 19:15+0300\n" +"PO-Revision-Date: 2008-06-17 12:29+0300\n" +"Last-Translator: Erik Allik \n" +"Language-Team: Django-i18n \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: conf/global_settings.py:43 +msgid "Arabic" +msgstr "araabia" + +#: conf/global_settings.py:44 +msgid "Bengali" +msgstr "bengali" + +#: conf/global_settings.py:45 +msgid "Bulgarian" +msgstr "bulgaaria" + +#: conf/global_settings.py:46 +msgid "Catalan" +msgstr "katalaani" + +#: conf/global_settings.py:47 +msgid "Czech" +msgstr "tšehhi" + +#: conf/global_settings.py:48 +msgid "Welsh" +msgstr "uelsi" + +#: conf/global_settings.py:49 +msgid "Danish" +msgstr "taani" + +#: conf/global_settings.py:50 +msgid "German" +msgstr "saksa" + +#: conf/global_settings.py:51 +msgid "Greek" +msgstr "kreeka" + +#: conf/global_settings.py:52 +msgid "English" +msgstr "inglise" + +#: conf/global_settings.py:53 +msgid "Spanish" +msgstr "hispaania" + +#: conf/global_settings.py:54 +msgid "Argentinean Spanish" +msgstr "argentiina hispaania" + +#: conf/global_settings.py:55 +msgid "Basque" +msgstr "baski" + +#: conf/global_settings.py:56 +msgid "Persian" +msgstr "pärsia" + +#: conf/global_settings.py:57 +msgid "Finnish" +msgstr "soome" + +#: conf/global_settings.py:58 +msgid "French" +msgstr "prantsuse" + +#: conf/global_settings.py:59 +msgid "Irish" +msgstr "iiri" + +#: conf/global_settings.py:60 +msgid "Galician" +msgstr "galiitsia" + +#: conf/global_settings.py:61 +msgid "Hungarian" +msgstr "ungari" + +#: conf/global_settings.py:62 +msgid "Hebrew" +msgstr "heebrea" + +#: conf/global_settings.py:63 +msgid "Croatian" +msgstr "horvaatia" + +#: conf/global_settings.py:64 +msgid "Icelandic" +msgstr "islandi" + +#: conf/global_settings.py:65 +msgid "Italian" +msgstr "itaalia" + +#: conf/global_settings.py:66 +msgid "Japanese" +msgstr "jaapani" + +#: conf/global_settings.py:67 +msgid "Georgian" +msgstr "gruusia" + +#: conf/global_settings.py:68 +msgid "Korean" +msgstr "korea" + +#: conf/global_settings.py:69 +msgid "Khmer" +msgstr "khmeri" + +#: conf/global_settings.py:70 +msgid "Kannada" +msgstr "kannada" + +#: conf/global_settings.py:71 +msgid "Latvian" +msgstr "läti" + +#: conf/global_settings.py:72 +msgid "Macedonian" +msgstr "makedoonia" + +#: conf/global_settings.py:73 +msgid "Dutch" +msgstr "hollandi" + +#: conf/global_settings.py:74 +msgid "Norwegian" +msgstr "norra" + +#: conf/global_settings.py:75 +msgid "Polish" +msgstr "poola" + +#: conf/global_settings.py:76 +msgid "Portugese" +msgstr "portugali" + +#: conf/global_settings.py:77 +msgid "Brazilian Portuguese" +msgstr "brasiilia portugali" + +#: conf/global_settings.py:78 +msgid "Romanian" +msgstr "rumeenia" + +#: conf/global_settings.py:79 +msgid "Russian" +msgstr "vene" + +#: conf/global_settings.py:80 +msgid "Slovak" +msgstr "slovaki" + +#: conf/global_settings.py:81 +msgid "Slovenian" +msgstr "sloveeni" + +#: conf/global_settings.py:82 +msgid "Serbian" +msgstr "serbia" + +#: conf/global_settings.py:83 +msgid "Swedish" +msgstr "rootsi" + +#: conf/global_settings.py:84 +msgid "Tamil" +msgstr "tamiili" + +#: conf/global_settings.py:85 +msgid "Telugu" +msgstr "telugu" + +#: conf/global_settings.py:86 +msgid "Turkish" +msgstr "türgi" + +#: conf/global_settings.py:87 +msgid "Ukrainian" +msgstr "ukrania" + +#: conf/global_settings.py:88 +msgid "Simplified Chinese" +msgstr "lihtsustatud hiina" + +#: conf/global_settings.py:89 +msgid "Traditional Chinese" +msgstr "traditsiooniline hiina" + +#: contrib/admin/filterspecs.py:44 +#, python-format +msgid "" +"

    By %s:

    \n" +"
      \n" +msgstr "" +"

      %s:

      \n" +"
        \n" + +#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173 +msgid "All" +msgstr "Kõik" + +#: contrib/admin/filterspecs.py:113 +msgid "Any date" +msgstr "Suvaline kuupäev" + +#: contrib/admin/filterspecs.py:114 +msgid "Today" +msgstr "Täna" + +#: contrib/admin/filterspecs.py:117 +msgid "Past 7 days" +msgstr "Viimased 7 päeva" + +#: contrib/admin/filterspecs.py:119 +msgid "This month" +msgstr "Käesolev kuu" + +#: contrib/admin/filterspecs.py:121 +msgid "This year" +msgstr "Käesolev aasta" + +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: oldforms/__init__.py:592 +msgid "Yes" +msgstr "Jah" + +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: oldforms/__init__.py:592 +msgid "No" +msgstr "Ei" + +#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231 +#: oldforms/__init__.py:592 +msgid "Unknown" +msgstr "Tundmatu" + +#: contrib/admin/models.py:18 +msgid "action time" +msgstr "toimingu aeg" + +#: contrib/admin/models.py:21 +msgid "object id" +msgstr "objekti id" + +#: contrib/admin/models.py:22 +msgid "object repr" +msgstr "objekti esitus" + +#: contrib/admin/models.py:23 +msgid "action flag" +msgstr "toimingu lipp" + +#: contrib/admin/models.py:24 +msgid "change message" +msgstr "muudatuse tekst" + +#: contrib/admin/models.py:27 +msgid "log entry" +msgstr "logisissekanne" + +#: contrib/admin/models.py:28 +msgid "log entries" +msgstr "logisissekanded" + +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "Lehte ei leitud" + +#: contrib/admin/templates/admin/404.html:10 +msgid "We're sorry, but the requested page could not be found." +msgstr "Vabandame, kuid soovitud lehte ei leitud." + +#: 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 "Kodu" + +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "Serveri viga" + +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "Serveri viga (500)" + +#: contrib/admin/templates/admin/500.html:9 +msgid "Server Error (500)" +msgstr "Serveri Viga (500)" + +#: 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 "" +"On tekkinud viga. Vastavasisuline teavitus on saadetud süsteemi haldajale " +"ning vea parandamisega tegeletakse esimesel võimalusel. Täname mõistva " +"suhtumise eest!" + +#: contrib/admin/templates/admin/base.html:26 +msgid "Welcome," +msgstr "Tere tulemast," + +#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Documentation" +msgstr "Dokumentatsioon" + +#: 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 "Muuda salasõna" + +#: contrib/admin/templates/admin/base.html:30 +#: contrib/comments/templates/comments/form.html:6 +msgid "Log out" +msgstr "Logi välja" + +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "Django administreerimisliides" + +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "Django administreerimisliides" + +#: contrib/admin/templates/admin/change_form.html:14 +#: contrib/admin/templates/admin/index.html:28 +msgid "Add" +msgstr "Lisa" + +#: contrib/admin/templates/admin/change_form.html:20 +#: contrib/admin/templates/admin/object_history.html:4 +msgid "History" +msgstr "Ajalugu" + +#: contrib/admin/templates/admin/change_form.html:21 +msgid "View on site" +msgstr "Näida lehel" + +#: 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] "Palun parandage allolev viga" +msgstr[1] "Palun parandage allolevad vead" + +#: contrib/admin/templates/admin/change_form.html:49 +msgid "Ordering" +msgstr "Järjestus" + +#: contrib/admin/templates/admin/change_form.html:52 +msgid "Order:" +msgstr "Järjestus:" + +#: contrib/admin/templates/admin/change_list.html:11 +#, python-format +msgid "Add %(name)s" +msgstr "Lisa %(name)s" + +#: contrib/admin/templates/admin/delete_confirmation.html:8 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Delete" +msgstr "Kustuta" + +#: 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 "" +"Selleks, et kustutada %(object_name)s '%(escaped_object)s', on vaja " +"kustutada lisaks ka kõik seotud objecktid, aga teil puudub õigus järgnevat " +"tüüpi objektide kustutamiseks:" + +#: 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 "" +"Kas olete kindel, et soovite kustutada objekti %(object_name)s \"%" +"(escaped_object)s\"? Kõik järgnevad seotud objektid kustutatakse koos " +"sellega:" + +#: contrib/admin/templates/admin/delete_confirmation.html:25 +msgid "Yes, I'm sure" +msgstr "Jah, olen kindel" + +#: 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 "Filtreeri" + +#: contrib/admin/templates/admin/index.html:17 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "Rakenduses %(name)s leitud mudelid" + +#: 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 "Muuda" + +#: contrib/admin/templates/admin/index.html:44 +msgid "You don't have permission to edit anything." +msgstr "Teil ei ole õigust midagi muuta." + +#: contrib/admin/templates/admin/index.html:52 +msgid "Recent Actions" +msgstr "Hiljutised Toimingud" + +#: contrib/admin/templates/admin/index.html:53 +msgid "My Actions" +msgstr "Minu Toimingud" + +#: contrib/admin/templates/admin/index.html:57 +msgid "None available" +msgstr "Ei leitud ühtegi" + +#: 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 "" +"On tekkinud viga seoses andmebaasiga. Veenduge, et kõik vajalikud " +"andmebaasitabelid on loodud ning et andmebaas on vastava kasutaja poolt " +"loetav." + +#: contrib/admin/templates/admin/login.html:17 +#: contrib/comments/templates/comments/form.html:6 +#: contrib/comments/templates/comments/form.html:8 +msgid "Username:" +msgstr "Kasutajatunnus:" + +#: contrib/admin/templates/admin/login.html:20 +#: contrib/comments/templates/comments/form.html:8 +msgid "Password:" +msgstr "Salasõna:" + +#: contrib/admin/templates/admin/login.html:25 +#: contrib/admin/views/decorators.py:31 +msgid "Log in" +msgstr "Sisene" + +#: contrib/admin/templates/admin/object_history.html:17 +msgid "Date/time" +msgstr "Kuupäev/kellaaeg" + +#: contrib/admin/templates/admin/object_history.html:18 +msgid "User" +msgstr "Kasutaja" + +#: contrib/admin/templates/admin/object_history.html:19 +msgid "Action" +msgstr "Toiming" + +#: 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 "" +"Sellel objektil puudub muudatuste ajalugu. Tõenäoliselt ei kasutatud selle " +"objekti lisamisel käesolevat administreerimislidest." + +#: contrib/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "Näita kõiki" + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Go" +msgstr "Mine" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "1 tulemus" +msgstr[1] "%(counter)s tulemust" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "%(full_result_count)s total" +msgstr "Kokku %(full_result_count)s" + +#: contrib/admin/templates/admin/submit_line.html:4 +msgid "Save as new" +msgstr "Salvesta uuena" + +#: contrib/admin/templates/admin/submit_line.html:5 +msgid "Save and add another" +msgstr "Salvesta ja lisa uus" + +#: contrib/admin/templates/admin/submit_line.html:6 +msgid "Save and continue editing" +msgstr "Salvesta ja jätka muutmist" + +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save" +msgstr "Salvesta" + +#: 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 "" +"Kõige pealt sisestage kasutajatunnus ja salasõna, seejärel on võimalik muuta " +"täiendavaid kasutajaandmeid." + +#: contrib/admin/templates/admin/auth/user/add_form.html:12 +msgid "Username" +msgstr "Kasutajatunnus" + +#: contrib/admin/templates/admin/auth/user/add_form.html:18 +#: contrib/admin/templates/admin/auth/user/change_password.html:33 +msgid "Password" +msgstr "Salasõna" + +#: contrib/admin/templates/admin/auth/user/add_form.html:23 +#: contrib/admin/templates/admin/auth/user/change_password.html:38 +msgid "Password (again)" +msgstr "Salasõna (uuesti)" + +#: 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 "" +"Sisestage sama salasõna uuesti veendumaks, et sisestamisel ei tekkinud vigu" + +#: contrib/admin/templates/admin/auth/user/change_password.html:27 +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Sisestage uus salasõna kasutajale %(username)s" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Bookmarklets" +msgstr "Järjehoidjad" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +msgid "Documentation bookmarklets" +msgstr "Dokumentatsiooni järjehoidjad" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:8 +msgid "" +"\n" +"

        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\").

        \n" +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:18 +msgid "Documentation for this page" +msgstr "Selle lehekülje dokumentatsioon" + +#: 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 "Näita objekti ID-d" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:22 +msgid "" +"Shows the content-type and unique ID for pages that represent a single " +"object." +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:24 +msgid "Edit this object (current window)" +msgstr "Muuda seda objekti (samas aknas)" + +#: 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 "Muuda seda objekti (uues aknas)" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:28 +msgid "As above, but opens the admin page in a new window." +msgstr "Sama, mis üleval, kuid avab admin. lehe uues aknas." + +#: contrib/admin/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Tänan, et veetsite aega meie lehel." + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "Logi uuesti sisse" + +#: 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 "Salasõna muutmine" + +#: contrib/admin/templates/registration/password_change_done.html:5 +#: contrib/admin/templates/registration/password_change_done.html:9 +msgid "Password change successful" +msgstr "Salasõna muutmine õnnestus" + +#: contrib/admin/templates/registration/password_change_done.html:11 +msgid "Your password was changed." +msgstr "Teie salasõna on vahetatud." + +#: 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 "" +"Turvalisuse tagamiseks palun sisestage oma praegune salasõna ning seejärel " +"uus salasõna.Veendumaks, et uue salasõna sisestamisel ei tekkinud vigu, " +"palun sisestage see kaks korda." + +#: contrib/admin/templates/registration/password_change_form.html:16 +msgid "Old password:" +msgstr "Senine salasõna:" + +#: contrib/admin/templates/registration/password_change_form.html:18 +msgid "New password:" +msgstr "Uus salasõna:" + +#: contrib/admin/templates/registration/password_change_form.html:20 +msgid "Confirm password:" +msgstr "Kinnita salasõna:" + +#: contrib/admin/templates/registration/password_change_form.html:22 +msgid "Change my password" +msgstr "Muuda salasõna" + +#: 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 "Uue parooli loomine" + +#: contrib/admin/templates/registration/password_reset_done.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:10 +msgid "Password reset successful" +msgstr "Uue parooli loomine õnnestus" + +#: 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 "" +"Teie poolt sisestatud e-posti aadressile on saadetud kiri uue salasõnaga. " +"Kiri saabub üsna pea." + +#: contrib/admin/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "See kiri saadeti teile, sest soovisite uut salasõna" + +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "teie kasutajakontole lehel %(site_name)s" + +#: contrib/admin/templates/registration/password_reset_email.html:5 +#, python-format +msgid "Your new password is: %(new_password)s" +msgstr "Teie uus parool onÖ %(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 "Parooli vahetamiseks minge:" + +#: contrib/admin/templates/registration/password_reset_email.html:11 +msgid "Your username, in case you've forgotten:" +msgstr "Teie kasutajatunnus juhul, kui olete unustanud:" + +#: contrib/admin/templates/registration/password_reset_email.html:13 +msgid "Thanks for using our site!" +msgstr "Täname meie lehte külastamast!" + +#: contrib/admin/templates/registration/password_reset_email.html:15 +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s meeskond" + +#: 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 "" +"Unustasid parool? Sisesta oma e-posti aadress ning me saadame sulle uue " +"parooli e-kirjaga." + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "E-posti aadress:" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "Reseti parool" + +#: contrib/admin/templates/widget/date_time.html:3 +msgid "Date:" +msgstr "Kuupäev:" + +#: contrib/admin/templates/widget/date_time.html:4 +msgid "Time:" +msgstr "Aeg:" + +#: contrib/admin/templates/widget/file.html:2 +msgid "Currently:" +msgstr "Hetkel:" + +#: contrib/admin/templates/widget/file.html:3 +msgid "Change:" +msgstr "Muuda:" + +#: contrib/admin/templatetags/admin_list.py:257 +msgid "All dates" +msgstr "Kõik kuupäevad" + +#: 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\" lisamine õnnestus." + +#: 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 "Te võite selle muutmist jätkata." + +#: contrib/admin/views/auth.py:31 +msgid "Add user" +msgstr "Lisa kasutaja" + +#: contrib/admin/views/auth.py:58 +msgid "Password changed successfully." +msgstr "Salasõna edukalt muudetud." + +#: contrib/admin/views/auth.py:65 +#, python-format +msgid "Change password: %s" +msgstr "Muuda salasõna: %s" + +#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60 +msgid "" +"Please enter a correct username and password. Note that both fields are case-" +"sensitive." +msgstr "" +"Palun sisestage korrektne kasutajatunnus ja salasõna. Mõlemad väljad on " +"tõstutundlikud." + +#: contrib/admin/views/decorators.py:69 +msgid "" +"Please log in again, because your session has expired. Don't worry: Your " +"submission has been saved." +msgstr "" +"Teie sessioon on aegunud. Palun logige uuesti sisse. Olge mureta: sisestatud " +"andmed on salvestatud." + +#: contrib/admin/views/decorators.py:76 +msgid "" +"Looks like your browser isn't configured to accept cookies. Please enable " +"cookies, reload this page, and try again." +msgstr "" +"Paistab, et Teie brauser ei aktsepteeri küpsiseid. Palun võimaldage küpsised " +"ning seejärel laadige see leht uuesti." + +#: contrib/admin/views/decorators.py:89 +#, python-format +msgid "Your e-mail address is not your username. Try '%s' instead." +msgstr "" +"Teie e-posti aadress ei ole sama asi, mis Teie kasutajatunnus. Proovige '%s'." + +#: contrib/admin/views/decorators.py:93 +msgid "Usernames cannot contain the '@' character." +msgstr "Kasutajatunnused ei tohi sisaldada '@' märki." + +#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50 +#: contrib/admin/views/doc.py:52 +msgid "tag:" +msgstr "lipik:" + +#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81 +#: contrib/admin/views/doc.py:83 +msgid "filter:" +msgstr "filtreeri:" + +#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139 +#: contrib/admin/views/doc.py:141 +msgid "view:" +msgstr "vaade:" + +#: contrib/admin/views/doc.py:166 +#, python-format +msgid "App %r not found" +msgstr "Rakendust %r ei leitud" + +#: contrib/admin/views/doc.py:173 +#, python-format +msgid "Model %(name)r not found in app %(label)r" +msgstr "Mudelit %(name)r ei leitud rakenduses %(label)r" + +#: contrib/admin/views/doc.py:185 +#, python-format +msgid "the related `%(label)s.%(type)s` object" +msgstr "seotud `%(label)s.%(type)s` objekt" + +#: 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 "mudel:" + +#: contrib/admin/views/doc.py:216 +#, python-format +msgid "related `%(label)s.%(name)s` objects" +msgstr "seotud `%(label)s.%(name)s` objektid" + +#: contrib/admin/views/doc.py:221 +#, python-format +msgid "all %s" +msgstr "kõik %s" + +#: contrib/admin/views/doc.py:226 +#, python-format +msgid "number of %s" +msgstr "%s arv" + +#: contrib/admin/views/doc.py:231 +#, python-format +msgid "Fields on %s objects" +msgstr "Objekti %s väljad" + +#: 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 "Täisarv" + +#: contrib/admin/views/doc.py:294 +msgid "Boolean (Either True or False)" +msgstr "Tõeväärtus (Kas tõene või väär)" + +#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "String (kuni %(max_length)s märki)" + +#: contrib/admin/views/doc.py:296 +msgid "Comma-separated integers" +msgstr "Komaga eraldatud täisarvud" + +#: contrib/admin/views/doc.py:297 +msgid "Date (without time)" +msgstr "Kuupäev (kellaajata)" + +#: contrib/admin/views/doc.py:298 +msgid "Date (with time)" +msgstr "Kuupäev (kellaajaga)" + +#: contrib/admin/views/doc.py:299 +msgid "Decimal number" +msgstr "Kümnendmurd" + +#: contrib/admin/views/doc.py:300 +msgid "E-mail address" +msgstr "E-posti aadress" + +#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302 +#: contrib/admin/views/doc.py:305 +msgid "File path" +msgstr "Faili asukoht" + +#: contrib/admin/views/doc.py:303 +msgid "Floating point number" +msgstr "Ujukomaarv" + +#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89 +msgid "IP address" +msgstr "IP aadress" + +#: contrib/admin/views/doc.py:309 +msgid "Boolean (Either True, False or None)" +msgstr "Tõeväärtus (Kas tõene, väär või tühi)" + +#: contrib/admin/views/doc.py:310 +msgid "Relation to parent model" +msgstr "Seos ülem-mudeliga" + +#: contrib/admin/views/doc.py:311 +msgid "Phone number" +msgstr "Telefoninumber" + +#: contrib/admin/views/doc.py:316 +msgid "Text" +msgstr "Tekst" + +#: contrib/admin/views/doc.py:317 +msgid "Time" +msgstr "Aeg" + +#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:8 +msgid "URL" +msgstr "URL" + +#: contrib/admin/views/doc.py:319 +msgid "U.S. state (two uppercase letters)" +msgstr "U.S.A. osariik (kaks suurt tähte)" + +#: contrib/admin/views/doc.py:320 +msgid "XML text" +msgstr "XML tekst" + +#: contrib/admin/views/doc.py:346 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "%s ei tundu olevat urlpattern objekt" + +#: contrib/admin/views/main.py:233 +msgid "Site administration" +msgstr "Saidi administreerimine" + +#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365 +#, python-format +msgid "You may add another %s below." +msgstr "Te võite lisada uue objekti %s" + +#: contrib/admin/views/main.py:298 +#, python-format +msgid "Add %s" +msgstr "Lisa %s" + +#: contrib/admin/views/main.py:344 +#, python-format +msgid "Added %s." +msgstr "Lisasin %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 "ja" + +#: contrib/admin/views/main.py:346 +#, python-format +msgid "Changed %s." +msgstr "Muutsin %s." + +#: contrib/admin/views/main.py:348 +#, python-format +msgid "Deleted %s." +msgstr "Kustutasin %s." + +#: contrib/admin/views/main.py:351 +msgid "No fields changed." +msgstr "Ühtegi välja ei muudetud." + +#: contrib/admin/views/main.py:354 +#, python-format +msgid "The %(name)s \"%(obj)s\" was changed successfully." +msgstr "Objekti %(name)s \"%(obj)s\" muutmine õnnestus." + +#: contrib/admin/views/main.py:362 +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "Objekti %(name)s \"%(obj)s\" lisamine õnnestus. Te võite seda muuta." + +#: contrib/admin/views/main.py:400 +#, python-format +msgid "Change %s" +msgstr "Muuda %s" + +#: contrib/admin/views/main.py:487 +#, python-format +msgid "One or more %(fieldname)s in %(name)s: %(obj)s" +msgstr "" + +#: contrib/admin/views/main.py:492 +#, python-format +msgid "One or more %(fieldname)s in %(name)s:" +msgstr "" + +#: contrib/admin/views/main.py:524 +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "Objekti %(name)s \"%(obj)s\" kustutamine õnnestus." + +#: contrib/admin/views/main.py:527 +msgid "Are you sure?" +msgstr "Kas olete kindel?" + +#: contrib/admin/views/main.py:549 +#, python-format +msgid "Change history: %s" +msgstr "Muudatuste ajalugu: %s" + +#: contrib/admin/views/main.py:583 +#, python-format +msgid "Select %s" +msgstr "Vali %s" + +#: contrib/admin/views/main.py:583 +#, python-format +msgid "Select %s to change" +msgstr "Vali %s mida muuta" + +#: contrib/admin/views/main.py:765 +msgid "Database error" +msgstr "Andmebaasi viga" + +#: contrib/auth/forms.py:17 contrib/auth/forms.py:138 +msgid "The two password fields didn't match." +msgstr "Kaks sisestatud parooli ei olnud identsed." + +#: contrib/auth/forms.py:25 +msgid "A user with that username already exists." +msgstr "Sama kasutajatunnusega kasutaja on juba olemas." + +#: contrib/auth/forms.py:53 +msgid "" +"Your Web browser doesn't appear to have cookies enabled. Cookies are " +"required for logging in." +msgstr "" +"Teie veebibrauser ei aktsepteeri küpsiseid, aga küpsised on sisselogimiseks " +"vajalikud." + +#: contrib/auth/forms.py:62 +msgid "This account is inactive." +msgstr "See konto ei ole aktiivne." + +#: contrib/auth/forms.py:84 +msgid "" +"That e-mail address doesn't have an associated user account. Are you sure " +"you've registered?" +msgstr "" +"Selle e-posti aadressiga ei ole seotud ühtegi kasutajakontot. Veenduge, et " +"olete registreerunud." + +#: contrib/auth/forms.py:107 +#, python-format +msgid "Password reset on %s" +msgstr "" + +#: contrib/auth/forms.py:117 +msgid "The two 'new password' fields didn't match." +msgstr "Sisestatud uue parooli väljad ei olnud identsed." + +#: contrib/auth/forms.py:124 +msgid "Your old password was entered incorrectly. Please enter it again." +msgstr "Te sisestasite oma vana parooli vigaselt. Palun sisestage see uuesti." + +#: contrib/auth/models.py:73 contrib/auth/models.py:93 +msgid "name" +msgstr "nimi" + +#: contrib/auth/models.py:75 +msgid "codename" +msgstr "koodnimi" + +#: contrib/auth/models.py:78 +msgid "permission" +msgstr "õigus" + +#: contrib/auth/models.py:79 contrib/auth/models.py:94 +msgid "permissions" +msgstr "õigused" + +#: contrib/auth/models.py:97 +msgid "group" +msgstr "grupp" + +#: contrib/auth/models.py:98 contrib/auth/models.py:141 +msgid "groups" +msgstr "grupid" + +#: contrib/auth/models.py:131 +msgid "username" +msgstr "kasutajatunnus" + +#: contrib/auth/models.py:131 +msgid "" +"Required. 30 characters or fewer. Alphanumeric characters only (letters, " +"digits and underscores)." +msgstr "Nõutav. 30 tähemärki või vähem. Ainult tähed, numbrid ja alakriipsud." + +#: contrib/auth/models.py:132 +msgid "first name" +msgstr "eesnimi" + +#: contrib/auth/models.py:133 +msgid "last name" +msgstr "perenimi" + +#: contrib/auth/models.py:134 +msgid "e-mail address" +msgstr "e-posti aadress" + +#: contrib/auth/models.py:135 +msgid "password" +msgstr "salasõna" + +#: contrib/auth/models.py:135 +msgid "" +"Use '[algo]$[salt]$[hexdigest]' or use the change " +"password form." +msgstr "" + +#: contrib/auth/models.py:136 +msgid "staff status" +msgstr "personalistaatus" + +#: contrib/auth/models.py:136 +msgid "Designates whether the user can log into this admin site." +msgstr "" +"Määrab, kas kasutaja saab sisse logida sellesse admininistreerimisliidesesse." + +#: contrib/auth/models.py:137 +msgid "active" +msgstr "aktiivne" + +#: contrib/auth/models.py:137 +msgid "" +"Designates whether this user should be treated as active. Unselect this " +"instead of deleting accounts." +msgstr "" +"Määrab, kas see konto on aktiivne. Kustutamise asemel lihtsalt deaktiveerige " +"konto." + +#: contrib/auth/models.py:138 +msgid "superuser status" +msgstr "superkasutaja staatus" + +#: contrib/auth/models.py:138 +msgid "" +"Designates that this user has all permissions without explicitly assigning " +"them." +msgstr "Määrab, kas see kasutaja omab automaatselt ja alati kõiki õigus." + +#: contrib/auth/models.py:139 +msgid "last login" +msgstr "viimane sisenemine" + +#: contrib/auth/models.py:140 +msgid "date joined" +msgstr "liitumise kuupäev" + +#: 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 "" +"Lisaks neile õigustele, mis kasutajale on määratud, omab kasutaja ka neid " +"õigusi, mis on nendel gruppidel, millesse ta kuulub." + +#: contrib/auth/models.py:143 +msgid "user permissions" +msgstr "kasutajaõigused" + +#: contrib/auth/models.py:147 +msgid "user" +msgstr "kasutaja" + +#: contrib/auth/models.py:148 +msgid "users" +msgstr "kasutajad" + +#: contrib/auth/models.py:154 +msgid "Personal info" +msgstr "Isiklikud andmd" + +#: contrib/auth/models.py:155 +msgid "Permissions" +msgstr "Õigused" + +#: contrib/auth/models.py:156 +msgid "Important dates" +msgstr "Tähtsad kuupäevad" + +#: contrib/auth/models.py:157 +msgid "Groups" +msgstr "Grupid" + +#: contrib/auth/models.py:316 +msgid "message" +msgstr "sõnum" + +#: contrib/auth/views.py:47 +msgid "Logged out" +msgstr "Välja logitud" + +#: contrib/comments/models.py:71 contrib/comments/models.py:176 +msgid "object ID" +msgstr "objekti ID" + +#: contrib/comments/models.py:72 +msgid "headline" +msgstr "pealkiri" + +#: contrib/comments/models.py:73 contrib/comments/models.py:95 +#: contrib/comments/models.py:177 +msgid "comment" +msgstr "kommentaar" + +#: contrib/comments/models.py:74 +msgid "rating #1" +msgstr "reiting #1" + +#: contrib/comments/models.py:75 +msgid "rating #2" +msgstr "reiting #2" + +#: contrib/comments/models.py:76 +msgid "rating #3" +msgstr "reiting #3" + +#: contrib/comments/models.py:77 +msgid "rating #4" +msgstr "reiting #4" + +#: contrib/comments/models.py:78 +msgid "rating #5" +msgstr "reiting #5" + +#: contrib/comments/models.py:79 +msgid "rating #6" +msgstr "reiting #6" + +#: contrib/comments/models.py:80 +msgid "rating #7" +msgstr "reiting #7" + +#: contrib/comments/models.py:81 +msgid "rating #8" +msgstr "reiting #8" + +#: contrib/comments/models.py:86 +msgid "is valid rating" +msgstr "on korrektne reiting" + +#: contrib/comments/models.py:87 contrib/comments/models.py:179 +msgid "date/time submitted" +msgstr "loomise kuupäev/kellaaeg" + +#: contrib/comments/models.py:88 contrib/comments/models.py:180 +msgid "is public" +msgstr "on avalik" + +#: contrib/comments/models.py:90 +msgid "is removed" +msgstr "on eemaldatud" + +#: 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 "" +"Märkige siia linnuke, kui see kommentaar on ebasobiv. Kommentaari asemel " +"kuvatakse kirja \"Kommentaar on kustutatud\"." + +#: contrib/comments/models.py:96 +msgid "comments" +msgstr "kommentaarid" + +#: contrib/comments/models.py:140 contrib/comments/models.py:222 +msgid "Content object" +msgstr "Sisuobjekt" + +#: 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 "" +"Postitatud kasutaja %(user)s poolt %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" + +#: contrib/comments/models.py:178 +msgid "person's name" +msgstr "isiku nimi" + +#: contrib/comments/models.py:181 +msgid "ip address" +msgstr "ip aadress" + +#: contrib/comments/models.py:183 +msgid "approved by staff" +msgstr "personali poolt heaks kiidetud" + +#: contrib/comments/models.py:187 +msgid "free comment" +msgstr "vaba kommentaar" + +#: contrib/comments/models.py:188 +msgid "free comments" +msgstr "vabad kommentaarid" + +#: contrib/comments/models.py:250 +msgid "score" +msgstr "tulemus" + +#: contrib/comments/models.py:251 +msgid "score date" +msgstr "tulemuse kuupäev" + +#: contrib/comments/models.py:255 +msgid "karma score" +msgstr "karma tulemus" + +#: contrib/comments/models.py:256 +msgid "karma scores" +msgstr "karma tulemused" + +#: contrib/comments/models.py:260 +#, python-format +msgid "%(score)d rating by %(user)s" +msgstr "%(score)d reiting kasutaja %(user)s poolt" + +#: contrib/comments/models.py:277 +#, python-format +msgid "" +"This comment was flagged by %(user)s:\n" +"\n" +"%(text)s" +msgstr "" +"See kommentaar märgiti kasutaja %(user)s poolt:\n" +"\n" +"%(text)s" + +#: contrib/comments/models.py:285 +msgid "flag date" +msgstr "märkimise kuupäev" + +#: contrib/comments/models.py:289 +msgid "user flag" +msgstr "kasutajamärge" + +#: contrib/comments/models.py:290 +msgid "user flags" +msgstr "kasutajamärked" + +#: contrib/comments/models.py:294 +#, python-format +msgid "Flag by %r" +msgstr "Lipu pani %r" + +#: contrib/comments/models.py:300 +msgid "deletion date" +msgstr "kustutamise kuupäev" + +#: contrib/comments/models.py:303 +msgid "moderator deletion" +msgstr "moderaatori kustutus" + +#: contrib/comments/models.py:304 +msgid "moderator deletions" +msgstr "moderaatori kustutused" + +#: contrib/comments/models.py:308 +#, python-format +msgid "Moderator deletion by %r" +msgstr "moderaatori kustutus kasutaja %r poolt" + +#: contrib/comments/templates/comments/form.html:8 +msgid "Forgotten your password?" +msgstr "Unustasid salasõna?" + +#: contrib/comments/templates/comments/form.html:12 +msgid "Ratings" +msgstr "Reitingud" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Required" +msgstr "Nõutav" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Optional" +msgstr "Valikuline" + +#: contrib/comments/templates/comments/form.html:23 +msgid "Post a photo" +msgstr "Postita foto" + +#: contrib/comments/templates/comments/form.html:28 +#: contrib/comments/templates/comments/freeform.html:5 +msgid "Comment:" +msgstr "Kommentaar:" + +#: contrib/comments/templates/comments/form.html:35 +#: contrib/comments/templates/comments/freeform.html:10 +msgid "Preview comment" +msgstr "Kommentaari eelvaade" + +#: contrib/comments/templates/comments/freeform.html:4 +msgid "Your name:" +msgstr "Teie nimi:" + +#: contrib/comments/views/comments.py:28 +msgid "" +"This rating is required because you've entered at least one other rating." +msgstr "" +"See reiting on nõutav, sest olete sisestanud vähemalt ühe teise reitingu." + +#: 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] "" +msgstr[1] "" + +#: contrib/comments/views/comments.py:117 +#, python-format +msgid "" +"This comment was posted by a sketchy user:\n" +"\n" +"%(text)s" +msgstr "" +"Selle kommentaari postitas pealiskaudne kasutaja:\n" +"\n" +"%(text)s" + +#: contrib/comments/views/comments.py:190 +#: contrib/comments/views/comments.py:283 +msgid "Only POSTs are allowed" +msgstr "Ainult POST päringud on lubatud" + +#: contrib/comments/views/comments.py:194 +#: contrib/comments/views/comments.py:287 +msgid "One or more of the required fields wasn't submitted" +msgstr "Üks või enam nõutavatest väljadest on puudu" + +#: contrib/comments/views/comments.py:198 +#: contrib/comments/views/comments.py:289 +msgid "Somebody tampered with the comment form (security violation)" +msgstr "" +"Keegi on kommentaari ankeeti sisestanud vigaseid andmed (turvarikkumine)" + +#: 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 "" +"Kommentaariankeet sisaldas ebakorrektset 'target' parameetrit -- objekti ID " +"ei olnud korrektne" + +#: contrib/comments/views/comments.py:259 +#: contrib/comments/views/comments.py:324 +msgid "The comment form didn't provide either 'preview' or 'post'" +msgstr "Kommentaari ankeedis oli puudu kas 'preview' või 'post'" + +#: contrib/comments/views/karma.py:21 +msgid "Anonymous users cannot vote" +msgstr "Anonüümsed kasutajad ei saa hääletada" + +#: contrib/comments/views/karma.py:25 +msgid "Invalid comment ID" +msgstr "Ebakorrektne kommentaari ID" + +#: contrib/comments/views/karma.py:27 +msgid "No voting for yourself" +msgstr "Iseendale ei saa häält anda" + +#: contrib/contenttypes/models.py:67 +msgid "python model class name" +msgstr "pythoni mudeli klassinimi" + +#: contrib/contenttypes/models.py:71 +msgid "content type" +msgstr "sisutüüp" + +#: contrib/contenttypes/models.py:72 +msgid "content types" +msgstr "sisutüübid" + +#: contrib/flatpages/models.py:9 +msgid "" +"Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "" +"Näide: '/about/contact/'. Veenduge, et URL algaks ja lõppeks kaldkriipsuga." + +#: contrib/flatpages/models.py:10 +msgid "title" +msgstr "pealkiri" + +#: contrib/flatpages/models.py:11 +msgid "content" +msgstr "sisu" + +#: contrib/flatpages/models.py:12 +msgid "enable comments" +msgstr "võimalda kommentaarid" + +#: contrib/flatpages/models.py:13 +msgid "template name" +msgstr "mall" + +#: contrib/flatpages/models.py:14 +msgid "" +"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " +"will use 'flatpages/default.html'." +msgstr "" +"Näide: 'flatpages/contact_page.html'. Kui mall on määramata, kasutatakse " +"vaikimisi malli 'flatpages/default.html'." + +#: contrib/flatpages/models.py:15 +msgid "registration required" +msgstr "registreerumine nõutav" + +#: contrib/flatpages/models.py:15 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "Kui see on valitud, näevad lehte ainult sisselogitud kasutajad" + +#: contrib/flatpages/models.py:20 +msgid "flat page" +msgstr "sisuleht" + +#: contrib/flatpages/models.py:21 +msgid "flat pages" +msgstr "sisulehed" + +#: contrib/flatpages/models.py:27 +msgid "Advanced options" +msgstr "Lisavalikud" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "th" +msgstr "." + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "st" +msgstr "." + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "nd" +msgstr "." + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "rd" +msgstr "." + +#: contrib/humanize/templatetags/humanize.py:51 +#, python-format +msgid "%(value).1f million" +msgid_plural "%(value).1f million" +msgstr[0] "%(value).1f miljon" +msgstr[1] "%(value).11f miljonit" + +#: contrib/humanize/templatetags/humanize.py:54 +#, python-format +msgid "%(value).1f billion" +msgid_plural "%(value).1f billion" +msgstr[0] "%(value).1f miljard" +msgstr[1] "%(value).1f miljardit" + +#: contrib/humanize/templatetags/humanize.py:57 +#, python-format +msgid "%(value).1f trillion" +msgid_plural "%(value).1f trillion" +msgstr[0] "%(value).1f triljon" +msgstr[1] "%(value).1f triljonit" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "one" +msgstr "üks" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "two" +msgstr "kaks" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "three" +msgstr "kolm" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "four" +msgstr "neli" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "five" +msgstr "viis" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "six" +msgstr "kuus" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "seven" +msgstr "seitse" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "eight" +msgstr "kaheksa" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "nine" +msgstr "üheksa" + +#: contrib/humanize/templatetags/humanize.py:93 +msgid "today" +msgstr "täna" + +#: contrib/humanize/templatetags/humanize.py:95 +msgid "tomorrow" +msgstr "homme" + +#: contrib/humanize/templatetags/humanize.py:97 +msgid "yesterday" +msgstr "eile" + +#: contrib/localflavor/ar/forms.py:27 +msgid "Enter a postal code in the format NNNN or ANNNNAAA." +msgstr "Sisesta postiindeks kujul NNNN või ANNNNAAA." + +#: contrib/localflavor/ar/forms.py:49 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 "See väli peab koosnema ainult numbritest." + +#: contrib/localflavor/ar/forms.py:50 +msgid "This field requires 7 or 8 digits." +msgstr "Siin väljal peab olema kas 7 või 8 numbrit." + +#: contrib/localflavor/ar/forms.py:79 +msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." +msgstr "Sisesta korrektne CUIT kujul XX-XXXXXXXX-X or XXXXXXXXXXXX." + +#: contrib/localflavor/ar/forms.py:80 +msgid "Invalid CUIT." +msgstr "Vale CUIT." + +#: contrib/localflavor/au/forms.py:16 +msgid "Enter a 4 digit post code." +msgstr "Sisesta neljakohaline postiindeks." + +#: contrib/localflavor/br/forms.py:21 +msgid "Enter a zip code in the format XXXXX-XXX." +msgstr "Sisesta postiindeks kujul XXXXX-XXX." + +#: contrib/localflavor/br/forms.py:30 +msgid "Phone numbers must be in XX-XXXX-XXXX format." +msgstr "Telefoninumbrid peavad olema kujul 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 "Vali korrektne Brasiilia osariik. Valitud osariik ei ole korrektne." + +#: contrib/localflavor/br/forms.py:94 +msgid "Invalid CPF number." +msgstr "Mittekorrektne CPF number." + +#: contrib/localflavor/br/forms.py:95 +msgid "This field requires at most 11 digits or 14 characters." +msgstr "See väli võib olla maksimaalselt 11 või 14 sümbolit." + +#: contrib/localflavor/br/forms.py:134 +msgid "Invalid CNPJ number." +msgstr "Mittekorrektne CNPJ number." + +#: contrib/localflavor/br/forms.py:136 +msgid "This field requires at least 14 digits" +msgstr "See väli peab olema vähemalt 14-kohaline arv." + +#: contrib/localflavor/ca/forms.py:17 +msgid "Enter a postal code in the format XXX XXX." +msgstr "Sisesta postiindeks kujul XXX XXX." + +#: contrib/localflavor/ca/forms.py:88 +msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." +msgstr "Sisesta korrektne Kanada sotsiaalturvatunnus formaadis XXX-XXX-XXXX." + +#: contrib/localflavor/ch/ch_states.py:5 +msgid "Aargau" +msgstr "Aargau" + +#: contrib/localflavor/ch/ch_states.py:6 +msgid "Appenzell Innerrhoden" +msgstr "Appenzell Innerrhoden" + +#: contrib/localflavor/ch/ch_states.py:7 +msgid "Appenzell Ausserrhoden" +msgstr "Appenzell Ausserrhoden" + +#: contrib/localflavor/ch/ch_states.py:8 +msgid "Basel-Stadt" +msgstr "Basel-Stadt" + +#: contrib/localflavor/ch/ch_states.py:9 +msgid "Basel-Land" +msgstr "Basel-Land" + +#: contrib/localflavor/ch/ch_states.py:10 +msgid "Berne" +msgstr "Berne" + +#: contrib/localflavor/ch/ch_states.py:11 +msgid "Fribourg" +msgstr "Fribourg" + +#: contrib/localflavor/ch/ch_states.py:12 +msgid "Geneva" +msgstr "Geneva" + +#: contrib/localflavor/ch/ch_states.py:13 +msgid "Glarus" +msgstr "Glarus" + +#: contrib/localflavor/ch/ch_states.py:14 +msgid "Graubuenden" +msgstr "Graubuenden" + +#: contrib/localflavor/ch/ch_states.py:15 +msgid "Jura" +msgstr "Jura" + +#: contrib/localflavor/ch/ch_states.py:16 +msgid "Lucerne" +msgstr "Lucerne" + +#: contrib/localflavor/ch/ch_states.py:17 +msgid "Neuchatel" +msgstr "Neuchatel" + +#: contrib/localflavor/ch/ch_states.py:18 +msgid "Nidwalden" +msgstr "Nidwalden" + +#: contrib/localflavor/ch/ch_states.py:19 +msgid "Obwalden" +msgstr "Obwalden" + +#: contrib/localflavor/ch/ch_states.py:20 +msgid "Schaffhausen" +msgstr "Schaffhausen" + +#: contrib/localflavor/ch/ch_states.py:21 +msgid "Schwyz" +msgstr "Schwyz" + +#: contrib/localflavor/ch/ch_states.py:22 +msgid "Solothurn" +msgstr "Solothurn" + +#: contrib/localflavor/ch/ch_states.py:23 +msgid "St. Gallen" +msgstr "St. Gallen" + +#: contrib/localflavor/ch/ch_states.py:24 +msgid "Thurgau" +msgstr "Thurgau" + +#: contrib/localflavor/ch/ch_states.py:25 +msgid "Ticino" +msgstr "Ticino" + +#: contrib/localflavor/ch/ch_states.py:26 +msgid "Uri" +msgstr "Uri" + +#: contrib/localflavor/ch/ch_states.py:27 +msgid "Valais" +msgstr "Valais" + +#: contrib/localflavor/ch/ch_states.py:28 +msgid "Vaud" +msgstr "Vaud" + +#: contrib/localflavor/ch/ch_states.py:29 +msgid "Zug" +msgstr "Zug" + +#: contrib/localflavor/ch/ch_states.py:30 +msgid "Zurich" +msgstr "Zurich" + +#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12 +msgid "Enter a zip code in the format XXXX." +msgstr "Sisesta postiindeks kujul XXXX." + +#: contrib/localflavor/ch/forms.py:64 +msgid "" +"Enter a valid Swiss identity or passport card number in X1234567<0 or " +"1234567890 format." +msgstr "" +"Sisesta kehtiv Šveitsi isiku- või passinumber kujul X1234567<0 või " +"1234567890." + +#: contrib/localflavor/cl/forms.py:29 +msgid "Enter a valid Chilean RUT." +msgstr "Sisesta korrektne Tšiili RUT." + +#: contrib/localflavor/cl/forms.py:30 +msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." +msgstr "Sisesta korrektne Tšiili RUT formaadis XX.XXX.XXX-X." + +#: contrib/localflavor/cl/forms.py:31 +msgid "The Chilean RUT is not valid." +msgstr "Tšiili RUT on ebakorrektne." + +#: contrib/localflavor/de/de_states.py:5 +msgid "Baden-Wuerttemberg" +msgstr "Baden-Württemberg" + +#: contrib/localflavor/de/de_states.py:6 +msgid "Bavaria" +msgstr "Baieri" + +#: contrib/localflavor/de/de_states.py:7 +msgid "Berlin" +msgstr "Berliin" + +#: contrib/localflavor/de/de_states.py:8 +msgid "Brandenburg" +msgstr "Brandenburg" + +#: contrib/localflavor/de/de_states.py:9 +msgid "Bremen" +msgstr "Bremen" + +#: contrib/localflavor/de/de_states.py:10 +msgid "Hamburg" +msgstr "Hamburg" + +#: contrib/localflavor/de/de_states.py:11 +msgid "Hessen" +msgstr "Hessen" + +#: contrib/localflavor/de/de_states.py:12 +msgid "Mecklenburg-Western Pomerania" +msgstr "Mecklenburg-Vorpommern" + +#: contrib/localflavor/de/de_states.py:13 +msgid "Lower Saxony" +msgstr "Alam-Saksi" + +#: contrib/localflavor/de/de_states.py:14 +msgid "North Rhine-Westphalia" +msgstr "Nordrhein-Westfalen" + +#: contrib/localflavor/de/de_states.py:15 +msgid "Rhineland-Palatinate" +msgstr "Rheinland-Pfalz" + +#: contrib/localflavor/de/de_states.py:16 +msgid "Saarland" +msgstr "Saarimaa" + +#: contrib/localflavor/de/de_states.py:17 +msgid "Saxony" +msgstr "Saksimaa" + +#: contrib/localflavor/de/de_states.py:18 +msgid "Saxony-Anhalt" +msgstr "Saksi-Anhalt" + +#: contrib/localflavor/de/de_states.py:19 +msgid "Schleswig-Holstein" +msgstr "Schleswig-Holstein" + +#: contrib/localflavor/de/de_states.py:20 +msgid "Thuringia" +msgstr "Tüüringi" + +#: 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 "Sisesta postiindeks kujul XXXXX." + +#: contrib/localflavor/de/forms.py:41 +msgid "" +"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " +"format." +msgstr "" +"Sisesta kehtiv Saksamaa ID-kaardi number kujul XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." + +#: contrib/localflavor/es/es_provinces.py:5 +msgid "Arava" +msgstr "Álava" + +#: contrib/localflavor/es/es_provinces.py:6 +msgid "Albacete" +msgstr "Albacete" + +#: contrib/localflavor/es/es_provinces.py:7 +msgid "Alacant" +msgstr "Alicante" + +#: contrib/localflavor/es/es_provinces.py:8 +msgid "Almeria" +msgstr "Almería" + +#: contrib/localflavor/es/es_provinces.py:9 +msgid "Avila" +msgstr "Ávila" + +#: contrib/localflavor/es/es_provinces.py:10 +msgid "Badajoz" +msgstr "Badajoz" + +#: contrib/localflavor/es/es_provinces.py:11 +msgid "Illes Balears" +msgstr "Baleaarid" + +#: contrib/localflavor/es/es_provinces.py:12 +msgid "Barcelona" +msgstr "Barcelona" + +#: contrib/localflavor/es/es_provinces.py:13 +msgid "Burgos" +msgstr "Burgos" + +#: contrib/localflavor/es/es_provinces.py:14 +msgid "Caceres" +msgstr "Cáceres" + +#: contrib/localflavor/es/es_provinces.py:15 +msgid "Cadiz" +msgstr "Cádiz" + +#: contrib/localflavor/es/es_provinces.py:16 +msgid "Castello" +msgstr "Castellón" + +#: contrib/localflavor/es/es_provinces.py:17 +msgid "Ciudad Real" +msgstr "Ciudad Real" + +#: contrib/localflavor/es/es_provinces.py:18 +msgid "Cordoba" +msgstr "Córdoba" + +#: contrib/localflavor/es/es_provinces.py:19 +msgid "A Coruna" +msgstr "A Coruna" + +#: contrib/localflavor/es/es_provinces.py:20 +msgid "Cuenca" +msgstr "Cuenca" + +#: contrib/localflavor/es/es_provinces.py:21 +msgid "Girona" +msgstr "Girona" + +#: contrib/localflavor/es/es_provinces.py:22 +msgid "Granada" +msgstr "Granada" + +#: contrib/localflavor/es/es_provinces.py:23 +msgid "Guadalajara" +msgstr "Guadalajara" + +#: contrib/localflavor/es/es_provinces.py:24 +msgid "Guipuzkoa" +msgstr "Guipúzcoa" + +#: contrib/localflavor/es/es_provinces.py:25 +msgid "Huelva" +msgstr "Huelva" + +#: contrib/localflavor/es/es_provinces.py:26 +msgid "Huesca" +msgstr "Huesca" + +#: contrib/localflavor/es/es_provinces.py:27 +msgid "Jaen" +msgstr "Jaén" + +#: contrib/localflavor/es/es_provinces.py:28 +msgid "Leon" +msgstr "León" + +#: contrib/localflavor/es/es_provinces.py:29 +msgid "Lleida" +msgstr "Lleida" + +#: contrib/localflavor/es/es_provinces.py:30 +#: contrib/localflavor/es/es_regions.py:17 +msgid "La Rioja" +msgstr "La Rioja" + +#: contrib/localflavor/es/es_provinces.py:31 +msgid "Lugo" +msgstr "Lugo" + +#: contrib/localflavor/es/es_provinces.py:32 +#: contrib/localflavor/es/es_regions.py:18 +msgid "Madrid" +msgstr "Madrid" + +#: contrib/localflavor/es/es_provinces.py:33 +msgid "Malaga" +msgstr "Málaga" + +#: contrib/localflavor/es/es_provinces.py:34 +msgid "Murcia" +msgstr "Murcia" + +#: contrib/localflavor/es/es_provinces.py:35 +msgid "Navarre" +msgstr "Navarra" + +#: contrib/localflavor/es/es_provinces.py:36 +msgid "Ourense" +msgstr "Orense" + +#: contrib/localflavor/es/es_provinces.py:37 +msgid "Asturias" +msgstr "Astuuria" + +#: contrib/localflavor/es/es_provinces.py:38 +msgid "Palencia" +msgstr "Palencia" + +#: contrib/localflavor/es/es_provinces.py:39 +msgid "Las Palmas" +msgstr "Las Palmas" + +#: contrib/localflavor/es/es_provinces.py:40 +msgid "Pontevedra" +msgstr "Pontevedra" + +#: contrib/localflavor/es/es_provinces.py:41 +msgid "Salamanca" +msgstr "Salamanca" + +#: contrib/localflavor/es/es_provinces.py:42 +msgid "Santa Cruz de Tenerife" +msgstr "Tenerife" + +#: contrib/localflavor/es/es_provinces.py:43 +#: contrib/localflavor/es/es_regions.py:11 +msgid "Cantabria" +msgstr "Cantabria" + +#: contrib/localflavor/es/es_provinces.py:44 +msgid "Segovia" +msgstr "Segovia" + +#: contrib/localflavor/es/es_provinces.py:45 +msgid "Seville" +msgstr "Sevilla" + +#: contrib/localflavor/es/es_provinces.py:46 +msgid "Soria" +msgstr "Soria" + +#: contrib/localflavor/es/es_provinces.py:47 +msgid "Tarragona" +msgstr "Tarragona" + +#: contrib/localflavor/es/es_provinces.py:48 +msgid "Teruel" +msgstr "Teruel" + +#: contrib/localflavor/es/es_provinces.py:49 +msgid "Toledo" +msgstr "Toledo" + +#: contrib/localflavor/es/es_provinces.py:50 +msgid "Valencia" +msgstr "Valencia" + +#: contrib/localflavor/es/es_provinces.py:51 +msgid "Valladolid" +msgstr "Valladolid" + +#: contrib/localflavor/es/es_provinces.py:52 +msgid "Bizkaia" +msgstr "Vizcaya" + +#: contrib/localflavor/es/es_provinces.py:53 +msgid "Zamora" +msgstr "Zamora" + +#: contrib/localflavor/es/es_provinces.py:54 +msgid "Zaragoza" +msgstr "Zaragoza" + +#: contrib/localflavor/es/es_provinces.py:55 +msgid "Ceuta" +msgstr "Ceuta" + +#: contrib/localflavor/es/es_provinces.py:56 +msgid "Melilla" +msgstr "Melilla" + +#: contrib/localflavor/es/es_regions.py:5 +msgid "Andalusia" +msgstr "Andaluusia" + +#: contrib/localflavor/es/es_regions.py:6 +msgid "Aragon" +msgstr "Aragón" + +#: contrib/localflavor/es/es_regions.py:7 +msgid "Principality of Asturias" +msgstr "Astuuria" + +#: contrib/localflavor/es/es_regions.py:8 +msgid "Balearic Islands" +msgstr "Baleaarid" + +#: contrib/localflavor/es/es_regions.py:9 +msgid "Basque Country" +msgstr "Baskimaa" + +#: contrib/localflavor/es/es_regions.py:10 +msgid "Canary Islands" +msgstr "Kanaari saared" + +#: contrib/localflavor/es/es_regions.py:12 +msgid "Castile-La Mancha" +msgstr "Castilla-La Mancha" + +#: contrib/localflavor/es/es_regions.py:13 +msgid "Castile and Leon" +msgstr "Castilla-León" + +#: contrib/localflavor/es/es_regions.py:14 +msgid "Catalonia" +msgstr "Kataloonia" + +#: contrib/localflavor/es/es_regions.py:15 +msgid "Extremadura" +msgstr "Extremadura" + +#: contrib/localflavor/es/es_regions.py:16 +msgid "Galicia" +msgstr "Galicia" + +#: contrib/localflavor/es/es_regions.py:19 +msgid "Region of Murcia" +msgstr "Murcia" + +#: contrib/localflavor/es/es_regions.py:20 +msgid "Foral Community of Navarre" +msgstr "Navarra" + +#: contrib/localflavor/es/es_regions.py:21 +msgid "Valencian Community" +msgstr "Valencia" + +#: contrib/localflavor/es/forms.py:19 +msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." +msgstr "Sisesta korrektne postiindeks vahemikus 01XXX - 52XXX." + +#: contrib/localflavor/es/forms.py:39 +msgid "" +"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " +"9XXXXXXXX." +msgstr "" +"Sisesta korrektne telefoninumber, mis on formaadis 6XXXXXXXX, 8XXXXXXXX või " +"9XXXXXXXX." + +#: contrib/localflavor/es/forms.py:66 +msgid "Please enter a valid NIF, NIE, or CIF." +msgstr "Palun sisesta korrektne NIF, NIE või CIF." + +#: contrib/localflavor/es/forms.py:67 +msgid "Please enter a valid NIF or NIE." +msgstr "Palun sisesta korrektne NIF või NIE." + +#: contrib/localflavor/es/forms.py:68 +msgid "Invalid checksum for NIF." +msgstr "Vale NIF-i kontrollsumma." + +#: contrib/localflavor/es/forms.py:69 +msgid "Invalid checksum for NIE." +msgstr "Vale NIE kontrollsumma." + +#: contrib/localflavor/es/forms.py:70 +msgid "Invalid checksum for CIF." +msgstr "Vale CIF-i kontrollsumma." + +#: contrib/localflavor/es/forms.py:142 +msgid "" +"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." +msgstr "Palun sisesta korrektne kontonumber formaadis XXXX-XXXX-XX-XXXXXXXXXX." + +#: contrib/localflavor/es/forms.py:143 +msgid "Invalid checksum for bank account number." +msgstr "Pangakonto numbri kontrollsumma on vale." + +#: contrib/localflavor/fi/forms.py:28 +msgid "Enter a valid Finnish social security number." +msgstr "Sisesta korrektne Soome sotsiaalturvatunnus." + +#: contrib/localflavor/in_/forms.py:14 +msgid "Enter a zip code in the format XXXXXXX." +msgstr "Sisesta postiindeks kujul XXXXXXX." + +#: contrib/localflavor/is_/forms.py:17 +msgid "" +"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +msgstr "Sisesta kehtiv Islandi isikukood formaadis XXXXXX-XXXX." + +#: contrib/localflavor/is_/forms.py:18 +msgid "The Icelandic identification number is not valid." +msgstr "Islandi isikukood ei ole korrektne." + +#: contrib/localflavor/it/forms.py:14 +msgid "Enter a valid zip code." +msgstr "Sisesta korrektne postiindeks." + +#: contrib/localflavor/it/forms.py:43 +msgid "Enter a valid Social Security number." +msgstr "Sisesta korrektne sotsiaalturvatunnus." + +#: contrib/localflavor/it/forms.py:68 +msgid "Enter a valid VAT number." +msgstr "Sisesta korrektne käibemaksukohuslase kood." + +#: contrib/localflavor/jp/forms.py:17 +msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." +msgstr "Sisesta postiindeks kujul XXXXXXX või XXX-XXXX." + +#: contrib/localflavor/jp/jp_prefectures.py:4 +msgid "Hokkaido" +msgstr "Hokkaido" + +#: contrib/localflavor/jp/jp_prefectures.py:5 +msgid "Aomori" +msgstr "Aomori" + +#: contrib/localflavor/jp/jp_prefectures.py:6 +msgid "Iwate" +msgstr "Iwate" + +#: contrib/localflavor/jp/jp_prefectures.py:7 +msgid "Miyagi" +msgstr "Miyagi" + +#: contrib/localflavor/jp/jp_prefectures.py:8 +msgid "Akita" +msgstr "Akita" + +#: contrib/localflavor/jp/jp_prefectures.py:9 +msgid "Yamagata" +msgstr "Yamagata" + +#: contrib/localflavor/jp/jp_prefectures.py:10 +msgid "Fukushima" +msgstr "Fukushima" + +#: contrib/localflavor/jp/jp_prefectures.py:11 +msgid "Ibaraki" +msgstr "Ibaraki" + +#: contrib/localflavor/jp/jp_prefectures.py:12 +msgid "Tochigi" +msgstr "Tochigi" + +#: contrib/localflavor/jp/jp_prefectures.py:13 +msgid "Gunma" +msgstr "Gunma" + +#: contrib/localflavor/jp/jp_prefectures.py:14 +msgid "Saitama" +msgstr "Saitama" + +#: contrib/localflavor/jp/jp_prefectures.py:15 +msgid "Chiba" +msgstr "Chiba" + +#: contrib/localflavor/jp/jp_prefectures.py:16 +msgid "Tokyo" +msgstr "Tokyo" + +#: contrib/localflavor/jp/jp_prefectures.py:17 +msgid "Kanagawa" +msgstr "Kanagawa" + +#: contrib/localflavor/jp/jp_prefectures.py:18 +msgid "Yamanashi" +msgstr "Yamanashi" + +#: contrib/localflavor/jp/jp_prefectures.py:19 +msgid "Nagano" +msgstr "Nagano" + +#: contrib/localflavor/jp/jp_prefectures.py:20 +msgid "Niigata" +msgstr "Niigata" + +#: contrib/localflavor/jp/jp_prefectures.py:21 +msgid "Toyama" +msgstr "Toyama" + +#: contrib/localflavor/jp/jp_prefectures.py:22 +msgid "Ishikawa" +msgstr "Ishikawa" + +#: contrib/localflavor/jp/jp_prefectures.py:23 +msgid "Fukui" +msgstr "Fukui" + +#: contrib/localflavor/jp/jp_prefectures.py:24 +msgid "Gifu" +msgstr "Gifu" + +#: contrib/localflavor/jp/jp_prefectures.py:25 +msgid "Shizuoka" +msgstr "Shizuoka" + +#: contrib/localflavor/jp/jp_prefectures.py:26 +msgid "Aichi" +msgstr "Aichi" + +#: contrib/localflavor/jp/jp_prefectures.py:27 +msgid "Mie" +msgstr "Mie" + +#: contrib/localflavor/jp/jp_prefectures.py:28 +msgid "Shiga" +msgstr "Shiga" + +#: contrib/localflavor/jp/jp_prefectures.py:29 +msgid "Kyoto" +msgstr "Kyoto" + +#: contrib/localflavor/jp/jp_prefectures.py:30 +msgid "Osaka" +msgstr "Osaka" + +#: contrib/localflavor/jp/jp_prefectures.py:31 +msgid "Hyogo" +msgstr "Hyogo" + +#: contrib/localflavor/jp/jp_prefectures.py:32 +msgid "Nara" +msgstr "Nara" + +#: contrib/localflavor/jp/jp_prefectures.py:33 +msgid "Wakayama" +msgstr "Wakayama" + +#: contrib/localflavor/jp/jp_prefectures.py:34 +msgid "Tottori" +msgstr "Tottori" + +#: contrib/localflavor/jp/jp_prefectures.py:35 +msgid "Shimane" +msgstr "Shimane" + +#: contrib/localflavor/jp/jp_prefectures.py:36 +msgid "Okayama" +msgstr "Okayama" + +#: contrib/localflavor/jp/jp_prefectures.py:37 +msgid "Hiroshima" +msgstr "Hiroshima" + +#: contrib/localflavor/jp/jp_prefectures.py:38 +msgid "Yamaguchi" +msgstr "Yamaguchi" + +#: contrib/localflavor/jp/jp_prefectures.py:39 +msgid "Tokushima" +msgstr "Tokushima" + +#: contrib/localflavor/jp/jp_prefectures.py:40 +msgid "Kagawa" +msgstr "Kagawa" + +#: contrib/localflavor/jp/jp_prefectures.py:41 +msgid "Ehime" +msgstr "Ehime" + +#: contrib/localflavor/jp/jp_prefectures.py:42 +msgid "Kochi" +msgstr "Kochi" + +#: contrib/localflavor/jp/jp_prefectures.py:43 +msgid "Fukuoka" +msgstr "Fukuoka" + +#: contrib/localflavor/jp/jp_prefectures.py:44 +msgid "Saga" +msgstr "Saga" + +#: contrib/localflavor/jp/jp_prefectures.py:45 +msgid "Nagasaki" +msgstr "Nagasaki" + +#: contrib/localflavor/jp/jp_prefectures.py:46 +msgid "Kumamoto" +msgstr "Kumamoto" + +#: contrib/localflavor/jp/jp_prefectures.py:47 +msgid "Oita" +msgstr "Oita" + +#: contrib/localflavor/jp/jp_prefectures.py:48 +msgid "Miyazaki" +msgstr "Miyazaki" + +#: contrib/localflavor/jp/jp_prefectures.py:49 +msgid "Kagoshima" +msgstr "Kagoshima" + +#: contrib/localflavor/jp/jp_prefectures.py:50 +msgid "Okinawa" +msgstr "Okinawa" + +#: contrib/localflavor/mx/mx_states.py:12 +msgid "Aguascalientes" +msgstr "Aguascalientes" + +#: contrib/localflavor/mx/mx_states.py:13 +msgid "Baja California" +msgstr "Baja California" + +#: contrib/localflavor/mx/mx_states.py:14 +msgid "Baja California Sur" +msgstr "Baja California Sur" + +#: contrib/localflavor/mx/mx_states.py:15 +msgid "Campeche" +msgstr "Campeche" + +#: contrib/localflavor/mx/mx_states.py:16 +msgid "Chihuahua" +msgstr "Chihuahua" + +#: contrib/localflavor/mx/mx_states.py:17 +msgid "Chiapas" +msgstr "Chiapas" + +#: contrib/localflavor/mx/mx_states.py:18 +msgid "Coahuila" +msgstr "Coahuila" + +#: contrib/localflavor/mx/mx_states.py:19 +msgid "Colima" +msgstr "Colima" + +#: contrib/localflavor/mx/mx_states.py:20 +msgid "Distrito Federal" +msgstr "Distrito Federal" + +#: contrib/localflavor/mx/mx_states.py:21 +msgid "Durango" +msgstr "Durango" + +#: contrib/localflavor/mx/mx_states.py:22 +msgid "Guerrero" +msgstr "Guerrero" + +#: contrib/localflavor/mx/mx_states.py:23 +msgid "Guanajuato" +msgstr "Guanajuato" + +#: contrib/localflavor/mx/mx_states.py:24 +msgid "Hidalgo" +msgstr "Hidalgo" + +#: contrib/localflavor/mx/mx_states.py:25 +msgid "Jalisco" +msgstr "Jalisco" + +#: contrib/localflavor/mx/mx_states.py:26 +msgid "Estado de México" +msgstr "Estado de México" + +#: contrib/localflavor/mx/mx_states.py:27 +msgid "Michoacán" +msgstr "Michoacán" + +#: contrib/localflavor/mx/mx_states.py:28 +msgid "Morelos" +msgstr "Morelos" + +#: contrib/localflavor/mx/mx_states.py:29 +msgid "Nayarit" +msgstr "Nayarit" + +#: contrib/localflavor/mx/mx_states.py:30 +msgid "Nuevo León" +msgstr "Nuevo León" + +#: contrib/localflavor/mx/mx_states.py:31 +msgid "Oaxaca" +msgstr "Oaxaca" + +#: contrib/localflavor/mx/mx_states.py:32 +msgid "Puebla" +msgstr "Puebla" + +#: contrib/localflavor/mx/mx_states.py:33 +msgid "Querétaro" +msgstr "Querétaro" + +#: contrib/localflavor/mx/mx_states.py:34 +msgid "Quintana Roo" +msgstr "Quintana Roo" + +#: contrib/localflavor/mx/mx_states.py:35 +msgid "Sinaloa" +msgstr "Sinaloa" + +#: contrib/localflavor/mx/mx_states.py:36 +msgid "San Luis Potosí" +msgstr "San Luis Potosí" + +#: contrib/localflavor/mx/mx_states.py:37 +msgid "Sonora" +msgstr "Sonora" + +#: contrib/localflavor/mx/mx_states.py:38 +msgid "Tabasco" +msgstr "Tabasco" + +#: contrib/localflavor/mx/mx_states.py:39 +msgid "Tamaulipas" +msgstr "Tamaulipas" + +#: contrib/localflavor/mx/mx_states.py:40 +msgid "Tlaxcala" +msgstr "Tlaxcala" + +#: contrib/localflavor/mx/mx_states.py:41 +msgid "Veracruz" +msgstr "Veracruz" + +#: contrib/localflavor/mx/mx_states.py:42 +msgid "Yucatán" +msgstr "Yucatán" + +#: contrib/localflavor/mx/mx_states.py:43 +msgid "Zacatecas" +msgstr "Zacatecas" + +#: contrib/localflavor/nl/forms.py:21 +msgid "Enter a valid postal code" +msgstr "Sisesta kehtiv postiindeks" + +#: contrib/localflavor/nl/forms.py:52 +msgid "Enter a valid phone number" +msgstr "Sisesta kehtiv telefoninumber" + +#: contrib/localflavor/nl/forms.py:78 +msgid "Enter a valid SoFi number" +msgstr "Sisesta kehtiv SoFi number" + +#: contrib/localflavor/nl/nl_provinces.py:4 +msgid "Drente" +msgstr "Drenthe" + +#: contrib/localflavor/nl/nl_provinces.py:5 +msgid "Flevoland" +msgstr "Flevoland" + +#: contrib/localflavor/nl/nl_provinces.py:6 +msgid "Friesland" +msgstr "Friisimaa" + +#: contrib/localflavor/nl/nl_provinces.py:7 +msgid "Gelderland" +msgstr "Gelderland" + +#: contrib/localflavor/nl/nl_provinces.py:8 +msgid "Groningen" +msgstr "Groningeni provints" + +#: contrib/localflavor/nl/nl_provinces.py:9 +msgid "Limburg" +msgstr "Limburgi provints" + +#: contrib/localflavor/nl/nl_provinces.py:10 +msgid "Noord-Brabant" +msgstr "Põhja-Brabant" + +#: contrib/localflavor/nl/nl_provinces.py:11 +msgid "Noord-Holland" +msgstr "Põhja-Holland" + +#: contrib/localflavor/nl/nl_provinces.py:12 +msgid "Overijssel" +msgstr "Overijssel" + +#: contrib/localflavor/nl/nl_provinces.py:13 +msgid "Utrecht" +msgstr "Utrechti provints" + +#: contrib/localflavor/nl/nl_provinces.py:14 +msgid "Zeeland" +msgstr "Zeeland" + +#: contrib/localflavor/nl/nl_provinces.py:15 +msgid "Zuid-Holland" +msgstr "Lõuna-Holland" + +#: contrib/localflavor/no/forms.py:33 +msgid "Enter a valid Norwegian social security number." +msgstr "Sisesta kehtiv Norra sotsiaalturvatunnus." + +#: contrib/localflavor/pe/forms.py:24 +msgid "This field requires 8 digits." +msgstr "Sellel väljal peab olema 8 numbrit." + +#: contrib/localflavor/pe/forms.py:52 +msgid "This field requires 11 digits." +msgstr "Sellel väljal peab olema 11 numbrit." + +#: contrib/localflavor/pl/forms.py:39 +msgid "National Identification Number consists of 11 digits." +msgstr "Riiklik isikukood koosneb 11 numbrist." + +#: contrib/localflavor/pl/forms.py:40 +msgid "Wrong checksum for the National Identification Number." +msgstr "Isikukoodil on vale kontrollsumma." + +#: 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 "" +"Sisesta maksumaksja number (NIP) formaadis XXX-XXX-XX-XX või XX-XX-XXX-XXX." + +#: contrib/localflavor/pl/forms.py:73 +msgid "Wrong checksum for the Tax Number (NIP)." +msgstr "Maksukohustusnumbril (NIP) on vale kontrollsumma." + +#: contrib/localflavor/pl/forms.py:112 +msgid "National Business Register Number (REGON) consists of 7 or 9 digits." +msgstr "Riikliku Äriregistri number (REGON) koosneb 7 või 9 numbrist." + +#: contrib/localflavor/pl/forms.py:113 +msgid "Wrong checksum for the National Business Register Number (REGON)." +msgstr "Riiklikul Äriregistri numbril (REGON) on vale kontrollsumma." + +#: contrib/localflavor/pl/forms.py:156 +msgid "Enter a postal code in the format XX-XXX." +msgstr "Sisesta postiindeks kujul XX-XXX." + +#: contrib/localflavor/pl/pl_voivodeships.py:8 +msgid "Lower Silesia" +msgstr "Alam-Sileesia" + +#: contrib/localflavor/pl/pl_voivodeships.py:9 +msgid "Kuyavia-Pomerania" +msgstr "Kujawy-Pomorze" + +#: contrib/localflavor/pl/pl_voivodeships.py:10 +msgid "Lublin" +msgstr "Lublin" + +#: contrib/localflavor/pl/pl_voivodeships.py:11 +msgid "Lubusz" +msgstr "Lubusz" + +#: contrib/localflavor/pl/pl_voivodeships.py:12 +msgid "Lodz" +msgstr "Łódź" + +#: contrib/localflavor/pl/pl_voivodeships.py:13 +msgid "Lesser Poland" +msgstr "Väike-Poola" + +#: contrib/localflavor/pl/pl_voivodeships.py:14 +msgid "Masovia" +msgstr "Masoovia" + +#: contrib/localflavor/pl/pl_voivodeships.py:15 +msgid "Opole" +msgstr "Opole" + +#: contrib/localflavor/pl/pl_voivodeships.py:16 +msgid "Subcarpatia" +msgstr "Podkarpacie" + +#: contrib/localflavor/pl/pl_voivodeships.py:17 +msgid "Podlasie" +msgstr "Podlaasia" + +#: contrib/localflavor/pl/pl_voivodeships.py:18 +msgid "Pomerania" +msgstr "Pomorze" + +#: contrib/localflavor/pl/pl_voivodeships.py:19 +msgid "Silesia" +msgstr "Sileesia" + +#: contrib/localflavor/pl/pl_voivodeships.py:20 +msgid "Swietokrzyskie" +msgstr "Święty Krzyżi" + +#: contrib/localflavor/pl/pl_voivodeships.py:21 +msgid "Warmia-Masuria" +msgstr "Warmia-Masuuria" + +#: contrib/localflavor/pl/pl_voivodeships.py:22 +msgid "Greater Poland" +msgstr "Suur-Poola" + +#: contrib/localflavor/pl/pl_voivodeships.py:23 +msgid "West Pomerania" +msgstr "Lääne-Pomorze" + +#: contrib/localflavor/sk/forms.py:30 +msgid "Enter a postal code in the format XXXXX or XXX XX." +msgstr "Sisesta postiindeks kujul XXXXX või XXX XX." + +#: contrib/localflavor/sk/sk_districts.py:8 +msgid "Banska Bystrica" +msgstr "Banska Bystrica" + +#: contrib/localflavor/sk/sk_districts.py:9 +msgid "Banska Stiavnica" +msgstr "Banska Stiavnica" + +#: contrib/localflavor/sk/sk_districts.py:10 +msgid "Bardejov" +msgstr "Bardejov" + +#: contrib/localflavor/sk/sk_districts.py:11 +msgid "Banovce nad Bebravou" +msgstr "Banovce nad Bebravou" + +#: contrib/localflavor/sk/sk_districts.py:12 +msgid "Brezno" +msgstr "Brezno" + +#: contrib/localflavor/sk/sk_districts.py:13 +msgid "Bratislava I" +msgstr "Bratislava I" + +#: contrib/localflavor/sk/sk_districts.py:14 +msgid "Bratislava II" +msgstr "Bratislava II" + +#: contrib/localflavor/sk/sk_districts.py:15 +msgid "Bratislava III" +msgstr "Bratislava III" + +#: contrib/localflavor/sk/sk_districts.py:16 +msgid "Bratislava IV" +msgstr "Bratislava IV" + +#: contrib/localflavor/sk/sk_districts.py:17 +msgid "Bratislava V" +msgstr "Bratislava V" + +#: contrib/localflavor/sk/sk_districts.py:18 +msgid "Bytca" +msgstr "Bytca" + +#: contrib/localflavor/sk/sk_districts.py:19 +msgid "Cadca" +msgstr "Cadca" + +#: contrib/localflavor/sk/sk_districts.py:20 +msgid "Detva" +msgstr "Detva" + +#: contrib/localflavor/sk/sk_districts.py:21 +msgid "Dolny Kubin" +msgstr "Dolny Kubin" + +#: contrib/localflavor/sk/sk_districts.py:22 +msgid "Dunajska Streda" +msgstr "Dunajska Streda" + +#: contrib/localflavor/sk/sk_districts.py:23 +msgid "Galanta" +msgstr "Galanta" + +#: contrib/localflavor/sk/sk_districts.py:24 +msgid "Gelnica" +msgstr "Gelnica" + +#: contrib/localflavor/sk/sk_districts.py:25 +msgid "Hlohovec" +msgstr "Hlohovec" + +#: contrib/localflavor/sk/sk_districts.py:26 +msgid "Humenne" +msgstr "Humenne" + +#: contrib/localflavor/sk/sk_districts.py:27 +msgid "Ilava" +msgstr "Ilava" + +#: contrib/localflavor/sk/sk_districts.py:28 +msgid "Kezmarok" +msgstr "Kezmarok" + +#: contrib/localflavor/sk/sk_districts.py:29 +msgid "Komarno" +msgstr "Komarno" + +#: contrib/localflavor/sk/sk_districts.py:30 +msgid "Kosice I" +msgstr "Kosice I" + +#: contrib/localflavor/sk/sk_districts.py:31 +msgid "Kosice II" +msgstr "Kosice II" + +#: contrib/localflavor/sk/sk_districts.py:32 +msgid "Kosice III" +msgstr "Kosice III" + +#: contrib/localflavor/sk/sk_districts.py:33 +msgid "Kosice IV" +msgstr "Kosice IV" + +#: contrib/localflavor/sk/sk_districts.py:34 +msgid "Kosice - okolie" +msgstr "Kosice - okolie" + +#: contrib/localflavor/sk/sk_districts.py:35 +msgid "Krupina" +msgstr "Krupina" + +#: contrib/localflavor/sk/sk_districts.py:36 +msgid "Kysucke Nove Mesto" +msgstr "Kysucke Nove Mesto" + +#: contrib/localflavor/sk/sk_districts.py:37 +msgid "Levice" +msgstr "Levice" + +#: contrib/localflavor/sk/sk_districts.py:38 +msgid "Levoca" +msgstr "Levoca" + +#: contrib/localflavor/sk/sk_districts.py:39 +msgid "Liptovsky Mikulas" +msgstr "Liptovsky Mikulas" + +#: contrib/localflavor/sk/sk_districts.py:40 +msgid "Lucenec" +msgstr "Lucenec" + +#: contrib/localflavor/sk/sk_districts.py:41 +msgid "Malacky" +msgstr "Malacky" + +#: contrib/localflavor/sk/sk_districts.py:42 +msgid "Martin" +msgstr "Martin" + +#: contrib/localflavor/sk/sk_districts.py:43 +msgid "Medzilaborce" +msgstr "Medzilaborce" + +#: contrib/localflavor/sk/sk_districts.py:44 +msgid "Michalovce" +msgstr "Michalovce" + +#: contrib/localflavor/sk/sk_districts.py:45 +msgid "Myjava" +msgstr "Myjava" + +#: contrib/localflavor/sk/sk_districts.py:46 +msgid "Namestovo" +msgstr "Namestovo" + +#: contrib/localflavor/sk/sk_districts.py:47 +msgid "Nitra" +msgstr "Nitra" + +#: contrib/localflavor/sk/sk_districts.py:48 +msgid "Nove Mesto nad Vahom" +msgstr "Nove Mesto nad Vahom" + +#: contrib/localflavor/sk/sk_districts.py:49 +msgid "Nove Zamky" +msgstr "Nove Zamky" + +#: contrib/localflavor/sk/sk_districts.py:50 +msgid "Partizanske" +msgstr "Partizanske" + +#: contrib/localflavor/sk/sk_districts.py:51 +msgid "Pezinok" +msgstr "Pezinok" + +#: contrib/localflavor/sk/sk_districts.py:52 +msgid "Piestany" +msgstr "Piestany" + +#: contrib/localflavor/sk/sk_districts.py:53 +msgid "Poltar" +msgstr "Poltar" + +#: contrib/localflavor/sk/sk_districts.py:54 +msgid "Poprad" +msgstr "Poprad" + +#: contrib/localflavor/sk/sk_districts.py:55 +msgid "Povazska Bystrica" +msgstr "Povazska Bystrica" + +#: contrib/localflavor/sk/sk_districts.py:56 +msgid "Presov" +msgstr "Presov" + +#: contrib/localflavor/sk/sk_districts.py:57 +msgid "Prievidza" +msgstr "Prievidza" + +#: contrib/localflavor/sk/sk_districts.py:58 +msgid "Puchov" +msgstr "Puchov" + +#: contrib/localflavor/sk/sk_districts.py:59 +msgid "Revuca" +msgstr "Revuca" + +#: contrib/localflavor/sk/sk_districts.py:60 +msgid "Rimavska Sobota" +msgstr "Rimavska Sobota" + +#: contrib/localflavor/sk/sk_districts.py:61 +msgid "Roznava" +msgstr "Roznava" + +#: contrib/localflavor/sk/sk_districts.py:62 +msgid "Ruzomberok" +msgstr "Ruzomberok" + +#: contrib/localflavor/sk/sk_districts.py:63 +msgid "Sabinov" +msgstr "Sabinov" + +#: contrib/localflavor/sk/sk_districts.py:64 +msgid "Senec" +msgstr "Senec" + +#: contrib/localflavor/sk/sk_districts.py:65 +msgid "Senica" +msgstr "Senica" + +#: contrib/localflavor/sk/sk_districts.py:66 +msgid "Skalica" +msgstr "Skalica" + +#: contrib/localflavor/sk/sk_districts.py:67 +msgid "Snina" +msgstr "Snina" + +#: contrib/localflavor/sk/sk_districts.py:68 +msgid "Sobrance" +msgstr "Sobrance" + +#: contrib/localflavor/sk/sk_districts.py:69 +msgid "Spisska Nova Ves" +msgstr "Spisska Nova Ves" + +#: contrib/localflavor/sk/sk_districts.py:70 +msgid "Stara Lubovna" +msgstr "Stara Lubovna" + +#: contrib/localflavor/sk/sk_districts.py:71 +msgid "Stropkov" +msgstr "Stropkov" + +#: contrib/localflavor/sk/sk_districts.py:72 +msgid "Svidnik" +msgstr "Svidnik" + +#: contrib/localflavor/sk/sk_districts.py:73 +msgid "Sala" +msgstr "Sala" + +#: contrib/localflavor/sk/sk_districts.py:74 +msgid "Topolcany" +msgstr "Topolcany" + +#: contrib/localflavor/sk/sk_districts.py:75 +msgid "Trebisov" +msgstr "Trebisov" + +#: contrib/localflavor/sk/sk_districts.py:76 +msgid "Trencin" +msgstr "Trencin" + +#: contrib/localflavor/sk/sk_districts.py:77 +msgid "Trnava" +msgstr "Trnava" + +#: contrib/localflavor/sk/sk_districts.py:78 +msgid "Turcianske Teplice" +msgstr "Turcianske Teplice" + +#: contrib/localflavor/sk/sk_districts.py:79 +msgid "Tvrdosin" +msgstr "Tvrdosin" + +#: contrib/localflavor/sk/sk_districts.py:80 +msgid "Velky Krtis" +msgstr "Velky Krtis" + +#: contrib/localflavor/sk/sk_districts.py:81 +msgid "Vranov nad Toplou" +msgstr "Vranov nad Toplou" + +#: contrib/localflavor/sk/sk_districts.py:82 +msgid "Zlate Moravce" +msgstr "Zlate Moravce" + +#: contrib/localflavor/sk/sk_districts.py:83 +msgid "Zvolen" +msgstr "Zvolen" + +#: contrib/localflavor/sk/sk_districts.py:84 +msgid "Zarnovica" +msgstr "Zarnovica" + +#: contrib/localflavor/sk/sk_districts.py:85 +msgid "Ziar nad Hronom" +msgstr "Ziar nad Hronom" + +#: contrib/localflavor/sk/sk_districts.py:86 +msgid "Zilina" +msgstr "Zilina" + +#: contrib/localflavor/sk/sk_regions.py:8 +msgid "Banska Bystrica region" +msgstr "Banská Bystrica regioon" + +#: contrib/localflavor/sk/sk_regions.py:9 +msgid "Bratislava region" +msgstr "Bratislava regioon" + +#: contrib/localflavor/sk/sk_regions.py:10 +msgid "Kosice region" +msgstr "Košice regioon" + +#: contrib/localflavor/sk/sk_regions.py:11 +msgid "Nitra region" +msgstr "Nitra regioon" + +#: contrib/localflavor/sk/sk_regions.py:12 +msgid "Presov region" +msgstr "Prešovi regioon" + +#: contrib/localflavor/sk/sk_regions.py:13 +msgid "Trencin region" +msgstr "Trenšíni regioon" + +#: contrib/localflavor/sk/sk_regions.py:14 +msgid "Trnava region" +msgstr "Trnava regioon" + +#: contrib/localflavor/sk/sk_regions.py:15 +msgid "Zilina region" +msgstr "Žilina regioon" + +#: contrib/localflavor/uk/forms.py:21 +msgid "Enter a valid postcode." +msgstr "Sisesta kehtiv postiindeks." + +#: contrib/localflavor/uk/uk_regions.py:11 +msgid "Bedfordshire" +msgstr "Bedfordshire" + +#: contrib/localflavor/uk/uk_regions.py:12 +msgid "Buckinghamshire" +msgstr "Buckinghamshire" + +#: contrib/localflavor/uk/uk_regions.py:14 +msgid "Cheshire" +msgstr "Cheshire" + +#: contrib/localflavor/uk/uk_regions.py:15 +msgid "Cornwall and Isles of Scilly" +msgstr "Cornwall and Isles of Scilly" + +#: contrib/localflavor/uk/uk_regions.py:16 +msgid "Cumbria" +msgstr "Cumbria" + +#: contrib/localflavor/uk/uk_regions.py:17 +msgid "Derbyshire" +msgstr "Derbyshire" + +#: contrib/localflavor/uk/uk_regions.py:18 +msgid "Devon" +msgstr "Devon" + +#: contrib/localflavor/uk/uk_regions.py:19 +msgid "Dorset" +msgstr "Dorset" + +#: contrib/localflavor/uk/uk_regions.py:20 +msgid "Durham" +msgstr "Durham" + +#: contrib/localflavor/uk/uk_regions.py:21 +msgid "East Sussex" +msgstr "East Sussex" + +#: contrib/localflavor/uk/uk_regions.py:22 +msgid "Essex" +msgstr "Essex" + +#: contrib/localflavor/uk/uk_regions.py:23 +msgid "Gloucestershire" +msgstr "Gloucestershire" + +#: contrib/localflavor/uk/uk_regions.py:24 +msgid "Greater London" +msgstr "Suur-London" + +#: contrib/localflavor/uk/uk_regions.py:25 +msgid "Greater Manchester" +msgstr "Suur-Manchester" + +#: contrib/localflavor/uk/uk_regions.py:26 +msgid "Hampshire" +msgstr "Hampshire" + +#: contrib/localflavor/uk/uk_regions.py:27 +msgid "Hertfordshire" +msgstr "Hertfordshire" + +#: contrib/localflavor/uk/uk_regions.py:28 +msgid "Kent" +msgstr "Kent" + +#: contrib/localflavor/uk/uk_regions.py:29 +msgid "Lancashire" +msgstr "Lancashire" + +#: contrib/localflavor/uk/uk_regions.py:30 +msgid "Leicestershire" +msgstr "Leicestershire" + +#: contrib/localflavor/uk/uk_regions.py:31 +msgid "Lincolnshire" +msgstr "Lincolnshire" + +#: contrib/localflavor/uk/uk_regions.py:32 +msgid "Merseyside" +msgstr "Merseyside" + +#: contrib/localflavor/uk/uk_regions.py:33 +msgid "Norfolk" +msgstr "Norfolk" + +#: contrib/localflavor/uk/uk_regions.py:34 +msgid "North Yorkshire" +msgstr "North Yorkshire" + +#: contrib/localflavor/uk/uk_regions.py:35 +msgid "Northamptonshire" +msgstr "Northamptonshire" + +#: contrib/localflavor/uk/uk_regions.py:36 +msgid "Northumberland" +msgstr "Northumberland" + +#: contrib/localflavor/uk/uk_regions.py:37 +msgid "Nottinghamshire" +msgstr "Nottinghamshire" + +#: contrib/localflavor/uk/uk_regions.py:38 +msgid "Oxfordshire" +msgstr "Oxfordshire" + +#: contrib/localflavor/uk/uk_regions.py:39 +msgid "Shropshire" +msgstr "Shropshire" + +#: contrib/localflavor/uk/uk_regions.py:40 +msgid "Somerset" +msgstr "Somerset" + +#: contrib/localflavor/uk/uk_regions.py:41 +msgid "South Yorkshire" +msgstr "Lõuna-Yorkshire" + +#: contrib/localflavor/uk/uk_regions.py:42 +msgid "Staffordshire" +msgstr "Staffordshire" + +#: contrib/localflavor/uk/uk_regions.py:43 +msgid "Suffolk" +msgstr "Suffolk" + +#: contrib/localflavor/uk/uk_regions.py:44 +msgid "Surrey" +msgstr "Surrey" + +#: contrib/localflavor/uk/uk_regions.py:45 +msgid "Tyne and Wear" +msgstr "Tyne ja Wear" + +#: contrib/localflavor/uk/uk_regions.py:46 +msgid "Warwickshire" +msgstr "Warwickshire" + +#: contrib/localflavor/uk/uk_regions.py:47 +msgid "West Midlands" +msgstr "West Midlands" + +#: contrib/localflavor/uk/uk_regions.py:48 +msgid "West Sussex" +msgstr "Lääne-Sussex" + +#: contrib/localflavor/uk/uk_regions.py:49 +msgid "West Yorkshire" +msgstr "Lääne-Yorkshire" + +#: contrib/localflavor/uk/uk_regions.py:50 +msgid "Wiltshire" +msgstr "Wiltshire" + +#: contrib/localflavor/uk/uk_regions.py:51 +msgid "Worcestershire" +msgstr "Worcestershire" + +#: contrib/localflavor/uk/uk_regions.py:55 +msgid "County Antrim" +msgstr "County Antrim" + +#: contrib/localflavor/uk/uk_regions.py:56 +msgid "County Armagh" +msgstr "County Armagh" + +#: contrib/localflavor/uk/uk_regions.py:57 +msgid "County Down" +msgstr "County Down" + +#: contrib/localflavor/uk/uk_regions.py:58 +msgid "County Fermanagh" +msgstr "County Fermanagh" + +#: contrib/localflavor/uk/uk_regions.py:59 +msgid "County Londonderry" +msgstr "County Londonderry" + +#: contrib/localflavor/uk/uk_regions.py:60 +msgid "County Tyrone" +msgstr "County Tyrone" + +#: contrib/localflavor/uk/uk_regions.py:64 +msgid "Clwyd" +msgstr "Clwyd" + +#: contrib/localflavor/uk/uk_regions.py:65 +msgid "Dyfed" +msgstr "Dyfed" + +#: contrib/localflavor/uk/uk_regions.py:66 +msgid "Gwent" +msgstr "Gwent" + +#: contrib/localflavor/uk/uk_regions.py:67 +msgid "Gwynedd" +msgstr "Gwynedd" + +#: contrib/localflavor/uk/uk_regions.py:68 +msgid "Mid Glamorgan" +msgstr "Mid Glamorgan" + +#: contrib/localflavor/uk/uk_regions.py:69 +msgid "Powys" +msgstr "Powys" + +#: contrib/localflavor/uk/uk_regions.py:70 +msgid "South Glamorgan" +msgstr "South Glamorgan" + +#: contrib/localflavor/uk/uk_regions.py:71 +msgid "West Glamorgan" +msgstr "Lääne-Glamorgan" + +#: contrib/localflavor/uk/uk_regions.py:75 +msgid "Borders" +msgstr "Piirid" + +#: contrib/localflavor/uk/uk_regions.py:76 +msgid "Central Scotland" +msgstr "Kesk-Šotimaa" + +#: contrib/localflavor/uk/uk_regions.py:77 +msgid "Dumfries and Galloway" +msgstr "Dumfries and Galloway" + +#: contrib/localflavor/uk/uk_regions.py:78 +msgid "Fife" +msgstr "Fife" + +#: contrib/localflavor/uk/uk_regions.py:79 +msgid "Grampian" +msgstr "Grampian" + +#: contrib/localflavor/uk/uk_regions.py:80 +msgid "Highland" +msgstr "Highland" + +#: contrib/localflavor/uk/uk_regions.py:81 +msgid "Lothian" +msgstr "Lothian" + +#: contrib/localflavor/uk/uk_regions.py:82 +msgid "Orkney Islands" +msgstr "Orkney saared" + +#: contrib/localflavor/uk/uk_regions.py:83 +msgid "Shetland Islands" +msgstr "Shetlandi saared" + +#: contrib/localflavor/uk/uk_regions.py:84 +msgid "Strathclyde" +msgstr "Strathclyde" + +#: contrib/localflavor/uk/uk_regions.py:85 +msgid "Tayside" +msgstr "Tayside" + +#: contrib/localflavor/uk/uk_regions.py:86 +msgid "Western Isles" +msgstr "Western Isles" + +#: contrib/localflavor/uk/uk_regions.py:90 +msgid "England" +msgstr "Inglismaa" + +#: contrib/localflavor/uk/uk_regions.py:91 +msgid "Northern Ireland" +msgstr "Põhja-Iirimaa" + +#: contrib/localflavor/uk/uk_regions.py:92 +msgid "Scotland" +msgstr "Šotimaa" + +#: contrib/localflavor/uk/uk_regions.py:93 +msgid "Wales" +msgstr "Wales" + +#: contrib/localflavor/us/forms.py:16 +msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." +msgstr "Sisesta postiindeks kujul XXXXX või XXXXX-XXXX." + +#: contrib/localflavor/us/forms.py:54 +msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." +msgstr "Sisesta kehtiv U.S. Social Security number formaadis XXX-XX-XXXX." + +#: contrib/localflavor/za/forms.py:20 +msgid "Enter a valid South African ID number" +msgstr "Sisesta kehtiv Lõuna-Aafrika ID-number" + +#: contrib/localflavor/za/forms.py:54 +msgid "Enter a valid South African postal code" +msgstr "Sisesta kehtiv Lõuna-Aafrika postiindeks" + +#: contrib/localflavor/za/za_provinces.py:4 +msgid "Eastern Cape" +msgstr "Eastern Cape" + +#: contrib/localflavor/za/za_provinces.py:5 +msgid "Free State" +msgstr "Free State" + +#: contrib/localflavor/za/za_provinces.py:6 +msgid "Gauteng" +msgstr "Gauteng" + +#: contrib/localflavor/za/za_provinces.py:7 +msgid "KwaZulu-Natal" +msgstr "KwaZulu-Natal" + +#: contrib/localflavor/za/za_provinces.py:8 +msgid "Limpopo" +msgstr "Limpopo" + +#: contrib/localflavor/za/za_provinces.py:9 +msgid "Mpumalanga" +msgstr "Mpumalanga" + +#: contrib/localflavor/za/za_provinces.py:10 +msgid "Northern Cape" +msgstr "Northern Cape" + +#: contrib/localflavor/za/za_provinces.py:11 +msgid "North West" +msgstr "North West" + +#: contrib/localflavor/za/za_provinces.py:12 +msgid "Western Cape" +msgstr "Western Cape" + +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "ümbersuunatav asukoht" + +#: contrib/redirects/models.py:8 +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" +"See peaks olema absoluutne asukoht, v.a. domeeninimi. Näide: '/events/" +"search/'." + +#: contrib/redirects/models.py:9 +msgid "redirect to" +msgstr "suuna aadressile" + +#: contrib/redirects/models.py:10 +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" +"See võib olla kas absoluutne asukoht (nagu ülemine) või täielik URL algusega " +"'http://'." + +#: contrib/redirects/models.py:13 +msgid "redirect" +msgstr "suunamine" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "suunamised" + +#: contrib/sessions/models.py:41 +msgid "session key" +msgstr "sessioonivõti" + +#: contrib/sessions/models.py:42 +msgid "session data" +msgstr "sessiooni andmed" + +#: contrib/sessions/models.py:43 +msgid "expire date" +msgstr "kehtivusaja lõpp" + +#: contrib/sessions/models.py:48 +msgid "session" +msgstr "sessioon" + +#: contrib/sessions/models.py:49 +msgid "sessions" +msgstr "sessioonid" + +#: contrib/sites/models.py:32 +msgid "domain name" +msgstr "domeeninimi" + +#: contrib/sites/models.py:33 +msgid "display name" +msgstr "hüüdnimi" + +#: contrib/sites/models.py:37 +msgid "site" +msgstr "sait" + +#: contrib/sites/models.py:38 +msgid "sites" +msgstr "saidid" + +#: core/validators.py:72 +msgid "This value must contain only letters, numbers and underscores." +msgstr "See väärtus võib sisaldada ainult tähti, numbreid ja alakriipse." + +#: core/validators.py:76 +msgid "" +"This value must contain only letters, numbers, underscores, dashes or " +"slashes." +msgstr "" +"See väärtus võib sisaldada ainult tähti, numbreid, alakriipse, mõttekriipse " +"või kaldkriipse." + +#: core/validators.py:80 +msgid "This value must contain only letters, numbers, underscores or hyphens." +msgstr "" +"See väärtus võib sisaldada ainult tähti, nubmreid, alakriipse ja sidekriipse." + +#: core/validators.py:84 +msgid "Uppercase letters are not allowed here." +msgstr "Suured tähed ei ole siin lubatud." + +#: core/validators.py:88 +msgid "Lowercase letters are not allowed here." +msgstr "Väiksed tähed ei ole siin lubatud." + +#: core/validators.py:95 +msgid "Enter only digits separated by commas." +msgstr "Sisestage ainult komaga eraldatud numbreid." + +#: core/validators.py:107 +msgid "Enter valid e-mail addresses separated by commas." +msgstr "Sisestage korrektseid komaga eraldatud e-posti aadresseid." + +#: core/validators.py:111 +msgid "Please enter a valid IP address." +msgstr "Palun sisestage korrektne IP aadress." + +#: core/validators.py:115 +msgid "Empty values are not allowed here." +msgstr "Tühjad väärtused ei ole siin lubatud." + +#: core/validators.py:119 +msgid "Non-numeric characters aren't allowed here." +msgstr "Mittenumbrilised märgid ei ole siin lubatud." + +#: core/validators.py:123 +msgid "This value can't be comprised solely of digits." +msgstr "See väärtus ei tohi sisaldada ainult numbreid." + +#: core/validators.py:128 newforms/fields.py:152 +msgid "Enter a whole number." +msgstr "Sisestage täisarv." + +#: core/validators.py:132 +msgid "Only alphabetical characters are allowed here." +msgstr "Siin on lubatud ainult tähestiku tähed." + +#: core/validators.py:147 +msgid "Year must be 1900 or later." +msgstr "Aasta peab olema 1900 või hiljem." + +#: core/validators.py:151 +#, python-format +msgid "Invalid date: %s" +msgstr "Ebakorrektne kuupäev: %s" + +#: core/validators.py:156 db/models/fields/__init__.py:548 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Sisestage korrektne kuupäev formaadis AAAA-KK-PP." + +#: core/validators.py:161 +msgid "Enter a valid time in HH:MM format." +msgstr "Sisestage korrektne kellaaeg formaadis TT:MM" + +#: core/validators.py:165 db/models/fields/__init__.py:625 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." +msgstr "Sisestage korrektne kuupäev ja kellaaeg formaadis AAAA-KK-PP TT:MM." + +#: core/validators.py:170 newforms/fields.py:403 +msgid "Enter a valid e-mail address." +msgstr "Sisestage korrektne e-posti aadress:" + +#: core/validators.py:182 core/validators.py:474 newforms/fields.py:433 +#: oldforms/__init__.py:687 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Ühtegi faili ei saadetud. Kontrollige vormi kodeeringutüüpi." + +#: core/validators.py:193 newforms/fields.py:459 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Laadige korrektne pilt. Fail, mille laadisite, ei olnud kas pilt või oli " +"fail vigane." + +#: core/validators.py:200 +#, python-format +msgid "The URL %s does not point to a valid image." +msgstr "URL %s ei viita korrektsele pildile." + +#: core/validators.py:204 +#, python-format +msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." +msgstr "" +"Telefoninumbrid peavad olema formaadis XXX-XXX-XXXX. \"%s\" on ebakorrektne." + +#: core/validators.py:212 +#, python-format +msgid "The URL %s does not point to a valid QuickTime video." +msgstr "URL %s ei viita korrektsele QuickTime videole." + +#: core/validators.py:216 +msgid "A valid URL is required." +msgstr "Korrektne URL on nõutav." + +#: core/validators.py:230 +#, python-format +msgid "" +"Valid HTML is required. Specific errors are:\n" +"%s" +msgstr "" +"Korrektne HTML on nõutav. Vead on järgnevad:\n" +"%s" + +#: core/validators.py:237 +#, python-format +msgid "Badly formed XML: %s" +msgstr "Vigane XML: %s" + +#: core/validators.py:254 +#, python-format +msgid "Invalid URL: %s" +msgstr "Vigane URL: %s" + +#: core/validators.py:259 core/validators.py:261 +#, python-format +msgid "The URL %s is a broken link." +msgstr "URL %s on katkine." + +#: core/validators.py:267 +msgid "Enter a valid U.S. state abbreviation." +msgstr "Sisestage korrektne USA osariigilühend." + +#: 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] "Jälgige oma keelekasutust. Sõna %s ei ole lubatud." +msgstr[1] "Jälgige oma keelekasutust. Sõnad %s ei ole lubatud." + +#: core/validators.py:288 +#, python-format +msgid "This field must match the '%s' field." +msgstr "See väli peab sobima väljaga '%s'." + +#: core/validators.py:307 +msgid "Please enter something for at least one field." +msgstr "Palun täitke vähemalt üks väli." + +#: core/validators.py:316 core/validators.py:327 +msgid "Please enter both fields or leave them both empty." +msgstr "Palun täitke mõlemad lahtrid või jätke mõlemad tühjaks." + +#: core/validators.py:335 +#, python-format +msgid "This field must be given if %(field)s is %(value)s" +msgstr "See lahter on kohustuslik, kui %(field)s on %(value)s" + +#: core/validators.py:348 +#, python-format +msgid "This field must be given if %(field)s is not %(value)s" +msgstr "See lahter on nõutav, kui %(field)s ei ole %(value)s" + +#: core/validators.py:367 +msgid "Duplicate values are not allowed." +msgstr "Mitte-unikaalsed väärtused ei ole lubatud." + +#: core/validators.py:382 +#, python-format +msgid "This value must be between %(lower)s and %(upper)s." +msgstr "See väärtus peab olema vahemikus %(lower)s kuni %(upper)s." + +#: core/validators.py:384 +#, python-format +msgid "This value must be at least %s." +msgstr "See väärtus peab olema vähemalt %s." + +#: core/validators.py:386 +#, python-format +msgid "This value must be no more than %s." +msgstr "See väärtus ei tohi olla rohkem kui %s." + +#: core/validators.py:427 +#, python-format +msgid "This value must be a power of %s." +msgstr "See väärtus peab jaguma arvuga %s." + +#: core/validators.py:437 +msgid "Please enter a valid decimal number." +msgstr "Palun sisestage korrektne kümnendarv." + +#: 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] "Palun sisestage %s-kohaline kümnendarv." +msgstr[1] "Palun sisestage %s-kohaline kümnendarv." + +#: 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] "Palun sisestage korrektne kümnendarv, mille täisosa on %s-kohaline" +msgstr[1] "Palun sisestage korrektne kümnendarv, mille täisosa on %s-kohaline" + +#: 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] "" +"Palun sisestage korrektne kümnendarv, millel on maksimaalselt %s komakoht." +msgstr[1] "" +"Palun sisestage korrektne kümnendarv, millel on maksimaalselt %s komakohta." + +#: core/validators.py:458 +msgid "Please enter a valid floating point number." +msgstr "Palun sisestage korrektne murdarv." + +#: core/validators.py:467 +#, python-format +msgid "Make sure your uploaded file is at least %s bytes big." +msgstr "Veenduge, et üleslaetud fail on vähemalt %s baiti suur." + +#: core/validators.py:468 +#, python-format +msgid "Make sure your uploaded file is at most %s bytes big." +msgstr "Veenduge, et üleslaetud fail ei ole suurem kui %s baiti." + +#: core/validators.py:485 +msgid "The format for this field is wrong." +msgstr "Selle lahtri formaat on ebakorrektne." + +#: core/validators.py:500 +msgid "This field is invalid." +msgstr "See lahter on ebakorrektne." + +#: core/validators.py:536 +#, python-format +msgid "Could not retrieve anything from %s." +msgstr "Ei õnnestunud leida midagi aadressilt %s." + +#: core/validators.py:539 +#, python-format +msgid "" +"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." +msgstr "URL %(url)s tagastas sobimatu Content-Type päise '%(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 "" +"Palun sulgege sulgemata jäänud %(tag)s lipik real %(line)s. (Rea algus: \"%" +"(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 "" +"Rida %(line)s sisaldab teksti, mis ei ole selles kontekstis lubatud. (Rea " +"algus: \"%(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 "" +"Real %(line)s on vigane attribute \"%(attr)s\". (Rea algus: \"%(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 "" +"Real %(line)s on vigane lipik \"<%(tag)s>\". (Rea algus: \"%(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 "" +"Real %(line)s on lipik, millel on puudu üks või enam nõutavatest " +"atribuutidest. (Rea algus: \"%(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 "" +"Real %(line)s on atribuut \"%(attr)s\", mille väärtus on vigane. (Rea algus: " +"\"%(start)s\".)" + +#: db/models/manipulators.py:308 +#, python-format +msgid "%(object)s with this %(type)s already exists for the given %(field)s." +msgstr "" +"%(type)s tüüpi %(object)s on juba olemas etteantud väärtustele %(field)s." + +#: db/models/fields/__init__.py:54 +#, python-format +msgid "%(optname)s with this %(fieldname)s already exists." +msgstr "" + +#: db/models/fields/__init__.py:179 db/models/fields/__init__.py:348 +#: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791 +#: newforms/fields.py:46 oldforms/__init__.py:374 +msgid "This field is required." +msgstr "See lahter on nõutav." + +#: db/models/fields/__init__.py:448 +msgid "This value must be an integer." +msgstr "See väärtus peab olema täisarv." + +#: db/models/fields/__init__.py:487 +msgid "This value must be either True or False." +msgstr "See väärtus peab olema kas tõene või väär" + +#: db/models/fields/__init__.py:511 +msgid "This field cannot be null." +msgstr "See lahter ei tohi olla tühi." + +#: db/models/fields/__init__.py:689 +msgid "This value must be a decimal number." +msgstr "See väärtus peab olema kümnendarv." + +#: db/models/fields/__init__.py:800 +msgid "Enter a valid filename." +msgstr "Sisestage korrektne failinimi." + +#: db/models/fields/__init__.py:981 +msgid "This value must be either None, True or False." +msgstr "See väärtus peab olema kas tühi, tõene või väär." + +#: db/models/fields/related.py:94 +#, python-format +msgid "Please enter a valid %s." +msgstr "Palun sisestage korrektne %s." + +#: db/models/fields/related.py:721 +msgid "Separate multiple IDs with commas." +msgstr "Eraldage mitu ID-d komaga." + +#: db/models/fields/related.py:723 +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "Et valida mitu, hoidke all \"Control\"-nuppu (Maci puhul \"Command\")." + +#: db/models/fields/related.py:770 +#, 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] "Palun sisestage korrektne %(self)s ID. Väärtus %(value)r on vigane." +msgstr[1] "" +"Palun sisestage korrektne %(self)s ID. Väärtused %(value)r on vigased." + +#: newforms/fields.py:47 +msgid "Enter a valid value." +msgstr "Sisestage korrektne väärtus." + +#: newforms/fields.py:124 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" +"Veenduge, et see väärtus sisaldab kõige rohkem %(max)d tähemärki (hetkel on %" +"(length)d)." + +#: newforms/fields.py:125 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" +"Veenduge, et see väärtus sisaldab vähemalt %(min)d märki (hetkel on %(length)" +"d)." + +#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211 +#, python-format +msgid "Ensure this value is less than or equal to %s." +msgstr "Veenduge, et see väärtus on väiksem või võrdne kui %s." + +#: newforms/fields.py:154 newforms/fields.py:183 newforms/fields.py:212 +#, python-format +msgid "Ensure this value is greater than or equal to %s." +msgstr "Veenduge, et see väärtus on suurem või võrdne kui %s." + +#: newforms/fields.py:181 newforms/fields.py:210 +msgid "Enter a number." +msgstr "Sisestage arv." + +#: newforms/fields.py:213 +#, python-format +msgid "Ensure that there are no more than %s digits in total." +msgstr "Veenduge, et kogu numbrikohtade arv ei ületaks %s." + +#: newforms/fields.py:214 +#, python-format +msgid "Ensure that there are no more than %s decimal places." +msgstr "Veenduge, et komakohtade arv ei ületaks %s." + +#: newforms/fields.py:215 +#, python-format +msgid "Ensure that there are no more than %s digits before the decimal point." +msgstr "Veenduge, et komast vasakul olevaid numbreid ei oleks rohkem kui %s." + +#: newforms/fields.py:263 newforms/fields.py:751 +msgid "Enter a valid date." +msgstr "Sisestage korrektne kuupäev." + +#: newforms/fields.py:296 newforms/fields.py:752 +msgid "Enter a valid time." +msgstr "Sisestage korrektne kellaaeg." + +#: newforms/fields.py:335 +msgid "Enter a valid date/time." +msgstr "Sisestage korrektne kuupäev ja kellaaeg." + +#: newforms/fields.py:434 +msgid "No file was submitted." +msgstr "Ühtegi faili ei saadetud." + +#: newforms/fields.py:435 oldforms/__init__.py:689 +msgid "The submitted file is empty." +msgstr "Saadetud fail on tühi." + +#: newforms/fields.py:497 +msgid "Enter a valid URL." +msgstr "Sisestage korrektne URL." + +#: newforms/fields.py:498 +msgid "This URL appears to be a broken link." +msgstr "See URL näib olevat katkine." + +#: newforms/fields.py:560 newforms/models.py:299 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Valige korrektne väärtus. Valitud väärtus ei ole valitav." + +#: newforms/fields.py:599 +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "Valige korrektne väärtus. %(value)s ei ole valitav." + +#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371 +msgid "Enter a list of values." +msgstr "Sisestage väärtuste nimekiri." + +#: newforms/fields.py:780 +msgid "Enter a valid IPv4 address." +msgstr "Sisestage korrektne IPv4 aadress." + +#: newforms/models.py:372 +#, python-format +msgid "Select a valid choice. %s is not one of the available choices." +msgstr "Valige korrektne väärtus. %s ei ole valitav." + +#: 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] "Veenduge, et tekst on alla %s tähemärgi." +msgstr[1] "Veenduge, et tekst on alla %s tähemärgi." + +#: oldforms/__init__.py:414 +msgid "Line breaks are not allowed here." +msgstr "Reavahetused ei ole lubatud." + +#: 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 "Valige korrektne väärtus; '%(data)s' ei kuulu valikutesse %(choices)s." + +#: oldforms/__init__.py:745 +msgid "Enter a whole number between -32,768 and 32,767." +msgstr "Sisestage täisarv vahemikus -32 768 kuni 32 767." + +#: oldforms/__init__.py:755 +msgid "Enter a positive number." +msgstr "Sisestage postiivne arv." + +#: oldforms/__init__.py:765 +msgid "Enter a whole number between 0 and 32,767." +msgstr "Sisestage täisarv vahemikus 0 kuni 32 767." + +#: template/defaultfilters.py:698 +msgid "yes,no,maybe" +msgstr "jah,ei,võib-olla" + +#: template/defaultfilters.py:729 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d bait" +msgstr[1] "%(size)d baiti" + +#: template/defaultfilters.py:731 +#, python-format +msgid "%.1f KB" +msgstr "%.1f KB" + +#: template/defaultfilters.py:733 +#, python-format +msgid "%.1f MB" +msgstr "%.1f MB" + +#: template/defaultfilters.py:734 +#, python-format +msgid "%.1f GB" +msgstr "%.1f GB" + +#: utils/dateformat.py:41 +msgid "p.m." +msgstr "p.l." + +#: utils/dateformat.py:42 +msgid "a.m." +msgstr "e.l." + +#: utils/dateformat.py:47 +msgid "PM" +msgstr "PL" + +#: utils/dateformat.py:48 +msgid "AM" +msgstr "EL" + +#: utils/dateformat.py:97 +msgid "midnight" +msgstr "südaöö" + +#: utils/dateformat.py:99 +msgid "noon" +msgstr "keskpäev" + +#: utils/dates.py:6 +msgid "Monday" +msgstr "esmaspäev" + +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "teisipäev" + +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "kolmapäev" + +#: utils/dates.py:6 +msgid "Thursday" +msgstr "neljapäev" + +#: utils/dates.py:6 +msgid "Friday" +msgstr "reede" + +#: utils/dates.py:7 +msgid "Saturday" +msgstr "laupäev" + +#: utils/dates.py:7 +msgid "Sunday" +msgstr "pühapäev" + +#: utils/dates.py:10 +msgid "Mon" +msgstr "esmasp." + +#: utils/dates.py:10 +msgid "Tue" +msgstr "teisip." + +#: utils/dates.py:10 +msgid "Wed" +msgstr "kolmap." + +#: utils/dates.py:10 +msgid "Thu" +msgstr "neljap." + +#: utils/dates.py:10 +msgid "Fri" +msgstr "reede" + +#: utils/dates.py:11 +msgid "Sat" +msgstr "laup." + +#: utils/dates.py:11 +msgid "Sun" +msgstr "pühap." + +#: utils/dates.py:18 +msgid "January" +msgstr "jaanuar" + +#: utils/dates.py:18 +msgid "February" +msgstr "veebruar" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "March" +msgstr "märts" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "April" +msgstr "aprill" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "May" +msgstr "mai" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "June" +msgstr "juuni" + +#: utils/dates.py:19 utils/dates.py:31 +msgid "July" +msgstr "juuli" + +#: utils/dates.py:19 +msgid "August" +msgstr "august" + +#: utils/dates.py:19 +msgid "September" +msgstr "september" + +#: utils/dates.py:19 +msgid "October" +msgstr "oktoober" + +#: utils/dates.py:19 +msgid "November" +msgstr "november" + +#: utils/dates.py:20 +msgid "December" +msgstr "detsember" + +#: utils/dates.py:23 +msgid "jan" +msgstr "jaan" + +#: utils/dates.py:23 +msgid "feb" +msgstr "veeb" + +#: utils/dates.py:23 +msgid "mar" +msgstr "märts" + +#: utils/dates.py:23 +msgid "apr" +msgstr "apr" + +#: utils/dates.py:23 +msgid "may" +msgstr "mai" + +#: utils/dates.py:23 +msgid "jun" +msgstr "jun" + +#: utils/dates.py:24 +msgid "jul" +msgstr "jul" + +#: utils/dates.py:24 +msgid "aug" +msgstr "aug" + +#: utils/dates.py:24 +msgid "sep" +msgstr "sept" + +#: utils/dates.py:24 +msgid "oct" +msgstr "okt" + +#: utils/dates.py:24 +msgid "nov" +msgstr "nov" + +#: utils/dates.py:24 +msgid "dec" +msgstr "dets" + +#: utils/dates.py:31 +msgid "Jan." +msgstr "Jaan." + +#: utils/dates.py:31 +msgid "Feb." +msgstr "Veeb." + +#: utils/dates.py:32 +msgid "Aug." +msgstr "Aug." + +#: utils/dates.py:32 +msgid "Sept." +msgstr "Sept." + +#: utils/dates.py:32 +msgid "Oct." +msgstr "Okt." + +#: utils/dates.py:32 +msgid "Nov." +msgstr "Nov." + +#: utils/dates.py:32 +msgid "Dec." +msgstr "Dets." + +#: utils/text.py:127 +msgid "or" +msgstr "või" + +#: utils/timesince.py:21 +msgid "year" +msgid_plural "years" +msgstr[0] "aasta" +msgstr[1] "aastat" + +#: utils/timesince.py:22 +msgid "month" +msgid_plural "months" +msgstr[0] "kuu" +msgstr[1] "kuud" + +#: utils/timesince.py:23 +msgid "week" +msgid_plural "weeks" +msgstr[0] "nädal" +msgstr[1] "nädalat" + +#: utils/timesince.py:24 +msgid "day" +msgid_plural "days" +msgstr[0] "päev" +msgstr[1] "päeva" + +#: utils/timesince.py:25 +msgid "hour" +msgid_plural "hours" +msgstr[0] "tund" +msgstr[1] "tundi" + +#: utils/timesince.py:26 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minut" +msgstr[1] "minutit" + +#: utils/timesince.py:46 +msgid "minutes" +msgstr "minutit" + +#: 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:403 +msgid "DATE_FORMAT" +msgstr "N j, Y" + +#: utils/translation/trans_real.py:404 +msgid "DATETIME_FORMAT" +msgstr "j. N Y, H:i" + +#: utils/translation/trans_real.py:405 +msgid "TIME_FORMAT" +msgstr "H:i" + +#: utils/translation/trans_real.py:421 +msgid "YEAR_MONTH_FORMAT" +msgstr "F Y" + +#: utils/translation/trans_real.py:422 +msgid "MONTH_DAY_FORMAT" +msgstr "j. F" + +#: views/generic/create_update.py:43 +#, python-format +msgid "The %(verbose_name)s was created successfully." +msgstr "%(verbose_name)s edukalt loodud." + +#: views/generic/create_update.py:117 +#, python-format +msgid "The %(verbose_name)s was updated successfully." +msgstr "%(verbose_name)s edukalt muudetud." + +#: views/generic/create_update.py:184 +#, python-format +msgid "The %(verbose_name)s was deleted." +msgstr "%(verbose_name)s kustutatud." diff --git a/django/conf/locale/et/LC_MESSAGES/djangojs.mo b/django/conf/locale/et/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..2dc026ef4f6b5aa06d400e168a656bd54d785899 GIT binary patch literal 1636 zcmaiyzi%8x6vqb$1{@L~{0IfbYa+!$>)aiYxf~9{*k{?X&#~?{j;s{cc=xe4zS*7A z%&g(0)TwAF=qUX!Bo$OAQPa^ND5;QWC=dPzs?uXzd><__3Fauu!ZNrD)i`YK`FMwZy z_rR~f;OE!o{C6^{;P*Z=)&Qx>0K-YIUf6 zt9P^We(Qr)3x?5SW7EViVY>)a@O=vBI{{L)tQA#N@ zj$)SiKcz*g-7RP}t?H~cpJc{lnlo$4savk<7;F#v&wA2cZY{2x!gGOKW>Xa9`3rwz zs--GE!apXhV}JWzycu<$*@c`xV;l90#H6aodel8ueo?H@*yOpIlv?a6C&ft0RGvy5 zMsuf{X0{@pe~TV_DGsDoBsr^<$^5aJRH`r2@L<0jqd}7Diyg*LA4q#5G0)XN(*f55 zO@sNF^{yW1FwqLbTo%=e2>+ewi8tqm+PiwHci2tlPv%cVP^R-UJ{9{GIhLZ&xzwo? z`_#v1@6a9%X;;L|gaXy%dYLZK39{Am$5WKPH$PLTaUaFX$`AEjE?uq0jOnP=9i#Kc eV2|}lqYjx\n" +"POT-Creation-Date: 2008-06-02 19:42+0300\n" +"PO-Revision-Date: 2008-06-17 12:29+0300\n" +"Last-Translator: Erik Allik \n" +"Language-Team: Django-i18n \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 "Saadaval %s" + +#: contrib/admin/media/js/SelectFilter2.js:41 +msgid "Choose all" +msgstr "Vali kõik" + +#: contrib/admin/media/js/SelectFilter2.js:46 +msgid "Add" +msgstr "Lisa" + +#: contrib/admin/media/js/SelectFilter2.js:48 +msgid "Remove" +msgstr "Eemalda" + +#: contrib/admin/media/js/SelectFilter2.js:53 +#, perl-format +msgid "Chosen %s" +msgstr "Valitud %s" + +#: contrib/admin/media/js/SelectFilter2.js:54 +msgid "Select your choice(s) and click " +msgstr "Tee valik(ud) ja klõpsa" + +#: contrib/admin/media/js/SelectFilter2.js:59 +msgid "Clear all" +msgstr "Puhasta kõik" + +#: 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 "Jaanuar Veebruar Märts Aprill Mai Juuni Juuli August September Oktoober November Detsember" + +#: contrib/admin/media/js/calendar.js:25 +msgid "S M T W T F S" +msgstr "P E T K N R L" + +#: contrib/admin/media/js/dateparse.js:33 +msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" +msgstr "Pühapäev Esmaspäev Teisipäev Kolmapäev Neljapäev Reede Laupäev" + +#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 +#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 +msgid "Show" +msgstr "Näita" + +#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63 +msgid "Hide" +msgstr "Varja" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 +msgid "Now" +msgstr "Praegu" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51 +msgid "Clock" +msgstr "Kell" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78 +msgid "Choose a time" +msgstr "Vali aeg" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82 +msgid "Midnight" +msgstr "Kesköö" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 +msgid "6 a.m." +msgstr "6 hommikul" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84 +msgid "Noon" +msgstr "Keskpäev" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183 +msgid "Cancel" +msgstr "Tühista" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177 +msgid "Today" +msgstr "Täna" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132 +msgid "Calendar" +msgstr "Kalender" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175 +msgid "Yesterday" +msgstr "Eile" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179 +msgid "Tomorrow" +msgstr "Homme" diff --git a/django/conf/locale/he/LC_MESSAGES/django.mo b/django/conf/locale/he/LC_MESSAGES/django.mo index 9aca2b263b30108e3530ca6009620cd17244bbe9..bd4095655ef4ae6e1c8fb4ab6b71a9063c58e6f7 100644 GIT binary patch delta 18145 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 Q@m{*?As!|kLx=3%LNLiYI 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 diff --git a/django/conf/locale/he/LC_MESSAGES/django.po b/django/conf/locale/he/LC_MESSAGES/django.po index 996d940338..8179773960 100644 --- a/django/conf/locale/he/LC_MESSAGES/django.po +++ b/django/conf/locale/he/LC_MESSAGES/django.po @@ -1,202 +1,207 @@ # translation of Django. -# Copyright (C) 2006 THE Django'S COPYRIGHT HOLDER +# Copyright (C) 2008 The Django Project # This file is distributed under the same license as the Django package. -# Meir Kriheli , 2007. -# -# msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-11-10 02:19+0200\n" -"PO-Revision-Date: 2007-10-07 01:31+0200\n" +"POT-Creation-Date: 2008-06-15 23:03+0300\n" +"PO-Revision-Date: 2008-06-17 12:53+0200\n" "Last-Translator: Meir Kriheli \n" -"Language-Team: Hebrew \n" +"Language-Team: Django-i18n \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 "ערבית - Arabic" - -#: conf/global_settings.py:40 -msgid "Bengali" -msgstr "בנגאלית - Bengali" - -#: conf/global_settings.py:41 -msgid "Bulgarian" -msgstr "בולגרית - Bulgarian" - -#: conf/global_settings.py:42 -msgid "Catalan" -msgstr "קאטלונית - Catalan" - -#: conf/global_settings.py:43 -msgid "Czech" -msgstr "צ'כית - Czech" - #: conf/global_settings.py:44 -msgid "Welsh" -msgstr "וולשית - Welsh" +msgid "Arabic" +msgstr "ערבית" #: conf/global_settings.py:45 -msgid "Danish" -msgstr "דנית - Danish" +msgid "Bengali" +msgstr "בנגאלית" #: conf/global_settings.py:46 -msgid "German" -msgstr "גרמנית - German" +msgid "Bulgarian" +msgstr "בולגרית" #: conf/global_settings.py:47 -msgid "Greek" -msgstr "יוונית - Greek" +msgid "Catalan" +msgstr "קאטלונית" #: conf/global_settings.py:48 -msgid "English" -msgstr "אנגלית - English" +msgid "Czech" +msgstr "צ'כית" #: conf/global_settings.py:49 -msgid "Spanish" -msgstr "ספרדית - Spanish" +msgid "Welsh" +msgstr "וולשית" #: conf/global_settings.py:50 -msgid "Argentinean Spanish" -msgstr "ספרדית ארגנטינאית - Argentinean Spanish" +msgid "Danish" +msgstr "דנית" #: conf/global_settings.py:51 -msgid "Persian" -msgstr "פרסית - Persian" +msgid "German" +msgstr "גרמנית" #: conf/global_settings.py:52 -msgid "Finnish" -msgstr "פינית - Finnish" +msgid "Greek" +msgstr "יוונית" #: conf/global_settings.py:53 -msgid "French" -msgstr "צרפתית - French" +msgid "English" +msgstr "אנגלית" #: conf/global_settings.py:54 -msgid "Gaeilge" -msgstr "גיילית אירית - Gaeilge" +msgid "Spanish" +msgstr "ספרדית" #: conf/global_settings.py:55 -msgid "Galician" -msgstr "גאליצית - Galician" +msgid "Argentinean Spanish" +msgstr "ספרדית ארגנטינאית" #: conf/global_settings.py:56 -msgid "Hungarian" -msgstr "הונגרית - Hungarian" +msgid "Basque" +msgstr "בסקית" #: conf/global_settings.py:57 -msgid "Hebrew" -msgstr "עברית - Hebrew" +msgid "Persian" +msgstr "פרסית" #: conf/global_settings.py:58 -msgid "Croatian" -msgstr "קרואטית - Croatian" +msgid "Finnish" +msgstr "פינית" #: conf/global_settings.py:59 -msgid "Icelandic" -msgstr "איסלנדית - Icelandic" +msgid "French" +msgstr "צרפתית" #: conf/global_settings.py:60 -msgid "Italian" -msgstr "איטלקית - Italian" +msgid "Irish" +msgstr "אירית" #: conf/global_settings.py:61 -msgid "Japanese" -msgstr "יפנית - Japanese" +msgid "Galician" +msgstr "גאליצית" #: conf/global_settings.py:62 -msgid "Korean" -msgstr "קוריאנית - Korean" +msgid "Hungarian" +msgstr "הונגרית" #: conf/global_settings.py:63 -msgid "Khmer" -msgstr "חמר - Khmer" +msgid "Hebrew" +msgstr "עברית" #: conf/global_settings.py:64 -msgid "Kannada" -msgstr "קנדה - Kannada" +msgid "Croatian" +msgstr "קרואטית" #: conf/global_settings.py:65 -msgid "Latvian" -msgstr "לטבית - Latvian" +msgid "Icelandic" +msgstr "איסלנדית" #: conf/global_settings.py:66 -msgid "Macedonian" -msgstr "מקדונית - Macedonian" +msgid "Italian" +msgstr "איטלקית" #: conf/global_settings.py:67 -msgid "Dutch" -msgstr "הולנדית - Dutch" +msgid "Japanese" +msgstr "יפנית" #: conf/global_settings.py:68 -msgid "Norwegian" -msgstr "נורווגית - Norwegian" +msgid "Georgian" +msgstr "גיאורגית" #: conf/global_settings.py:69 -msgid "Polish" -msgstr "פולנית - Polish" +msgid "Korean" +msgstr "קוריאנית" #: conf/global_settings.py:70 -msgid "Portugese" -msgstr "פורטוגזית - Portugese" +msgid "Khmer" +msgstr "חמר" #: conf/global_settings.py:71 -msgid "Brazilian" -msgstr "ברזילאית - Brazilian" +msgid "Kannada" +msgstr "קנדית" #: conf/global_settings.py:72 -msgid "Romanian" -msgstr "רומנית - Romanian" +msgid "Latvian" +msgstr "לטבית" #: conf/global_settings.py:73 -msgid "Russian" -msgstr "רוסית - Russian" +msgid "Macedonian" +msgstr "מקדונית" #: conf/global_settings.py:74 -msgid "Slovak" -msgstr "סלובקית - Slovak" +msgid "Dutch" +msgstr "הולנדית" #: conf/global_settings.py:75 -msgid "Slovenian" -msgstr "סלובנית - Slovenian" +msgid "Norwegian" +msgstr "נורווגית" #: conf/global_settings.py:76 -msgid "Serbian" -msgstr "סרבית - Serbian" +msgid "Polish" +msgstr "פולנית" #: conf/global_settings.py:77 -msgid "Swedish" -msgstr "שוודית - Swedish" +msgid "Portugese" +msgstr "פורטוגזית" #: conf/global_settings.py:78 +msgid "Brazilian Portuguese" +msgstr "פורטוגזית ברזילאית" + +#: conf/global_settings.py:79 +msgid "Romanian" +msgstr "רומנית" + +#: conf/global_settings.py:80 +msgid "Russian" +msgstr "רוסית" + +#: conf/global_settings.py:81 +msgid "Slovak" +msgstr "סלובקית" + +#: conf/global_settings.py:82 +msgid "Slovenian" +msgstr "סלובנית" + +#: conf/global_settings.py:83 +msgid "Serbian" +msgstr "סרבית" + +#: conf/global_settings.py:84 +msgid "Swedish" +msgstr "שוודית" + +#: conf/global_settings.py:85 msgid "Tamil" msgstr "טמילית" -#: conf/global_settings.py:79 +#: conf/global_settings.py:86 msgid "Telugu" -msgstr "טלגו - Telugu" +msgstr "טלגו" -#: conf/global_settings.py:80 +#: conf/global_settings.py:87 msgid "Turkish" -msgstr "טורקית - Turkish" +msgstr "טורקית" -#: conf/global_settings.py:81 +#: conf/global_settings.py:88 msgid "Ukrainian" -msgstr "אוקראינית - Ukrainian" +msgstr "אוקראינית" -#: conf/global_settings.py:82 +#: conf/global_settings.py:89 msgid "Simplified Chinese" -msgstr "סינית פשוטה - Simplified·Chinese" +msgstr "סינית פשוטה" -#: conf/global_settings.py:83 +#: conf/global_settings.py:90 msgid "Traditional Chinese" -msgstr "סינית מסורתית - Traditional·Chinese" +msgstr "סינית מסורתית" -#: contrib/admin/filterspecs.py:42 +#: contrib/admin/filterspecs.py:44 #, python-format msgid "" "

        By %s:

        \n" @@ -205,71 +210,71 @@ msgstr "" "

        ע\"י %s:

        \n" "
          \n" -#: contrib/admin/filterspecs.py:72 contrib/admin/filterspecs.py:90 -#: contrib/admin/filterspecs.py:145 contrib/admin/filterspecs.py:171 +#: 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:111 +#: contrib/admin/filterspecs.py:113 msgid "Any date" msgstr "כל תאריך" -#: contrib/admin/filterspecs.py:112 +#: contrib/admin/filterspecs.py:114 msgid "Today" msgstr "היום" -#: contrib/admin/filterspecs.py:115 +#: contrib/admin/filterspecs.py:117 msgid "Past 7 days" msgstr "בשבוע האחרון" -#: contrib/admin/filterspecs.py:117 +#: contrib/admin/filterspecs.py:119 msgid "This month" msgstr "החודש" -#: contrib/admin/filterspecs.py:119 +#: contrib/admin/filterspecs.py:121 msgid "This year" msgstr "השנה" -#: contrib/admin/filterspecs.py:145 newforms/widgets.py:221 -#: oldforms/__init__.py:591 +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: oldforms/__init__.py:592 msgid "Yes" msgstr "כן" -#: contrib/admin/filterspecs.py:145 newforms/widgets.py:221 -#: oldforms/__init__.py:591 +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: oldforms/__init__.py:592 msgid "No" msgstr "לא" -#: contrib/admin/filterspecs.py:152 newforms/widgets.py:221 -#: oldforms/__init__.py:591 +#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231 +#: oldforms/__init__.py:592 msgid "Unknown" msgstr "לא ידוע" -#: contrib/admin/models.py:17 +#: contrib/admin/models.py:18 msgid "action time" msgstr "זמן פעולה" -#: contrib/admin/models.py:20 +#: contrib/admin/models.py:21 msgid "object id" msgstr "מזהה אובייקט" -#: contrib/admin/models.py:21 +#: contrib/admin/models.py:22 msgid "object repr" msgstr "ייצוג אובייקט" -#: contrib/admin/models.py:22 +#: contrib/admin/models.py:23 msgid "action flag" msgstr "דגל פעולה" -#: contrib/admin/models.py:23 +#: contrib/admin/models.py:24 msgid "change message" msgstr "הערה לשינוי" -#: contrib/admin/models.py:26 +#: contrib/admin/models.py:27 msgid "log entry" msgstr "רישום יומן" -#: contrib/admin/models.py:27 +#: contrib/admin/models.py:28 msgid "log entries" msgstr "רישומי יומן" @@ -468,7 +473,7 @@ msgid "Password:" msgstr "סיסמה:" #: contrib/admin/templates/admin/login.html:25 -#: contrib/admin/views/decorators.py:24 +#: contrib/admin/views/decorators.py:31 msgid "Log in" msgstr "כניסה" @@ -536,7 +541,7 @@ 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 @@ -556,7 +561,7 @@ 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 "יש להזין את אותה סיסנה שוב,לאימות." +msgstr "יש להזין את אותה סיסמה שוב,לאימות." #: contrib/admin/templates/admin/auth/user/change_password.html:27 #, python-format @@ -654,7 +659,7 @@ 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 @@ -728,7 +733,7 @@ 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 @@ -755,17 +760,17 @@ msgstr "הנוכחי." msgid "Change:" msgstr "שינוי:" -#: contrib/admin/templatetags/admin_list.py:254 +#: contrib/admin/templatetags/admin_list.py:257 msgid "All dates" msgstr "כל התאריכים" -#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:264 +#: 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:268 -#: contrib/admin/views/main.py:354 +#: 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 "ניתן לערוך שוב מתחת" @@ -782,21 +787,21 @@ msgstr "הסיסמה שונתה בהצלחה." msgid "Change password: %s" msgstr "שינוי סיסמה: %s" -#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60 +#: contrib/admin/views/decorators.py:17 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:62 +#: contrib/admin/views/decorators.py:69 msgid "" "Please log in again, because your session has expired. Don't worry: Your " "submission has been saved." msgstr "" "נא להתחבר שוב, מאחר ופג תוקף ההתחברות הנוכחית. אל דאגה: המידע ששלחת נשמר." -#: contrib/admin/views/decorators.py:69 +#: contrib/admin/views/decorators.py:76 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -804,245 +809,245 @@ msgstr "" "נראה שהדפדפן שלך אינו מוגדר לקבל עוגיות. נא לאפשר עוגיות, לטעון מחדש את הדף " "ולנסות שוב." -#: contrib/admin/views/decorators.py:83 -msgid "Usernames cannot contain the '@' character." -msgstr "שם משתמש אינו יכול להכיל את התו '@'." - -#: contrib/admin/views/decorators.py:85 +#: contrib/admin/views/decorators.py:89 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "כתובת הדוא\"ל שלך אינה שם המשתמש שלך. נסה/י '%s' במקום." -#: contrib/admin/views/doc.py:47 contrib/admin/views/doc.py:49 -#: contrib/admin/views/doc.py:51 +#: contrib/admin/views/decorators.py:93 +msgid "Usernames cannot contain the '@' character." +msgstr "שם משתמש אינו יכול להכיל את התו '@'." + +#: 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:78 contrib/admin/views/doc.py:80 -#: contrib/admin/views/doc.py:82 +#: 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:136 contrib/admin/views/doc.py:138 -#: contrib/admin/views/doc.py:140 +#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139 +#: contrib/admin/views/doc.py:141 msgid "view:" msgstr "צפיה (view):" -#: contrib/admin/views/doc.py:165 +#: contrib/admin/views/doc.py:166 #, python-format msgid "App %r not found" msgstr "יישום %r לא נמצא" -#: contrib/admin/views/doc.py:172 +#: 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:184 +#: 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:184 contrib/admin/views/doc.py:206 -#: contrib/admin/views/doc.py:220 contrib/admin/views/doc.py:225 +#: 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:215 +#: 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:220 +#: contrib/admin/views/doc.py:221 #, python-format msgid "all %s" msgstr "כל %s" -#: contrib/admin/views/doc.py:225 +#: contrib/admin/views/doc.py:226 #, python-format msgid "number of %s" msgstr "מספר %s" -#: contrib/admin/views/doc.py:230 +#: contrib/admin/views/doc.py:231 #, python-format msgid "Fields on %s objects" msgstr "Fields on %s objects" -#: contrib/admin/views/doc.py:292 contrib/admin/views/doc.py:303 -#: contrib/admin/views/doc.py:305 contrib/admin/views/doc.py:311 -#: contrib/admin/views/doc.py:312 contrib/admin/views/doc.py:314 +#: 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:293 +#: contrib/admin/views/doc.py:294 msgid "Boolean (Either True or False)" msgstr "בוליאני (אמת או שקר)" -#: contrib/admin/views/doc.py:294 contrib/admin/views/doc.py:313 +#: 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:295 +#: contrib/admin/views/doc.py:296 msgid "Comma-separated integers" msgstr "מספרים שלמים מופרדים בפסיקים" -#: contrib/admin/views/doc.py:296 +#: contrib/admin/views/doc.py:297 msgid "Date (without time)" msgstr "תאריך (ללא שעה)" -#: contrib/admin/views/doc.py:297 +#: contrib/admin/views/doc.py:298 msgid "Date (with time)" msgstr "תאריך (כולל שעה)" -#: contrib/admin/views/doc.py:298 +#: contrib/admin/views/doc.py:299 msgid "Decimal number" msgstr "מספר עשרוני" -#: contrib/admin/views/doc.py:299 +#: contrib/admin/views/doc.py:300 msgid "E-mail address" msgstr "כתובת דוא\"ל" -#: contrib/admin/views/doc.py:300 contrib/admin/views/doc.py:301 -#: contrib/admin/views/doc.py:304 +#: 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:302 +#: contrib/admin/views/doc.py:303 msgid "Floating point number" msgstr "מספר עשרוני" -#: contrib/admin/views/doc.py:306 contrib/comments/models.py:85 +#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89 msgid "IP address" msgstr "כתובת IP" -#: contrib/admin/views/doc.py:308 +#: contrib/admin/views/doc.py:309 msgid "Boolean (Either True, False or None)" msgstr "בוליאני (אמת, שקר או כלום)" -#: contrib/admin/views/doc.py:309 +#: contrib/admin/views/doc.py:310 msgid "Relation to parent model" msgstr "יחס למודל אב" -#: contrib/admin/views/doc.py:310 +#: contrib/admin/views/doc.py:311 msgid "Phone number" msgstr "מספר טלפון" -#: contrib/admin/views/doc.py:315 +#: contrib/admin/views/doc.py:316 msgid "Text" msgstr "טקסט" -#: contrib/admin/views/doc.py:316 +#: contrib/admin/views/doc.py:317 msgid "Time" msgstr "זמן" -#: contrib/admin/views/doc.py:317 contrib/flatpages/models.py:7 +#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:8 msgid "URL" msgstr "URL" -#: contrib/admin/views/doc.py:318 +#: contrib/admin/views/doc.py:319 msgid "U.S. state (two uppercase letters)" msgstr "מדינה בארה\"ב (שתי אותיות גדולות)" -#: contrib/admin/views/doc.py:319 +#: contrib/admin/views/doc.py:320 msgid "XML text" msgstr "טקסט XML" -#: contrib/admin/views/doc.py:345 +#: 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:230 +#: contrib/admin/views/main.py:233 msgid "Site administration" msgstr "ניהול אתר" -#: contrib/admin/views/main.py:278 contrib/admin/views/main.py:363 +#: 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:296 +#: contrib/admin/views/main.py:298 #, python-format msgid "Add %s" msgstr "הוספת %s" -#: contrib/admin/views/main.py:342 +#: contrib/admin/views/main.py:344 #, python-format msgid "Added %s." msgstr "%s התווסף." -#: contrib/admin/views/main.py:342 contrib/admin/views/main.py:344 -#: contrib/admin/views/main.py:346 core/validators.py:283 +#: 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:344 +#: contrib/admin/views/main.py:346 #, python-format msgid "Changed %s." msgstr "%s שונה." -#: contrib/admin/views/main.py:346 +#: contrib/admin/views/main.py:348 #, python-format msgid "Deleted %s." msgstr "%s נמחק." -#: contrib/admin/views/main.py:349 +#: contrib/admin/views/main.py:351 msgid "No fields changed." msgstr "אף שדה לא השתנה." -#: contrib/admin/views/main.py:352 +#: 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:360 +#: 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:398 +#: contrib/admin/views/main.py:400 #, python-format msgid "Change %s" msgstr "שינוי %s" -#: contrib/admin/views/main.py:483 +#: 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:488 +#: 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:520 +#: 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:523 +#: contrib/admin/views/main.py:527 msgid "Are you sure?" msgstr "האם את/ה בטוח/ה ?" -#: contrib/admin/views/main.py:545 +#: contrib/admin/views/main.py:549 #, python-format msgid "Change history: %s" msgstr "היסטוריית שינוי: %s" -#: contrib/admin/views/main.py:579 +#: contrib/admin/views/main.py:583 #, python-format msgid "Select %s" msgstr "בחירת %s" -#: contrib/admin/views/main.py:579 +#: contrib/admin/views/main.py:583 #, python-format msgid "Select %s to change" msgstr "בחירת %s לשינוי" -#: contrib/admin/views/main.py:780 +#: contrib/admin/views/main.py:765 msgid "Database error" msgstr "שגיאת בסיס נתונים" @@ -1103,38 +1108,38 @@ msgstr "הרשאות" msgid "group" msgstr "קבוצה" -#: contrib/auth/models.py:98 contrib/auth/models.py:141 +#: contrib/auth/models.py:98 contrib/auth/models.py:148 msgid "groups" msgstr "קבוצות" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:138 msgid "username" msgstr "שם משתמש" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:138 msgid "" "Required. 30 characters or fewer. Alphanumeric characters only (letters, " "digits and underscores)." msgstr "" "דורש 30 תווים או פחות. תווים אלפאנומריים בלבד (אותיות, ספרות וקווים תחתונים)." -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:139 msgid "first name" msgstr "שם פרטי" -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:140 msgid "last name" msgstr "שם משפחה" -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:141 msgid "e-mail address" msgstr "כתובת דוא\"ל" -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:142 msgid "password" msgstr "סיסמה" -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:142 msgid "" "Use '[algo]$[salt]$[hexdigest]' or use the change " "password form." @@ -1142,45 +1147,45 @@ msgstr "" "יש להזין '[algo]$[salt]$[hexdigest]' או להשתמש בטופס " "שינוי הסיסמה." -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:143 msgid "staff status" msgstr "סטטוס איש צוות" -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:143 msgid "Designates whether the user can log into this admin site." msgstr "מציין האם המשתמש יכול להתחבר לאתר הניהול." -#: contrib/auth/models.py:137 +#: contrib/auth/models.py:144 msgid "active" msgstr "פעיל" -#: contrib/auth/models.py:137 +#: contrib/auth/models.py:144 msgid "" -"Designates whether this user can log into the Django admin. Unselect this " +"Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" -"מציין האם המשתמש יכול להתחבר לאתר הניהול. יש לבטל בחירה זובמקום למחוק " -"חשבונות משתמשים." +"מציין האם יש להתייחס למשתמש כפעיל. יש לבטל בחירה זו במקום למחוק חשבונות " +"משתמשים." -#: contrib/auth/models.py:138 +#: contrib/auth/models.py:145 msgid "superuser status" msgstr "סטטוס משתמש על" -#: contrib/auth/models.py:138 +#: contrib/auth/models.py:145 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "מציין שלמשתמש זה יש את כל ההרשאות ללא הצורך המפורש בהענקתן." -#: contrib/auth/models.py:139 +#: contrib/auth/models.py:146 msgid "last login" msgstr "כניסה אחרונה" -#: contrib/auth/models.py:140 +#: contrib/auth/models.py:147 msgid "date joined" msgstr "תאריך הצטרפות" -#: contrib/auth/models.py:142 +#: contrib/auth/models.py:149 msgid "" "In addition to the permissions manually assigned, this user will also get " "all permissions granted to each group he/she is in." @@ -1188,35 +1193,35 @@ msgstr "" "בנוסף לכל ההרשאות שהוקצו ידנית, יוענקו למשתמש גם כל ההרשאות של כל קבוצה " "המשוייכת אליו." -#: contrib/auth/models.py:143 +#: contrib/auth/models.py:150 msgid "user permissions" msgstr "הרשאות משתמש" -#: contrib/auth/models.py:147 +#: contrib/auth/models.py:154 msgid "user" msgstr "משתמש" -#: contrib/auth/models.py:148 +#: contrib/auth/models.py:155 msgid "users" msgstr "משתמשים" -#: contrib/auth/models.py:154 +#: contrib/auth/models.py:161 msgid "Personal info" msgstr "מידע אישי" -#: contrib/auth/models.py:155 +#: contrib/auth/models.py:162 msgid "Permissions" msgstr "הרשאות" -#: contrib/auth/models.py:156 +#: contrib/auth/models.py:163 msgid "Important dates" msgstr "תאריכים חשובים" -#: contrib/auth/models.py:157 +#: contrib/auth/models.py:164 msgid "Groups" msgstr "קבוצות" -#: contrib/auth/models.py:316 +#: contrib/auth/models.py:323 msgid "message" msgstr "הודעה" @@ -1224,83 +1229,83 @@ msgstr "הודעה" msgid "Logged out" msgstr "יצאת מהמערכת" -#: contrib/comments/models.py:67 contrib/comments/models.py:169 +#: contrib/comments/models.py:71 contrib/comments/models.py:176 msgid "object ID" msgstr "מזהה אובייקט" -#: contrib/comments/models.py:68 +#: contrib/comments/models.py:72 msgid "headline" msgstr "כותרת" -#: contrib/comments/models.py:69 contrib/comments/models.py:90 -#: contrib/comments/models.py:170 +#: contrib/comments/models.py:73 contrib/comments/models.py:95 +#: contrib/comments/models.py:177 msgid "comment" msgstr "תגובה" -#: contrib/comments/models.py:70 +#: contrib/comments/models.py:74 msgid "rating #1" msgstr "דירוג #1" -#: contrib/comments/models.py:71 +#: contrib/comments/models.py:75 msgid "rating #2" msgstr "דירוג #2" -#: contrib/comments/models.py:72 +#: contrib/comments/models.py:76 msgid "rating #3" msgstr "דירוג #3" -#: contrib/comments/models.py:73 +#: contrib/comments/models.py:77 msgid "rating #4" msgstr "דירוג #4" -#: contrib/comments/models.py:74 +#: contrib/comments/models.py:78 msgid "rating #5" msgstr "דירוג #5" -#: contrib/comments/models.py:75 +#: contrib/comments/models.py:79 msgid "rating #6" msgstr "דירוג #6" -#: contrib/comments/models.py:76 +#: contrib/comments/models.py:80 msgid "rating #7" msgstr "דירוג #7" -#: contrib/comments/models.py:77 +#: contrib/comments/models.py:81 msgid "rating #8" msgstr "דירוג #8" -#: contrib/comments/models.py:82 +#: contrib/comments/models.py:86 msgid "is valid rating" msgstr "האם דירוג חוקי" -#: contrib/comments/models.py:83 contrib/comments/models.py:172 +#: contrib/comments/models.py:87 contrib/comments/models.py:179 msgid "date/time submitted" msgstr "תאריך/שעת הגשה" -#: contrib/comments/models.py:84 contrib/comments/models.py:173 +#: contrib/comments/models.py:88 contrib/comments/models.py:180 msgid "is public" msgstr "ציבורי" -#: contrib/comments/models.py:86 +#: contrib/comments/models.py:90 msgid "is removed" msgstr "האם הוסר" -#: contrib/comments/models.py:86 +#: 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:91 +#: contrib/comments/models.py:96 msgid "comments" msgstr "תגובות" -#: contrib/comments/models.py:134 contrib/comments/models.py:213 +#: contrib/comments/models.py:140 contrib/comments/models.py:222 msgid "Content object" msgstr "אובייקט תוכן" -#: contrib/comments/models.py:162 +#: contrib/comments/models.py:168 #, python-format msgid "" "Posted by %(user)s at %(date)s\n" @@ -1315,48 +1320,48 @@ msgstr "" "\n" "http://%(domain)s%(url)s" -#: contrib/comments/models.py:171 +#: contrib/comments/models.py:178 msgid "person's name" msgstr "שם" -#: contrib/comments/models.py:174 +#: contrib/comments/models.py:181 msgid "ip address" msgstr "כתובת IP" -#: contrib/comments/models.py:176 +#: contrib/comments/models.py:183 msgid "approved by staff" msgstr "אושר ע\"י הצוות" -#: contrib/comments/models.py:179 +#: contrib/comments/models.py:187 msgid "free comment" msgstr "הערה אנונימית" -#: contrib/comments/models.py:180 +#: contrib/comments/models.py:188 msgid "free comments" msgstr "הערות אנונימיות" -#: contrib/comments/models.py:239 +#: contrib/comments/models.py:250 msgid "score" msgstr "ציון" -#: contrib/comments/models.py:240 +#: contrib/comments/models.py:251 msgid "score date" msgstr "תאריך ציון" -#: contrib/comments/models.py:243 +#: contrib/comments/models.py:255 msgid "karma score" msgstr "ניקוד קארמה" -#: contrib/comments/models.py:244 +#: contrib/comments/models.py:256 msgid "karma scores" msgstr "ניקודי קארמה" -#: contrib/comments/models.py:248 +#: contrib/comments/models.py:260 #, python-format msgid "%(score)d rating by %(user)s" msgstr "%(score)d·דירוג ע\"י·%(user)s" -#: contrib/comments/models.py:264 +#: contrib/comments/models.py:277 #, python-format msgid "" "This comment was flagged by %(user)s:\n" @@ -1367,36 +1372,36 @@ msgstr "" "\n" "%(text)s" -#: contrib/comments/models.py:271 +#: contrib/comments/models.py:285 msgid "flag date" msgstr "תאריך סימון" -#: contrib/comments/models.py:274 +#: contrib/comments/models.py:289 msgid "user flag" msgstr "סימון ע\"י משתמש" -#: contrib/comments/models.py:275 +#: contrib/comments/models.py:290 msgid "user flags" msgstr "סימונים ע\"י משתמש" -#: contrib/comments/models.py:279 +#: contrib/comments/models.py:294 #, python-format msgid "Flag by %r" msgstr "סימון ע\"י %r" -#: contrib/comments/models.py:284 +#: contrib/comments/models.py:300 msgid "deletion date" msgstr "תאריך מחיקה" -#: contrib/comments/models.py:286 +#: contrib/comments/models.py:303 msgid "moderator deletion" msgstr "מחיקת מודרטור" -#: contrib/comments/models.py:287 +#: contrib/comments/models.py:304 msgid "moderator deletions" msgstr "מחיקות מודרטור" -#: contrib/comments/models.py:291 +#: contrib/comments/models.py:308 #, python-format msgid "Moderator deletion by %r" msgstr "מחיקת מודרציה ע\"י %r" @@ -1455,13 +1460,11 @@ msgid_plural "" "\n" "%(text)s" msgstr[0] "" -"ההודעה נשלחה ע\"י משתמש ששלח פחות מ-%(count)s " -"תגובה:\n" +"ההודעה נשלחה ע\"י משתמש ששלח פחות מ-%(count)s תגובה:\n" "\n" "%(text)s" msgstr[1] "" -"ההודעה נשלחה ע\"י משתמש ששלח פחות מ-%(count)s " -"תגובות:\n" +"ההודעה נשלחה ע\"י משתמש ששלח פחות מ-%(count)s תגובות:\n" "\n" "%(text)s" @@ -1515,41 +1518,41 @@ msgstr "מזהה תגובה שגוי" msgid "No voting for yourself" msgstr "לא ניתן להצביע לעצמך" -#: contrib/contenttypes/models.py:37 +#: contrib/contenttypes/models.py:67 msgid "python model class name" msgstr "שם ה-class של מודל פייתון" -#: contrib/contenttypes/models.py:40 +#: contrib/contenttypes/models.py:71 msgid "content type" msgstr "סוג תוכן" -#: contrib/contenttypes/models.py:41 +#: contrib/contenttypes/models.py:72 msgid "content types" msgstr "סוגי תוכן" -#: contrib/flatpages/models.py:8 +#: contrib/flatpages/models.py:9 msgid "" "Example: '/about/contact/'. Make sure to have leading and trailing slashes." msgstr "" "לדוגמא: '/about/contact/'. יש לוודא הימצאות הקווים הנטויים בהתחלה ובסוף." -#: contrib/flatpages/models.py:9 +#: contrib/flatpages/models.py:10 msgid "title" msgstr "כותרת" -#: contrib/flatpages/models.py:10 +#: contrib/flatpages/models.py:11 msgid "content" msgstr "תוכן" -#: contrib/flatpages/models.py:11 +#: contrib/flatpages/models.py:12 msgid "enable comments" msgstr "אפשר תגובות" -#: contrib/flatpages/models.py:12 +#: contrib/flatpages/models.py:13 msgid "template name" msgstr "שם תבנית" -#: contrib/flatpages/models.py:13 +#: contrib/flatpages/models.py:14 msgid "" "Example: 'flatpages/contact_page.html'. If this isn't provided, the system " "will use 'flatpages/default.html'." @@ -1557,168 +1560,173 @@ msgstr "" "דוגמא: 'flatpages/contact_page.html'. אם זה לא צויין, המערכת תשתמש " "ב-'flatpages/default.html'." -#: contrib/flatpages/models.py:14 +#: contrib/flatpages/models.py:15 msgid "registration required" msgstr "הרשמה נדרשת" -#: contrib/flatpages/models.py:14 +#: contrib/flatpages/models.py:15 msgid "If this is checked, only logged-in users will be able to view the page." msgstr "אם זה מסומך, רק משתמשים מחוברים יוכלו לצפות בדף." -#: contrib/flatpages/models.py:18 +#: contrib/flatpages/models.py:20 msgid "flat page" msgstr "דף פשוט" -#: contrib/flatpages/models.py:19 +#: contrib/flatpages/models.py:21 msgid "flat pages" msgstr "דפים פשוטים" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/flatpages/models.py:27 +msgid "Advanced options" +msgstr "אפשרויות מתקדמות" + +#: contrib/humanize/templatetags/humanize.py:19 msgid "th" msgstr "רביעי" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "st" msgstr "ראשון" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "nd" msgstr "שני" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "rd" msgstr "שלישי" -#: contrib/humanize/templatetags/humanize.py:50 +#: contrib/humanize/templatetags/humanize.py:51 #, python-format msgid "%(value).1f million" msgid_plural "%(value).1f million" msgstr[0] "%(value).1f מיליון" msgstr[1] "%(value).1f מיליונים" -#: contrib/humanize/templatetags/humanize.py:53 +#: contrib/humanize/templatetags/humanize.py:54 #, python-format msgid "%(value).1f billion" msgid_plural "%(value).1f billion" msgstr[0] "%(value).1f ביליון" msgstr[1] "%(value).1f ביליונים" -#: contrib/humanize/templatetags/humanize.py:56 +#: contrib/humanize/templatetags/humanize.py:57 #, python-format msgid "%(value).1f trillion" msgid_plural "%(value).1f trillion" msgstr[0] "%(value).1f טריליון" msgstr[1] "%(value).1f טריליונים" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "one" msgstr "אחד" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "two" msgstr "שניים" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "three" msgstr "שלושה" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "four" msgstr "ארבעה" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "five" msgstr "חמישה" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "six" msgstr "שישה" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "seven" msgstr "שבעה" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "eight" msgstr "שמונה" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "nine" msgstr "תשעה" -#: contrib/humanize/templatetags/humanize.py:90 +#: contrib/humanize/templatetags/humanize.py:93 msgid "today" msgstr "היום" -#: contrib/humanize/templatetags/humanize.py:92 +#: contrib/humanize/templatetags/humanize.py:95 msgid "tomorrow" msgstr "מחר" -#: contrib/humanize/templatetags/humanize.py:94 +#: contrib/humanize/templatetags/humanize.py:97 msgid "yesterday" msgstr "אתמול" -#: contrib/localflavor/ar/forms.py:30 contrib/localflavor/ar/forms.py:38 +#: contrib/localflavor/ar/forms.py:27 msgid "Enter a postal code in the format NNNN or ANNNNAAA." msgstr "יש להזין קוד דואר בתחביר NNNN או ANNNNAAA." -#: contrib/localflavor/ar/forms.py:61 contrib/localflavor/br/forms.py:103 -#: contrib/localflavor/pe/forms.py:34 contrib/localflavor/pe/forms.py:57 +#: contrib/localflavor/ar/forms.py:49 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:64 +#: contrib/localflavor/ar/forms.py:50 msgid "This field requires 7 or 8 digits." msgstr "שדה זה דורש 7 או 8 ספרות." -#: contrib/localflavor/ar/forms.py:75 +#: contrib/localflavor/ar/forms.py:79 msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." msgstr "יש להזין מספר CUIT חוקי בתחביר XX-XXXXXXXX-X או XXXXXXXXXXXX." -#: contrib/localflavor/ar/forms.py:88 +#: contrib/localflavor/ar/forms.py:80 msgid "Invalid CUIT." msgstr "CUIT שגוי" -#: contrib/localflavor/au/forms.py:18 +#: contrib/localflavor/au/forms.py:16 msgid "Enter a 4 digit post code." msgstr "יש להזין קוד דואר בן 4 ספרות." -#: contrib/localflavor/br/forms.py:23 +#: contrib/localflavor/br/forms.py:21 msgid "Enter a zip code in the format XXXXX-XXX." msgstr "יש להזין מיקוד בתחביר XXXXX-XXX." -#: contrib/localflavor/br/forms.py:35 +#: 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:68 +#: 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:105 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "שדה זה דורש 11 או 14 ספרות לכל היותר." - -#: contrib/localflavor/br/forms.py:115 +#: contrib/localflavor/br/forms.py:94 msgid "Invalid CPF number." msgstr "מספר CPF לא חוקי" -#: contrib/localflavor/br/forms.py:137 -msgid "This field requires at least 14 digits" -msgstr "שדה זה דורש לפחות 14 ספרות." +#: 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:147 +#: contrib/localflavor/br/forms.py:134 msgid "Invalid CNPJ number." msgstr "מספר CNPJ לא חוקי" -#: contrib/localflavor/ca/forms.py:19 +#: 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:81 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format." +#: contrib/localflavor/ca/forms.py:88 +msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." msgstr "יש להזין מספר ביטוח לאומי קנדי חוקי בתחביר XXX-XXX-XXXX." #: contrib/localflavor/ch/ch_states.py:5 @@ -1825,23 +1833,27 @@ msgstr "צוג" msgid "Zurich" msgstr "ציריך" -#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14 +#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12 msgid "Enter a zip code in the format XXXX." msgstr "יש להזין מיקוד בתחביר XXXX." -#: contrib/localflavor/ch/forms.py:90 +#: 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:32 -msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X." +#: 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:37 -msgid "Enter valid a Chilean RUT" -msgstr "יש להזין RUT צ'יליאני חוקי." +#: 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" @@ -1907,21 +1919,20 @@ msgstr "שלזוויג-הולשטיין" msgid "Thuringia" msgstr "תורינגיה" -#: contrib/localflavor/de/forms.py:16 contrib/localflavor/fi/forms.py:14 -#: contrib/localflavor/fr/forms.py:17 +#: 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 "יש להזין מיקוד בתחביר XXXXX." -#: contrib/localflavor/de/forms.py:60 +#: 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 -#, fuzzy msgid "Arava" -msgstr "טרנאוה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:6 msgid "Albacete" @@ -1932,28 +1943,24 @@ msgid "Alacant" msgstr "" #: contrib/localflavor/es/es_provinces.py:8 -#, fuzzy msgid "Almeria" -msgstr "פומרניה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:9 -#, fuzzy msgid "Avila" -msgstr "אקיטה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:10 -#, fuzzy msgid "Badajoz" -msgstr "ברדיוב" +msgstr "" #: contrib/localflavor/es/es_provinces.py:11 msgid "Illes Balears" msgstr "" #: contrib/localflavor/es/es_provinces.py:12 -#, fuzzy msgid "Barcelona" -msgstr "מקדונית - Macedonian" +msgstr "ברצלונה" #: contrib/localflavor/es/es_provinces.py:13 msgid "Burgos" @@ -1964,9 +1971,8 @@ msgid "Caceres" msgstr "" #: contrib/localflavor/es/es_provinces.py:15 -#, fuzzy msgid "Cadiz" -msgstr "צ'דקה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:16 msgid "Castello" @@ -1985,18 +1991,16 @@ msgid "A Coruna" msgstr "" #: contrib/localflavor/es/es_provinces.py:20 -#, fuzzy msgid "Cuenca" -msgstr "סניצ'ה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:21 msgid "Girona" msgstr "" #: contrib/localflavor/es/es_provinces.py:22 -#, fuzzy msgid "Granada" -msgstr "קנדה - Kannada" +msgstr "" #: contrib/localflavor/es/es_provinces.py:23 msgid "Guadalajara" @@ -2011,24 +2015,20 @@ msgid "Huelva" msgstr "" #: contrib/localflavor/es/es_provinces.py:26 -#, fuzzy msgid "Huesca" -msgstr "שלישי" +msgstr "" #: contrib/localflavor/es/es_provinces.py:27 -#, fuzzy msgid "Jaen" -msgstr "ינו'" +msgstr "" #: contrib/localflavor/es/es_provinces.py:28 -#, fuzzy msgid "Leon" -msgstr "כניסה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:29 -#, fuzzy msgid "Lleida" -msgstr "סילסיה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:30 #: contrib/localflavor/es/es_regions.py:17 @@ -2041,37 +2041,32 @@ msgstr "" #: contrib/localflavor/es/es_provinces.py:32 #: contrib/localflavor/es/es_regions.py:18 -#, fuzzy msgid "Madrid" -msgstr "מרטין" +msgstr "מדריד" #: contrib/localflavor/es/es_provinces.py:33 -#, fuzzy msgid "Malaga" -msgstr "גלנטה" +msgstr "מאלאגה" #: contrib/localflavor/es/es_provinces.py:34 -#, fuzzy msgid "Murcia" -msgstr "ז'ורה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:35 msgid "Navarre" msgstr "" #: contrib/localflavor/es/es_provinces.py:36 -#, fuzzy msgid "Ourense" -msgstr "דרנתה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:37 msgid "Asturias" msgstr "" #: contrib/localflavor/es/es_provinces.py:38 -#, fuzzy msgid "Palencia" -msgstr "גאליצית - Galician" +msgstr "" #: contrib/localflavor/es/es_provinces.py:39 msgid "Las Palmas" @@ -2082,9 +2077,8 @@ msgid "Pontevedra" msgstr "" #: contrib/localflavor/es/es_provinces.py:41 -#, fuzzy msgid "Salamanca" -msgstr "סאיטאמה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:42 msgid "Santa Cruz de Tenerife" @@ -2092,65 +2086,56 @@ msgstr "" #: contrib/localflavor/es/es_provinces.py:43 #: contrib/localflavor/es/es_regions.py:11 -#, fuzzy msgid "Cantabria" -msgstr "קאטלונית - Catalan" +msgstr "" #: contrib/localflavor/es/es_provinces.py:44 -#, fuzzy msgid "Segovia" -msgstr "סלובנית - Slovenian" +msgstr "" #: contrib/localflavor/es/es_provinces.py:45 -#, fuzzy msgid "Seville" -msgstr "לביצה" +msgstr "סביליה" #: contrib/localflavor/es/es_provinces.py:46 -#, fuzzy msgid "Soria" -msgstr "סרבית - Serbian" +msgstr "" #: contrib/localflavor/es/es_provinces.py:47 msgid "Tarragona" msgstr "" #: contrib/localflavor/es/es_provinces.py:48 -#, fuzzy msgid "Teruel" -msgstr "שלישי" +msgstr "" #: contrib/localflavor/es/es_provinces.py:49 msgid "Toledo" msgstr "" #: contrib/localflavor/es/es_provinces.py:50 -#, fuzzy msgid "Valencia" -msgstr "גאליצית - Galician" +msgstr "ולנסיה" #: contrib/localflavor/es/es_provinces.py:51 -#, fuzzy msgid "Valladolid" -msgstr "ואלה" +msgstr "ויאדוליד" #: contrib/localflavor/es/es_provinces.py:52 msgid "Bizkaia" msgstr "" #: contrib/localflavor/es/es_provinces.py:53 -#, fuzzy msgid "Zamora" -msgstr "נארה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:54 msgid "Zaragoza" msgstr "" #: contrib/localflavor/es/es_provinces.py:55 -#, fuzzy msgid "Ceuta" -msgstr "דטבה" +msgstr "" #: contrib/localflavor/es/es_provinces.py:56 msgid "Melilla" @@ -2177,9 +2162,8 @@ msgid "Basque Country" msgstr "" #: contrib/localflavor/es/es_regions.py:10 -#, fuzzy msgid "Canary Islands" -msgstr "חבל הסאר" +msgstr "" #: contrib/localflavor/es/es_regions.py:12 msgid "Castile-La Mancha" @@ -2190,18 +2174,16 @@ msgid "Castile and Leon" msgstr "" #: contrib/localflavor/es/es_regions.py:14 -#, fuzzy msgid "Catalonia" -msgstr "קאטלונית - Catalan" +msgstr "קאטלוניה" #: contrib/localflavor/es/es_regions.py:15 msgid "Extremadura" msgstr "" #: contrib/localflavor/es/es_regions.py:16 -#, fuzzy msgid "Galicia" -msgstr "גאליצית - Galician" +msgstr "גאליציה" #: contrib/localflavor/es/es_regions.py:19 msgid "Region of Murcia" @@ -2215,51 +2197,50 @@ msgstr "" msgid "Valencian Community" msgstr "" -#: contrib/localflavor/es/forms.py:22 -#, fuzzy +#: contrib/localflavor/es/forms.py:19 msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "יש להזין מיקוד בתחביר XXX XXX." +msgstr "" #: contrib/localflavor/es/forms.py:39 -#, fuzzy msgid "" "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " "9XXXXXXXX." -msgstr "נא להזין שדה מספר מס (NIP) בתחביר XXX-XXX-XX-XX או XX-XX-XXX-XXX." +msgstr "" -#: contrib/localflavor/es/forms.py:73 contrib/localflavor/es/forms.py:108 -#: db/models/fields/related.py:55 -#, python-format -msgid "Please enter a valid %s." -msgstr "יש להזין %s חוקי." +#: contrib/localflavor/es/forms.py:66 +msgid "Please enter a valid NIF, NIE, or CIF." +msgstr "" -#: contrib/localflavor/es/forms.py:91 +#: 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:97 +#: contrib/localflavor/es/forms.py:69 msgid "Invalid checksum for NIE." msgstr "" -#: contrib/localflavor/es/forms.py:106 +#: contrib/localflavor/es/forms.py:70 msgid "Invalid checksum for CIF." msgstr "" -#: contrib/localflavor/es/forms.py:136 -#, fuzzy +#: contrib/localflavor/es/forms.py:142 msgid "" "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "יש להזין מספר זיהוי גרמני חוקי בתחביר XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." +msgstr "" -#: contrib/localflavor/es/forms.py:150 +#: contrib/localflavor/es/forms.py:143 msgid "Invalid checksum for bank account number." msgstr "" -#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45 +#: contrib/localflavor/fi/forms.py:28 msgid "Enter a valid Finnish social security number." msgstr "יש להזין מספר ביטוח לאומי פיני חוקי." -#: contrib/localflavor/in_/forms.py:16 +#: contrib/localflavor/in_/forms.py:14 msgid "Enter a zip code in the format XXXXXXX." msgstr "יש להזין מיקוד בתחביר XXXXXXX." @@ -2268,15 +2249,15 @@ msgid "" "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." msgstr "יש להזין מספר זיהוי איסלנדי חוקי. התחביר הוא XXXXXX-XXXX." -#: contrib/localflavor/is_/forms.py:31 +#: contrib/localflavor/is_/forms.py:18 msgid "The Icelandic identification number is not valid." msgstr "מספר הזיהוי האיסלנדי אינו חוקי" -#: contrib/localflavor/it/forms.py:16 +#: contrib/localflavor/it/forms.py:14 msgid "Enter a valid zip code." msgstr "יש להזין מיקוד חוקי." -#: contrib/localflavor/it/forms.py:41 +#: contrib/localflavor/it/forms.py:43 msgid "Enter a valid Social Security number." msgstr "יש להזין מספר ביטוח לאומי חוקי." @@ -2284,7 +2265,7 @@ msgstr "יש להזין מספר ביטוח לאומי חוקי." msgid "Enter a valid VAT number." msgstr "יש להזין מספר מעמ חוקי" -#: contrib/localflavor/jp/forms.py:21 +#: contrib/localflavor/jp/forms.py:17 msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." msgstr "יש להזין קוד דואר בתחביר XXXXXXX או XXX-XXXX." @@ -2476,15 +2457,143 @@ msgstr "קגושימה" msgid "Okinawa" msgstr "אוקינאווה" -#: contrib/localflavor/nl/forms.py:25 +#: 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:53 +#: contrib/localflavor/nl/forms.py:52 msgid "Enter a valid phone number" msgstr "יש להזין מספר טלפון חוקי" -#: contrib/localflavor/nl/forms.py:76 +#: contrib/localflavor/nl/forms.py:78 msgid "Enter a valid SoFi number" msgstr "יש להזין מספר SoFi חוקי" @@ -2536,23 +2645,23 @@ msgstr "זילנד" msgid "Zuid-Holland" msgstr "דרום הולנד" -#: contrib/localflavor/no/forms.py:35 +#: contrib/localflavor/no/forms.py:33 msgid "Enter a valid Norwegian social security number." msgstr "יש להזין מספר ביטוח לאומי נורבגי חוקי." -#: contrib/localflavor/pe/forms.py:36 +#: contrib/localflavor/pe/forms.py:24 msgid "This field requires 8 digits." msgstr "שדה זה דורש 8 ספרות." -#: contrib/localflavor/pe/forms.py:59 +#: contrib/localflavor/pe/forms.py:52 msgid "This field requires 11 digits." msgstr "שדה זה דורש 11 ספרות." -#: contrib/localflavor/pl/forms.py:41 +#: contrib/localflavor/pl/forms.py:39 msgid "National Identification Number consists of 11 digits." msgstr "מספר זיהוי לאומי מורכב מ-11 ספרות" -#: contrib/localflavor/pl/forms.py:47 +#: contrib/localflavor/pl/forms.py:40 msgid "Wrong checksum for the National Identification Number." msgstr "סכום ביקורת שגוי עבודי מספר הזיהוי הלאומי" @@ -2561,24 +2670,21 @@ msgid "" "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." msgstr "נא להזין שדה מספר מס (NIP) בתחביר XXX-XXX-XX-XX או XX-XX-XXX-XXX." -#: contrib/localflavor/pl/forms.py:78 -#, fuzzy +#: contrib/localflavor/pl/forms.py:73 msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "סכום ביקורת שגוי עבודי מספר הזיהוי הלאומי" +msgstr "" -#: contrib/localflavor/pl/forms.py:107 -#, fuzzy +#: contrib/localflavor/pl/forms.py:112 msgid "National Business Register Number (REGON) consists of 7 or 9 digits." -msgstr "מספר זיהוי לאומי מורכב מ-11 ספרות" +msgstr "" #: contrib/localflavor/pl/forms.py:113 -#, fuzzy msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "סכום ביקורת שגוי עבודי מספר הזיהוי הלאומי" +msgstr "" -#: contrib/localflavor/pl/forms.py:148 +#: contrib/localflavor/pl/forms.py:156 msgid "Enter a postal code in the format XX-XXX." -msgstr "נא להזין מיקוד בתחביר XX-XXX." +msgstr "" #: contrib/localflavor/pl/pl_voivodeships.py:8 msgid "Lower Silesia" @@ -2644,7 +2750,7 @@ msgstr "פולין רבתי" msgid "West Pomerania" msgstr "מערב פומרניה" -#: contrib/localflavor/sk/forms.py:32 +#: contrib/localflavor/sk/forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." msgstr "יש להזין קוד דואר בתחביר XXXXX או XXX XX." @@ -2996,18 +3102,342 @@ msgstr "מחוז טרנאוה" msgid "Zilina region" msgstr "מחוז ז'ילינה" -#: contrib/localflavor/uk/forms.py:18 -msgid "Enter a postcode. A space is required between the two postcode parts." -msgstr "יש להזין קוד דואר. נדרש רווח בין שני חלקי הקוד." +#: contrib/localflavor/uk/forms.py:21 +msgid "Enter a valid postcode." +msgstr "יש להזין מיקוד חוקי." -#: contrib/localflavor/us/forms.py:18 +#: 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 "יש להזין מיקוד חוקי בתחביר XXXXX או XXXXX-XXXX." -#: contrib/localflavor/us/forms.py:51 +#: contrib/localflavor/us/forms.py:54 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." msgstr "יש להזין מספר ביטוח לאומי אמריקאי בתחביר XXX-XX-XXXX." +#: 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 "הפניה מ" @@ -3036,23 +3466,23 @@ msgstr "הפניה" msgid "redirects" msgstr "הפניות" -#: contrib/sessions/models.py:80 +#: contrib/sessions/models.py:41 msgid "session key" msgstr "מפתח התחברות (session key)" -#: contrib/sessions/models.py:81 +#: contrib/sessions/models.py:42 msgid "session data" msgstr "מידע התחברות (session data)" -#: contrib/sessions/models.py:82 +#: contrib/sessions/models.py:43 msgid "expire date" msgstr "תאריך פג תוקף" -#: contrib/sessions/models.py:87 +#: contrib/sessions/models.py:48 msgid "session" msgstr "התחברות" -#: contrib/sessions/models.py:88 +#: contrib/sessions/models.py:49 msgid "sessions" msgstr "התחברויות" @@ -3118,7 +3548,7 @@ msgstr "מותר להזין ספרות בלבד." msgid "This value can't be comprised solely of digits." msgstr "ערך זה אינו יכול להכיל ספרות בלבד." -#: core/validators.py:128 newforms/fields.py:157 +#: core/validators.py:128 newforms/fields.py:152 msgid "Enter a whole number." msgstr "נא להזין מספר שלם." @@ -3135,7 +3565,7 @@ msgstr "שנה צריכה להיות 1900 ומעלה." msgid "Invalid date: %s" msgstr "תאריך שגוי: %s" -#: core/validators.py:156 db/models/fields/__init__.py:509 +#: core/validators.py:156 db/models/fields/__init__.py:548 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "יש להזין תאריך במבנה YYYY-MM-DD." @@ -3143,20 +3573,20 @@ msgstr "יש להזין תאריך במבנה YYYY-MM-DD." msgid "Enter a valid time in HH:MM format." msgstr "יש להזין שעה במבנה HH:MM." -#: core/validators.py:165 db/models/fields/__init__.py:583 +#: core/validators.py:165 db/models/fields/__init__.py:625 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:408 +#: core/validators.py:170 newforms/fields.py:403 msgid "Enter a valid e-mail address." msgstr "יש להזין כתובת דוא\"ל חוקית." -#: core/validators.py:182 core/validators.py:474 newforms/fields.py:438 -#: oldforms/__init__.py:686 +#: core/validators.py:182 core/validators.py:474 newforms/fields.py:433 +#: oldforms/__init__.py:687 msgid "No file was submitted. Check the encoding type on the form." msgstr "לא נשלח שום קובץ. נא לבדוק את סוג הקידוד של הטופס." -#: core/validators.py:193 newforms/fields.py:462 +#: core/validators.py:193 newforms/fields.py:459 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -3379,131 +3809,135 @@ msgstr "" 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 +#: db/models/fields/__init__.py:54 #, 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 newforms/models.py:211 oldforms/__init__.py:373 +#: db/models/fields/__init__.py:179 db/models/fields/__init__.py:348 +#: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791 +#: newforms/fields.py:46 oldforms/__init__.py:374 msgid "This field is required." msgstr "יש להזין תוכן בשדה זה." -#: db/models/fields/__init__.py:418 +#: db/models/fields/__init__.py:448 msgid "This value must be an integer." msgstr "ערך זה חייב להיות מספר שלם." -#: db/models/fields/__init__.py:454 +#: db/models/fields/__init__.py:487 msgid "This value must be either True or False." msgstr "ערך זה חייב להיות אמת או שקר." -#: db/models/fields/__init__.py:475 +#: db/models/fields/__init__.py:511 msgid "This field cannot be null." msgstr "שדה זה אינו יכול להכיל null." -#: db/models/fields/__init__.py:644 +#: db/models/fields/__init__.py:689 msgid "This value must be a decimal number." msgstr "ערך זה חייב להיות מספר עשרוני." -#: db/models/fields/__init__.py:755 +#: db/models/fields/__init__.py:800 msgid "Enter a valid filename." msgstr "יש להזין שם קובץ חוקי." -#: db/models/fields/__init__.py:904 +#: db/models/fields/__init__.py:981 msgid "This value must be either None, True or False." msgstr "ערך זה חייב להיות כלום, אמת או שקר." -#: db/models/fields/related.py:658 +#: db/models/fields/related.py:94 +#, python-format +msgid "Please enter a valid %s." +msgstr "יש להזין %s חוקי." + +#: db/models/fields/related.py:746 msgid "Separate multiple IDs with commas." msgstr "יש להפריד מזהים מרובים בפסיקים." -#: db/models/fields/related.py:660 +#: db/models/fields/related.py:748 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "החזק את \"Control\", או \"Command\" על מק, לחוץ כדי לבחור יותר מאחד." -#: db/models/fields/related.py:707 +#: db/models/fields/related.py:795 #, 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 חוקי. הערך %(value)r אינו חוקי." -msgstr[1] "" -"נא להזין מזהי %(self)s חוקיים. הערכים %(value)r אינם חוקיים." +msgstr[1] "נא להזין מזהי %(self)s חוקיים. הערכים %(value)r אינם חוקיים." -#: newforms/fields.py:46 +#: newforms/fields.py:47 msgid "Enter a valid value." msgstr "יש להזין ערך חוקי." -#: newforms/fields.py:129 +#: newforms/fields.py:124 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." msgstr "נא לוודא שערך זה מכיל %(max)d תווים לכל היותר (מכיל %(length)d)." -#: newforms/fields.py:130 +#: newforms/fields.py:125 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." msgstr "נא לוודא שערך זה מכיל לפחות %(min)d תווים (מכיל %(length)d)." -#: newforms/fields.py:158 newforms/fields.py:187 newforms/fields.py:216 +#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211 #, python-format msgid "Ensure this value is less than or equal to %s." msgstr "יש לוודא שערך זה פחות מ או שווה ל %s." -#: newforms/fields.py:159 newforms/fields.py:188 newforms/fields.py:217 +#: newforms/fields.py:154 newforms/fields.py:183 newforms/fields.py:212 #, python-format msgid "Ensure this value is greater than or equal to %s." msgstr "יש לוודא שהערך גדול מ או שווה ל %s." -#: newforms/fields.py:186 newforms/fields.py:215 +#: newforms/fields.py:181 newforms/fields.py:210 msgid "Enter a number." msgstr "נא להזין מספר." -#: newforms/fields.py:218 +#: newforms/fields.py:213 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "נא לוודא שאין יותר מ-%s ספרות סה\"כ" -#: newforms/fields.py:219 +#: newforms/fields.py:214 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "נא לוודא שאין יותר מ-%s ספרות אחרי הנקודה" -#: newforms/fields.py:220 +#: newforms/fields.py:215 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "נא לוודא שאין יותר מ-%s ספרות לפני הנקודה העשרונית" -#: newforms/fields.py:268 newforms/fields.py:724 +#: newforms/fields.py:263 newforms/fields.py:751 msgid "Enter a valid date." msgstr "יש להזין תאריך חוקי." -#: newforms/fields.py:301 newforms/fields.py:725 +#: newforms/fields.py:296 newforms/fields.py:752 msgid "Enter a valid time." msgstr "יש להזין שעה חוקית." -#: newforms/fields.py:340 +#: newforms/fields.py:335 msgid "Enter a valid date/time." msgstr "יש להזין תאריך ושעה חוקיים." -#: newforms/fields.py:439 +#: newforms/fields.py:434 msgid "No file was submitted." msgstr "לא נשלח שום קובץ" -#: newforms/fields.py:440 oldforms/__init__.py:688 +#: newforms/fields.py:435 oldforms/__init__.py:689 msgid "The submitted file is empty." msgstr "הקובץ שנשלח ריק." -#: newforms/fields.py:498 +#: newforms/fields.py:497 msgid "Enter a valid URL." msgstr "יש להזין URL חוקי." -#: newforms/fields.py:499 +#: newforms/fields.py:498 msgid "This URL appears to be a broken link." msgstr "ה-URL הזה נראה כקישור שבור." -#: newforms/fields.py:560 newforms/models.py:194 +#: newforms/fields.py:560 newforms/models.py:299 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "יש לבחור אפשרות חוקית; '%(data)s' אינו בין %(choices)s." @@ -3512,69 +3946,69 @@ msgstr "יש לבחור אפשרות חוקית; '%(data)s' אינו בין %(ch msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "יש לבחור אפשרות חוקית. %(value)s אינו בין האפשרויות הזמינות." -#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:215 +#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371 msgid "Enter a list of values." msgstr "יש להזין רשימת ערכים" -#: newforms/fields.py:753 +#: newforms/fields.py:780 msgid "Enter a valid IPv4 address." msgstr "יש להזין כתובת IPv4 חוקית." -#: newforms/models.py:221 +#: newforms/models.py:372 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "יש לבחור אפשרות חוקית. %s אינו בין האפשרויות הזמינות." -#: oldforms/__init__.py:408 +#: 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:413 +#: oldforms/__init__.py:414 msgid "Line breaks are not allowed here." msgstr "מעברי שורה אסורים כאן." -#: oldforms/__init__.py:511 oldforms/__init__.py:585 oldforms/__init__.py:624 +#: 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:744 +#: oldforms/__init__.py:745 msgid "Enter a whole number between -32,768 and 32,767." msgstr "חש להזין מספר שלם בין ‎-32,768 ל- 32,767." -#: oldforms/__init__.py:754 +#: oldforms/__init__.py:755 msgid "Enter a positive number." msgstr "יש להזין מספר חיובי." -#: oldforms/__init__.py:764 +#: oldforms/__init__.py:765 msgid "Enter a whole number between 0 and 32,767." msgstr "יש להזין מספר שלם בין 0 ל- 32,767." -#: template/defaultfilters.py:555 +#: template/defaultfilters.py:698 msgid "yes,no,maybe" msgstr "כן,לא,אולי" -#: template/defaultfilters.py:585 +#: template/defaultfilters.py:729 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d בית" msgstr[1] "%(size)d בתים" -#: template/defaultfilters.py:587 +#: template/defaultfilters.py:731 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:589 +#: template/defaultfilters.py:733 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:590 +#: template/defaultfilters.py:734 #, python-format msgid "%.1f GB" msgstr "%.1f GB" @@ -3837,23 +4271,23 @@ msgstr "%(number)d %(type)s" msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/translation/trans_real.py:395 +#: utils/translation/trans_real.py:403 msgid "DATE_FORMAT" msgstr "d.m.Y" -#: utils/translation/trans_real.py:396 +#: utils/translation/trans_real.py:404 msgid "DATETIME_FORMAT" msgstr "d.m.y H:i:s" -#: utils/translation/trans_real.py:397 +#: utils/translation/trans_real.py:405 msgid "TIME_FORMAT" msgstr "H:i:s" -#: utils/translation/trans_real.py:413 +#: utils/translation/trans_real.py:421 msgid "YEAR_MONTH_FORMAT" msgstr "d.m.Y" -#: utils/translation/trans_real.py:414 +#: utils/translation/trans_real.py:422 msgid "MONTH_DAY_FORMAT" msgstr "d.m.Y" @@ -3871,4 +4305,3 @@ msgstr "ה-%(verbose_name)s עודכן בהצלחה." #, python-format msgid "The %(verbose_name)s was deleted." msgstr "ה-%(verbose_name)s נמחק." - diff --git a/django/conf/locale/hr/LC_MESSAGES/django.mo b/django/conf/locale/hr/LC_MESSAGES/django.mo index adbbfa1d7d78bb836cbed22b2b3c61cbd4d85049..0326a71909074af9cc58d8e39d999a57d54fec55 100644 GIT binary patch literal 65301 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 delta 12253 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 M<>8};eO~8(19i}FegFUf diff --git a/django/conf/locale/hr/LC_MESSAGES/django.po b/django/conf/locale/hr/LC_MESSAGES/django.po index ca2d1d05bf..cfdcf6f916 100644 --- a/django/conf/locale/hr/LC_MESSAGES/django.po +++ b/django/conf/locale/hr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-01-06 16:24+0100\n" -"PO-Revision-Date: 2008-04-17 17:30+0200\n" +"PO-Revision-Date: 2008-06-17 23:25+0100\n" "Last-Translator: Aljosa Mohorovic \n" "Language-Team: Hrvatski jezik\n" "MIME-Version: 1.0\n" @@ -18,11 +18,11 @@ msgstr "" #: conf/global_settings.py:39 msgid "Arabic" -msgstr "" +msgstr "Arapski" #: conf/global_settings.py:40 msgid "Bengali" -msgstr "" +msgstr "Bengalski" #: conf/global_settings.py:41 msgid "Bulgarian" @@ -30,7 +30,7 @@ msgstr "Bugarski" #: conf/global_settings.py:42 msgid "Catalan" -msgstr "" +msgstr "Katalanski" #: conf/global_settings.py:43 msgid "Czech" @@ -38,7 +38,7 @@ msgstr "Češki" #: conf/global_settings.py:44 msgid "Welsh" -msgstr "" +msgstr "Velški" #: conf/global_settings.py:45 msgid "Danish" @@ -62,7 +62,7 @@ msgstr "Španjolski" #: conf/global_settings.py:50 msgid "Argentinean Spanish" -msgstr "" +msgstr "Argentinski španjolski" #: conf/global_settings.py:51 msgid "Persian" @@ -78,11 +78,11 @@ msgstr "Francuski" #: conf/global_settings.py:54 msgid "Gaeilge" -msgstr "" +msgstr "Gaeilge" #: conf/global_settings.py:55 msgid "Galician" -msgstr "" +msgstr "Galski" #: conf/global_settings.py:56 msgid "Hungarian" @@ -90,7 +90,7 @@ msgstr "Mađarski" #: conf/global_settings.py:57 msgid "Hebrew" -msgstr "" +msgstr "Hebrejski" #: conf/global_settings.py:58 msgid "Croatian" @@ -98,7 +98,7 @@ msgstr "Hrvatski" #: conf/global_settings.py:59 msgid "Icelandic" -msgstr "" +msgstr "Islandski" #: conf/global_settings.py:60 msgid "Italian" @@ -114,15 +114,15 @@ msgstr "Koreanski" #: conf/global_settings.py:63 msgid "Khmer" -msgstr "" +msgstr "Kambođanski" #: conf/global_settings.py:64 msgid "Kannada" -msgstr "" +msgstr "Kannada" #: conf/global_settings.py:65 msgid "Latvian" -msgstr "" +msgstr "Letonski" #: conf/global_settings.py:66 msgid "Macedonian" @@ -174,11 +174,11 @@ msgstr "Švedski" #: conf/global_settings.py:78 msgid "Tamil" -msgstr "" +msgstr "Tamilski" #: conf/global_settings.py:79 msgid "Telugu" -msgstr "" +msgstr "Telugu" #: conf/global_settings.py:80 msgid "Turkish" @@ -186,11 +186,11 @@ msgstr "Turski" #: conf/global_settings.py:81 msgid "Ukrainian" -msgstr "" +msgstr "Ukrajinski" #: conf/global_settings.py:82 msgid "Simplified Chinese" -msgstr "" +msgstr "Pojednostavljeni kineski" #: conf/global_settings.py:83 msgid "Traditional Chinese" @@ -202,6 +202,8 @@ msgid "" "

          By %s:

          \n" "
            \n" msgstr "" +"

            Po %s:

            \n" +"
              \n" #: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92 #: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173 @@ -241,7 +243,7 @@ msgstr "Ne" #: contrib/admin/filterspecs.py:154 newforms/widgets.py:231 #: oldforms/__init__.py:592 msgid "Unknown" -msgstr "Nepoznat pojam." +msgstr "Nepoznat pojam" #: contrib/admin/models.py:18 msgid "action time" @@ -253,11 +255,11 @@ msgstr "id objekta" #: contrib/admin/models.py:22 msgid "object repr" -msgstr "" +msgstr "object repr" #: contrib/admin/models.py:23 msgid "action flag" -msgstr "" +msgstr "action flag" #: contrib/admin/models.py:24 msgid "change message" @@ -265,11 +267,11 @@ msgstr "promijeni poruku" #: contrib/admin/models.py:27 msgid "log entry" -msgstr "" +msgstr "log entry" #: contrib/admin/models.py:28 msgid "log entries" -msgstr "" +msgstr "log entries" #: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/404.html:8 @@ -310,11 +312,10 @@ msgid "Server Error (500)" msgstr "Serverska pogreška (500)" #: contrib/admin/templates/admin/500.html:10 -#, fuzzy 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 "i." +msgstr "Dogodila se pogreška. Administratori su obaviješteni putem e-maila te bi pogreška uskoro trebala biti ispravljena. Hvala na strpljenju." #: contrib/admin/templates/admin/base.html:26 msgid "Welcome," @@ -371,12 +372,12 @@ msgstr "Redoslijed" #: contrib/admin/templates/admin/change_form.html:52 msgid "Order:" -msgstr "Redoslijed" +msgstr "Redoslijed:" #: contrib/admin/templates/admin/change_list.html:11 #, python-format msgid "Add %(name)s" -msgstr "Add %(name)s" +msgstr "Dodaj %(name)s" #: contrib/admin/templates/admin/delete_confirmation.html:8 #: contrib/admin/templates/admin/submit_line.html:3 @@ -399,6 +400,8 @@ 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 "" +"Jeste li sigurni da želite izbrisati %(object_name)s \"%(escaped_object)s\"? " +"Svi navedeni objekti biti će izbrisani:" #: contrib/admin/templates/admin/delete_confirmation.html:25 msgid "Yes, I'm sure" @@ -482,7 +485,7 @@ msgstr "Akcija" #: contrib/admin/templates/admin/object_history.html:25 msgid "DATE_WITH_TIME_FULL" -msgstr "" +msgstr "DATE_WITH_TIME_FULL" #: contrib/admin/templates/admin/object_history.html:35 msgid "" @@ -562,11 +565,11 @@ msgstr "Unesi novu lozinku za korisnika %(username)s." #: contrib/admin/templates/admin_doc/bookmarklets.html:3 msgid "Bookmarklets" -msgstr "" +msgstr "Bookmarklets" #: contrib/admin/templates/admin_doc/bookmarklets.html:4 msgid "Documentation bookmarklets" -msgstr "" +msgstr "Dokumentacija bookmarklets-a" #: contrib/admin/templates/admin_doc/bookmarklets.html:8 msgid "" @@ -579,12 +582,12 @@ msgid "" "your computer is \"internal\").

              \n" msgstr "" "\n" -"

              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\").

              \n" +"

              Da bi instalirali bookmarklet, povucite link na svoj bookmarks\n" +"toolbar, ili desnim klikom na link dodajte u svoje bookmarke. Sada možete\n" +"selektirati bookmarklet sa bilo koje stranice. Zapamtite da neki bookmarkleti\n" +"zahtjevaju da gledate stranice sa računala označenog\n" +"kao \"internal\" (razgovarajte sa svojim sistem administratorom ako niste sigurni\n" +"je li vaše računalo \"internal\").

              \n" #: contrib/admin/templates/admin_doc/bookmarklets.html:18 msgid "Documentation for this page" @@ -607,22 +610,20 @@ msgid "" "Shows the content-type and unique ID for pages that represent a single " "object." msgstr "" -"Prikazuje tip sadržaja i jedinstveni ID za stranice koje predstavljaju " +"Prikazuje tip sadržaja (content-type) i jedinstveni ID za stranice koje predstavljaju " "pojedinačan objekt." #: contrib/admin/templates/admin_doc/bookmarklets.html:24 msgid "Edit this object (current window)" -msgstr "Uredi objekt (u trenutno prozoru)" +msgstr "Uredi objekt (u trenutnom prozoru)" #: contrib/admin/templates/admin_doc/bookmarklets.html:25 msgid "Jumps to the admin page for pages that represent a single object." -msgstr "" -"Preusmjeri na admin stranicu za stranice koje predstavljaju pojedinačan " -"objekt." +msgstr "Preusmjeri na admin stranicu za stranice koje predstavljaju pojedinačan objekt." #: contrib/admin/templates/admin_doc/bookmarklets.html:27 msgid "Edit this object (new window)" -msgstr "Uredi objekt (novi prozor)" +msgstr "Uredi objekt (u novom prozoru)" #: contrib/admin/templates/admin_doc/bookmarklets.html:28 msgid "As above, but opens the admin page in a new window." @@ -674,7 +675,7 @@ msgstr "Potvrdi lozinku:" #: contrib/admin/templates/registration/password_change_form.html:22 msgid "Change my password" -msgstr "Promijeni lozinku" +msgstr "Promijeni moju lozinku" #: contrib/admin/templates/registration/password_reset_done.html:4 #: contrib/admin/templates/registration/password_reset_form.html:4 @@ -741,7 +742,7 @@ msgstr "E-mail adresa:" #: contrib/admin/templates/registration/password_reset_form.html:16 msgid "Reset my password" -msgstr "Resetiraj lozinku" +msgstr "Resetiraj moju lozinku" #: contrib/admin/templates/widget/date_time.html:3 msgid "Date:" @@ -882,7 +883,7 @@ msgstr "Cijeli broj" #: contrib/admin/views/doc.py:294 msgid "Boolean (Either True or False)" -msgstr "Boolean (True or False)" +msgstr "Boolean (True ili False)" #: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314 #, python-format @@ -916,7 +917,7 @@ msgstr "Put do datoteke" #: contrib/admin/views/doc.py:303 msgid "Floating point number" -msgstr "Floating point number" +msgstr "Broj s pomičnim zarezom (floating point number)" #: contrib/admin/views/doc.py:307 contrib/comments/models.py:85 msgid "IP address" @@ -924,11 +925,11 @@ msgstr "IP adresa" #: contrib/admin/views/doc.py:309 msgid "Boolean (Either True, False or None)" -msgstr "Boolean (Either True, False or None)" +msgstr "Boolean (True, False ili None)" #: contrib/admin/views/doc.py:310 msgid "Relation to parent model" -msgstr "Relation to parent model" +msgstr "Relacija na roditeljski model (parent model)" #: contrib/admin/views/doc.py:311 msgid "Phone number" @@ -948,7 +949,7 @@ msgstr "URL" #: contrib/admin/views/doc.py:319 msgid "U.S. state (two uppercase letters)" -msgstr "U.S. state (two uppercase letters)" +msgstr "Država S.A.D.-a (dva velika slova)" #: contrib/admin/views/doc.py:320 msgid "XML text" @@ -992,7 +993,7 @@ msgstr "Promijenjeno %s." #: contrib/admin/views/main.py:348 #, python-format msgid "Deleted %s." -msgstr "" +msgstr "Izbrisano %s." #: contrib/admin/views/main.py:351 msgid "No fields changed." @@ -1016,12 +1017,12 @@ msgstr "Promijeni %s" #: contrib/admin/views/main.py:487 #, python-format msgid "One or more %(fieldname)s in %(name)s: %(obj)s" -msgstr "Jedan ili više %(fieldname)s in %(name)s: %(obj)s" +msgstr "Jedan ili više %(fieldname)s u %(name)s: %(obj)s" #: contrib/admin/views/main.py:492 #, python-format msgid "One or more %(fieldname)s in %(name)s:" -msgstr "Jedan ili više %(fieldname)s in %(name)s" +msgstr "Jedan ili više %(fieldname)s u %(name)s" #: contrib/admin/views/main.py:524 #, python-format @@ -1240,7 +1241,7 @@ msgstr "ID objekta" #: contrib/comments/models.py:68 msgid "headline" -msgstr "headline / naslov?" +msgstr "naslov" #: contrib/comments/models.py:69 contrib/comments/models.py:90 #: contrib/comments/models.py:170 @@ -1249,43 +1250,43 @@ msgstr "komentar" #: contrib/comments/models.py:70 msgid "rating #1" -msgstr "rating #1" +msgstr "ocjena #1" #: contrib/comments/models.py:71 msgid "rating #2" -msgstr "rating #2" +msgstr "ocjena #2" #: contrib/comments/models.py:72 msgid "rating #3" -msgstr "rating #3" +msgstr "ocjena #3" #: contrib/comments/models.py:73 msgid "rating #4" -msgstr "rating #4" +msgstr "ocjena #4" #: contrib/comments/models.py:74 msgid "rating #5" -msgstr "rating #5" +msgstr "ocjena #5" #: contrib/comments/models.py:75 msgid "rating #6" -msgstr "rating #6" +msgstr "ocjena #6" #: contrib/comments/models.py:76 msgid "rating #7" -msgstr "rating #7" +msgstr "ocjena #7" #: contrib/comments/models.py:77 msgid "rating #8" -msgstr "rating #8" +msgstr "ocjena #8" #: contrib/comments/models.py:82 msgid "is valid rating" -msgstr "rating je ispravan" +msgstr "ocjena je ispravana" #: contrib/comments/models.py:83 contrib/comments/models.py:172 msgid "date/time submitted" -msgstr "datum/vrijeme submitted" +msgstr "datum/vrijeme unosa" #: contrib/comments/models.py:84 contrib/comments/models.py:173 msgid "is public" @@ -1320,6 +1321,11 @@ msgid "" "\n" "http://%(domain)s%(url)s" msgstr "" +"Napisao %(user)s dana %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" #: contrib/comments/models.py:171 msgid "person's name" @@ -1360,7 +1366,7 @@ msgstr "karma rezultati" #: contrib/comments/models.py:248 #, python-format msgid "%(score)d rating by %(user)s" -msgstr "%(score)d rating po %(user)s" +msgstr "%(score)d ocjena po %(user)s" #: contrib/comments/models.py:264 #, python-format @@ -1369,23 +1375,26 @@ msgid "" "\n" "%(text)s" msgstr "" +"Ovaj komentar je označio %(user)s:\n" +"\n" +"%(text)s" #: contrib/comments/models.py:271 msgid "flag date" -msgstr "datum flag-a" +msgstr "označeno datuma" #: contrib/comments/models.py:274 msgid "user flag" -msgstr "korisnički flag" +msgstr "korisnička oznaka" #: contrib/comments/models.py:275 msgid "user flags" -msgstr "korisnički flag-ovi" +msgstr "korisničke oznake" #: contrib/comments/models.py:279 #, python-format msgid "Flag by %r" -msgstr "Flag po %r" +msgstr "Oznaka po %r" #: contrib/comments/models.py:284 msgid "deletion date" @@ -1410,7 +1419,7 @@ msgstr "Zaboravili ste lozinku?" #: contrib/comments/templates/comments/form.html:12 msgid "Ratings" -msgstr "Ratings" +msgstr "Ocjene" #: contrib/comments/templates/comments/form.html:12 #: contrib/comments/templates/comments/form.html:23 @@ -1434,7 +1443,7 @@ msgstr "Komentar:" #: contrib/comments/templates/comments/form.html:35 #: contrib/comments/templates/comments/freeform.html:10 msgid "Preview comment" -msgstr "Preview komentara" +msgstr "Pregled komentara" #: contrib/comments/templates/comments/freeform.html:4 msgid "Your name:" @@ -1442,7 +1451,7 @@ msgstr "Vaše ime:" #: contrib/comments/views/comments.py:28 msgid "This rating is required because you've entered at least one other rating." -msgstr "" +msgstr "Ova ocjena je obavezna jer ste bar jednom već ocjenjivali" #: contrib/comments/views/comments.py:112 #, python-format @@ -1457,7 +1466,15 @@ msgid_plural "" "\n" "%(text)s" msgstr[0] "" +"Ovaj komentar je napisao korisnik koji je napisao manje od %(count)s " +"komentara:\n" +"\n" +"%(text)s" msgstr[1] "" +"Ovaj komentar je napisao korisnik koji je napisao manje od %(count)s " +"komentara:\n" +"\n" +"%(text)s" #: contrib/comments/views/comments.py:117 #, python-format @@ -1466,6 +1483,9 @@ msgid "" "\n" "%(text)s" msgstr "" +"Ovaj komentar je napisao nedorečen korisnik:\n" +"\n" +"%(text)s" #: contrib/comments/views/comments.py:190 #: contrib/comments/views/comments.py:283 @@ -1480,7 +1500,7 @@ msgstr "Jedno ili više obaveznih polja nisu poslana" #: contrib/comments/views/comments.py:198 #: contrib/comments/views/comments.py:289 msgid "Somebody tampered with the comment form (security violation)" -msgstr "" +msgstr "Netko je mijenjao formu komentara (sigurnosni propust)" #: contrib/comments/views/comments.py:208 #: contrib/comments/views/comments.py:295 @@ -1488,24 +1508,25 @@ msgid "" "The comment form had an invalid 'target' parameter -- the object ID was " "invalid" msgstr "" +"Forma komentara ima nepravilni 'target' parametar -- ID objekta je bio " +"nepravilan" #: contrib/comments/views/comments.py:259 #: contrib/comments/views/comments.py:324 msgid "The comment form didn't provide either 'preview' or 'post'" -msgstr "" +msgstr "Forma komentara nije imala ni 'preview' ni 'post'" #: contrib/comments/views/karma.py:21 msgid "Anonymous users cannot vote" -msgstr "" +msgstr "Anonimni korisnici ne mogu glasati" #: contrib/comments/views/karma.py:25 msgid "Invalid comment ID" -msgstr "" +msgstr "Neispravan ID komentara" #: contrib/comments/views/karma.py:27 -#, fuzzy msgid "No voting for yourself" -msgstr "Ne" +msgstr "Ne možete glasati za sebe" #: contrib/contenttypes/models.py:37 msgid "python model class name" @@ -1567,40 +1588,40 @@ msgstr "statične stranice" #: contrib/humanize/templatetags/humanize.py:20 msgid "th" -msgstr "" +msgstr "th" #: contrib/humanize/templatetags/humanize.py:20 msgid "st" -msgstr "" +msgstr "st" #: contrib/humanize/templatetags/humanize.py:20 msgid "nd" -msgstr "" +msgstr "nd" #: contrib/humanize/templatetags/humanize.py:20 msgid "rd" -msgstr "" +msgstr "rd" #: contrib/humanize/templatetags/humanize.py:52 #, python-format msgid "%(value).1f million" msgid_plural "%(value).1f million" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(value).1f milijun" +msgstr[1] "%(value).1f milijuna" #: contrib/humanize/templatetags/humanize.py:55 #, python-format msgid "%(value).1f billion" msgid_plural "%(value).1f billion" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(value).1f milijarda" +msgstr[1] "%(value).1f milijarde" #: contrib/humanize/templatetags/humanize.py:58 #, python-format msgid "%(value).1f trillion" msgid_plural "%(value).1f trillion" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(value).1f bilijun" +msgstr[1] "%(value).1f bilijuna" #: contrib/humanize/templatetags/humanize.py:74 msgid "one" @@ -1688,7 +1709,8 @@ msgstr "Telefonski brojevi moraju biti formata XX-XXXX-XXXX." msgid "" "Select a valid brazilian state. That state is not one of the available " "states." -msgstr "" +msgstr "Izaberite ispravnu brazilsku državu. Država nije jedna od dostupnih " +"država." #: contrib/localflavor/br/forms.py:94 msgid "Invalid CPF number." @@ -1696,7 +1718,7 @@ msgstr "Neispravan CPF broj." #: contrib/localflavor/br/forms.py:95 msgid "This field requires at most 11 digits or 14 characters." -msgstr "Ovo polje zahtjeva najviše 11 ili 14 numeričkih znakova." +msgstr "Ovo polje zahtjeva najviše 11 numeričkih znakova ili 14 slova." #: contrib/localflavor/br/forms.py:134 msgid "Invalid CNPJ number." @@ -1704,7 +1726,7 @@ msgstr "Neispravan CNPJ broj." #: contrib/localflavor/br/forms.py:136 msgid "This field requires at least 14 digits" -msgstr "Ovo polje zahtjeva najviše 14 numeričkih znakova" +msgstr "Ovo polje zahtjeva bar 14 numeričkih znakova" #: contrib/localflavor/ca/forms.py:17 msgid "Enter a postal code in the format XXX XXX." @@ -1712,121 +1734,122 @@ msgstr "Unesi poštanski broj formata XXX XXX." #: contrib/localflavor/ca/forms.py:88 msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" +msgstr "Unesite valjani kanadski broj socijalnog osiguranja formata XXX-XXX-XXX." #: contrib/localflavor/ch/ch_states.py:5 msgid "Aargau" -msgstr "" +msgstr "Aargau" #: contrib/localflavor/ch/ch_states.py:6 msgid "Appenzell Innerrhoden" -msgstr "" +msgstr "Appenzell Innerrhoden" #: contrib/localflavor/ch/ch_states.py:7 msgid "Appenzell Ausserrhoden" -msgstr "" +msgstr "Appenzell Ausserrhoden" #: contrib/localflavor/ch/ch_states.py:8 msgid "Basel-Stadt" -msgstr "" +msgstr "Basel-Stadt" #: contrib/localflavor/ch/ch_states.py:9 msgid "Basel-Land" -msgstr "" +msgstr "Basel-Land" #: contrib/localflavor/ch/ch_states.py:10 msgid "Berne" -msgstr "" +msgstr "Berne" #: contrib/localflavor/ch/ch_states.py:11 msgid "Fribourg" -msgstr "" +msgstr "Fribourg" #: contrib/localflavor/ch/ch_states.py:12 msgid "Geneva" -msgstr "" +msgstr "Geneva" #: contrib/localflavor/ch/ch_states.py:13 msgid "Glarus" -msgstr "" +msgstr "Glarus" #: contrib/localflavor/ch/ch_states.py:14 msgid "Graubuenden" -msgstr "" +msgstr "Graubuenden" #: contrib/localflavor/ch/ch_states.py:15 msgid "Jura" -msgstr "" +msgstr "Jura" #: contrib/localflavor/ch/ch_states.py:16 msgid "Lucerne" -msgstr "" +msgstr "Lucerne" #: contrib/localflavor/ch/ch_states.py:17 msgid "Neuchatel" -msgstr "" +msgstr "Neuchatel" #: contrib/localflavor/ch/ch_states.py:18 msgid "Nidwalden" -msgstr "" +msgstr "Nidwalden" #: contrib/localflavor/ch/ch_states.py:19 msgid "Obwalden" -msgstr "" +msgstr "Obwalden" #: contrib/localflavor/ch/ch_states.py:20 msgid "Schaffhausen" -msgstr "" +msgstr "Schaffhausen" #: contrib/localflavor/ch/ch_states.py:21 msgid "Schwyz" -msgstr "" +msgstr "Schwyz" #: contrib/localflavor/ch/ch_states.py:22 msgid "Solothurn" -msgstr "" +msgstr "Solothurn" #: contrib/localflavor/ch/ch_states.py:23 msgid "St. Gallen" -msgstr "" +msgstr "St. Gallen" #: contrib/localflavor/ch/ch_states.py:24 msgid "Thurgau" -msgstr "" +msgstr "Thurgau" #: contrib/localflavor/ch/ch_states.py:25 msgid "Ticino" -msgstr "" +msgstr "Ticino" #: contrib/localflavor/ch/ch_states.py:26 msgid "Uri" -msgstr "" +msgstr "Uri" #: contrib/localflavor/ch/ch_states.py:27 msgid "Valais" -msgstr "" +msgstr "Valais" #: contrib/localflavor/ch/ch_states.py:28 msgid "Vaud" -msgstr "" +msgstr "Vaud" #: contrib/localflavor/ch/ch_states.py:29 msgid "Zug" -msgstr "" +msgstr "Zug" #: contrib/localflavor/ch/ch_states.py:30 msgid "Zurich" -msgstr "" +msgstr "Zurich" #: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12 msgid "Enter a zip code in the format XXXX." -msgstr "" +msgstr "Unesite zip kod formata XXXX." #: contrib/localflavor/ch/forms.py:64 msgid "" "Enter a valid Swiss identity or passport card number in X1234567<0 or " "1234567890 format." -msgstr "" +msgstr "Unesite ispravan švicarski identifikacijski broj ili broj putovnice formata X1234567<0 ili " +"1234567890" #: contrib/localflavor/cl/forms.py:29 msgid "Enter a valid Chilean RUT." @@ -1838,55 +1861,55 @@ msgstr "Unesi ispravan čileanski RUT formata XX.XXX.XXX-X." #: contrib/localflavor/cl/forms.py:31 msgid "The Chilean RUT is not valid." -msgstr "" +msgstr "Čileanski RUT nije ispravan." #: contrib/localflavor/de/de_states.py:5 msgid "Baden-Wuerttemberg" -msgstr "" +msgstr "Baden-Wuerttemberg" #: contrib/localflavor/de/de_states.py:6 msgid "Bavaria" -msgstr "" +msgstr "Bavaria" #: contrib/localflavor/de/de_states.py:7 msgid "Berlin" -msgstr "" +msgstr "Berlin" #: contrib/localflavor/de/de_states.py:8 msgid "Brandenburg" -msgstr "" +msgstr "Brandenburg" #: contrib/localflavor/de/de_states.py:9 msgid "Bremen" -msgstr "" +msgstr "Bremen" #: contrib/localflavor/de/de_states.py:10 msgid "Hamburg" -msgstr "" +msgstr "Hamburg" #: contrib/localflavor/de/de_states.py:11 msgid "Hessen" -msgstr "" +msgstr "Hessen" #: contrib/localflavor/de/de_states.py:12 msgid "Mecklenburg-Western Pomerania" -msgstr "" +msgstr "Mecklenburg-Western Pomerania" #: contrib/localflavor/de/de_states.py:13 msgid "Lower Saxony" -msgstr "" +msgstr "Lower Saxony" #: contrib/localflavor/de/de_states.py:14 msgid "North Rhine-Westphalia" -msgstr "" +msgstr "North Rhine-Westphalia" #: contrib/localflavor/de/de_states.py:15 msgid "Rhineland-Palatinate" -msgstr "" +msgstr "Rhineland-Palatinate" #: contrib/localflavor/de/de_states.py:16 msgid "Saarland" -msgstr "" +msgstr "Saarland" #: contrib/localflavor/de/de_states.py:17 msgid "Saxony" @@ -1894,861 +1917,846 @@ msgstr "Saxony" #: contrib/localflavor/de/de_states.py:18 msgid "Saxony-Anhalt" -msgstr "" +msgstr "Saxony-Anhalt" #: contrib/localflavor/de/de_states.py:19 msgid "Schleswig-Holstein" -msgstr "" +msgstr "Schleswig-Holstein" #: contrib/localflavor/de/de_states.py:20 msgid "Thuringia" -msgstr "" +msgstr "Thuringia" #: 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 "" +msgstr "Unesite zip kod formata XXXXX." #: contrib/localflavor/de/forms.py:41 msgid "" "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " "format." -msgstr "" +msgstr "Unesite broj njemačke identifikacijske kartice formata XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." +"" #: contrib/localflavor/es/es_provinces.py:5 msgid "Arava" -msgstr "" +msgstr "Arava" #: contrib/localflavor/es/es_provinces.py:6 msgid "Albacete" -msgstr "" +msgstr "Albacete" #: contrib/localflavor/es/es_provinces.py:7 msgid "Alacant" -msgstr "" +msgstr "Alacant" #: contrib/localflavor/es/es_provinces.py:8 msgid "Almeria" -msgstr "" +msgstr "Almeria" #: contrib/localflavor/es/es_provinces.py:9 msgid "Avila" -msgstr "Travanj" +msgstr "Avila" #: contrib/localflavor/es/es_provinces.py:10 msgid "Badajoz" -msgstr "" +msgstr "Badajoz" #: contrib/localflavor/es/es_provinces.py:11 msgid "Illes Balears" -msgstr "" +msgstr "Illes Balears" #: contrib/localflavor/es/es_provinces.py:12 msgid "Barcelona" -msgstr "" +msgstr "Barcelona" #: contrib/localflavor/es/es_provinces.py:13 msgid "Burgos" -msgstr "" +msgstr "Burgos" #: contrib/localflavor/es/es_provinces.py:14 msgid "Caceres" -msgstr "" +msgstr "Caceres" #: contrib/localflavor/es/es_provinces.py:15 msgid "Cadiz" -msgstr "" +msgstr "Cadiz" #: contrib/localflavor/es/es_provinces.py:16 msgid "Castello" -msgstr "" +msgstr "Castello" #: contrib/localflavor/es/es_provinces.py:17 msgid "Ciudad Real" -msgstr "" +msgstr "Ciudad Real" #: contrib/localflavor/es/es_provinces.py:18 msgid "Cordoba" -msgstr "" +msgstr "Cordoba" #: contrib/localflavor/es/es_provinces.py:19 msgid "A Coruna" -msgstr "" +msgstr "A Coruna" #: contrib/localflavor/es/es_provinces.py:20 msgid "Cuenca" -msgstr "" +msgstr "Cuenca" #: contrib/localflavor/es/es_provinces.py:21 msgid "Girona" -msgstr "" +msgstr "Girona" #: contrib/localflavor/es/es_provinces.py:22 -#, fuzzy msgid "Granada" -msgstr "i" +msgstr "Granada" #: contrib/localflavor/es/es_provinces.py:23 msgid "Guadalajara" -msgstr "" +msgstr "Guadalajara" #: contrib/localflavor/es/es_provinces.py:24 msgid "Guipuzkoa" -msgstr "" +msgstr "Guipuzkoa" #: contrib/localflavor/es/es_provinces.py:25 msgid "Huelva" -msgstr "" +msgstr "Huelva" #: contrib/localflavor/es/es_provinces.py:26 -#, fuzzy msgid "Huesca" -msgstr "Utorak" +msgstr "Huesca" #: contrib/localflavor/es/es_provinces.py:27 -#, fuzzy msgid "Jaen" -msgstr "Sij." +msgstr "Jaen" #: contrib/localflavor/es/es_provinces.py:28 msgid "Leon" -msgstr "" +msgstr "Leon" #: contrib/localflavor/es/es_provinces.py:29 msgid "Lleida" -msgstr "" +msgstr "Lleida" #: contrib/localflavor/es/es_provinces.py:30 #: contrib/localflavor/es/es_regions.py:17 msgid "La Rioja" -msgstr "" +msgstr "La Rioja" #: contrib/localflavor/es/es_provinces.py:31 msgid "Lugo" -msgstr "" +msgstr "Lugo" #: contrib/localflavor/es/es_provinces.py:32 #: contrib/localflavor/es/es_regions.py:18 msgid "Madrid" -msgstr "" +msgstr "Madrid" #: contrib/localflavor/es/es_provinces.py:33 msgid "Malaga" -msgstr "" +msgstr "Malaga" #: contrib/localflavor/es/es_provinces.py:34 msgid "Murcia" -msgstr "" +msgstr "Murcia" #: contrib/localflavor/es/es_provinces.py:35 msgid "Navarre" -msgstr "" +msgstr "Navarre" #: contrib/localflavor/es/es_provinces.py:36 msgid "Ourense" -msgstr "" +msgstr "Ourense" #: contrib/localflavor/es/es_provinces.py:37 msgid "Asturias" -msgstr "" +msgstr "Asturias" #: contrib/localflavor/es/es_provinces.py:38 msgid "Palencia" -msgstr "" +msgstr "Palencia" #: contrib/localflavor/es/es_provinces.py:39 msgid "Las Palmas" -msgstr "" +msgstr "Las Palmas" #: contrib/localflavor/es/es_provinces.py:40 msgid "Pontevedra" -msgstr "" +msgstr "Pontevedra" #: contrib/localflavor/es/es_provinces.py:41 msgid "Salamanca" -msgstr "" +msgstr "Salamanca" #: contrib/localflavor/es/es_provinces.py:42 msgid "Santa Cruz de Tenerife" -msgstr "" +msgstr "Santa Cruz de Tenerife" #: contrib/localflavor/es/es_provinces.py:43 #: contrib/localflavor/es/es_regions.py:11 msgid "Cantabria" -msgstr "" +msgstr "Cantabria" #: contrib/localflavor/es/es_provinces.py:44 msgid "Segovia" -msgstr "" +msgstr "Segovia" #: contrib/localflavor/es/es_provinces.py:45 msgid "Seville" -msgstr "" +msgstr "Seville" #: contrib/localflavor/es/es_provinces.py:46 msgid "Soria" -msgstr "" +msgstr "Soria" #: contrib/localflavor/es/es_provinces.py:47 msgid "Tarragona" -msgstr "" +msgstr "Tarragona" #: contrib/localflavor/es/es_provinces.py:48 -#, fuzzy msgid "Teruel" -msgstr "Uto" +msgstr "Teruel" #: contrib/localflavor/es/es_provinces.py:49 msgid "Toledo" -msgstr "" +msgstr "Toledo" #: contrib/localflavor/es/es_provinces.py:50 msgid "Valencia" -msgstr "" +msgstr "Valencia" #: contrib/localflavor/es/es_provinces.py:51 msgid "Valladolid" -msgstr "" +msgstr "Valladolid" #: contrib/localflavor/es/es_provinces.py:52 msgid "Bizkaia" -msgstr "" +msgstr "Bizkaia" #: contrib/localflavor/es/es_provinces.py:53 msgid "Zamora" -msgstr "" +msgstr "Zamora" #: contrib/localflavor/es/es_provinces.py:54 msgid "Zaragoza" -msgstr "" +msgstr "Zaragoza" #: contrib/localflavor/es/es_provinces.py:55 msgid "Ceuta" -msgstr "" +msgstr "Ceuta" #: contrib/localflavor/es/es_provinces.py:56 msgid "Melilla" -msgstr "" +msgstr "Melilla" #: contrib/localflavor/es/es_regions.py:5 msgid "Andalusia" -msgstr "" +msgstr "Andalusia" #: contrib/localflavor/es/es_regions.py:6 msgid "Aragon" -msgstr "" +msgstr "Aragon" #: contrib/localflavor/es/es_regions.py:7 msgid "Principality of Asturias" -msgstr "" +msgstr "Principality of Asturias" #: contrib/localflavor/es/es_regions.py:8 msgid "Balearic Islands" -msgstr "" +msgstr "Balearic Islands" #: contrib/localflavor/es/es_regions.py:9 msgid "Basque Country" -msgstr "" +msgstr "Basque Country" #: contrib/localflavor/es/es_regions.py:10 msgid "Canary Islands" -msgstr "" +msgstr "Canary Islands" #: contrib/localflavor/es/es_regions.py:12 msgid "Castile-La Mancha" -msgstr "" +msgstr "Castile-La Mancha" #: contrib/localflavor/es/es_regions.py:13 msgid "Castile and Leon" -msgstr "" +msgstr "Castile and Leon" #: contrib/localflavor/es/es_regions.py:14 msgid "Catalonia" -msgstr "" +msgstr "Catalonia" #: contrib/localflavor/es/es_regions.py:15 msgid "Extremadura" -msgstr "" +msgstr "Extremadura" #: contrib/localflavor/es/es_regions.py:16 msgid "Galicia" -msgstr "" +msgstr "Galicia" #: contrib/localflavor/es/es_regions.py:19 msgid "Region of Murcia" -msgstr "" +msgstr "Region of Murcia" #: contrib/localflavor/es/es_regions.py:20 msgid "Foral Community of Navarre" -msgstr "" +msgstr "Foral Community of Navarre" #: contrib/localflavor/es/es_regions.py:21 msgid "Valencian Community" -msgstr "" +msgstr "Valencian Community" #: contrib/localflavor/es/forms.py:19 -#, fuzzy msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." +msgstr "Unesi ispravan poštanski broj u rasponu i formatu od 01XXX - 52XXX." #: contrib/localflavor/es/forms.py:39 -#, fuzzy msgid "" "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " "9XXXXXXXX." -msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." +msgstr "" +"Unesite ispravan broj telefona u jednom od formata 6XXXXXXXX, 8XXXXXXXX ili " +"9XXXXXXXX." #: contrib/localflavor/es/forms.py:66 -#, fuzzy msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Unesite ispravnu IP adresu." +msgstr "Unesite ispravan NIF, NIE ili CIF." #: contrib/localflavor/es/forms.py:67 -#, fuzzy msgid "Please enter a valid NIF or NIE." -msgstr "Molim unesite validan %s." +msgstr "Molim unesite ispravan NIF ili NIE." #: contrib/localflavor/es/forms.py:68 msgid "Invalid checksum for NIF." -msgstr "" +msgstr "Neispravan checksum za NIF" #: contrib/localflavor/es/forms.py:69 msgid "Invalid checksum for NIE." -msgstr "" +msgstr "Neispravan checksum za NIF" #: contrib/localflavor/es/forms.py:70 msgid "Invalid checksum for CIF." -msgstr "" +msgstr "Neispravan checksum za CIF." #: contrib/localflavor/es/forms.py:142 msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" +msgstr "Molim unesite ispravan broj bankovnog računa formata XXXX-XXXX-XX-XXXXXXXXXX." #: contrib/localflavor/es/forms.py:143 msgid "Invalid checksum for bank account number." -msgstr "" +msgstr "Neispravan checksum za broj bankovnog računa." #: contrib/localflavor/fi/forms.py:28 msgid "Enter a valid Finnish social security number." -msgstr "Unesi ispravan finski broj socijalnog osiguranja." +msgstr "Unesi ispravan broj finskog socijalnog osiguranja." #: contrib/localflavor/in_/forms.py:14 -#, fuzzy msgid "Enter a zip code in the format XXXXXXX." -msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." +msgstr "Unesi ispravan zip kod formata XXXXXXX." #: contrib/localflavor/is_/forms.py:17 msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" +msgstr "Unesite ispravan islandski identifikacijski broj formata XXXXXX-XXXX." #: contrib/localflavor/is_/forms.py:18 msgid "The Icelandic identification number is not valid." -msgstr "" +msgstr "Islandski identifikacijski broj nije ispravan." #: contrib/localflavor/it/forms.py:14 msgid "Enter a valid zip code." -msgstr "" +msgstr "Unesite ispravan zip kod." #: contrib/localflavor/it/forms.py:43 msgid "Enter a valid Social Security number." -msgstr "" +msgstr "Unesite ispravan broj socijalnog osiguranja." #: contrib/localflavor/it/forms.py:68 msgid "Enter a valid VAT number." -msgstr "" +msgstr "Unesite ispravan VAT broj." #: contrib/localflavor/jp/forms.py:19 msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" +msgstr "Unesite poštanski broj formata XXXXXXX or XXX-XXXX." #: contrib/localflavor/jp/jp_prefectures.py:4 msgid "Hokkaido" -msgstr "" +msgstr "Hokkaido" #: contrib/localflavor/jp/jp_prefectures.py:5 msgid "Aomori" -msgstr "" +msgstr "Aomori" #: contrib/localflavor/jp/jp_prefectures.py:6 msgid "Iwate" -msgstr "" +msgstr "Iwate" #: contrib/localflavor/jp/jp_prefectures.py:7 msgid "Miyagi" -msgstr "" +msgstr "Miyagi" #: contrib/localflavor/jp/jp_prefectures.py:8 msgid "Akita" -msgstr "" +msgstr "Akita" #: contrib/localflavor/jp/jp_prefectures.py:9 msgid "Yamagata" -msgstr "" +msgstr "Yamagata" #: contrib/localflavor/jp/jp_prefectures.py:10 msgid "Fukushima" -msgstr "" +msgstr "Fukushima" #: contrib/localflavor/jp/jp_prefectures.py:11 msgid "Ibaraki" -msgstr "" +msgstr "Ibaraki" #: contrib/localflavor/jp/jp_prefectures.py:12 msgid "Tochigi" -msgstr "" +msgstr "Tochigi" #: contrib/localflavor/jp/jp_prefectures.py:13 msgid "Gunma" -msgstr "" +msgstr "Gunma" #: contrib/localflavor/jp/jp_prefectures.py:14 msgid "Saitama" -msgstr "" +msgstr "Saitama" #: contrib/localflavor/jp/jp_prefectures.py:15 msgid "Chiba" -msgstr "" +msgstr "Chiba" #: contrib/localflavor/jp/jp_prefectures.py:16 msgid "Tokyo" -msgstr "" +msgstr "Tokyo" #: contrib/localflavor/jp/jp_prefectures.py:17 msgid "Kanagawa" -msgstr "" +msgstr "Kanagawa" #: contrib/localflavor/jp/jp_prefectures.py:18 msgid "Yamanashi" -msgstr "" +msgstr "Yamanashi" #: contrib/localflavor/jp/jp_prefectures.py:19 msgid "Nagano" -msgstr "" +msgstr "Nagano" #: contrib/localflavor/jp/jp_prefectures.py:20 msgid "Niigata" -msgstr "" +msgstr "Niigata" #: contrib/localflavor/jp/jp_prefectures.py:21 msgid "Toyama" -msgstr "" +msgstr "Toyama" #: contrib/localflavor/jp/jp_prefectures.py:22 msgid "Ishikawa" -msgstr "" +msgstr "Ishikawa" #: contrib/localflavor/jp/jp_prefectures.py:23 msgid "Fukui" -msgstr "" +msgstr "Fukui" #: contrib/localflavor/jp/jp_prefectures.py:24 msgid "Gifu" -msgstr "" +msgstr "Gifu" #: contrib/localflavor/jp/jp_prefectures.py:25 msgid "Shizuoka" -msgstr "" +msgstr "Shizuoka" #: contrib/localflavor/jp/jp_prefectures.py:26 msgid "Aichi" -msgstr "" +msgstr "Aichi" #: contrib/localflavor/jp/jp_prefectures.py:27 msgid "Mie" -msgstr "" +msgstr "Mie" #: contrib/localflavor/jp/jp_prefectures.py:28 msgid "Shiga" -msgstr "" +msgstr "Shiga" #: contrib/localflavor/jp/jp_prefectures.py:29 msgid "Kyoto" -msgstr "" +msgstr "Kyoto" #: contrib/localflavor/jp/jp_prefectures.py:30 msgid "Osaka" -msgstr "" +msgstr "Osaka" #: contrib/localflavor/jp/jp_prefectures.py:31 msgid "Hyogo" -msgstr "" +msgstr "Hyogo" #: contrib/localflavor/jp/jp_prefectures.py:32 msgid "Nara" -msgstr "" +msgstr "Nara" #: contrib/localflavor/jp/jp_prefectures.py:33 msgid "Wakayama" -msgstr "" +msgstr "Wakayama" #: contrib/localflavor/jp/jp_prefectures.py:34 msgid "Tottori" -msgstr "" +msgstr "Tottori" #: contrib/localflavor/jp/jp_prefectures.py:35 msgid "Shimane" -msgstr "" +msgstr "Shimane" #: contrib/localflavor/jp/jp_prefectures.py:36 msgid "Okayama" -msgstr "" +msgstr "Okayama" #: contrib/localflavor/jp/jp_prefectures.py:37 msgid "Hiroshima" -msgstr "" +msgstr "Hiroshima" #: contrib/localflavor/jp/jp_prefectures.py:38 msgid "Yamaguchi" -msgstr "" +msgstr "Yamaguchi" #: contrib/localflavor/jp/jp_prefectures.py:39 msgid "Tokushima" -msgstr "" +msgstr "Tokushima" #: contrib/localflavor/jp/jp_prefectures.py:40 msgid "Kagawa" -msgstr "" +msgstr "Kagawa" #: contrib/localflavor/jp/jp_prefectures.py:41 msgid "Ehime" -msgstr "" +msgstr "Ehime" #: contrib/localflavor/jp/jp_prefectures.py:42 msgid "Kochi" -msgstr "" +msgstr "Kochi" #: contrib/localflavor/jp/jp_prefectures.py:43 msgid "Fukuoka" -msgstr "" +msgstr "Fukuoka" #: contrib/localflavor/jp/jp_prefectures.py:44 msgid "Saga" -msgstr "" +msgstr "Saga" #: contrib/localflavor/jp/jp_prefectures.py:45 msgid "Nagasaki" -msgstr "" +msgstr "Nagasaki" #: contrib/localflavor/jp/jp_prefectures.py:46 msgid "Kumamoto" -msgstr "" +msgstr "Kumamoto" #: contrib/localflavor/jp/jp_prefectures.py:47 msgid "Oita" -msgstr "" +msgstr "Oita" #: contrib/localflavor/jp/jp_prefectures.py:48 msgid "Miyazaki" -msgstr "" +msgstr "Miyazaki" #: contrib/localflavor/jp/jp_prefectures.py:49 msgid "Kagoshima" -msgstr "" +msgstr "Kagoshima" #: contrib/localflavor/jp/jp_prefectures.py:50 msgid "Okinawa" -msgstr "" +msgstr "Okinawa" #: contrib/localflavor/mx/mx_states.py:12 msgid "Aguascalientes" -msgstr "" +msgstr "Aguascalientes" #: contrib/localflavor/mx/mx_states.py:13 msgid "Baja California" -msgstr "" +msgstr "Baja California" #: contrib/localflavor/mx/mx_states.py:14 msgid "Baja California Sur" -msgstr "" +msgstr "Baja California Sur" #: contrib/localflavor/mx/mx_states.py:15 msgid "Campeche" -msgstr "" +msgstr "Campeche" #: contrib/localflavor/mx/mx_states.py:16 msgid "Chihuahua" -msgstr "" +msgstr "Chihuahua" #: contrib/localflavor/mx/mx_states.py:17 msgid "Chiapas" -msgstr "" +msgstr "Chiapas" #: contrib/localflavor/mx/mx_states.py:18 msgid "Coahuila" -msgstr "" +msgstr "Coahuila" #: contrib/localflavor/mx/mx_states.py:19 msgid "Colima" -msgstr "" +msgstr "Colima" #: contrib/localflavor/mx/mx_states.py:20 msgid "Distrito Federal" -msgstr "" +msgstr "Distrito Federal" #: contrib/localflavor/mx/mx_states.py:21 msgid "Durango" -msgstr "" +msgstr "Durango" #: contrib/localflavor/mx/mx_states.py:22 msgid "Guerrero" -msgstr "" +msgstr "Guerrero" #: contrib/localflavor/mx/mx_states.py:23 msgid "Guanajuato" -msgstr "" +msgstr "Guanajuato" #: contrib/localflavor/mx/mx_states.py:24 msgid "Hidalgo" -msgstr "" +msgstr "Hidalgo" #: contrib/localflavor/mx/mx_states.py:25 msgid "Jalisco" -msgstr "" +msgstr "Jalisco" #: contrib/localflavor/mx/mx_states.py:26 msgid "Estado de México" -msgstr "" +msgstr "Estado de México" #: contrib/localflavor/mx/mx_states.py:27 msgid "Michoacán" -msgstr "" +msgstr "Michoacán" #: contrib/localflavor/mx/mx_states.py:28 msgid "Morelos" -msgstr "" +msgstr "Morelos" #: contrib/localflavor/mx/mx_states.py:29 msgid "Nayarit" -msgstr "" +msgstr "Nayarit" #: contrib/localflavor/mx/mx_states.py:30 msgid "Nuevo León" -msgstr "" +msgstr "Nuevo León" #: contrib/localflavor/mx/mx_states.py:31 msgid "Oaxaca" -msgstr "" +msgstr "Oaxaca" #: contrib/localflavor/mx/mx_states.py:32 msgid "Puebla" -msgstr "" +msgstr "Puebla" #: contrib/localflavor/mx/mx_states.py:33 msgid "Querétaro" -msgstr "" +msgstr "Querétaro" #: contrib/localflavor/mx/mx_states.py:34 msgid "Quintana Roo" -msgstr "" +msgstr "Quintana Roo" #: contrib/localflavor/mx/mx_states.py:35 msgid "Sinaloa" -msgstr "" +msgstr "Sinaloa" #: contrib/localflavor/mx/mx_states.py:36 msgid "San Luis Potosí" -msgstr "" +msgstr "San Luis Potosí" #: contrib/localflavor/mx/mx_states.py:37 msgid "Sonora" -msgstr "" +msgstr "Sonora" #: contrib/localflavor/mx/mx_states.py:38 msgid "Tabasco" -msgstr "" +msgstr "Tabasco" #: contrib/localflavor/mx/mx_states.py:39 msgid "Tamaulipas" -msgstr "" +msgstr "Tamaulipas" #: contrib/localflavor/mx/mx_states.py:40 msgid "Tlaxcala" -msgstr "" +msgstr "Tlaxcala" #: contrib/localflavor/mx/mx_states.py:41 msgid "Veracruz" -msgstr "" +msgstr "Veracruz" #: contrib/localflavor/mx/mx_states.py:42 msgid "Yucatán" -msgstr "" +msgstr "Yucatán" #: contrib/localflavor/mx/mx_states.py:43 msgid "Zacatecas" -msgstr "" +msgstr "Zacatecas" #: contrib/localflavor/nl/forms.py:21 -#, fuzzy msgid "Enter a valid postal code" -msgstr "Unesite ispravan datum." +msgstr "Unesite ispravan poštanski broj" #: contrib/localflavor/nl/forms.py:52 -#, fuzzy msgid "Enter a valid phone number" -msgstr "Unesite cijeli broj." +msgstr "Unesite ispravan telefonski broj" #: contrib/localflavor/nl/forms.py:78 -#, fuzzy msgid "Enter a valid SoFi number" -msgstr "Unesite ime datoteke koja postoji." +msgstr "Unesite ispravan SoFi broj" #: contrib/localflavor/nl/nl_provinces.py:4 msgid "Drente" -msgstr "" +msgstr "Drente" #: contrib/localflavor/nl/nl_provinces.py:5 msgid "Flevoland" -msgstr "" +msgstr "Flevoland" #: contrib/localflavor/nl/nl_provinces.py:6 msgid "Friesland" -msgstr "" +msgstr "Friesland" #: contrib/localflavor/nl/nl_provinces.py:7 msgid "Gelderland" -msgstr "" +msgstr "Gelderland" #: contrib/localflavor/nl/nl_provinces.py:8 msgid "Groningen" -msgstr "" +msgstr "Groningen" #: contrib/localflavor/nl/nl_provinces.py:9 msgid "Limburg" -msgstr "" +msgstr "Limburg" #: contrib/localflavor/nl/nl_provinces.py:10 msgid "Noord-Brabant" -msgstr "" +msgstr "Noord-Brabant" #: contrib/localflavor/nl/nl_provinces.py:11 msgid "Noord-Holland" -msgstr "" +msgstr "Noord-Holland" #: contrib/localflavor/nl/nl_provinces.py:12 msgid "Overijssel" -msgstr "" +msgstr "Overijssel" #: contrib/localflavor/nl/nl_provinces.py:13 msgid "Utrecht" -msgstr "" +msgstr "Utrecht" #: contrib/localflavor/nl/nl_provinces.py:14 -#, fuzzy msgid "Zeeland" -msgstr "i" +msgstr "Zeeland" #: contrib/localflavor/nl/nl_provinces.py:15 msgid "Zuid-Holland" -msgstr "" +msgstr "Zuid-Holland" #: contrib/localflavor/no/forms.py:33 msgid "Enter a valid Norwegian social security number." -msgstr "" +msgstr "Unesite ispravan broj norveškog socijalnog osiguranja." #: contrib/localflavor/pe/forms.py:24 -#, fuzzy msgid "This field requires 8 digits." -msgstr "Unos za ovo polje je obavezno." +msgstr "Ovo polje zahtjeva 8 numeričkih znakova." #: contrib/localflavor/pe/forms.py:52 -#, fuzzy msgid "This field requires 11 digits." -msgstr "Unos za ovo polje je obavezno." +msgstr "Ovo polje zahtjeva 11 numeričkih znakova." #: contrib/localflavor/pl/forms.py:39 msgid "National Identification Number consists of 11 digits." -msgstr "" +msgstr "Nacionalni identifikacijski broj sadrži 11 numeričkih znakova." #: contrib/localflavor/pl/forms.py:40 msgid "Wrong checksum for the National Identification Number." -msgstr "" +msgstr "Neispravan checksum za Nacionalni identifikacijski broj." #: contrib/localflavor/pl/forms.py:72 -#, fuzzy msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." -msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." +msgstr "Unesite ispravan porezni broj (NIP) formata XXX-XXX-XX-XX or XX-XX-XXX-XXX." #: contrib/localflavor/pl/forms.py:73 msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" +msgstr "Neispravan checksum za porezni broj (NIP)." #: contrib/localflavor/pl/forms.py:112 msgid "National Business Register Number (REGON) consists of 7 or 9 digits." -msgstr "" +msgstr "National Business Register Number (REGON) sastoji se od 7 ili 9 numeričkih znakova." #: contrib/localflavor/pl/forms.py:113 msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" +msgstr "Neispravan checked za National Business Register Number (REGON)." #: contrib/localflavor/pl/forms.py:156 -#, fuzzy msgid "Enter a postal code in the format XX-XXX." -msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." +msgstr "Unesi poštanski broj formata XX-XXX." #: contrib/localflavor/pl/pl_voivodeships.py:8 msgid "Lower Silesia" -msgstr "" +msgstr "Lower Silesia" #: contrib/localflavor/pl/pl_voivodeships.py:9 msgid "Kuyavia-Pomerania" -msgstr "" +msgstr "Kuyavia-Pomerania" #: contrib/localflavor/pl/pl_voivodeships.py:10 msgid "Lublin" -msgstr "" +msgstr "Lublin" #: contrib/localflavor/pl/pl_voivodeships.py:11 msgid "Lubusz" -msgstr "" +msgstr "Lubusz" #: contrib/localflavor/pl/pl_voivodeships.py:12 msgid "Lodz" -msgstr "" +msgstr "Lodz" #: contrib/localflavor/pl/pl_voivodeships.py:13 msgid "Lesser Poland" -msgstr "" +msgstr "Lesser Poland" #: contrib/localflavor/pl/pl_voivodeships.py:14 msgid "Masovia" -msgstr "" +msgstr "Masovia" #: contrib/localflavor/pl/pl_voivodeships.py:15 msgid "Opole" -msgstr "" +msgstr "Opole" #: contrib/localflavor/pl/pl_voivodeships.py:16 msgid "Subcarpatia" -msgstr "" +msgstr "Subcarpatia" #: contrib/localflavor/pl/pl_voivodeships.py:17 msgid "Podlasie" -msgstr "" +msgstr "Podlasie" #: contrib/localflavor/pl/pl_voivodeships.py:18 msgid "Pomerania" -msgstr "" +msgstr "Pomerania" #: contrib/localflavor/pl/pl_voivodeships.py:19 -#, fuzzy msgid "Silesia" -msgstr "Zilina" +msgstr "Silesia" #: contrib/localflavor/pl/pl_voivodeships.py:20 msgid "Swietokrzyskie" -msgstr "" +msgstr "Swietokrzyskie" #: contrib/localflavor/pl/pl_voivodeships.py:21 msgid "Warmia-Masuria" -msgstr "" +msgstr "Warmia-Masuria" #: contrib/localflavor/pl/pl_voivodeships.py:22 msgid "Greater Poland" -msgstr "" +msgstr "Greater Poland" #: contrib/localflavor/pl/pl_voivodeships.py:23 msgid "West Pomerania" -msgstr "" +msgstr "West Pomerania" #: contrib/localflavor/sk/forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." @@ -2756,311 +2764,311 @@ msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX." #: contrib/localflavor/sk/sk_districts.py:8 msgid "Banska Bystrica" -msgstr "" +msgstr "Banska Bystrica" #: contrib/localflavor/sk/sk_districts.py:9 msgid "Banska Stiavnica" -msgstr "" +msgstr "Banska Stiavnica" #: contrib/localflavor/sk/sk_districts.py:10 msgid "Bardejov" -msgstr "" +msgstr "Bardejov" #: contrib/localflavor/sk/sk_districts.py:11 msgid "Banovce nad Bebravou" -msgstr "" +msgstr "Banovce nad Bebravou" #: contrib/localflavor/sk/sk_districts.py:12 msgid "Brezno" -msgstr "" +msgstr "Brezno" #: contrib/localflavor/sk/sk_districts.py:13 msgid "Bratislava I" -msgstr "" +msgstr "Bratislava I" #: contrib/localflavor/sk/sk_districts.py:14 msgid "Bratislava II" -msgstr "" +msgstr "Bratislava II" #: contrib/localflavor/sk/sk_districts.py:15 msgid "Bratislava III" -msgstr "" +msgstr "Bratislava III" #: contrib/localflavor/sk/sk_districts.py:16 msgid "Bratislava IV" -msgstr "" +msgstr "Bratislava IV" #: contrib/localflavor/sk/sk_districts.py:17 msgid "Bratislava V" -msgstr "" +msgstr "Bratislava V" #: contrib/localflavor/sk/sk_districts.py:18 msgid "Bytca" -msgstr "" +msgstr "Bytca" #: contrib/localflavor/sk/sk_districts.py:19 msgid "Cadca" -msgstr "" +msgstr "Cadca" #: contrib/localflavor/sk/sk_districts.py:20 msgid "Detva" -msgstr "" +msgstr "Detva" #: contrib/localflavor/sk/sk_districts.py:21 msgid "Dolny Kubin" -msgstr "" +msgstr "Dolny Kubin" #: contrib/localflavor/sk/sk_districts.py:22 msgid "Dunajska Streda" -msgstr "" +msgstr "Dunajska Streda" #: contrib/localflavor/sk/sk_districts.py:23 msgid "Galanta" -msgstr "" +msgstr "Galanta" #: contrib/localflavor/sk/sk_districts.py:24 msgid "Gelnica" -msgstr "" +msgstr "Gelnica" #: contrib/localflavor/sk/sk_districts.py:25 msgid "Hlohovec" -msgstr "" +msgstr "Hlohovec" #: contrib/localflavor/sk/sk_districts.py:26 msgid "Humenne" -msgstr "" +msgstr "Humenne" #: contrib/localflavor/sk/sk_districts.py:27 msgid "Ilava" -msgstr "" +msgstr "Ilava" #: contrib/localflavor/sk/sk_districts.py:28 msgid "Kezmarok" -msgstr "" +msgstr "Kezmarok" #: contrib/localflavor/sk/sk_districts.py:29 msgid "Komarno" -msgstr "" +msgstr "Komarno" #: contrib/localflavor/sk/sk_districts.py:30 msgid "Kosice I" -msgstr "" +msgstr "Kosice I" #: contrib/localflavor/sk/sk_districts.py:31 msgid "Kosice II" -msgstr "" +msgstr "Kosice II" #: contrib/localflavor/sk/sk_districts.py:32 msgid "Kosice III" -msgstr "" +msgstr "Kosice III" #: contrib/localflavor/sk/sk_districts.py:33 msgid "Kosice IV" -msgstr "" +msgstr "Kosice IV" #: contrib/localflavor/sk/sk_districts.py:34 msgid "Kosice - okolie" -msgstr "" +msgstr "Kosice - okolie" #: contrib/localflavor/sk/sk_districts.py:35 msgid "Krupina" -msgstr "" +msgstr "Krupina" #: contrib/localflavor/sk/sk_districts.py:36 msgid "Kysucke Nove Mesto" -msgstr "" +msgstr "Kysucke Nove Mesto" #: contrib/localflavor/sk/sk_districts.py:37 msgid "Levice" -msgstr "" +msgstr "Levice" #: contrib/localflavor/sk/sk_districts.py:38 msgid "Levoca" -msgstr "" +msgstr "Levoca" #: contrib/localflavor/sk/sk_districts.py:39 msgid "Liptovsky Mikulas" -msgstr "" +msgstr "Liptovsky Mikulas" #: contrib/localflavor/sk/sk_districts.py:40 msgid "Lucenec" -msgstr "" +msgstr "Lucenec" #: contrib/localflavor/sk/sk_districts.py:41 msgid "Malacky" -msgstr "" +msgstr "Malacky" #: contrib/localflavor/sk/sk_districts.py:42 msgid "Martin" -msgstr "" +msgstr "Martin" #: contrib/localflavor/sk/sk_districts.py:43 msgid "Medzilaborce" -msgstr "" +msgstr "Medzilaborce" #: contrib/localflavor/sk/sk_districts.py:44 msgid "Michalovce" -msgstr "" +msgstr "Michalovce" #: contrib/localflavor/sk/sk_districts.py:45 msgid "Myjava" -msgstr "" +msgstr "Myjava" #: contrib/localflavor/sk/sk_districts.py:46 msgid "Namestovo" -msgstr "" +msgstr "Namestovo" #: contrib/localflavor/sk/sk_districts.py:47 msgid "Nitra" -msgstr "" +msgstr "Nitra" #: contrib/localflavor/sk/sk_districts.py:48 msgid "Nove Mesto nad Vahom" -msgstr "" +msgstr "Nove Mesto nad Vahom" #: contrib/localflavor/sk/sk_districts.py:49 msgid "Nove Zamky" -msgstr "" +msgstr "Nove Zamky" #: contrib/localflavor/sk/sk_districts.py:50 msgid "Partizanske" -msgstr "" +msgstr "Partizanske" #: contrib/localflavor/sk/sk_districts.py:51 msgid "Pezinok" -msgstr "" +msgstr "Pezinok" #: contrib/localflavor/sk/sk_districts.py:52 msgid "Piestany" -msgstr "" +msgstr "Piestany" #: contrib/localflavor/sk/sk_districts.py:53 msgid "Poltar" -msgstr "" +msgstr "Poltar" #: contrib/localflavor/sk/sk_districts.py:54 msgid "Poprad" -msgstr "" +msgstr "Poprad" #: contrib/localflavor/sk/sk_districts.py:55 msgid "Povazska Bystrica" -msgstr "" +msgstr "Povazska Bystrica" #: contrib/localflavor/sk/sk_districts.py:56 msgid "Presov" -msgstr "" +msgstr "Presov" #: contrib/localflavor/sk/sk_districts.py:57 msgid "Prievidza" -msgstr "" +msgstr "Prievidza" #: contrib/localflavor/sk/sk_districts.py:58 msgid "Puchov" -msgstr "" +msgstr "Puchov" #: contrib/localflavor/sk/sk_districts.py:59 msgid "Revuca" -msgstr "" +msgstr "Revuca" #: contrib/localflavor/sk/sk_districts.py:60 msgid "Rimavska Sobota" -msgstr "" +msgstr "Rimavska Sobota" #: contrib/localflavor/sk/sk_districts.py:61 msgid "Roznava" -msgstr "" +msgstr "Roznava" #: contrib/localflavor/sk/sk_districts.py:62 msgid "Ruzomberok" -msgstr "" +msgstr "Ruzomberok" #: contrib/localflavor/sk/sk_districts.py:63 msgid "Sabinov" -msgstr "" +msgstr "Sabinov" #: contrib/localflavor/sk/sk_districts.py:64 msgid "Senec" -msgstr "" +msgstr "Senec" #: contrib/localflavor/sk/sk_districts.py:65 msgid "Senica" -msgstr "" +msgstr "Senica" #: contrib/localflavor/sk/sk_districts.py:66 msgid "Skalica" -msgstr "" +msgstr "Skalica" #: contrib/localflavor/sk/sk_districts.py:67 msgid "Snina" -msgstr "" +msgstr "Snina" #: contrib/localflavor/sk/sk_districts.py:68 msgid "Sobrance" -msgstr "" +msgstr "Sobrance" #: contrib/localflavor/sk/sk_districts.py:69 msgid "Spisska Nova Ves" -msgstr "" +msgstr "Spisska Nova Ves" #: contrib/localflavor/sk/sk_districts.py:70 msgid "Stara Lubovna" -msgstr "" +msgstr "Stara Lubovna" #: contrib/localflavor/sk/sk_districts.py:71 msgid "Stropkov" -msgstr "" +msgstr "Stropkov" #: contrib/localflavor/sk/sk_districts.py:72 msgid "Svidnik" -msgstr "" +msgstr "Svidnik" #: contrib/localflavor/sk/sk_districts.py:73 msgid "Sala" -msgstr "" +msgstr "Sala" #: contrib/localflavor/sk/sk_districts.py:74 msgid "Topolcany" -msgstr "" +msgstr "Topolcany" #: contrib/localflavor/sk/sk_districts.py:75 msgid "Trebisov" -msgstr "" +msgstr "Trebisov" #: contrib/localflavor/sk/sk_districts.py:76 msgid "Trencin" -msgstr "" +msgstr "Trencin" #: contrib/localflavor/sk/sk_districts.py:77 msgid "Trnava" -msgstr "" +msgstr "Trnava" #: contrib/localflavor/sk/sk_districts.py:78 msgid "Turcianske Teplice" -msgstr "" +msgstr "Turcianske Teplice" #: contrib/localflavor/sk/sk_districts.py:79 msgid "Tvrdosin" -msgstr "" +msgstr "Tvrdosin" #: contrib/localflavor/sk/sk_districts.py:80 msgid "Velky Krtis" -msgstr "" +msgstr "Velky Krtis" #: contrib/localflavor/sk/sk_districts.py:81 msgid "Vranov nad Toplou" -msgstr "" +msgstr "Vranov nad Toplou" #: contrib/localflavor/sk/sk_districts.py:82 msgid "Zlate Moravce" -msgstr "" +msgstr "Zlate Moravce" #: contrib/localflavor/sk/sk_districts.py:83 msgid "Zvolen" -msgstr "" +msgstr "Zvolen" #: contrib/localflavor/sk/sk_districts.py:84 msgid "Zarnovica" -msgstr "" +msgstr "Zarnovica" #: contrib/localflavor/sk/sk_districts.py:85 msgid "Ziar nad Hronom" @@ -3072,378 +3080,372 @@ msgstr "Zilina" #: contrib/localflavor/sk/sk_regions.py:8 msgid "Banska Bystrica region" -msgstr "" +msgstr "Banska Bystrica regija" #: contrib/localflavor/sk/sk_regions.py:9 msgid "Bratislava region" -msgstr "" +msgstr "Bratislava regija" #: contrib/localflavor/sk/sk_regions.py:10 msgid "Kosice region" -msgstr "" +msgstr "Kosice regija" #: contrib/localflavor/sk/sk_regions.py:11 msgid "Nitra region" -msgstr "" +msgstr "Nitra regija" #: contrib/localflavor/sk/sk_regions.py:12 msgid "Presov region" -msgstr "" +msgstr "Presov regija" #: contrib/localflavor/sk/sk_regions.py:13 msgid "Trencin region" -msgstr "" +msgstr "Trencin regija" #: contrib/localflavor/sk/sk_regions.py:14 msgid "Trnava region" -msgstr "" +msgstr "Trnava regija" #: contrib/localflavor/sk/sk_regions.py:15 msgid "Zilina region" -msgstr "" +msgstr "Zilina regija" #: contrib/localflavor/uk/forms.py:21 -#, fuzzy msgid "Enter a valid postcode." -msgstr "Unesite ispravan datum." +msgstr "Unesite ispravan poštanski broj." #: contrib/localflavor/uk/uk_regions.py:11 msgid "Bedfordshire" -msgstr "" +msgstr "Bedfordshire" #: contrib/localflavor/uk/uk_regions.py:12 msgid "Buckinghamshire" -msgstr "" +msgstr "Buckinghamshire" #: contrib/localflavor/uk/uk_regions.py:14 msgid "Cheshire" -msgstr "" +msgstr "Cheshire" #: contrib/localflavor/uk/uk_regions.py:15 msgid "Cornwall and Isles of Scilly" -msgstr "" +msgstr "Cornwall and Isles of Scilly" #: contrib/localflavor/uk/uk_regions.py:16 msgid "Cumbria" -msgstr "" +msgstr "Cumbria" #: contrib/localflavor/uk/uk_regions.py:17 msgid "Derbyshire" -msgstr "" +msgstr "Derbyshire" #: contrib/localflavor/uk/uk_regions.py:18 msgid "Devon" -msgstr "" +msgstr "Devon" #: contrib/localflavor/uk/uk_regions.py:19 msgid "Dorset" -msgstr "" +msgstr "Dorset" #: contrib/localflavor/uk/uk_regions.py:20 msgid "Durham" -msgstr "" +msgstr "Durham" #: contrib/localflavor/uk/uk_regions.py:21 msgid "East Sussex" -msgstr "" +msgstr "East Sussex" #: contrib/localflavor/uk/uk_regions.py:22 msgid "Essex" -msgstr "" +msgstr "Essex" #: contrib/localflavor/uk/uk_regions.py:23 msgid "Gloucestershire" -msgstr "" +msgstr "Gloucestershire" #: contrib/localflavor/uk/uk_regions.py:24 msgid "Greater London" -msgstr "" +msgstr "Greater London" #: contrib/localflavor/uk/uk_regions.py:25 msgid "Greater Manchester" -msgstr "" +msgstr "Greater Manchester" #: contrib/localflavor/uk/uk_regions.py:26 msgid "Hampshire" -msgstr "" +msgstr "Hampshire" #: contrib/localflavor/uk/uk_regions.py:27 msgid "Hertfordshire" -msgstr "" +msgstr "Hertfordshire" #: contrib/localflavor/uk/uk_regions.py:28 msgid "Kent" -msgstr "" +msgstr "Kent" #: contrib/localflavor/uk/uk_regions.py:29 msgid "Lancashire" -msgstr "" +msgstr "Lancashire" #: contrib/localflavor/uk/uk_regions.py:30 msgid "Leicestershire" -msgstr "" +msgstr "Leicestershire" #: contrib/localflavor/uk/uk_regions.py:31 msgid "Lincolnshire" -msgstr "" +msgstr "Lincolnshire" #: contrib/localflavor/uk/uk_regions.py:32 msgid "Merseyside" -msgstr "" +msgstr "Merseyside" #: contrib/localflavor/uk/uk_regions.py:33 msgid "Norfolk" -msgstr "" +msgstr "Norfolk" #: contrib/localflavor/uk/uk_regions.py:34 msgid "North Yorkshire" -msgstr "" +msgstr "North Yorkshire" #: contrib/localflavor/uk/uk_regions.py:35 msgid "Northamptonshire" -msgstr "" +msgstr "Northamptonshire" #: contrib/localflavor/uk/uk_regions.py:36 msgid "Northumberland" -msgstr "" +msgstr "Northumberland" #: contrib/localflavor/uk/uk_regions.py:37 msgid "Nottinghamshire" -msgstr "" +msgstr "Nottinghamshire" #: contrib/localflavor/uk/uk_regions.py:38 msgid "Oxfordshire" -msgstr "" +msgstr "Oxfordshire" #: contrib/localflavor/uk/uk_regions.py:39 msgid "Shropshire" -msgstr "" +msgstr "Shropshire" #: contrib/localflavor/uk/uk_regions.py:40 msgid "Somerset" -msgstr "" +msgstr "Somerset" #: contrib/localflavor/uk/uk_regions.py:41 msgid "South Yorkshire" -msgstr "" +msgstr "South Yorkshire" #: contrib/localflavor/uk/uk_regions.py:42 msgid "Staffordshire" -msgstr "" +msgstr "Staffordshire" #: contrib/localflavor/uk/uk_regions.py:43 msgid "Suffolk" -msgstr "" +msgstr "Suffolk" #: contrib/localflavor/uk/uk_regions.py:44 msgid "Surrey" -msgstr "" +msgstr "Surrey" #: contrib/localflavor/uk/uk_regions.py:45 msgid "Tyne and Wear" -msgstr "" +msgstr "Tyne and Wear" #: contrib/localflavor/uk/uk_regions.py:46 msgid "Warwickshire" -msgstr "" +msgstr "Warwickshire" #: contrib/localflavor/uk/uk_regions.py:47 msgid "West Midlands" -msgstr "" +msgstr "West Midlands" #: contrib/localflavor/uk/uk_regions.py:48 msgid "West Sussex" -msgstr "" +msgstr "West Sussex" #: contrib/localflavor/uk/uk_regions.py:49 msgid "West Yorkshire" -msgstr "" +msgstr "West Yorkshire" #: contrib/localflavor/uk/uk_regions.py:50 msgid "Wiltshire" -msgstr "" +msgstr "Wiltshire" #: contrib/localflavor/uk/uk_regions.py:51 msgid "Worcestershire" -msgstr "" +msgstr "Worcestershire" #: contrib/localflavor/uk/uk_regions.py:55 msgid "County Antrim" -msgstr "" +msgstr "County Antrim" #: contrib/localflavor/uk/uk_regions.py:56 msgid "County Armagh" -msgstr "" +msgstr "County Armagh" #: contrib/localflavor/uk/uk_regions.py:57 #: contrib/localflavor/uk/uk_regions.py:58 msgid "County Down" -msgstr "" +msgstr "County Down" #: contrib/localflavor/uk/uk_regions.py:59 msgid "County Londonderry" -msgstr "" +msgstr "County Londonderry" #: contrib/localflavor/uk/uk_regions.py:60 msgid "County Tyrone" -msgstr "" +msgstr "Country Tyrone" #: contrib/localflavor/uk/uk_regions.py:64 msgid "Clwyd" -msgstr "" +msgstr "Clwyd" #: contrib/localflavor/uk/uk_regions.py:65 msgid "Dyfed" -msgstr "" +msgstr "Dyfed" #: contrib/localflavor/uk/uk_regions.py:66 msgid "Gwent" -msgstr "" +msgstr "Gwent" #: contrib/localflavor/uk/uk_regions.py:67 msgid "Gwynedd" -msgstr "" +msgstr "Gwynedd" #: contrib/localflavor/uk/uk_regions.py:68 msgid "Mid Glamorgan" -msgstr "" +msgstr "Mid Glamorgan" #: contrib/localflavor/uk/uk_regions.py:69 msgid "Powys" -msgstr "" +msgstr "Powys" #: contrib/localflavor/uk/uk_regions.py:70 msgid "South Glamorgan" -msgstr "" +msgstr "South Glamorgan" #: contrib/localflavor/uk/uk_regions.py:71 msgid "West Glamorgan" -msgstr "" +msgstr "West Glamorgan" #: contrib/localflavor/uk/uk_regions.py:75 msgid "Borders" -msgstr "" +msgstr "Borders" #: contrib/localflavor/uk/uk_regions.py:76 msgid "Central Scotland" -msgstr "" +msgstr "Central Scotland" #: contrib/localflavor/uk/uk_regions.py:77 msgid "Dumfries and Galloway" -msgstr "" +msgstr "Dumfries and Galloway" #: contrib/localflavor/uk/uk_regions.py:78 msgid "Fife" -msgstr "" +msgstr "Fife" #: contrib/localflavor/uk/uk_regions.py:79 msgid "Grampian" -msgstr "" +msgstr "Grampian" #: contrib/localflavor/uk/uk_regions.py:80 msgid "Highland" -msgstr "" +msgstr "Highland" #: contrib/localflavor/uk/uk_regions.py:81 msgid "Lothian" -msgstr "" +msgstr "Lothian" #: contrib/localflavor/uk/uk_regions.py:82 msgid "Orkney Islands" -msgstr "" +msgstr "Orkney Islands" #: contrib/localflavor/uk/uk_regions.py:83 msgid "Shetland Islands" -msgstr "" +msgstr "Shetland Islands" #: contrib/localflavor/uk/uk_regions.py:84 msgid "Strathclyde" -msgstr "" +msgstr "Strathclyde" #: contrib/localflavor/uk/uk_regions.py:85 msgid "Tayside" -msgstr "" +msgstr "Tayside" #: contrib/localflavor/uk/uk_regions.py:86 msgid "Western Isles" -msgstr "" +msgstr "Western Isles" #: contrib/localflavor/uk/uk_regions.py:90 -#, fuzzy msgid "England" -msgstr "i" +msgstr "Engleska" #: contrib/localflavor/uk/uk_regions.py:91 msgid "Northern Ireland" -msgstr "" +msgstr "Sjeverna irska" #: contrib/localflavor/uk/uk_regions.py:92 msgid "Scotland" -msgstr "" +msgstr "Škotska" #: contrib/localflavor/uk/uk_regions.py:93 msgid "Wales" -msgstr "" +msgstr "Wales" #: contrib/localflavor/us/forms.py:16 msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" +msgstr "Unesite zip kod formata XXXXX or XXXXX-XXXX." #: contrib/localflavor/us/forms.py:54 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" +msgstr "Unesi ispravan broj socijalnog osiguranja S.A.D.-a formata XXX-XX-XXXX." #: contrib/localflavor/za/forms.py:20 -#, fuzzy msgid "Enter a valid South African ID number" -msgstr "Unesi ispravan finski broj socijalnog osiguranja." +msgstr "Unesi ispravan južnoafrički ID broj." #: contrib/localflavor/za/forms.py:54 -#, fuzzy msgid "Enter a valid South African postal code" -msgstr "Unesite ime datoteke koja postoji." +msgstr "Unesite ispravan južnoafrički poštanski broj." #: contrib/localflavor/za/za_provinces.py:4 -#, fuzzy msgid "Eastern Cape" -msgstr "korisničko ime" +msgstr "Eastern Cape" #: contrib/localflavor/za/za_provinces.py:5 msgid "Free State" -msgstr "" +msgstr "Free State" #: contrib/localflavor/za/za_provinces.py:6 -#, fuzzy msgid "Gauteng" -msgstr "kol." +msgstr "Gauteng" #: contrib/localflavor/za/za_provinces.py:7 msgid "KwaZulu-Natal" -msgstr "" +msgstr "KwaZulu-Natal" #: contrib/localflavor/za/za_provinces.py:8 msgid "Limpopo" -msgstr "" +msgstr "Limpopo" #: contrib/localflavor/za/za_provinces.py:9 msgid "Mpumalanga" -msgstr "" +msgstr "Mpumalanga" #: contrib/localflavor/za/za_provinces.py:10 msgid "Northern Cape" -msgstr "" +msgstr "Northern Cape" #: contrib/localflavor/za/za_provinces.py:11 msgid "North West" -msgstr "" +msgstr "North West" #: contrib/localflavor/za/za_provinces.py:12 msgid "Western Cape" -msgstr "" +msgstr "Western Cape" #: contrib/redirects/models.py:7 msgid "redirect from" -msgstr "forma za preusmjeravanje" +msgstr "preusmjeri od" #: contrib/redirects/models.py:8 msgid "" @@ -3471,7 +3473,7 @@ msgstr "preusmjeri" #: contrib/redirects/models.py:14 msgid "redirects" -msgstr "redirects" +msgstr "preusmjeravanja" #: contrib/sessions/models.py:46 msgid "session key" @@ -3547,7 +3549,7 @@ msgstr "Unesite ispravnu IP adresu." #: core/validators.py:115 msgid "Empty values are not allowed here." -msgstr "Prazne vrijednosti nisu ispravne ovdje." +msgstr "Prazne vrijednosti nisu dopuštene ovdje." #: core/validators.py:119 msgid "Non-numeric characters aren't allowed here." @@ -3567,7 +3569,7 @@ msgstr "Dozvoljena su samo slova abecede." #: core/validators.py:147 msgid "Year must be 1900 or later." -msgstr "Godina mora biti poslije 1900." +msgstr "Godina mora biti 1900 ili poslije." #: core/validators.py:151 #, python-format @@ -3576,7 +3578,7 @@ msgstr "Neispravan datum: %s" #: core/validators.py:156 db/models/fields/__init__.py:509 msgid "Enter a valid date in YYYY-MM-DD format." -msgstr "Unesite validan datum u formatu YYYY-MM-DD." +msgstr "Unesite ispravan datum u formatu YYYY-MM-DD." #: core/validators.py:161 msgid "Enter a valid time in HH:MM format." @@ -3584,7 +3586,7 @@ msgstr "Unesite ispravno vrijeme u HH:MM formatu." #: core/validators.py:165 db/models/fields/__init__.py:583 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." -msgstr "Unesite validan datum/vrijeme u formatu YYYY-MM-DD HH:MM." +msgstr "Unesite ispravan datum/vrijeme u formatu YYYY-MM-DD HH:MM." #: core/validators.py:170 newforms/fields.py:402 msgid "Enter a valid e-mail address." @@ -3606,7 +3608,7 @@ msgstr "" #: core/validators.py:200 #, python-format msgid "The URL %s does not point to a valid image." -msgstr "URL %s ne prikazuje ispravnu sliku." +msgstr "URL %s ne vodi na ispravnu sliku." #: core/validators.py:204 #, python-format @@ -3648,7 +3650,7 @@ msgstr "URL %s je neispravan (broken) link." #: core/validators.py:267 msgid "Enter a valid U.S. state abbreviation." -msgstr "Enter a valid U.S. state abbreviation." +msgstr "Unesite ispravanu kraticu za državu S.A.D.-a." #: core/validators.py:281 #, python-format @@ -3673,7 +3675,7 @@ msgstr "Molim unesite vrijednosti za oba polja ili ostavite oba polja prazna." #: core/validators.py:335 #, python-format msgid "This field must be given if %(field)s is %(value)s" -msgstr "Ovo polja mora biti ispunjeno ako je %(field)s %(value)s" +msgstr "Ovo polje mora biti ispunjeno ako je %(field)s %(value)s" #: core/validators.py:348 #, python-format @@ -3702,7 +3704,7 @@ msgstr "Vrijednost ne može biti veća od %s." #: core/validators.py:427 #, python-format msgid "This value must be a power of %s." -msgstr "Ova vrijednost na kvadrat mora biti %s." +msgstr "Ova vrijednost mora biti %s na kvadrat." #: core/validators.py:437 msgid "Please enter a valid decimal number." @@ -3712,54 +3714,54 @@ msgstr "Molim unesite ispravan decimalni broj." #, 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] "" -msgstr[1] "" +msgstr[0] "Molim unesite ispravan decimalni broj sa najviše %s numerička znaka." +msgstr[1] "Molim unesite ispravan decimalni broj sa najviše %s numeričkih znakova." #: 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] "" -msgstr[1] "" +msgstr[0] "Molim unesite ispravan decimalni broj sa najviše %s numerička znaka u cijelom dijelu." +msgstr[1] "Molim unesite ispravan decimalni broj sa najviše %s numeričkih znakova u cijelom dijelu." #: 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] "" -msgstr[1] "" +msgstr[0] "Molim unesite ispravan decimalni broj sa najviše %s decimalna mjesta." +msgstr[1] "Molim unesite ispravan decimalni broj sa najviše %s decimalnih mjesta." #: core/validators.py:458 msgid "Please enter a valid floating point number." -msgstr "" +msgstr "Molim unesite ispravan broj sa pomičnim zarezom (floating point number)." #: core/validators.py:467 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." -msgstr "" +msgstr "Provjerite je li Vaša upload-ana datoteka bar %s byte-ova velika." #: core/validators.py:468 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." -msgstr "" +msgstr "Provjerite je li Vaša upload-ana datoteka najviše %s byte-ova velika." #: core/validators.py:485 msgid "The format for this field is wrong." -msgstr "" +msgstr "Format za ovo polje je pogrešno." #: core/validators.py:500 msgid "This field is invalid." -msgstr "" +msgstr "Ovo polje je neispravno." #: core/validators.py:536 #, python-format msgid "Could not retrieve anything from %s." -msgstr "" +msgstr "Ništa nije izvučeno iz %s." #: core/validators.py:539 #, python-format msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." -msgstr "" +msgstr "URL %(url)s je vratio neispravan Content-Type header '%(contenttype)s'." #: core/validators.py:572 #, python-format @@ -3767,6 +3769,8 @@ msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "\"%(start)s\".)" msgstr "" +"Molim zatvorite %(tag)s na liniji %(line)s. (Linija počinje sa " +"\"%(start)s\".)" #: core/validators.py:576 #, python-format @@ -3774,6 +3778,8 @@ msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " "starts with \"%(start)s\".)" msgstr "" +"Neki tekst koji počinje na liniji %(line)s nije dopušten u tom kontekstu. (Linija " +"počinje sa \"%(start)s\".)" #: core/validators.py:581 #, python-format @@ -3781,6 +3787,8 @@ msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "(start)s\".)" msgstr "" +"\"%(attr)s\" na liniji %(line)s je neispravan atribut. (Linija počinje sa \"%" +"(start)s\".)" #: core/validators.py:586 #, python-format @@ -3788,6 +3796,8 @@ msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "(start)s\".)" msgstr "" +"\"<%(tag)s>\" na liniji %(line)s je neispravan tag. (Linija počinje sa \"%" +"(start)s\".)" #: core/validators.py:590 #, python-format @@ -3795,6 +3805,8 @@ msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " "starts with \"%(start)s\".)" msgstr "" +"Tagu na liniji %(line)s nedostaje jedan ili više obaveznih atributa. (Linija " +"počinje sa \"%(start)s\".)" #: core/validators.py:595 #, python-format @@ -3802,6 +3814,8 @@ msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "starts with \"%(start)s\".)" msgstr "" +"\"%(attr)s\" atribut na liniji %(line)s ima neispravnu vrijednost. (Linija " +"počinje sa \"%(start)s\".)" #: db/models/manipulators.py:308 #, python-format @@ -3821,7 +3835,7 @@ msgstr "Unos za ovo polje je obavezno." #: db/models/fields/__init__.py:418 msgid "This value must be an integer." -msgstr "Vrijednost mora biti interger." +msgstr "Vrijednost mora biti cijeli broj." #: db/models/fields/__init__.py:454 msgid "This value must be either True or False." @@ -3846,7 +3860,7 @@ msgstr "Vrijednost mora biti None, True ili False." #: db/models/fields/related.py:55 #, python-format msgid "Please enter a valid %s." -msgstr "Molim unesite validan %s." +msgstr "Molim unesite ispravan %s." #: db/models/fields/related.py:658 msgid "Separate multiple IDs with commas." @@ -3855,58 +3869,58 @@ msgstr "Odvojite više ID-a zarezom." #: db/models/fields/related.py:660 msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" -"Držite \"Control\", ili \"Command\" na Mac-u, da bi odabravili više od " +"Držite \"Control\", ili \"Command\" na Mac-u, da bi odabrali više od " "jednog objekta." #: 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] "Molim unesite ispravan %(self)s ID. Vrijednost %(value)r je neispravna." -msgstr[1] "" +msgstr[0] "Molim unesite ispravan %(self)s ID-eve. Vrijednost %(value)r je neispravna." +msgstr[1] "Molim unesite ispravan %(self)s ID-eve. Vrijednosti %(value)r su neispravne." #: newforms/fields.py:46 msgid "Enter a valid value." -msgstr "" +msgstr "Unesite ispravnu vrijednost." #: newforms/fields.py:123 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." -msgstr "" +msgstr "Osigurajte da ova vrijednost ima najviše %(max)d znakova (ima %(length)d)." #: newforms/fields.py:124 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." -msgstr "" +msgstr "Osigurajte da ova vrijednost ima najmanje %(min)d znakova (ima %(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 "" +msgstr "Osigurajte da je ova vrijednost manja ili jednaka %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 "" +msgstr "Osigurajte da je ova vrijednost veća ili jednaka %s." #: newforms/fields.py:180 newforms/fields.py:209 msgid "Enter a number." -msgstr "" +msgstr "Unesite broj." #: newforms/fields.py:212 #, python-format msgid "Ensure that there are no more than %s digits in total." -msgstr "" +msgstr "Osigurajte da ukupno nema više od %s numeričkih znakova." #: newforms/fields.py:213 #, python-format msgid "Ensure that there are no more than %s decimal places." -msgstr "" +msgstr "Osigurajte da ukupno nema više od %s decimalnih mjesta." #: newforms/fields.py:214 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." -msgstr "" +msgstr "Osigurajte da ukupno nema više od %s numeričkih znakova prije decimalne točke." #: newforms/fields.py:262 newforms/fields.py:719 msgid "Enter a valid date." @@ -3914,16 +3928,15 @@ msgstr "Unesite ispravan datum." #: newforms/fields.py:295 newforms/fields.py:720 msgid "Enter a valid time." -msgstr "" +msgstr "Unesite ispravno vrijeme." #: newforms/fields.py:334 msgid "Enter a valid date/time." -msgstr "" +msgstr "Unesite ispravan datum/vrijeme." #: newforms/fields.py:433 -#, fuzzy msgid "No file was submitted." -msgstr "Ne." +msgstr "Datoteka nije poslana." #: newforms/fields.py:434 oldforms/__init__.py:689 msgid "The submitted file is empty." @@ -3931,45 +3944,43 @@ msgstr "Poslana datoteka je prazna." #: newforms/fields.py:492 msgid "Enter a valid URL." -msgstr "" +msgstr "Unesite ispravan URL." #: newforms/fields.py:493 msgid "This URL appears to be a broken link." -msgstr "" +msgstr "Izgleda da je URL neispravan." #: newforms/fields.py:555 newforms/models.py:317 msgid "Select a valid choice. That choice is not one of the available choices." -msgstr "" +msgstr "Izaberite ispravnu opciju. Ta opcija nije jedna od dostupnih opcija." #: newforms/fields.py:594 -#, fuzzy, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." -msgstr "Odaberite iz ponuđenog; '%(data)s' nije u %(choices)s." +msgstr "Odaberite iz ponuđenog. %(value)s nije ponuđen kao opcija." #: newforms/fields.py:595 newforms/fields.py:657 newforms/models.py:377 msgid "Enter a list of values." msgstr "" #: newforms/fields.py:748 -#, fuzzy msgid "Enter a valid IPv4 address." -msgstr "Unesite ispravnu e-mail adresu." +msgstr "Unesite ispravnu IPv4 adresu." #: newforms/models.py:378 #, python-format msgid "Select a valid choice. %s is not one of the available choices." -msgstr "" +msgstr "Odaberite iz ponuđenog. %s nije ponuđen kao opcija." #: 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] "" -msgstr[1] "Uneseni tekst mora sadržavati manje od %s znakova." +msgstr[0] "Osigurajte da tekst sadrži manje od %s znaka." +msgstr[1] "Osigurajte da tekst sadrži manje od %s znakova." #: oldforms/__init__.py:414 msgid "Line breaks are not allowed here." -msgstr "Unos u novi red ovdje nije dozvoljen." +msgstr "Novi redovi ovdje nisu dozvoljeni." #: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625 #, python-format @@ -3996,39 +4007,39 @@ msgstr "da,ne,možda" #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(size)d bajt" +msgstr[1] "%(size)d bajta" #: template/defaultfilters.py:716 #, python-format msgid "%.1f KB" -msgstr "" +msgstr "%.1f KB" #: template/defaultfilters.py:718 #, python-format msgid "%.1f MB" -msgstr "" +msgstr "%.1f MB" #: template/defaultfilters.py:719 #, python-format msgid "%.1f GB" -msgstr "" +msgstr "%.1f GB" #: utils/dateformat.py:41 msgid "p.m." -msgstr "" +msgstr "popodne" #: utils/dateformat.py:42 msgid "a.m." -msgstr "" +msgstr "ujutro" #: utils/dateformat.py:47 msgid "PM" -msgstr "" +msgstr "popodne" #: utils/dateformat.py:48 msgid "AM" -msgstr "" +msgstr "ujutro" #: utils/dateformat.py:97 msgid "midnight" @@ -4036,7 +4047,7 @@ msgstr "ponoć" #: utils/dateformat.py:99 msgid "noon" -msgstr "" +msgstr "podne" #: utils/dates.py:6 msgid "Monday" @@ -4219,85 +4230,83 @@ msgid "Dec." msgstr "Pro." #: utils/text.py:127 -#, fuzzy msgid "or" -msgstr "sati" +msgstr "ili" #: utils/timesince.py:21 msgid "year" msgid_plural "years" msgstr[0] "godina" -msgstr[1] "godina" +msgstr[1] "godine" #: utils/timesince.py:22 msgid "month" msgid_plural "months" msgstr[0] "mjesec" -msgstr[1] "mjesec" +msgstr[1] "mjeseci" #: utils/timesince.py:23 msgid "week" msgid_plural "weeks" msgstr[0] "tjedan" -msgstr[1] "tjedan" +msgstr[1] "tjedani" #: utils/timesince.py:24 msgid "day" msgid_plural "days" msgstr[0] "dan" -msgstr[1] "dan" +msgstr[1] "dani" #: utils/timesince.py:25 msgid "hour" msgid_plural "hours" -msgstr[0] "sati" +msgstr[0] "sat" msgstr[1] "sati" #: utils/timesince.py:26 msgid "minute" msgid_plural "minutes" -msgstr[0] "minute" -msgstr[1] "minuta" +msgstr[0] "minuta" +msgstr[1] "minute" #: utils/timesince.py:46 -#, fuzzy msgid "minutes" -msgstr "minute" +msgstr "minuta" #: utils/timesince.py:51 #, python-format msgid "%(number)d %(type)s" -msgstr "" +msgstr "%(number)d %(type)s" #: utils/timesince.py:57 #, python-format msgid ", %(number)d %(type)s" -msgstr "" +msgstr ", %(number)d %(type)s" #: utils/translation/trans_real.py:399 msgid "DATE_FORMAT" -msgstr "" +msgstr "DATE_FORMAT" #: utils/translation/trans_real.py:400 msgid "DATETIME_FORMAT" -msgstr "" +msgstr "DATETIME_FORMAT" #: utils/translation/trans_real.py:401 msgid "TIME_FORMAT" -msgstr "" +msgstr "TIME_FORMAT" #: utils/translation/trans_real.py:417 msgid "YEAR_MONTH_FORMAT" -msgstr "" +msgstr "YEAR_MONTH_FORMAT" #: utils/translation/trans_real.py:418 msgid "MONTH_DAY_FORMAT" -msgstr "" +msgstr "MONTH_DAY_FORMAT" #: views/generic/create_update.py:43 #, python-format msgid "The %(verbose_name)s was created successfully." -msgstr "" +msgstr "%(verbose_name)s je uspješno kreirano." #: views/generic/create_update.py:117 #, python-format @@ -4307,5 +4316,5 @@ msgstr "%(verbose_name)s je uspješno promijenjeno." #: views/generic/create_update.py:184 #, python-format msgid "The %(verbose_name)s was deleted." -msgstr "%(verbose_name)s je izbrisano" +msgstr "%(verbose_name)s je izbrisano." diff --git a/django/conf/locale/hr/LC_MESSAGES/djangojs.mo b/django/conf/locale/hr/LC_MESSAGES/djangojs.mo index c4b71f0fa2868deee1acf54d05371d8c3ea3c25d..30f7c1960cf4ea0e05c81e5f2c02fdac0c692412 100644 GIT binary patch delta 19 acmX@gbChSpPiA&AT|;vPBjZghu1o+!xCNsC delta 19 acmX@gbChSpPiA&QT?11E1H(-$u1o+!QU#X) diff --git a/django/conf/locale/hr/LC_MESSAGES/djangojs.po b/django/conf/locale/hr/LC_MESSAGES/djangojs.po index 7aa988c43d..5ad8993af3 100644 --- a/django/conf/locale/hr/LC_MESSAGES/djangojs.po +++ b/django/conf/locale/hr/LC_MESSAGES/djangojs.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-08-13 11:13+1000\n" -"PO-Revision-Date: 2008-01-05 01:45+0100\n" +"PO-Revision-Date: 2008-06-17 23:45+0100\n" "Last-Translator: Aljosa Mohorovic \n" "Language-Team: Hrvatski jezik\n" "MIME-Version: 1.0\n" diff --git a/django/conf/locale/lt/LC_MESSAGES/django.mo b/django/conf/locale/lt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3d428274b1d74eb528baa9d78759f4c0b2e6722b GIT binary patch literal 44186 zcmcJ&37jNFnf{;LFv@)jg2}+p-O$~0aN3N(oXo&nO!okzB4l@Ecjt6kj@ms4o((>JP!N0t|GSP?Y!G~_I|$yoTM&F3Je+W)HwXs6 ztH8D3x4~n;uDL<5FSram6kG!?0|&uV!8<@J-{YUa4&slP=kOe`i|{bG5BMgJZ})gB zc%aGwsY>ukQ1$sKsB-@T4uVI`cjdeoJc{t`;NIW^;2z+1@R{J3eEc^-)%$zke&EkQ zrTZ@*eiBss{s!(39=*V&?*tDbJRjT(Tny?xE5Mh6YeA)d1XO=~7gRs|C%7kg0s*D( z1P=q}f@=3tkE{Ii0Z{dQ0eBoZ3Z4jF3qAw98&thN397u$gDU4sKK!VE{w?qj;(z4v zccA)n-_u8?LIL6zSN zs=RZ+L%|C`)$>K5^2eb1vF@K=4XQmigX-7!f$Fb2LB0PTQ29Oqs+=!?D*qAi9`M`X zI`B1T1i^C^21md{&vf+iVo>#eGpO--A9ytQVNm1z&!9;E-$1>8)>-a-2Z3tOb3i?x z3mywz1kMJlp!)AEU=R2XP;~kb2^qyffLDQYz>k6||2yD$;He9P;3TjPYW&{`J`21D>;xYI zH7>sfA&FqG=ehSk7gYP!gR0*IcmntuQ0eam4+9_c&%XgO1%qFLCxgeGbLK??)h9$^&0}!{+EL4zmI|!fh%ODI{I%=bh7s%H$MA=8wei`ieAS+_4gz=30@Cc`o#|S2UY%IK71^=JK+<-y}%A1 z-ves=PxIl0px(d4$FBxe&IWKP_##kr{XS6X?f_MvkNEKY;Q55V2#W3wT;ll3b3nc4 z-JsfeJE-yaG^li61~ty#2Q{yL4J!Tayj1U-1uA?XsQMh~<3o_92XnxFaKy*|1E};5 zg6fxteE2Ki@q{1q@qYrvr$nquzdxw<91f;n2zG#P1y!%l_~(y+8s~3;Ox@tX<*r|s zfqM|X5EQ+v1x5c;pvLP1;NIYapx*OEaDVWt;O^iLK=s3qL8e0Rd+-Qw!TCXO3b+y! zA8CN<|Es_~!8d~Hmm7TeUEn^1Z}WI3sP}vrJPG_PsCoS}Q1pHH3iqCspyICpRo?aB z-r(DP_!e+4!gqkG$2~s&eo+1M1yJMp7B? z9$Y~92~h1ldUX)I8e9op3qAr4fg9Gi_J0c8kMM(_>h&!OVo>j01s($qfNIwSDEfOTsCvH%RC{g)X=-qX zfBpwh@13>Y)#o@+<<0@sZ*xIdb8rKAFZeH@-uH@rC-=MtR6A}56@NDseiuTr7rzR;2h%DgQCAJ zKKwtR#&ZrtOcjE2!MWg#;A!A?@FU=#LACRP&v*5H2t1PTzk&2F>-haSlF8w*6=Ia&UbHJB_r-HYD>bI|f zo#5^-a_v3^)VQn#mxFHvMJL|?MGq%3IHIFoP~&(esPSFsak0l0;Gx8?0Ywjk9yfua z-x|0Fcq6ECZ}!jM2hvr+U0?^e*A=dvJ)quq4XF3O9#p=!f*Q~FfNJ-{py>Y3;0U-6 zlT`gz1&6^8fXa8kpeyGnQ1w6FhdaQ73C{zM0T+X+=ZnDo!9h^(n*fgm-vvG!{4}@( zd<>*ZgJXsqzn=m%ULONBo)3bHz$d_?!LE|)|E1tF2#R@s>koay}&&gO!dz!Q0+Y!RQX4HoCB)-c|P0+s(#Br)oX*tjUF!pRqqJY`^G_) zw-r=5SNrGJ`|vwKm2s=fG16BWxpwg8<_1^?|B=|B=<-N`0tsej0 z<3~L{;PD}kU-kGnxI6iO2I_r32UY%WK)o**b>%-3Je=SW;E7;2sPVf9RQ)aiRsTV7 zA8;5{dn=&Ic`>*zcrB=WZvxd%Z}Z`Ig35mzsC>7B2Z0{}mF^!w)$1Wp_5CK;0e%}) zdAlVJ_W@PT{-E+54DJUW0ji!MsB%vM_XQV%%D>Fxg`m=1N5ha+6}!2d>H)P zCMQQ+S9bjRcCepxe+7?I{&83S1SmS00?!5C0BW6h1PsBT;`sUTU=P7X;3;6$hu;aR zKfmPhQIFpS)s7#68js(A8lNMpj{o<7bWLy(*adzXJPP~?sCNI=sJ<$TTK;~swsYX1ESd=|J{&9(O!Q01QsD&K047lZo|zTAfsQ0=UN zM}RK_)s7oI-UX`M&wnTb!Q!LQr)4HBj&UBPjYfY|4c%K2>^P~ejg78J) z8Q>_W@x29n7I?o8KL)D4zXOj1kAA5e_XS``cr`c=tbppDTR`Q17*xKWfNIZvFLUob z7o0;l0o9M!gA2h=fX9JPf~SFpzTC-sE5OSLZwAM}Z-9G(i(cWzX*sxn@EY)7@Rgv( z>jqHc_F_78+m@H508T?XA;zVU*_Xq3$7&m7Etwk9DD`%3sCJVzuK>d zpvLcQ;341#!9&3ZefaC3=<*3r{q-v!{w=8Y{uxyJcE8HWcl&}bB76a;_S^}oJ@aQNy$Bx-YCJ<9zW`MJb3x6sjo|U%mEdgf1~3Fa?&BW=H7;^Y(8^L{vuYf9dGgt;+3925y0^bMDd8=#hmq7K)qu?{ZU;6kz`S5Nxx^(+{ zJlx~4V28>9=YXrhelP_G!7qZH;K^@u`g1?nL-@U57x*vW;ozS^38alOOG{}NRCBi`=%c_BED@CH!nt^rR5{|Qt-{vJFLJRG7^xDVV6ZUhej9|fNU z{sg=T{2QooTlWq(UatTjA$&im@qhh0U4Px_aXWY}@jnC?fyckgy>AGdPxv+9dElo( z&A-2ZqLX9ajVuVB0vx1(j|J zTm!xzyd3;3I0^RO>fZY>cmUyVfugr3K+*lLK+((ZeK@$y&G&sl(Z#bsrJn<8T)M$M zzPwa2@z0*b6R$ zXf?idQ1AN`sCs`9+zb2)sCs?_RJlI{Rqk)WJ;9^i@8-v`U`TiYcp}*E!&|_Ggl`7N zz;A-;-^I7P{(1>0I(t2+_|JeRfWHS9fJgtGOSjtN3qjRy%wr1fPWZ*3=>BEk9^hNS zJ;Aqws`tA=jnBQH`tt#gUjkL$*Fm-aagYBF9zpnz;Gy7wA8`G50;uxmf#M^lfhu%*X`Xldf z&yNF@emz4vZV?fjI-Z9e`hpwc}Ks+=GA_$NTs=Sh!$1vPGa|Gncwhk+`0fyZ+_uJX9i zmb~02Doa&c}bthkpcWT>k{l0-tl2qmz?C(eHCX)&Cq& z^;+hiuLm{Gk;ep7x+^_y@%VC3{do;|BzQ9@I{Ppv`uzl``hF2S349pTdw&f+1N=Rx z=eytS>bDoD@jD0<-5n3A{8N4Wa!~EK1XMo{`sZVy%6l28_r4C?4b-oO`y>t)Zom6^ za4+sopWt&@LY}IO*Wm8)aff-F?NK~=vG;!pyqd7=Br)zo`1LyvcRAsI#QmEh{O@ld z!w@VZo@o|*3A_cj4*%`ow{ZHsA3Vo-?eDAjdzF87D7b*|f8m~uyO8i4+-`K@rGyUy zSAie$>CXn=On4e@{|vqj_hOuWqL-iHN0bP5^KpvbhX3_GywYP2 z_#2*m9n`qL5!d0LU5Wn-IEErPh`1r#3HS%WPH;c)e{lbedo|(g_wR%c$4%hgf~(-} z;o-fw7vUep={Mpa_=68m5PrG$>(M*$e;D^A{ADn~g*g4zfiLs^wH}`&{&o1ZPS_9s zay;+#!9^YgpT+$P?ljVL;j-UL@VtZYkdL?t{}s635`G@I5vSkRJi3tki^$XR`yrt- z3+aA`|3utcpXx6BAH;tpxDVsL+Q&DTKZc-W)h2-3fc=lg?~5T1+EI-1~a zC4LIG0{+#baL3O9oLFWj$jzrlSG*Uj^5K>ajFUx+(~@F@5N@b7U~;MeaI z{IhuXw_Py!2;pDiv=;W@4&a%7+i^D%e<64g?r7WvxD~`*g!=^k4d63y`aOvI9{$(j z_Q#!ryPdf8pnj)<<8t^90q5d=jBEd0Rfu>a&yOPfPv8%6_u>Brcp2`Gg>>S>`VAAW zUmZ6e|3TpEaQou)>m%-DunN8g_X_;~fzz+-Ah_P6;IpJrcbo+N+Q;wj@nVk|Y$44z z2rLKn+Y>yH%>R!6Wc)|s|0e$X^^o6@#GM9y#-~@@A8@-9{yO*w?ngNNjv#Jt@J+a{ z;FrAduedkh|1+rH81CN)zYP3uMesWqw}v?Jef=KB|2^lmzu)EW=W*X9{uuB%xL4v{ zj>~@U=Gk*_UnS!2K>hxrFb>h%Wb}FXH{!n)_n6Yq));su{>MSd75ZIEcwbzK`#w&; zgGsC3gM>fkyulm5@8F(K+cb{y*^-f5Qa!ApRM+5Bmq_k#-sWXW|YgehOTV`v=@Co(+PJgXiPEjQ=Iz z8Myz!uiqiKui$=8oPJwzufqQV-1~f-;{S^OpXA{u*+Rc;Zo|iJJ%B;3FOa@4&qWcd37;9{nEouY`Z4 z0KezsZXmq9kY>{R9|c!?|F=kY7Vfz|d;oY7;RkT<#NFrP55xayoPO_fV1Ezf?lM_lLeJ;Z$! zw>Pfjf&XkDejao@+i4YwKBPnspT6#w<$mvO(tpZ$JHIQxy^|49}A zBme9S{9AB;#XW)h7vc}04ts$o_%uWZ@4$V`hyMuPQFx~3`t3))A3JaGkbiy|;Q`!{ zxQ`R}4?g~H;IZDXEY}tMYZSrnM%*ije>JXxe^1K47=M=@@>_`iHt^@TZv6I}wQwRF zDo1JhyxF61d1CfC1Jy98r1hv=4hO5%vGJ%jR*vgwcUY=LBVm0s4$DbpEUZ_<>OD5}g#<8nMi zDsmR;5DwR><6%^p3MZnGm|9wbG^xkEA=&FO;iw*_)$us24(nkW&no0k!&-c0BdNvq z9vUzhhm%RXIjOjIsU-i7aHu*y(Wu9@uoS1sNF}PrrCCuL&Q2;sR-*Fku#+xoc0)Rq z)?+GH8c!-oTCYWQdLbFMH$}C$(m}l%yg3=3W!;vSpA-x2>RmW@;+$DQxOgg@(>a`! zdD-Rlq+X7@(lD4kr!%V8YhCH=uv*b5#3T~%kYb_=T{0P!6MC6s$sqOb4LesU9phQ6 zr{U(LJ{nSt1u3VuE111-4lNn!O3!)9Qc3pIQ{CdD(qK^t zRm@0^<4KyTGpmpvqcu(sXY;Q>py^Xn)S^&Bk&Px3TtN+G8&UL98Atvb*00ip@Uy+d zgQ2>HW>Kjmr&c;Tv;d7DPKC-7^B6i>R4&VfC1ySeD%Hx=c(svQvQ#`u9XbimX+GOv zCBU7OhXV!^;hdWF`!JJ$7f&#t!J=9;m<$1q2^mii*V`Obj4PJle8$K$x81N@?#Y&U z8>d6jL|nQ&n<=x;4OL0U?3fhga@Dw5EiQ{=!D-`hO(*g47*?jTOMNYGKbO!*T!HRm z7)bv_1p68d7Qs#itCMke2p0*f6LEz(%zQKcmb2d|ti+oszEY}grpp>5_NS57gT+y) zJf&GWPAx87y{eB+C2}&VB~h?Au8hE@z#7~uSX@|T6ez1Aoy%ZVjQT*WVdS$sDyMPR zjE}oRdnh7X1F?~)#!3@c1{<{z`L`zJB;qx-cs#BIOCmTC!6lpTQVjM=KbY((G_NPE##|`RFF;L^+z$sIz>-EPI0`6d(1Z@k9h; zvj_EfB(Bj`_g<=4tqdo%@w|N&Q&*KdOIT8EluJg%wHW3TPeKEgDR?t8+m>TZmL-iE zOI*D?MfR=n&}gu9(ZI5Sm8+LszI^Ta)r$r!+~U7v<-m%|U5X8>Rs~BP)h%Ug2BS0% z<65m+BbJ%a=@x^8b)yhbg(~ZL++2C>XC$#_%_-Eu=vGr)rz7>mjz zfc7cZF@4H)gqy8P98Z)GV$(_`WV6n79TJn~j;;35ka139#S#TZBl>Y7t{IPHEr%t$ z$!S#4oX1)kQ%!GQq?+f&5zR+g;ZS?Z<#<8LynjVA!Otk-{5g| zRbJrc(b(pkDAS6B&4uOa2#utI_9i#~P2`$6CnP&l);L_ciTPG_45T;QP{~C+qkSV- zH8k%`-(^r&F{cx)#LIoG$!u1uU}<%zq1nV5uII&2QHo649yw8hT1co2mNwK=B0O8! z=~6hgEuP}7F_UU(qYi~H>lu%dvcy>kA#Drx1CoCNJgb z_(Xkb2UQ5+i*awTtTIv-t6o;IMZ{iab%wgAc0GiTruA@6DI6MQ{tvOx)0sO=Jzm|F z#58CGL5#9Qeh3b=5RsY*27!nZOfQ}sWqN3*$!(6*<1NMro2lo({<5m)MejmdtB0x> zg{Ot3WQ3uZQ0s=OCF?i$h|Yt{4f{@3`7U0=kg@k%&NP}{h+JQ-jGW_SL$@j~oa-Z- z1@NwrtpRn^m1fA)SbZP$HVL4U0m3v(^Qb zR^ME;mMS%EK;mzf;v}QxNk!{BI?_-=Rge-JwFF9Y{INat`EV!(IbktH37JCdsj(KA zA)+d;!O^!E3L zGuOfQC9SlE?yLY5H&|0NI9Q7(5ftdS_6|n&ZI8Nm(LmO{IhDIUl%%S+Z{*jrdUemz zr8{`J61EqsI9qw!N?5U?Z}sY(lw*0?3yWL$Y5P+&;aKynJznd+-oCR}DouMnaw-c7edv{)!q_~Pn6@nuwyROY}DtX zMAun5=XUgltD`YmBO4BDoe6N%uOvZAlz_ztHG@EkEe*pH&B@CeMj4ZEk!HnRu2Ao2 zeY{M$E2Rp+>XKBFAu7Nm{I=9>!|$z1CgQUMg&obJO7U=nQtnF$mdAs=`crE}wJAJt z8Sy-}y0V6%>A08V1Ho90R80!>lAWs57c7?@1)&9-N+!CbL^2C76^zQqA_>?k0@l)c zcgX5si>($(%~I=->`gXAm2Szw9Zn661}Tm{j3pzPS-@6T>^877I&OIxi-Jrryr^0m zsbZq2I59da^V}Ui2;C}fLPG11vrr7XkZmUwfpBB@o=QPdH9 zreg*xs$*kOQmW!X$wG;)gtO7ekTS}%&5TNj`BXvMV?-iIa0t4nLc3-jwZ3y=SOpfh z0=s9hqJeIW4p|9SuFIv#D-{vMk+$H$&8pk5|?^lI~t6p%^({r*-4EgjdX*R z<607Bv(PG#1}mvviSg7*P6gF>MLmQzASCA6ha+!j-Ui;N8}+^#jxZkWD$EGVymVI) zOf)o#_(|U)0?%cZIlZ};x0_xIy2-v|&AJQn6)%rmw|rV0i=}DoSsJk~s5xA@G%ri- zb7_#>)UOvrthxNLiFQGR!2~)AE@+ge_%l8sTc@?ZU@8%>GX}r|q`g`^A==|TQ797` z)4^#8lxrnGYi+h}UuLOAsZp`&X+JiUj3FnMs_&IUH&z!kDsgZj7OSWf1s7t5qYZyqdAf^uNGC7>z_&Y!rYy3LzTrtx`lefk)cp8?03~Lr9*h!A6IZ z5qPJKBdT3IA#uDqmcS{)b<$K&`YT3kKDt}#bTuM_n4?R~}UYQpNZYp^yfU9>SXK`@WvQnjKEXmWL{HrgNWq?(dAL|#oj3i}HdVE!hUxppC& zQ>fZ<)!-hhVI8ZHGs>AAvS20Dx{n=*C*=r+)m3vTsmCPii}jC}3^E(0lAFeAvY^U! zdk;>LW;!}fx*BV+-a8dKTWA`rDd;(U!I~=nXtl9_w_>2{S`;0znRPpD42~ysbE%iL z*%`AmW=Kr7j9{q{lM+2bmlzhvi+xnjM5pRq*w!%7l^#?GR{o);c4s4}<&W7fE!)$c z%z4e0lhsT7_$Kv&NoV9)J5=ut_*0d|XYCl4w9Qel7LJ;+^}b*&1yKv*n0~jwTUF`K ztSfglnX}BYH&86q+h8-BbJmsgoZI{Hokt$n;JUT_1CCmKgI#n~o)~4=>*z$NiJ9u# zlF;|eT3amHQdwJLz^S-^z7E!=(O49$W4aVf&+9VlW#$PxZ3=af(AhQhHkm`)!VEfd zHBH&lX@68IJS$K2HXqxv+7>LN&7btiR}ar*1(`~Nb-6Lj{AravHYUSxHCQ()D)0up zVjvC2F*VDu%@}%tw^f1KNoo^%TT-(x#>N^`-fyDOB*&MA%2im52)j`+zcvtT%gpvZ z%nFL=*W8SI>Mf0|`V^rutA|FRmkXX>=9|6L^t1?*ZC+Fny67MLfq0izc4 zU>tKQ0~yOk*_K6n?=0A!>F0~5X0TCRTXIidomv^XQp7H#fdNT0+Erzi8FopEm^LdN z>F=}vZ69YPh}hdFwkyKceaYVwo)>o8f|Z%ZI#~J8{JiiniYijb)?zEHZ%(kyA;xaj zys9|uc1kN>C_BELdw^58(;yy-n8!|xN@2c|sb$i|h|k#tmfxjS zEh%hAX`5=J4q@2Z+)Qa3MJc1j627i#R^oMt>kU*;SiDT3Q8+PLt;1XiP&3I0e#2Yy zaZabC-mY}kEN%IkNUXqUy*|-5cP>w>7{4oBDS2vT*1>hMMj=l4w847YMo)wFY{MYs zW)jDG?MiwLf!VJ|E%Gqs>tfg z!ii?i-YcS^Hu%%7Ufv+3uehVPp2nCcxV}LTA`PkDZVoYB0uh)T#esBI^F)r7W34}#v zvE%e22N{D%f`F#KPG0MeYlGI&aSaPlxJ;XU;lg+&LHVVGL9qO!*L3=_ZNTQ4 zFk11EPz?tq#(g8;MT1EC*%P(clkbeLoguk@Y1S(C!X=&q4u}JeGR0uFFm%rt#TVi0g|Z4q#U`)~+j*pH zUAm~jQO*Hvx5zwQ-NjrOJ27-y|5|NrQHwA*RmTvdV25MwVPFKd9$`=eHY@goBQx%xL zVhd(@GO<;?Z(Pza+Jx;W3Wgn-!sQ!A@k67oAltCbRB*4BO-oga z;nBuTX__sFY#P+FIE;yib{ctSb~GMUSe~kw#W3~d{0Kgrj@k(p6zAb&i->WQ5}3?k zfhF2PfXzR_!eb*y4`>MC%$y-KBPaQ%4JE0vvo3hC#BlI#GRrTam`r{^#RLb_YME22 zj1T%mr&x?Ohq^SxQK)mI_Rf3>HD=u5#ZaSMUXl@j<}2GHW|1t&vwad`wGtzz4#<>P zOfNE`14xb~b}VLGri>l$awg;5=(8rE`_fEOg?MP7KQY;rzxDsOg41awJHquR73ua0 z-6^W03v!yyHKNw&%!t*JJTtbqBexu2%TL{Ec4V5C?_~FeooA77yW?y&OKh%o%t89J z0$b|iD+$eHM_uOo(;h8#C?+#I!~FS~b^w);rDnoocRe^);ek&#)^2MuJnvV zXKcl^Y+o?)vVC@zP}5Z#dxMBLQ(`zu=@wJX%(}{Py9JuO{vB9xCFt-d8;zo7D5=2o zP^dR=ziA3A035%!%)X@NbZ?(>Y~5`cDmR<~7uMzUy3lso!{+|wTu%K}>gn8+nLjkj zUZ`uj2^7+FX$|znyyEa;Dt^MQISoZ=acWpg`iv&fKxMvHD%qE;GhK;!3Ndoq*qQlp zHtajdp6%CTO4p0J=wo;v3nmy{t)o*D*fE}NEn12}!?ta16_@XL+ZawkB#b83 zeu?6e80=49Fd(^^zhhI?V4%j%xl92Vc{9Cgpb@()joO%`cRMiS&bxGKowRW)?)G#A zEJ(qIF?QZf=h{#itFVO{Y_L5XIJ(J7p_4&EEzP!COSsOrd9-NwK^Hq>f>?650LfC* zKxxHt-+}HHytmC$|KdwPJBTcmFvK0yoK2ir}fKBf??q>=C&{j zM{Du$^JZt(r@6Dwal&qHkCH4hzHn}IPH#ZLHT$C}ntS?kAM1=enVu1Z#KDg9I+{$b zH@MjB3@Zj!x1N#b=r?9hPGdL`gV|Dx`)18agNtR^L3tH#3NDfC;!IN3$`e; zB?Y=GoE0|hDLaNuZm(1oEL7@Qzg3Vuol)iDp*p(RN?VM42Nf)lg}#SzXA-O1>YS3QNrYM!Ova+q;Nff7X+$I7B|~|Q8PreG~Ata=?f$^Gvg%9W_}qX%#TTu`NjAKEN6ik zO0e@vgoRfQ4--=hqQ*$znTWq75a?i=F%2*N5@9By6pz`-GBjItOCSxTvxb{c3FDIa z-KoD^3nFexj)d_Lj`d5`SFQj>uUtw*%_1yF1GBpK z8Bh~CCmXXFqLfBJg%K;ZUJ9?sPI08YnMLgiuP~&68)^IN zD3=3?f#2@QP!FO!Fcwc`ezHp@4{S}=A0m=1fpGxwfqH|827M@QlSQy)-4|ejXFf8W ztzQ{ex3JDoVP_x8Doi?#w(*%@?xF^WV}VMxKaNe=i!=>W7ug(E7h$hcqBM{dr!U~p z`k4Jm0}~nbN8Yr%QtgI_2id8rRdpe>XJx79VlvXlef}EBto3H~=vkePB&D9kjghox zpxPJCTDNwfXNgSCr0rQsGyB2?^X8q^Gw+O^`KN~qPVJj_>M8S1oi~q!J?k+ism%6t zXN3zE^qqRz*wEAP!iYUf=JUdui#TsY_d$AL9Osa! zGSXoF^$cKK%&Odz%s;CVE-cwK7z>;?Qmu0K%eYGFa<1miRI{z~d*{ts;<$5!^<(%%l} zcn^w`>@PdKARZ?e)@X9`REm{UVQH?6MXGef>cIsyHt536b?9SpNyj-0m%~wvWSnce zBmNWxCpr@oB~M)@wV&ahxWo9uPi^~MW2|A&L5$rbLOMa7O&C=e z1$|f@XYzUC-G1Lw6WRr>^uQHl&c#3(I?;%3GL|$D%4#J}cMoJ!Lx%3`W!k{L7)FpX zXIPQMwdzUk33EEl9!WCK{n^X5U7f}8TG^{EX6ezNDtj(0EIN(J3)2Kia0Gsq<%1_w zVllvQkOR_Ca$?ub6Z^b?X^voa^4v z;P(4~u+BtD>F@*-isy?J*pk?pc3I)H?e}44zJjjC(3#Yps!ITbG^jDR<@1ts=Une| z?`qyTr~NBgF)CE(LeUs2!(>w1ep_P`1~_r_=1#_BGM+JY))bcbQdFxV#=xH0m7;Ol zXKVx(g#lQv{Tp#$mv*6Zk-vis;%VKEodr!>)QZR8ps)w30b>5yMc zH*23Qb?tZ3+n%`faN3o0ig%aN^+LOoPRxZ2Te+%kSjQ$gybBWZ9wVsC&l5(7mCuf( z=Sj5E)uZhXuu9+C%=px?Ev4u{roG$K=sF5yb-if}4oi=-5VC4+yVtE*EOY1|Y^#Y& zWNS)qID7l82t|d583jb_A&Vl!PR65N8q7%n&eM}Rsv|Gdptf|9d6vYR@WF7ly@98k zSI^$l$MK4+m8_T0g3hp$uc9>=`yy+<7GO_+OsOOugFtNlG!P>iyh7^>6VxON z>*6u`eP>tJH}!^V!j0YGioS%b8l|NT)eA;67;W{k4fM!E_*N%;1rcqmVHeg3W1dpD z>cVs7XULVd4@%>V*7>ytr>KdN#568LFx}$&07-sjHXn1JjZiQ^gSBS2&(axht+PMO zoYbUf&Pq+U_Ic~3orxhi7qT%{{yL;7K`|TE#0gKn&$r(v5;9@Z2~4y`8gI^Utqv^j zR9_{qh3=xN*b3))qxuvKo^xxiAo2e~3C0U^PDxwvvkjSlb*I22ko<~;wAW?k zlBV4?SAmQ^hn$*|L2N;@q1vrAinS!KAzQGuDd>?`&s35|-Q<5SqPEmq536JD2Kx}= z0iis=3r#+4Wl7Anj3eSHwPeO>TVbln_K=Kizl~|EK`h5fiMbQ85ypvmEeO!^GP9QI zYCe_=YS9+%&drHO!Iq@h8+HpoNQ0!_(NT*p%6QeVU#Fl~b z)JVe?_4XG|&*y9GR)!tsv&mPFB?K{1H1D!}6|@E9GS|p$_fBu)E@t)pGZ{Ng?KERH zb;r@5^xIIM#-#D-1xl1PUz0S2=}U{tpJ`~JhT>|IPYC3>r?@rmUjRQq#v4~Tj`zC} z%xYMyRCe#&^IdtG|BcCOSITYG;p1rRqavZ8t;97qG+E{ItQRAqk&~&G($|PbcAH+wvo`6z zyWL7?!I|2Y7n;!Vn#VgVw0O&*rF-%skoqRk`>7iG`_pXG(@nqqHdcAA(zjF?CeP61 zoflr(yjyQmY})PmncH!}qKkK>{z#$Hff+z$K&3$3+5{^~8}%CZ?-);>Wn3E zin#JZ)?K_h8})3urZx^^ z#Nyr-`p`^ICAmSd` zc-y_k%h7pdl!G$wZDHD4UQxj^{j1m?IX!Q?E-_o4Zsof^ZyCkHW4f(*7k^sCU4c~A zks=Hn653#T#Gq^m+i&A|fF#981tF~=^&h&5#hWdLrnri3j00 z&iaXk&}n>5x@uWQoegtp6C0RoO|Qn_e=z|5@06zOc&L$i%^?6HF|Yi zD!jDrLfPl;C_c>Qt}LH)B?KnBZmg=Sf^24qIA{=JkM=F5OBiEYOHvB-`1_>{e7++cgPIsWLQWvGiK)N)~4g z!W6YmDiuA6$c=3bl~KZl%9WOm*DHbD(*0W1JFyS=igaxqI&JECv>GuslV(R;f4j&k zA1K^JIlO=kf<}t!)Gs>#iJKbmn%u+?W_SBBuxlPUMnd8x?s|WFG>f(wIm`~!v`kdF z2GY!JRx?Ys5;F|_-5)_s{9$%;)qlbaGpiDmK;2W7)}yVE7VRxl#AF{)TWJvHDNLts zOudF|gX>E`+$!u@WV;nAc$4MY%mLWS7@D94rl8wtr$ui-Tp7~_1oM>%lZ|Gun7Q|W zwx)umHTGMi;Bn_)n;)L`SIKNb>>63loQ;3mO<`r*O|Z^fKg2=<88}LE=FZGdU)5MB zYP>X9#I%&fQf5i--F7n;Ml%{yOEy|A*nU?E%~TNhZkrl|2+=|rYGxFQM1vg_UTnHQ zR$|RhHaTDj6zaB2T9Qm)!ep8uoOQFORKsf7a4ghzdg!=>&k-XFPg!iUp1Q7&ZOqJh zOnF(i+uJLBc!tje@O=y$`}SpK+r5~=#O}m+0WCX4Z4@Rw$Tk2CFHPB^qs6pUjh(58 zqFy>f5f^gF2xb2>~q~&e9{3h88}OT;#W$Th8o@sLh|q&N(+CT?<$qRoSM z%BDz8qxGyGG!;z$!LusDddwe0CK->pbOalK?C`JEcLgRRE~a51Zfl>6Ekqj2&-l6D zZt~kn*)~BRM*m$->kNBcb_CCr&*Yo76{7Cc40Czr^SPba zlc+pwpBgaP$XiWF*-WJ#rjKmLh0@kglb&KmrBR zEdsgCkw`~Bg3>(eYt?KWWij8RgF5s1f|yNA!obH9AS1mE}g~0RVIm< z1|TIL0mYbc#~Ecag}+T(Z_hkKmew5ZGX@&)f?Yn?u>Ao#9SNlpGf(8@hzRtRf5w22 z+s@RPrY;?dwe7iG*c@Joxd=19W4bKi@Yh^^GlO;OLt5>HyP^UiyD~dpSLcSK9gC=o z1`+LTM^}_@9LO_vwm)v^V>){K12Uw@B!c{AdU-u5mYok7#|pA< zBlL#rGh040*PSNdTw`&jKaCeY+x#`AOd8z~}x0R}-!zj71*(SMh3@K*J*`<~g zEa?ySfn+rT|K*Iy8XlnGW3f}dZYrrFDcQsb1Z+f1&eYPgt5647-`!UbOvK-I4f<>(MnrM599Ea)ESr;Tt&`pKx)Nmrp*Utya_+S^iVvJIzI_soGG2~-I?n_%PGO=AwzV&cq>}G(-9UXl=q5Bay`G43O0f+4!uwTfO+O0jg2UmlNDu zZLfjDF!q6mR2PuwXqF};dDE>S4`vVFCx8;X5f3iMkp|N0uavk{Uq;aR4S@T_l9;sQ zMl*juA%8qAx%-O3dYQ2#n6nE^7noHm@w#eNDsmp@Pl>y)DL^reiq6I%cY4JY-^!(K z5!|ur+uxXoFvBtC932P|sMQYmx%M9INDEWZL?-t=1wG}93fpc{x(mfK+0n=Rz{VKr zc79|HU8f+kU?FN#Wf3@TV`~YvtFx43*8hqk6Uz=yyt$Xz@N*b=P@7>aISe3QNMo0Y zf$kKIi$%)*;>EwNJe%XmkOZuVvE(Rp z+4ftxUO@j(`M{3InyiJu0EPD?IaV2ji?7qz#q|`gx8!Kw0t?i zpMT6`-QrnE>&i@krt%sG?V{iORHV}tWU5}_;|ZuyIyR;{=ZcJu6nf>b`IUtk6NZ>C z+2EEKEtCBwTvLI{gy|WJvt_XPO2;3yt2|@sLPB_)od9zwAYF z;n==pJ`UGW+3awWV=L0wCJ;8*W4nnj9Auw6Fsp+9;6Zx^r$4&ZwSVkD>k(f&aHloI z%&i-cKWtvP-Ez9JMSk?G(uuW*O>44^j-sK7F*?4c9StqMW}ejuiabPObc`1KF?EUSmT0U#HAz3%40JEC zZx(RCTT;I}FcWr~q~iC@x|}>Vk(6b!QSr@{s-yYo0vm*ESs`K5jxWL7NuR|l{q5;p z_hb^QXqBVrEQ{H4P<=X?^GwYJ+(cpM(94ySuT{cM@?ssxD$Y5?!siv9s*eBb*Kn|` z{WV5qYBm|C3^aNwxhKW(LL8{pjhsAsTSFI~4jbJNOb3aVi!{brvI>*vSFjYKjX z%FinQ-d)S@z#xEM5`KCc8-Al49=3sXNWl5)m z&5USDHQz&MCU?ZE5}N0ziUrVPh{Cqhq)gaTrQvSB6+X%lGbT0XPc40R3X>7C-Z1+d zqB)b*pJ7GO3^7qMncWF4Z36j8pRJZyPq6d5xu5TF_!iN4r%x3|k(W75wZuRbyF?N{ zJOxpkzdomWb3pqjJDk^*c-y_E9ExAF2Q$uYgkWQua*bVtVxDOa(RTb%_cF6=L8fBr@_)W*=gk%@ zm`|GU|4cIJje%I>#XFi(m{MAF+8Cj>5-D3B2TP|{v0amtX$+Bv&DfoO-NC)yrJL#V z4sG(1+wsUWOZT0Ji}N$ne6GPApLPaudZs;sEv2?38P8!Fn-z)=Kol;w*q0v)D_?k_ z3yoC9@-#B%=!}6uS~rlE!u0P2=7URFE|pbboe;WyBiVU3dYjC>j^ba<{z>FGuLr z;;2(NoJ|mG_NOI6*?T!>iR>h`SZw@!NiJUF(|&=jzSuHF2m37&pU6qGE{)rIFDB6c zLg~&9F_3mJ)tODr*1}0$bxJg|P0tCz7-n~Im%gw`-{0JtrZsKqYVK45B8 zgJT@+A9e6|fSj3KS*C5__J)h?)!IvF>el(2Ti)R%ZyQEYX|r~AuPmFV+11Yal*muo zhn3A*C2Gk&xhP(Zr(y*HgRvW z!mi!D?ubdIbT~V)mSeWrkVUO%9gNUzSSB9b>#kPvQO~i2zHz-wT3-!sgQOzfcA1h0 zMkG_TkHIS6HmsPnT0RzGH#p*eZ^qGy0V9`Eg{+F2{ub5T0iZ;8?8$>Z-$89@qzHh6 zEi$S&WJejpcXk_tdBB#2st8~Sgfj+iP2_#K5FB8S4B*khAk^YMB~gp>E0}E&>Xg)N zW8Z6gHn66As_Fm_3#U#1-(;Vb$Tn4q0a4UsFcOahp5kajQsN7g&@MuSeP@E~9{mR= zbP`1S8urPF_QNGRe3ArCu~4z5Vdz#^MnUl;M^oIZy}1%@5Wqik5jbetKXPy4K1nf# zx@_O1;20leh$#fcnI7mYgbe?gCkgzy{fxj0U!`!Cc8pg!dFNvj>hl!2wsOLPVt|iS zG@tODie`XMRWt*9t)dy=gB8tyeY2v{7$b`R5+cZa&;~~w+?Oo6B#7rvl0rPnn$N)h z%9|NVWq@z$R6%w>?27D2QTxX%blH>4Ik9ElY|^uFq0d%m?d7uBLh4Se$7YvAJzS_FtSQ&GKvr1^?w{aL+XD|Ga)km`i zrD02pieJ01`d}w=6G4nrL{Mso?EKx~+}mX0c@-SLfq&;Qo{)@gTNa5tjnQ\n" +"Language-Team: Django-i18n \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: oldforms/__init__.py:357 +#: db/models/fields/__init__.py:117 +#: db/models/fields/__init__.py:274 +#: db/models/fields/__init__.py:612 +#: db/models/fields/__init__.py:623 +#: newforms/models.py:178 +#: newforms/fields.py:80 +#: newforms/fields.py:376 +#: newforms/fields.py:452 +#: newforms/fields.py:463 +msgid "This field is required." +msgstr "Šis laukas yra privalomas." + +#: oldforms/__init__.py:392 +#, python-format +msgid "Ensure your text is less than %s character." +msgid_plural "Ensure your text is less than %s characters." +msgstr[0] "Įsitikink, kad tavo tekstas turi mažiau nei %s simbolį." +msgstr[1] "Įsitikink, kad tavo tekstas turi mažiau nei %s simbolių." + +#: oldforms/__init__.py:397 +msgid "Line breaks are not allowed here." +msgstr "Nauja eilutė nėra leidžiama." + +#: oldforms/__init__.py:498 +#: oldforms/__init__.py:571 +#: oldforms/__init__.py:610 +#, python-format +msgid "Select a valid choice; '%(data)s' is not in %(choices)s." +msgstr "Pasirink gerą variantą; '%(data)s' nėra tarp %(choices)s." + +#: oldforms/__init__.py:577 +#: newforms/widgets.py:180 +#: contrib/admin/filterspecs.py:150 +msgid "Unknown" +msgstr "Nežinomas" + +#: oldforms/__init__.py:577 +#: newforms/widgets.py:180 +#: contrib/admin/filterspecs.py:143 +msgid "Yes" +msgstr "Taip" + +#: oldforms/__init__.py:577 +#: newforms/widgets.py:180 +#: contrib/admin/filterspecs.py:143 +msgid "No" +msgstr "Ne" + +#: oldforms/__init__.py:672 +#: core/validators.py:174 +#: core/validators.py:445 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "Failas nebuvo nurodytas. Patikrink formos koduotę." + +#: oldforms/__init__.py:674 +msgid "The submitted file is empty." +msgstr "Nurodytas failas yra tuščias" + +#: oldforms/__init__.py:730 +msgid "Enter a whole number between -32,768 and 32,767." +msgstr "Įvesk sveiką skaičių nuo -32,768 iki 32,767." + +#: oldforms/__init__.py:740 +msgid "Enter a positive number." +msgstr "Įvesk teigiamą skaičių." + +#: oldforms/__init__.py:750 +msgid "Enter a whole number between 0 and 32,767." +msgstr "Įvesk sveiką skaičių nuo 0 iki 32,767." + +#: db/models/manipulators.py:307 +#, python-format +msgid "%(object)s with this %(type)s already exists for the given %(field)s." +msgstr "%(object)s su šiuo %(type)s jau egzistuoja duotuose %(field)s." + +#: db/models/manipulators.py:308 +#: contrib/admin/views/main.py:335 +#: contrib/admin/views/main.py:337 +#: contrib/admin/views/main.py:339 +msgid "and" +msgstr "ir" + +#: db/models/fields/__init__.py:42 +#, python-format +msgid "%(optname)s with this %(fieldname)s already exists." +msgstr "%(optname)s su šiuo %(fieldname)s jau egzistuoja." + +#: db/models/fields/__init__.py:369 +msgid "This value must be an integer." +msgstr "Ši reikšme turi būti sveikas skaičius." + +#: db/models/fields/__init__.py:404 +msgid "This value must be either True or False." +msgstr "Ši reikšmė turi būti True arba False." + +#: db/models/fields/__init__.py:425 +msgid "This field cannot be null." +msgstr "Šis laukas negali būti null" + +#: db/models/fields/__init__.py:459 +#: core/validators.py:148 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Įvesk tinkamą datą YYYY-MM-DD formatu." + +#: db/models/fields/__init__.py:528 +#: core/validators.py:157 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." +msgstr "Įvesk tinkamą datą/laiką YYYY-MM-DD HH:MM formatu." + +#: db/models/fields/__init__.py:632 +msgid "Enter a valid filename." +msgstr "Įvesk tinkamą failo vardą." + +#: db/models/fields/__init__.py:753 +msgid "This value must be either None, True or False." +msgstr "Ši reikšmė turi būti viena iš None, True arba False." + +#: db/models/fields/related.py:53 +#, python-format +msgid "Please enter a valid %s." +msgstr "Įveskite tinkamą %s" + +#: db/models/fields/related.py:642 +msgid "Separate multiple IDs with commas." +msgstr "Atskirkite skirtingus ID su kableliu." + +#: db/models/fields/related.py:644 +msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "Paspausk ir laikyk \"Control\", arba \"Command\" Mac'uose, kad pasirinkti daugiau nei vieną." + +#: db/models/fields/related.py:691 +#, 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] "Įveskite tinkamą %(self)s ID. Reikšmė %(value)r yra netinkama." +msgstr[1] "Įveskite tinkamą %(self)s ID. Reikšmės %(value)r yra netinkamos." + +#: conf/global_settings.py:39 +msgid "Arabic" +msgstr "Arabų" + +#: conf/global_settings.py:40 +msgid "Bengali" +msgstr "Bengalų" + +#: conf/global_settings.py:41 +msgid "Catalan" +msgstr "Katalonų" + +#: conf/global_settings.py:42 +msgid "Czech" +msgstr "Čekų" + +#: conf/global_settings.py:43 +msgid "Welsh" +msgstr "Velso" + +#: conf/global_settings.py:44 +msgid "Danish" +msgstr "Danų" + +#: conf/global_settings.py:45 +msgid "German" +msgstr "Vokiečių" + +#: conf/global_settings.py:46 +msgid "Greek" +msgstr "Graikų" + +#: conf/global_settings.py:47 +msgid "English" +msgstr "Anglų" + +#: conf/global_settings.py:48 +msgid "Spanish" +msgstr "Ispanų" + +#: conf/global_settings.py:49 +msgid "Argentinean Spanish" +msgstr "Argentinos Ispanų" + +#: conf/global_settings.py:50 +msgid "Finnish" +msgstr "Suomių" + +#: conf/global_settings.py:51 +msgid "French" +msgstr "Prancūzų" + +#: conf/global_settings.py:52 +msgid "Galician" +msgstr "Galų" + +#: conf/global_settings.py:53 +msgid "Hungarian" +msgstr "Vengrų" + +#: conf/global_settings.py:54 +msgid "Hebrew" +msgstr "Hebrajų" + +#: conf/global_settings.py:55 +msgid "Icelandic" +msgstr "Islandų" + +#: conf/global_settings.py:56 +msgid "Italian" +msgstr "Italų" + +#: conf/global_settings.py:57 +msgid "Japanese" +msgstr "Japonų" + +#: conf/global_settings.py:58 +msgid "Korean" +msgstr "Korėjiečių" + +#: conf/global_settings.py:59 +msgid "Kannada" +msgstr "Dravidų" + +#: conf/global_settings.py:60 +msgid "Latvian" +msgstr "Latvių" + +#: conf/global_settings.py:61 +msgid "Macedonian" +msgstr "Makedonų" + +#: conf/global_settings.py:62 +msgid "Dutch" +msgstr "Olandų" + +#: conf/global_settings.py:63 +msgid "Norwegian" +msgstr "Norvegų" + +#: conf/global_settings.py:64 +msgid "Polish" +msgstr "Lenkų" + +#: conf/global_settings.py:65 +msgid "Portugese" +msgstr "Portugalų" + +#: conf/global_settings.py:66 +msgid "Brazilian" +msgstr "Brazilų" + +#: conf/global_settings.py:67 +msgid "Romanian" +msgstr "Rumunų" + +#: conf/global_settings.py:68 +msgid "Russian" +msgstr "Rusų" + +#: conf/global_settings.py:69 +msgid "Slovak" +msgstr "Slovakų" + +#: conf/global_settings.py:70 +msgid "Slovenian" +msgstr "Slovėnų" + +#: conf/global_settings.py:71 +msgid "Serbian" +msgstr "Serbų" + +#: conf/global_settings.py:72 +msgid "Swedish" +msgstr "Švedų" + +#: conf/global_settings.py:73 +msgid "Tamil" +msgstr "Tamilų" + +#: conf/global_settings.py:74 +msgid "Telugu" +msgstr "Telugų" + +#: conf/global_settings.py:75 +msgid "Turkish" +msgstr "Turkų" + +#: conf/global_settings.py:76 +msgid "Ukrainian" +msgstr "Ukrainiečių" + +#: conf/global_settings.py:77 +msgid "Simplified Chinese" +msgstr "Supaprastinta kinų" + +#: conf/global_settings.py:78 +msgid "Traditional Chinese" +msgstr "Tradicinė kinų" + +#: core/validators.py:64 +msgid "This value must contain only letters, numbers and underscores." +msgstr "Ši reikšmė gali būti sudaryta tik iš raidžių, skaičių ir pabraukimų." + +#: core/validators.py:68 +msgid "This value must contain only letters, numbers, underscores, dashes or slashes." +msgstr "Ši reikšmė gali būti sudaryta tik iš raidžių, skaičių, pabraukimų, brūkšnių ir/arba pasvirų brūkšnių." + +#: core/validators.py:72 +msgid "This value must contain only letters, numbers, underscores or hyphens." +msgstr "Ši reikšmė gali būti sudaryta tik iš raidžių, skaičių, pabraukimų arba brūkšnelių." + +#: core/validators.py:76 +msgid "Uppercase letters are not allowed here." +msgstr "Didžiosios raidės nėra leidžiamos." + +#: core/validators.py:80 +msgid "Lowercase letters are not allowed here." +msgstr "Mažosios raidės nėra leidžiamos." + +#: core/validators.py:87 +msgid "Enter only digits separated by commas." +msgstr "Įvesk skaitmenis atskirtus kableliais." + +#: core/validators.py:99 +msgid "Enter valid e-mail addresses separated by commas." +msgstr "Įvesk tinkamus e-mailus atskirtus kableliais." + +#: core/validators.py:103 +msgid "Please enter a valid IP address." +msgstr "Įveskt tinkamą IP adresą." + +#: core/validators.py:107 +msgid "Empty values are not allowed here." +msgstr "Tuščios reikšmės neleidžiamos." + +#: core/validators.py:111 +msgid "Non-numeric characters aren't allowed here." +msgstr "Ne skaičius neleidžiamas čia." + +#: core/validators.py:115 +msgid "This value can't be comprised solely of digits." +msgstr "Ši reikšmė negali būti sudaryta vientik iš skaičių." + +#: core/validators.py:120 +#: newforms/fields.py:128 +msgid "Enter a whole number." +msgstr "Įvesk sveiką skaičių." + +#: core/validators.py:124 +msgid "Only alphabetical characters are allowed here." +msgstr "Tik alfabetiniai simboliai leidžiami." + +#: core/validators.py:139 +msgid "Year must be 1900 or later." +msgstr "Metai turi būti 1900 arba vėlesni." + +#: core/validators.py:143 +#, python-format +msgid "Invalid date: %s" +msgstr "Netinkama data: %s" + +#: core/validators.py:153 +msgid "Enter a valid time in HH:MM format." +msgstr "Įvesk tinkamą laiką HH:MM formatu" + +#: core/validators.py:162 +#: newforms/fields.py:271 +msgid "Enter a valid e-mail address." +msgstr "Įvesk tinkamą e-mailą." + +#: core/validators.py:178 +msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." +msgstr "Atsiųsk tinkamą paveiksliuką. Failas, kurį siuntei buvo arba ne paveiksliukas, arba sugadintas paveiksliukas" + +#: core/validators.py:185 +#, python-format +msgid "The URL %s does not point to a valid image." +msgstr "URL %s nenurodo tinkamo paveiksliuko." + +#: core/validators.py:189 +#, python-format +msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." +msgstr "Telefono numeris turi būti XXX-XXX-XXXX formatu. \"%s\" yra netinkamas." + +#: core/validators.py:197 +#, python-format +msgid "The URL %s does not point to a valid QuickTime video." +msgstr "URL %s nenurodo tinkamo QuickTime video." + +#: core/validators.py:201 +msgid "A valid URL is required." +msgstr "Tinkamas URL privalomas." + +#: core/validators.py:215 +#, python-format +msgid "" +"Valid HTML is required. Specific errors are:\n" +"%s" +msgstr "" +"Tinkamas HTML privalomas. Klaidos:\n" +"%s" + +#: core/validators.py:222 +#, python-format +msgid "Badly formed XML: %s" +msgstr "Blogai suformuotas XML: %s" + +#: core/validators.py:239 +#, python-format +msgid "Invalid URL: %s" +msgstr "Netinkamas URL: %s" + +#: core/validators.py:244 +#: core/validators.py:246 +#, python-format +msgid "The URL %s is a broken link." +msgstr "URL %s yra neveikiantis." + +#: core/validators.py:252 +msgid "Enter a valid U.S. state abbreviation." +msgstr "Įvesk tinkamą JAV valstijos sutrumpinimą." + +#: core/validators.py:266 +#, 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] "Kontroliuok liežuvį! %s neleidžiamas." +msgstr[1] "Kontroliuok liežuvį! %s neleidžiami." + +#: core/validators.py:273 +#, python-format +msgid "This field must match the '%s' field." +msgstr "Šis laukas turi atitikti %s lauką." + +#: core/validators.py:292 +msgid "Please enter something for at least one field." +msgstr "Nors vienam lauke kažką reikia įvesti." + +#: core/validators.py:301 +#: core/validators.py:312 +msgid "Please enter both fields or leave them both empty." +msgstr "Įveskite abu laukus arba abu palikite tuščius." + +#: core/validators.py:320 +#, python-format +msgid "This field must be given if %(field)s is %(value)s" +msgstr "Šis laukas turi būti užpildytas, jei %(field)s yra %(value)s" + +#: core/validators.py:333 +#, python-format +msgid "This field must be given if %(field)s is not %(value)s" +msgstr "Šis laukas turi būti užpildytas, jei %(field)s nėra %(value)s" + +#: core/validators.py:352 +msgid "Duplicate values are not allowed." +msgstr "Vienodos reikšmės neleidžiamos." + +#: core/validators.py:367 +#, python-format +msgid "This value must be between %(lower)s and %(upper)s." +msgstr "Ši reikšmė turi būti tarp %(lower)s ir %(upper)s." + +#: core/validators.py:369 +#, python-format +msgid "This value must be at least %s." +msgstr "Ši reikšme mažiausiai turi būti %s." + +#: core/validators.py:371 +#, python-format +msgid "This value must be no more than %s." +msgstr "Ši reikšmė negali būti daugiau nei %s." + +#: core/validators.py:407 +#, python-format +msgid "This value must be a power of %s." +msgstr "Ši reikšmė turi būti %s laipsnis." + +#: core/validators.py:418 +msgid "Please enter a valid decimal number." +msgstr "Įveskite tinkamą dešimtainį skaičių." + +#: core/validators.py:422 +#, 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] "Įveskite tinkamą dešimtainį skaičių su daugiausiai %s skaitmeniu." +msgstr[1] "Įveskite tinkamą dešimtainį skaičių su daugiausiai %s skaitmenimis." + +#: core/validators.py:425 +#, 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] "Įveskite tinkamą dešimtainį skaičių, kurio sveikoji dalis ne didenė nei %s skaitmens." +msgstr[1] "Įveskite tinkamą dešimtainį skaičių, kurio sveikoji dalis ne didenė nei %s skaitmenų." + +#: core/validators.py:428 +#, 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] "Įveskite tinkamą dešimtainį skaičių, kur po kablelio max %s skaitmuo." +msgstr[1] "Įveskite tinkamą dešimtainį skaičių, kur po kablelio max %s skaitmenų." + +#: core/validators.py:438 +#, python-format +msgid "Make sure your uploaded file is at least %s bytes big." +msgstr "Įsitikink, kad įkeltas failas yra mažiausiai %s baitų dydžio." + +#: core/validators.py:439 +#, python-format +msgid "Make sure your uploaded file is at most %s bytes big." +msgstr "Įsitikink, kad įkeltas failas yra daugiausiai %s baitų dydžio." + +#: core/validators.py:456 +msgid "The format for this field is wrong." +msgstr "Šis formatas yra netinkamas šiam laukui." + +#: core/validators.py:471 +msgid "This field is invalid." +msgstr "Šis laukas yra netinkamas." + +#: core/validators.py:507 +#, python-format +msgid "Could not retrieve anything from %s." +msgstr "Nieko negaliu gauti iš %s" + +#: core/validators.py:510 +#, python-format +msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." +msgstr "URL %(url)s gražino blogą Content-Type headerį '%(contenttype)s'." + +#: core/validators.py:543 +#, python-format +msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)" +msgstr "Uždaryk neuždarytus %(tag)s tagus nuo %(line)s eilutės. (Pradedant \"%(start)s\" eilute.)" + +#: core/validators.py:547 +#, python-format +msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)" +msgstr "Kažkiek teksto pradedant %(line)s eilute nėra leidžiamas šiame kontekste. (Pradedant \"%(start)s\" eilute." + +#: core/validators.py:552 +#, python-format +msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)" +msgstr "\"%(attr)s\" eilutėje %(line)s yra netinkamas atributas. (Pradedant \"%(start)s\" eilute.)" + +#: core/validators.py:557 +#, python-format +msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)" +msgstr "\"<%(tag)s>\" eilutėje %(line)s yra netinkami tagai. (Pradedant \"%(start)s\" eilute.)" + +#: core/validators.py:561 +#, python-format +msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)" +msgstr "Eilutėje %(line)s tagui trūksta vieno ar daugiau privalomų atributų. (Pradedant \"%(start)s\" eilute.)" + +#: core/validators.py:566 +#, python-format +msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)" +msgstr "\"%(attr)s\" atributas eilutėje %(line)s turi netinkamą reikšmę. (Pradedant \"%(start)s\" eilute.)" + +#: views/generic/create_update.py:43 +#, python-format +msgid "The %(verbose_name)s was created successfully." +msgstr "%(verbose_name)s sėkmingai sukurtas." + +#: views/generic/create_update.py:117 +#, python-format +msgid "The %(verbose_name)s was updated successfully." +msgstr "%(verbose_name)s sėkmingai atnaujintas." + +#: views/generic/create_update.py:184 +#, python-format +msgid "The %(verbose_name)s was deleted." +msgstr "%(verbose_name)s buvo ištrintas." + +#: newforms/models.py:165 +#: newforms/fields.py:364 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Pasirink tinkamą. Tas pasirinkimas nėra iš galimų." + +#: newforms/models.py:182 +#: newforms/fields.py:380 +#: newforms/fields.py:456 +msgid "Enter a list of values." +msgstr "Įvesk reikšmių sarašą." + +#: newforms/models.py:188 +#: newforms/fields.py:389 +#, python-format +msgid "Select a valid choice. %s is not one of the available choices." +msgstr "Pasirink tinkamą. %s nėra vienas iš galimų." + +#: newforms/fields.py:103 +#: newforms/fields.py:256 +#, python-format +msgid "Ensure this value has at most %d characters." +msgstr "Įsitikink, kad reikšmė daugiausiai turi %d simbolių." + +#: newforms/fields.py:105 +#: newforms/fields.py:258 +#, python-format +msgid "Ensure this value has at least %d characters." +msgstr "Įsitikink, kad reikšmė mažiausiai turi %d simbolių." + +#: newforms/fields.py:130 +#, python-format +msgid "Ensure this value is less than or equal to %s." +msgstr "Įsitikink, kad ši reikšmė yra mažiau arba lygu %s." + +#: newforms/fields.py:132 +#, python-format +msgid "Ensure this value is greater than or equal to %s." +msgstr "Įsitikink, kad ši reikšmė yra daugiau arba lygu %s." + +#: newforms/fields.py:165 +msgid "Enter a valid date." +msgstr "Įvesk tinkamą datą." + +#: newforms/fields.py:192 +msgid "Enter a valid time." +msgstr "Įvesk tinkamą laiką." + +#: newforms/fields.py:228 +msgid "Enter a valid date/time." +msgstr "Įvesk tinkamą datą/laiką." + +#: newforms/fields.py:242 +msgid "Enter a valid value." +msgstr "Įvesk tinkamą reikšmę." + +#: newforms/fields.py:289 +#: newforms/fields.py:311 +msgid "Enter a valid URL." +msgstr "Įvesk tinkamą URL." + +#: newforms/fields.py:313 +msgid "This URL appears to be a broken link." +msgstr "Atrodo URL blogas." + +#: contrib/humanize/templatetags/humanize.py:17 +msgid "th" +msgstr "th" + +#: contrib/humanize/templatetags/humanize.py:17 +#, fuzzy +msgid "st" +msgstr "st" + +#: contrib/humanize/templatetags/humanize.py:17 +#, fuzzy +msgid "nd" +msgstr "nd" + +#: contrib/humanize/templatetags/humanize.py:17 +msgid "rd" +msgstr "rd" + +#: contrib/humanize/templatetags/humanize.py:47 +#, python-format +msgid "%(value).1f million" +msgid_plural "%(value).1f million" +msgstr[0] "%(value).1f milijonas" +msgstr[1] "%(value).1f milijonas" + +#: contrib/humanize/templatetags/humanize.py:50 +#, python-format +msgid "%(value).1f billion" +msgid_plural "%(value).1f billion" +msgstr[0] "%(value).1f milijardas" +msgstr[1] "%(value).1f milijardas" + +#: contrib/humanize/templatetags/humanize.py:53 +#, python-format +msgid "%(value).1f trillion" +msgid_plural "%(value).1f trillion" +msgstr[0] "%(value).1f trilijonas" +msgstr[1] "%(value).1f trilijonas" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "one" +msgstr "vienas" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "two" +msgstr "du" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "three" +msgstr "trys" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "four" +msgstr "keturi" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "five" +msgstr "penki" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "six" +msgstr "šeši" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "seven" +msgstr "septyni" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "eight" +msgstr "aštuoni" + +#: contrib/humanize/templatetags/humanize.py:68 +msgid "nine" +msgstr "devyni" + +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "nukreiptas (redirect) iš" + +#: contrib/redirects/models.py:8 +msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'." +msgstr "Turi būti absoliutus adresas neįtraukiant domaino. Pavyzdžiui: '/events/search/'." + +#: contrib/redirects/models.py:9 +msgid "redirect to" +msgstr "nukreipti(redirect) į" + +#: contrib/redirects/models.py:10 +msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'." +msgstr "Gali būti absoliutus adresas (kaip viršuj) arba pilnas URL pradedant 'http://'." + +#: contrib/redirects/models.py:13 +msgid "redirect" +msgstr "nukreipti" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "nukreipia" + +#: contrib/comments/models.py:67 +#: contrib/comments/models.py:166 +msgid "object ID" +msgstr "objekto ID" + +#: contrib/comments/models.py:68 +msgid "headline" +msgstr "antraštė" + +#: contrib/comments/models.py:69 +#: contrib/comments/models.py:90 +#: contrib/comments/models.py:167 +msgid "comment" +msgstr "komentaras" + +#: contrib/comments/models.py:70 +msgid "rating #1" +msgstr "reitingas #1" + +#: contrib/comments/models.py:71 +msgid "rating #2" +msgstr "reitingas #2" + +#: contrib/comments/models.py:72 +msgid "rating #3" +msgstr "reitingas #3" + +#: contrib/comments/models.py:73 +msgid "rating #4" +msgstr "reitingas #4" + +#: contrib/comments/models.py:74 +msgid "rating #5" +msgstr "reitingas #5" + +#: contrib/comments/models.py:75 +msgid "rating #6" +msgstr "reitingas #6" + +#: contrib/comments/models.py:76 +msgid "rating #7" +msgstr "reitingas #7" + +#: contrib/comments/models.py:77 +msgid "rating #8" +msgstr "reitingas #8" + +#: contrib/comments/models.py:82 +msgid "is valid rating" +msgstr "tinkamas reitingas" + +#: contrib/comments/models.py:83 +#: contrib/comments/models.py:169 +msgid "date/time submitted" +msgstr "įvesta data/laikas" + +#: contrib/comments/models.py:84 +#: contrib/comments/models.py:170 +msgid "is public" +msgstr "viešas" + +#: contrib/comments/models.py:85 +#: contrib/admin/views/doc.py:304 +msgid "IP address" +msgstr "IP adresas" + +#: contrib/comments/models.py:86 +msgid "is removed" +msgstr "pašalintas" + +#: contrib/comments/models.py:86 +msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead." +msgstr "Pažymėk šį laukelį, jei komentaras netinkamas. \"Šis komentaras ištrintas\" bus rodoma." + +#: contrib/comments/models.py:91 +msgid "comments" +msgstr "komentarai" + +#: contrib/comments/models.py:131 +#: contrib/comments/models.py:207 +msgid "Content object" +msgstr "Turinio objektas" + +#: contrib/comments/models.py:159 +#, python-format +msgid "" +"Posted by %(user)s at %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" +msgstr "" +"Paskelbta %(user)s, %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" + +#: contrib/comments/models.py:168 +msgid "person's name" +msgstr "asmens vardas" + +#: contrib/comments/models.py:171 +msgid "ip address" +msgstr "ip adresas" + +#: contrib/comments/models.py:173 +msgid "approved by staff" +msgstr "patvirtinta personalo" + +#: contrib/comments/models.py:176 +msgid "free comment" +msgstr "laisvas komentaras" + +#: contrib/comments/models.py:177 +msgid "free comments" +msgstr "laisvi komentarai" + +#: contrib/comments/models.py:233 +msgid "score" +msgstr "rezultatas" + +#: contrib/comments/models.py:234 +msgid "score date" +msgstr "rezultato data" + +#: contrib/comments/models.py:237 +msgid "karma score" +msgstr "karma rezultatas" + +#: contrib/comments/models.py:238 +msgid "karma scores" +msgstr "karma rezultatai" + +#: contrib/comments/models.py:242 +#, python-format +msgid "%(score)d rating by %(user)s" +msgstr "%(score)d reitingas nuo %(user)s" + +#: contrib/comments/models.py:258 +#, python-format +msgid "" +"This comment was flagged by %(user)s:\n" +"\n" +"%(text)s" +msgstr "" +"Šis komentaras pažymėtas %(user)s:\n" +"\n" +"%(text)s" + +#: contrib/comments/models.py:265 +msgid "flag date" +msgstr "pažymėjimo data" + +#: contrib/comments/models.py:268 +msgid "user flag" +msgstr "vartotojo žymė" + +#: contrib/comments/models.py:269 +msgid "user flags" +msgstr "vartotojo žymės" + +#: contrib/comments/models.py:273 +#, python-format +msgid "Flag by %r" +msgstr "Pažymėtas %r" + +#: contrib/comments/models.py:278 +msgid "deletion date" +msgstr "ištrinimo data" + +#: contrib/comments/models.py:280 +msgid "moderator deletion" +msgstr "moderatoriaus ištrynimas" + +#: contrib/comments/models.py:281 +msgid "moderator deletions" +msgstr "moderatoriaus ištrynimai" + +#: contrib/comments/models.py:285 +#, python-format +msgid "Moderator deletion by %r" +msgstr "Moderatoriaus ištrynimas, pagal %r" + +#: contrib/comments/views/karma.py:19 +msgid "Anonymous users cannot vote" +msgstr "Neprisijungę vartotojai negali balsuoti" + +#: contrib/comments/views/karma.py:23 +msgid "Invalid comment ID" +msgstr "Blogas komentaro ID" + +#: contrib/comments/views/karma.py:25 +msgid "No voting for yourself" +msgstr "Negali balsuoti už save" + +#: contrib/comments/views/comments.py:27 +msgid "This rating is required because you've entered at least one other rating." +msgstr "Šis reitingas privalomas nes įvedei mažiausiai vieną kitą reitingą." + +#: contrib/comments/views/comments.py:111 +#, 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] "" +"Šis komentaras buvo paskelbtas vartotojo, kuris paskelbė mažiau nei %(count)s komentarą:\n" +"\n" +"%(text)s" +msgstr[1] "" +"Šis komentaras buvo paskelbtas vartotojo, kuris paskelbė mažiau nei %(count)s komentarų:\n" +"\n" +"%(text)s" + +#: contrib/comments/views/comments.py:116 +#, python-format +msgid "" +"This comment was posted by a sketchy user:\n" +"\n" +"%(text)s" +msgstr "" +"Šis komentaras buvo paskelbtas nerimto vartotojo:\n" +"\n" +"%(text)s" + +#: contrib/comments/views/comments.py:188 +#: contrib/comments/views/comments.py:280 +msgid "Only POSTs are allowed" +msgstr "Tik POSTai yra leidžiami" + +#: contrib/comments/views/comments.py:192 +#: contrib/comments/views/comments.py:284 +msgid "One or more of the required fields wasn't submitted" +msgstr "Vienas ar daugiau privalomų laukų nebuvo įrašytas" + +#: contrib/comments/views/comments.py:196 +#: contrib/comments/views/comments.py:286 +msgid "Somebody tampered with the comment form (security violation)" +msgstr "Kažkas padirbo komentaro formą (saugumo pažeidimai)" + +#: contrib/comments/views/comments.py:206 +#: contrib/comments/views/comments.py:292 +msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid" +msgstr "Komentaro forma turi blogą 'target' parametrą -- objekto ID blogas" + +#: contrib/comments/views/comments.py:257 +#: contrib/comments/views/comments.py:321 +msgid "The comment form didn't provide either 'preview' or 'post'" +msgstr "Komentaro forma nepateikė 'preview' arba 'post'" + +#: contrib/comments/templates/comments/form.html:6 +#: contrib/comments/templates/comments/form.html:8 +#: contrib/admin/templates/admin/login.html:17 +msgid "Username:" +msgstr "Vartotojo vardas:" + +#: contrib/comments/templates/comments/form.html:6 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +msgid "Log out" +msgstr "Atsijungti" + +#: contrib/comments/templates/comments/form.html:8 +#: contrib/admin/templates/admin/login.html:20 +msgid "Password:" +msgstr "Slaptažodis:" + +#: contrib/comments/templates/comments/form.html:8 +msgid "Forgotten your password?" +msgstr "Pamiršai slaptažodį?" + +#: contrib/comments/templates/comments/form.html:12 +msgid "Ratings" +msgstr "Reitingas" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Required" +msgstr "Privalomas" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Optional" +msgstr "Neprivalomas" + +#: contrib/comments/templates/comments/form.html:23 +msgid "Post a photo" +msgstr "Įkelk nuotrauką" + +#: contrib/comments/templates/comments/form.html:28 +#: contrib/comments/templates/comments/freeform.html:5 +msgid "Comment:" +msgstr "Komentaras:" + +#: contrib/comments/templates/comments/form.html:35 +#: contrib/comments/templates/comments/freeform.html:10 +msgid "Preview comment" +msgstr "Peržiūrėti komentarą" + +#: contrib/comments/templates/comments/freeform.html:4 +msgid "Your name:" +msgstr "Jūsų vardas:" + +#: contrib/sites/models.py:10 +msgid "domain name" +msgstr "domeno vardas" + +#: contrib/sites/models.py:11 +msgid "display name" +msgstr "rodomas vardas" + +#: contrib/sites/models.py:15 +msgid "site" +msgstr "saitas" + +#: contrib/sites/models.py:16 +msgid "sites" +msgstr "saitai" + +#: contrib/admin/filterspecs.py:40 +#, python-format +msgid "" +"

              By %s:

              \n" +"
                \n" +msgstr "" + +#: contrib/admin/filterspecs.py:70 +#: contrib/admin/filterspecs.py:88 +#: contrib/admin/filterspecs.py:143 +#: contrib/admin/filterspecs.py:169 +msgid "All" +msgstr "Visi" + +#: contrib/admin/filterspecs.py:109 +msgid "Any date" +msgstr "Betkokia data" + +#: contrib/admin/filterspecs.py:110 +msgid "Today" +msgstr "Šiandien" + +#: contrib/admin/filterspecs.py:113 +msgid "Past 7 days" +msgstr "Paskutinės 7 dienos" + +#: contrib/admin/filterspecs.py:115 +msgid "This month" +msgstr "Šį mėnesį" + +#: contrib/admin/filterspecs.py:117 +msgid "This year" +msgstr "Šiais metais" + +#: contrib/admin/models.py:16 +msgid "action time" +msgstr "veiksmo laikas" + +#: contrib/admin/models.py:19 +msgid "object id" +msgstr "objekto id" + +#: contrib/admin/models.py:20 +msgid "object repr" +msgstr "objekto repr" + +#: contrib/admin/models.py:21 +msgid "action flag" +msgstr "veiksmo žymė" + +#: contrib/admin/models.py:22 +msgid "change message" +msgstr "pakeisti žinutę" + +#: contrib/admin/models.py:25 +msgid "log entry" +msgstr "log įrašas" + +#: contrib/admin/models.py:26 +msgid "log entries" +msgstr "log įrašai" + +#: contrib/admin/templatetags/admin_list.py:247 +msgid "All dates" +msgstr "Visos datos" + +#: contrib/admin/views/auth.py:19 +#: contrib/admin/views/main.py:257 +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully." +msgstr "%(name)s \"%(obj)s\" pridėtas sėkmingai." + +#: contrib/admin/views/auth.py:24 +#: contrib/admin/views/main.py:261 +#: contrib/admin/views/main.py:347 +msgid "You may edit it again below." +msgstr "Gali taisyti dar kartą žemiau." + +#: contrib/admin/views/auth.py:30 +msgid "Add user" +msgstr "Pridėti vartotoją" + +#: contrib/admin/views/auth.py:57 +msgid "Password changed successfully." +msgstr "Slaptažodis pakeistas sėkmingai." + +#: contrib/admin/views/auth.py:64 +#, python-format +msgid "Change password: %s" +msgstr "Pakeisti slaptažodį: %s" + +#: contrib/admin/views/main.py:223 +msgid "Site administration" +msgstr "Saito administracija" + +#: contrib/admin/views/main.py:271 +#: contrib/admin/views/main.py:356 +#, python-format +msgid "You may add another %s below." +msgstr "Gali pridėti dar vieną %s žemiau." + +#: contrib/admin/views/main.py:289 +#, python-format +msgid "Add %s" +msgstr "Pridėti %s" + +#: contrib/admin/views/main.py:335 +#, python-format +msgid "Added %s." +msgstr "Pridėtas %s." + +#: contrib/admin/views/main.py:337 +#, python-format +msgid "Changed %s." +msgstr "Pakeistas %s." + +#: contrib/admin/views/main.py:339 +#, python-format +msgid "Deleted %s." +msgstr "Ištrintas %s" + +#: contrib/admin/views/main.py:342 +msgid "No fields changed." +msgstr "Nei vienas laukas nepakeistas" + +#: contrib/admin/views/main.py:345 +#, python-format +msgid "The %(name)s \"%(obj)s\" was changed successfully." +msgstr "%(name)s \"%(obj)s\" buvo sėkmingai pakeistas." + +#: contrib/admin/views/main.py:353 +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "%(name)s \"%(obj)s\" pridėtas sėkmingai. Gali taisytį jį dar kartą žemiau." + +#: contrib/admin/views/main.py:391 +#, python-format +msgid "Change %s" +msgstr "Pakeisti %s" + +#: contrib/admin/views/main.py:476 +#, python-format +msgid "One or more %(fieldname)s in %(name)s: %(obj)s" +msgstr "Vienas arba daugiau %(fieldname)s %(name)s: %(obj)s" + +#: contrib/admin/views/main.py:481 +#, python-format +msgid "One or more %(fieldname)s in %(name)s:" +msgstr "Vienas arba daugiau %(fieldname)s %(name)s:" + +#: contrib/admin/views/main.py:514 +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" sėkmingai ištrintas." + +#: contrib/admin/views/main.py:517 +msgid "Are you sure?" +msgstr "Ar tu tikras?" + +#: contrib/admin/views/main.py:539 +#, python-format +msgid "Change history: %s" +msgstr "Pakeisti istoriją: %s" + +#: contrib/admin/views/main.py:573 +#, python-format +msgid "Select %s" +msgstr "Pasirinkti %s" + +#: contrib/admin/views/main.py:573 +#, python-format +msgid "Select %s to change" +msgstr "Pasirinkti %s pakeitimui" + +#: contrib/admin/views/main.py:768 +msgid "Database error" +msgstr "Duomenų bazės klaida" + +#: contrib/admin/views/decorators.py:10 +#: contrib/auth/forms.py:60 +msgid "Please enter a correct username and password. Note that both fields are case-sensitive." +msgstr "Įveskite teisingą vartotojo vardą ir slaptažodį. Abiejuose laukuose didžiosios mažosios raidės skiriasi" + +#: contrib/admin/views/decorators.py:24 +#: contrib/admin/templates/admin/login.html:25 +msgid "Log in" +msgstr "Prisijungti" + +#: contrib/admin/views/decorators.py:62 +msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved." +msgstr "Prisijunkite dar kartą, nes sesijos laikas baigėsi. Nesirūpinkite, įrašai buvo išsaugoti." + +#: contrib/admin/views/decorators.py:69 +msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." +msgstr "Atrodo, kad Jūsų naršyklė nepriima sausainėlių (cookies). Įjunkite sausainėlių palaikymą, perkraukite puslapį ir bandykite dar kartą." + +#: contrib/admin/views/decorators.py:83 +msgid "Usernames cannot contain the '@' character." +msgstr "Vartotojo vardas negali turėti '@'." + +#: contrib/admin/views/decorators.py:85 +#, python-format +msgid "Your e-mail address is not your username. Try '%s' instead." +msgstr "E-mailas nėra vartotojo vardas. Pabandyk '%s' vietoj to." + +#: contrib/admin/views/doc.py:46 +#: contrib/admin/views/doc.py:48 +#: contrib/admin/views/doc.py:50 +msgid "tag:" +msgstr "tagas" + +#: contrib/admin/views/doc.py:77 +#: contrib/admin/views/doc.py:79 +#: contrib/admin/views/doc.py:81 +msgid "filter:" +msgstr "filtras:" + +#: contrib/admin/views/doc.py:135 +#: contrib/admin/views/doc.py:137 +#: contrib/admin/views/doc.py:139 +msgid "view:" +msgstr "vaizdas:" + +#: contrib/admin/views/doc.py:164 +#, python-format +msgid "App %r not found" +msgstr "Programa %r nerasta" + +#: contrib/admin/views/doc.py:171 +#, python-format +msgid "Model %(name)r not found in app %(label)r" +msgstr "Modelis %(name)r programoje %(label)r nerastas" + +#: contrib/admin/views/doc.py:183 +#, python-format +msgid "the related `%(label)s.%(type)s` object" +msgstr "susijęs `%(label)s.%(type)s` objektas" + +#: contrib/admin/views/doc.py:183 +#: contrib/admin/views/doc.py:205 +#: contrib/admin/views/doc.py:219 +#: contrib/admin/views/doc.py:224 +msgid "model:" +msgstr "modelis:" + +#: contrib/admin/views/doc.py:214 +#, python-format +msgid "related `%(label)s.%(name)s` objects" +msgstr "susiję `%(label)s.%(name)s` objektai" + +#: contrib/admin/views/doc.py:219 +#, python-format +msgid "all %s" +msgstr "visi %s" + +#: contrib/admin/views/doc.py:224 +#, python-format +msgid "number of %s" +msgstr "%s skaičius" + +#: contrib/admin/views/doc.py:229 +#, python-format +msgid "Fields on %s objects" +msgstr "Objekto %s laukai" + +#: contrib/admin/views/doc.py:291 +#: contrib/admin/views/doc.py:301 +#: contrib/admin/views/doc.py:303 +#: contrib/admin/views/doc.py:309 +#: contrib/admin/views/doc.py:310 +#: contrib/admin/views/doc.py:312 +msgid "Integer" +msgstr "Sveikas skaičius" + +#: contrib/admin/views/doc.py:292 +msgid "Boolean (Either True or False)" +msgstr "Boolean (True arba False)" + +#: contrib/admin/views/doc.py:293 +#: contrib/admin/views/doc.py:311 +#, python-format +msgid "String (up to %(maxlength)s)" +msgstr "Eilutė (iki %(maxlength)s)" + +#: contrib/admin/views/doc.py:294 +msgid "Comma-separated integers" +msgstr "Kableliais atskirti sveikieji skaičiai" + +#: contrib/admin/views/doc.py:295 +msgid "Date (without time)" +msgstr "Data (be laiko)" + +#: contrib/admin/views/doc.py:296 +msgid "Date (with time)" +msgstr "Data (su laiku)" + +#: contrib/admin/views/doc.py:297 +msgid "E-mail address" +msgstr "E-mailo adresas" + +#: contrib/admin/views/doc.py:298 +#: contrib/admin/views/doc.py:299 +#: contrib/admin/views/doc.py:302 +msgid "File path" +msgstr "Kelias iki failo" + +#: contrib/admin/views/doc.py:300 +msgid "Decimal number" +msgstr "Dešimtainis skaičius" + +#: contrib/admin/views/doc.py:306 +msgid "Boolean (Either True, False or None)" +msgstr "Boolean (True arba False arba None)" + +#: contrib/admin/views/doc.py:307 +msgid "Relation to parent model" +msgstr "Sąsaja su tėviniu modeliu" + +#: contrib/admin/views/doc.py:308 +msgid "Phone number" +msgstr "Telefono numeris" + +#: contrib/admin/views/doc.py:313 +msgid "Text" +msgstr "Tekstas" + +#: contrib/admin/views/doc.py:314 +msgid "Time" +msgstr "Laikas" + +#: contrib/admin/views/doc.py:315 +#: contrib/flatpages/models.py:7 +msgid "URL" +msgstr "URL" + +#: contrib/admin/views/doc.py:316 +msgid "U.S. state (two uppercase letters)" +msgstr "JAV valstija (dvi didžiosios raidės)" + +#: contrib/admin/views/doc.py:317 +msgid "XML text" +msgstr "XML tekstas" + +#: contrib/admin/views/doc.py:343 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "%s neatrodo kaip urlpattern objektas" + +#: contrib/admin/templates/widget/file.html:2 +msgid "Currently:" +msgstr "Dabartinis:" + +#: contrib/admin/templates/widget/file.html:3 +msgid "Change:" +msgstr "Pakeisti:" + +#: contrib/admin/templates/widget/date_time.html:3 +msgid "Date:" +msgstr "Data:" + +#: contrib/admin/templates/widget/date_time.html:4 +msgid "Time:" +msgstr "Laikas:" + +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Documentation" +msgstr "Dokumentacija" + +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:46 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +msgid "Change password" +msgstr "Pakeisti slaptažodį" + +#: contrib/admin/templates/admin/change_list.html:6 +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/invalid_setup.html:4 +#: contrib/admin/templates/admin/change_form.html:13 +#: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/base.html:30 +#: contrib/admin/templates/admin/auth/user/change_password.html:12 +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Home" +msgstr "Pradinis" + +#: contrib/admin/templates/admin/change_list.html:12 +#, python-format +msgid "Add %(name)s" +msgstr "Pridėti %(name)s" + +#: contrib/admin/templates/admin/filter.html:2 +#, python-format +msgid " By %(filter_title)s " +msgstr " Pagal %(filter_title)s " + +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/change_form.html:21 +msgid "History" +msgstr "Istorija" + +#: contrib/admin/templates/admin/object_history.html:18 +msgid "Date/time" +msgstr "Data/laikas" + +#: contrib/admin/templates/admin/object_history.html:19 +msgid "User" +msgstr "Vartotojas" + +#: contrib/admin/templates/admin/object_history.html:20 +msgid "Action" +msgstr "Veiksmas" + +#: contrib/admin/templates/admin/object_history.html:26 +msgid "DATE_WITH_TIME_FULL" +msgstr "j. N Y, H:i" + +#: contrib/admin/templates/admin/object_history.html:36 +msgid "This object doesn't have a change history. It probably wasn't added via this admin site." +msgstr "Šis objektas neturi pakeitimų istorijos. Tikriausiai jis buvo pridėtas ne per admin puslapį." + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Go" +msgstr "Eiti!" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "1 rezultatas" +msgstr[1] "%(counter)s rezultatai" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s iš viso" + +#: contrib/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "Rodyti visus" + +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "Django saito administravimas" + +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "Django administravimas" + +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "Serverio klaida" + +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "Serverio klaida (500)" + +#: contrib/admin/templates/admin/500.html:9 +msgid "Server Error (500)" +msgstr "Serverio klaida (500)" + +#: 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 "Įvyko klaida. Apie ją buvo pranešta administratoriams ir turėtų būti greitai ištaisyta. Dėkojame už kantrybę." + +#: 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 "Kažkas yra negerai su jūsų duomenų bazės instaliacija. Įsitikink, kad visos reikalingos lentelės sukurtos ir vartotojas turi teises skaityti duomenų bazę." + +#: contrib/admin/templates/admin/index.html:17 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "Modelis prieinamas %(name)s programoje." + +#: contrib/admin/templates/admin/index.html:18 +#, python-format +msgid "%(name)s" +msgstr "%(name)s" + +#: contrib/admin/templates/admin/index.html:28 +#: contrib/admin/templates/admin/change_form.html:15 +msgid "Add" +msgstr "Pridėti" + +#: contrib/admin/templates/admin/index.html:34 +msgid "Change" +msgstr "Pakeisti" + +#: contrib/admin/templates/admin/index.html:44 +msgid "You don't have permission to edit anything." +msgstr "Neturi teisių ką nors keistis." + +#: contrib/admin/templates/admin/index.html:52 +msgid "Recent Actions" +msgstr "Neseni veiksmai" + +#: contrib/admin/templates/admin/index.html:53 +msgid "My Actions" +msgstr "Mano Veiksmai" + +#: contrib/admin/templates/admin/index.html:57 +msgid "None available" +msgstr "Nėra prieinamų" + +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "Puslapis nerastas" + +#: contrib/admin/templates/admin/404.html:10 +msgid "We're sorry, but the requested page could not be found." +msgstr "Atsiprašome, bet prašytas puslapis nerastas." + +#: contrib/admin/templates/admin/filters.html:4 +msgid "Filter" +msgstr "Filtras" + +#: contrib/admin/templates/admin/change_form.html:22 +msgid "View on site" +msgstr "Matyti saite" + +#: contrib/admin/templates/admin/change_form.html:32 +#: contrib/admin/templates/admin/auth/user/change_password.html:24 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Ištaisykite klaidą žemiau" +msgstr[1] "Ištaisykite klaidas žemiau" + +#: contrib/admin/templates/admin/change_form.html:50 +msgid "Ordering" +msgstr "Rūšiavimas" + +#: contrib/admin/templates/admin/change_form.html:53 +msgid "Order:" +msgstr "Rūšiuoti:" + +#: contrib/admin/templates/admin/delete_confirmation.html:9 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Delete" +msgstr "Ištrinti" + +#: contrib/admin/templates/admin/delete_confirmation.html:14 +#, 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 "Trinant %(object_name)s '%(escaped_object)s' turi būti ištrinti ir susiję objektai, bet tavo vartotojas neturi teisių ištrinti šių objektų:" + +#: contrib/admin/templates/admin/delete_confirmation.html:21 +#, 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 "Ar tu esi tikras, kad nori ištrinti %(object_name)s \"%(escaped_object)s\"? Visi susiję objektai bus ištrinti:" + +#: contrib/admin/templates/admin/delete_confirmation.html:26 +msgid "Yes, I'm sure" +msgstr "Taip, aš esu tikras" + +#: contrib/admin/templates/admin/base.html:25 +msgid "Welcome," +msgstr "Sveiki," + +#: contrib/admin/templates/admin/submit_line.html:4 +msgid "Save as new" +msgstr "Išsaugoti kaip naują" + +#: contrib/admin/templates/admin/submit_line.html:5 +msgid "Save and add another" +msgstr "Išsaugoti ir pridėti naują" + +#: contrib/admin/templates/admin/submit_line.html:6 +msgid "Save and continue editing" +msgstr "Išsaugoti ir tęsti redagavimą" + +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save" +msgstr "Išsaugoti" + +#: contrib/admin/templates/admin/auth/user/change_password.html:28 +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Įvesk naują slaptažodį vartotojui %(username)s." + +#: contrib/admin/templates/admin/auth/user/change_password.html:34 +#: contrib/admin/templates/admin/auth/user/add_form.html:18 +msgid "Password" +msgstr "Slaptažodis" + +#: contrib/admin/templates/admin/auth/user/change_password.html:39 +#: contrib/admin/templates/admin/auth/user/add_form.html:23 +msgid "Password (again)" +msgstr "Slaptažodis (dar kartą)" + +#: contrib/admin/templates/admin/auth/user/change_password.html:40 +#: contrib/admin/templates/admin/auth/user/add_form.html:24 +msgid "Enter the same password as above, for verification." +msgstr "Patikrinimui įvesk tokį patį slaptažodį, kaip viršuje." + +#: 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 "Pirmiausi įvesk vartotojo vardą ir slaptažodį. Tada turėsi galimybę redaguoti daugiau nustatymų." + +#: contrib/admin/templates/admin/auth/user/add_form.html:12 +msgid "Username" +msgstr "Vartotojo vardas" + +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_form.html:6 +#: contrib/admin/templates/registration/password_change_form.html:10 +msgid "Password change" +msgstr "Slaptažodžio keitimas" + +#: contrib/admin/templates/registration/password_change_done.html:6 +#: contrib/admin/templates/registration/password_change_done.html:10 +msgid "Password change successful" +msgstr "Slaptažodis sėkmingai pakeistas" + +#: contrib/admin/templates/registration/password_change_done.html:12 +msgid "Your password was changed." +msgstr "Jūsų slaptažodis buvo pakeistas." + +#: 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 +#: contrib/admin/templates/registration/password_reset_done.html:4 +msgid "Password reset" +msgstr "Slaptažodžiu atstatymas(reset)" + +#: 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 "Pamiršai slaptažodį? Įvesk savo emailą žemiau ir mes atsiųsime naują slaptažodį emailu." + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "E-mailo adresas:" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "Atstatyti slaptažodį" + +#: contrib/admin/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Dėkui už praleistą laiką šiandien." + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "Prisijungti dar kartą" + +#: contrib/admin/templates/registration/password_reset_done.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:10 +msgid "Password reset successful" +msgstr "Slaptažodis sėkmingai atsatytas" + +#: 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 "Išsiuntėm naują slaptažodį e-mailu. Turėtumėte greitai gauti." + +#: contrib/admin/templates/registration/password_change_form.html:12 +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 "Saugumo sumetimais įvesk seną slaptažodį ir tada du kartus naują, kad įsitikinti, jog nesuklydai rašydamas" + +#: contrib/admin/templates/registration/password_change_form.html:17 +msgid "Old password:" +msgstr "Senas slaptažodis:" + +#: contrib/admin/templates/registration/password_change_form.html:19 +msgid "New password:" +msgstr "Naujas slaptažodis:" + +#: contrib/admin/templates/registration/password_change_form.html:21 +msgid "Confirm password:" +msgstr "Slaptažodžio patvirtinimas:" + +#: contrib/admin/templates/registration/password_change_form.html:23 +msgid "Change my password" +msgstr "Pakeisti slaptažodį" + +#: contrib/admin/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "Gavote šį laišką, nes paprašėte atstatyti slaptažodį" + +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "Jūsų vartotojui %(site_name)s saite" + +#: contrib/admin/templates/registration/password_reset_email.html:5 +#, python-format +msgid "Your new password is: %(new_password)s" +msgstr "Jūsų naujas slaptažodis yra: %(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 "Nebijokite pasikeisti šį slaptažodį puslapyje:" + +#: contrib/admin/templates/registration/password_reset_email.html:11 +msgid "Your username, in case you've forgotten:" +msgstr "Jūsų vartotojo vardas, jei netyčia užmiršote:" + +#: contrib/admin/templates/registration/password_reset_email.html:13 +msgid "Thanks for using our site!" +msgstr "Dėkui, kad naudojatės mūsų saitu!" + +#: contrib/admin/templates/registration/password_reset_email.html:15 +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s komanda" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Bookmarklets" +msgstr "Greitosios žymės" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:5 +msgid "Documentation bookmarklets" +msgstr "Doumentacijos greitosios žymės" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:9 +msgid "" +"\n" +"

                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\").

                \n" +msgstr "" +"\n" +"

                Greitųjų žymių įdiegimui, nutempkite nuorodą į greitųjų žymių\n" +"juostą, arba spauskite dešinį pelės klavišą ir pridėkite prie greitųjų žymių. Dabar galite\n" +"pasirinkti greitąją žymę iš bet kurio saito puslapio. Pastebėjimas, kad keletas iš šių\n" +"greitųjų žymių reikalauja, kad saitas būtų žiūrimas iš vidinio kompiuterio \n" +"(pasitarkite su administratorium, jei nežinai ar tavo kompiuteris yra vidinis).

                \n" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:19 +msgid "Documentation for this page" +msgstr "Šio puslapio dokumentacija" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:20 +msgid "Jumps you from any page to the documentation for the view that generates that page." +msgstr "Pereina iš bet kurio puslapio į jo view funkcijos dokumentaciją, kuri sukūria tą puslapį" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:22 +msgid "Show object ID" +msgstr "Parodyti objekto ID" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:23 +msgid "Shows the content-type and unique ID for pages that represent a single object." +msgstr "Parodyti content-type ir unikalų puslapių ID, kuris parodo vieną objektą." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:25 +msgid "Edit this object (current window)" +msgstr "Redaguoti šį objektą (einamajame lange)" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:26 +msgid "Jumps to the admin page for pages that represent a single object." +msgstr "Pereina į administravimo puslapį, kuris parodo vieną objektą." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:28 +msgid "Edit this object (new window)" +msgstr "Redaguoti šį objektą (naujame lange)" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:29 +msgid "As above, but opens the admin page in a new window." +msgstr "Kaip ir viršuje, bet administravimo puslapį atidaro naujame lange." + +#: contrib/contenttypes/models.py:36 +msgid "python model class name" +msgstr "python modelio klasės vardas" + +#: contrib/contenttypes/models.py:39 +msgid "content type" +msgstr "turinio tipas" + +#: contrib/contenttypes/models.py:40 +msgid "content types" +msgstr "turinio tipai" + +#: contrib/auth/views.py:40 +msgid "Logged out" +msgstr "Atsijungęs" + +#: contrib/auth/models.py:44 +#: contrib/auth/models.py:64 +msgid "name" +msgstr "vardas" + +#: contrib/auth/models.py:46 +msgid "codename" +msgstr "kodinis vardas" + +#: contrib/auth/models.py:49 +msgid "permission" +msgstr "leidimas" + +#: contrib/auth/models.py:50 +#: contrib/auth/models.py:65 +msgid "permissions" +msgstr "leidimai" + +#: contrib/auth/models.py:68 +msgid "group" +msgstr "grupė" + +#: contrib/auth/models.py:69 +#: contrib/auth/models.py:109 +msgid "groups" +msgstr "grupės" + +#: contrib/auth/models.py:99 +msgid "username" +msgstr "vartotojo vardas" + +#: contrib/auth/models.py:99 +msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)." +msgstr "Privalomas. 30 simbolių arba mažiau. Alfanumeriniai simboliai tik (raidės, skaitmenys ir pabraukimai)" + +#: contrib/auth/models.py:100 +msgid "first name" +msgstr "vardas" + +#: contrib/auth/models.py:101 +msgid "last name" +msgstr "pavardė" + +#: contrib/auth/models.py:102 +msgid "e-mail address" +msgstr "e-mailo adresas" + +#: contrib/auth/models.py:103 +msgid "password" +msgstr "slaptažodis" + +#: contrib/auth/models.py:103 +msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form." +msgstr "Naudok '[algo]$[salt]$[hexdigest]' arba naudok slaptažodžio keitimo formą." + +#: contrib/auth/models.py:104 +msgid "staff status" +msgstr "personalo statusas" + +#: contrib/auth/models.py:104 +msgid "Designates whether the user can log into this admin site." +msgstr "Pažymi ar vartotojas gali prisijungti prie administravimo puslapio." + +#: contrib/auth/models.py:105 +msgid "active" +msgstr "aktyvus" + +#: contrib/auth/models.py:105 +msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts." +msgstr "Pažymi ar šis vartotojas gali prisijungti prie Django administravimo. Nepažymėk šios lauko, vietoj vartotojo trynimo." + +#: contrib/auth/models.py:106 +msgid "superuser status" +msgstr "supervartotojo statusas" + +#: contrib/auth/models.py:106 +msgid "Designates that this user has all permissions without explicitly assigning them." +msgstr "Pažymi, kad šis vartotojas turi visas teises be specialių nustatymų." + +#: contrib/auth/models.py:107 +msgid "last login" +msgstr "paskutinį kartą prisijungęs" + +#: contrib/auth/models.py:108 +msgid "date joined" +msgstr "data, kada prisijungė" + +#: contrib/auth/models.py:110 +msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in." +msgstr "Prie rankiniu būdų priskirtų teisių, šis vartotojas taip pat gaus visas teises, kurias turi grupės, kurioms jis priklauso." + +#: contrib/auth/models.py:111 +msgid "user permissions" +msgstr "vartotojo leidimai" + +#: contrib/auth/models.py:115 +msgid "user" +msgstr "vartotojas" + +#: contrib/auth/models.py:116 +msgid "users" +msgstr "vartotojai" + +#: contrib/auth/models.py:122 +msgid "Personal info" +msgstr "Asmeninė informacija" + +#: contrib/auth/models.py:123 +msgid "Permissions" +msgstr "Leidimai" + +#: contrib/auth/models.py:124 +msgid "Important dates" +msgstr "Svarbios datos" + +#: contrib/auth/models.py:125 +msgid "Groups" +msgstr "Grupės" + +#: contrib/auth/models.py:269 +msgid "message" +msgstr "žinutė" + +#: contrib/auth/models.py:282 +msgid "AnonymousUser" +msgstr "Anoniminis vartotojas" + +#: contrib/auth/forms.py:17 +#: contrib/auth/forms.py:138 +msgid "The two password fields didn't match." +msgstr "Slaptažodžio laukai nesutapo" + +#: contrib/auth/forms.py:25 +msgid "A user with that username already exists." +msgstr "Jau egzistuoja vartotojas su tokiu vardu." + +#: contrib/auth/forms.py:53 +msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in." +msgstr "Atrodo, jūsų naršyklė nepriima sausainėlių(cookies). Sausainėliai yra reikalingi norint prisijungti." + +#: contrib/auth/forms.py:62 +msgid "This account is inactive." +msgstr "Ši paskyra yra neaktyvi." + +#: contrib/auth/forms.py:85 +msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?" +msgstr "Šis emailas nėra registruotas sistemoje. Ar esi tikras, kad tu užsiregistravęs?" + +#: contrib/auth/forms.py:117 +msgid "The two 'new password' fields didn't match." +msgstr "Naujo slaptažodžio laukai nesutapo" + +#: contrib/auth/forms.py:124 +msgid "Your old password was entered incorrectly. Please enter it again." +msgstr "Blogai įvestas senas slaptažodis. Bandykite dar kartą." + +#: contrib/localflavor/uk/forms.py:18 +msgid "Enter a postcode. A space is required between the two postcode parts." +msgstr "Įveskite pašto kodą. Tarpas reikalingas tarp dviejų pašto kodo dalių." + +#: contrib/localflavor/br/forms.py:18 +msgid "Enter a zip code in the format XXXXX-XXX." +msgstr "Įveskite pašto kodą XXXXX-XXX formatu." + +#: contrib/localflavor/br/forms.py:30 +msgid "Phone numbers must be in XX-XXXX-XXXX format." +msgstr "Telefonas turi būti XXX-XXXX-XXXX formatu." + +#: contrib/localflavor/br/forms.py:72 +msgid "This field requires only numbers." +msgstr "Šis laukas priima tik skaičius." + +#: contrib/localflavor/br/forms.py:74 +msgid "This field requires at most 11 digits or 14 characters." +msgstr "Šis laukas talpina daugiausiai 11 skaitmenų arba 14 simbolių." + +#: contrib/localflavor/br/forms.py:84 +msgid "Invalid CPF number." +msgstr "Netinkamas CPF numeris" + +#: contrib/localflavor/br/forms.py:106 +msgid "This field requires at least 14 digits" +msgstr "Šis laukas reikalauja mažiausiai 14 skaitmenų." + +#: contrib/localflavor/br/forms.py:116 +msgid "Invalid CNPJ number." +msgstr "Netinkamas CNPJ numeris" + +#: contrib/localflavor/au/forms.py:18 +msgid "Enter a 4 digit post code." +msgstr "Įveskite 4 skaitmenų pašto kodą." + +#: contrib/localflavor/fr/forms.py:17 +#: contrib/localflavor/de/forms.py:16 +#: contrib/localflavor/fi/forms.py:14 +msgid "Enter a zip code in the format XXXXX." +msgstr "Įveskite pašto kodą XXXXX formatu." + +#: contrib/localflavor/us/forms.py:18 +msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." +msgstr "Įveskite pašto kodą XXXXX arba XXXXX-XXXX formatu." + +#: contrib/localflavor/us/forms.py:51 +msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." +msgstr "Įveskite tinkamą JAV socialinio draudimo numerį." + +#: contrib/localflavor/de/de_states.py:5 +msgid "Baden-Wuerttemberg" +msgstr "" + +#: contrib/localflavor/de/de_states.py:6 +msgid "Bavaria" +msgstr "Bavarija" + +#: contrib/localflavor/de/de_states.py:7 +msgid "Berlin" +msgstr "Berlynas" + +#: contrib/localflavor/de/de_states.py:8 +msgid "Brandenburg" +msgstr "Brandenburgas" + +#: contrib/localflavor/de/de_states.py:9 +msgid "Bremen" +msgstr "Bremenas" + +#: contrib/localflavor/de/de_states.py:10 +msgid "Hamburg" +msgstr "Hamburgas" + +#: contrib/localflavor/de/de_states.py:11 +#, fuzzy +msgid "Hessen" +msgstr "Hesenas" + +#: 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 "Saksonija" + +#: 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:60 +msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format." +msgstr "Įveskite tinkamą Vokiško asmens id numerį XXXXXXXXXXX-XXXXXXX-XXXXXXX-X formatu." + +#: contrib/localflavor/jp/jp_prefectures.py:4 +msgid "Hokkaido" +msgstr "Hokaidas" + +#: contrib/localflavor/jp/jp_prefectures.py:5 +msgid "Aomori" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:6 +#, fuzzy +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 "Tokijas" + +#: 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 "Osaka" + +#: 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 +#, fuzzy +msgid "Shimane" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:36 +msgid "Okayama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:37 +msgid "Hiroshima" +msgstr "Hirošima" + +#: 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 +#, fuzzy +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 "Okinava" + +#: contrib/localflavor/jp/forms.py:21 +msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." +msgstr "Įveskite pašto kodą XXXXXXX arba XXX-XXXX formatu." + +#: 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 +#, fuzzy +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 +#, fuzzy +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 +#, fuzzy +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 +#, fuzzy +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 +#, fuzzy +msgid "Zug" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:30 +msgid "Zurich" +msgstr "" + +#: contrib/localflavor/ch/forms.py:18 +#: contrib/localflavor/no/forms.py:15 +msgid "Enter a zip code in the format XXXX." +msgstr "Įveskite pašto kodą XXXX formatu." + +#: contrib/localflavor/ch/forms.py:90 +msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format." +msgstr "Įveskite tinkamą šveicarų asmens id ar paso numerį X1234567<0 arba 1234567890 formatu." + +#: contrib/localflavor/is_/forms.py:16 +msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +msgstr "Įveskite tinkamą islandų asmens id numerį XXXXXX-XXXX formatu." + +#: contrib/localflavor/is_/forms.py:30 +msgid "The Icelandic identification number is not valid." +msgstr "Islandiškas asmend id yra netinkamas." + +#: contrib/localflavor/it/forms.py:16 +msgid "Enter a valid zip code." +msgstr "Įveskite tinkamą pašto kodą." + +#: contrib/localflavor/it/forms.py:41 +msgid "Enter a valid Social Security number." +msgstr "Įveskite tinkamą socialinio draudimo numerį." + +#: contrib/localflavor/it/forms.py:68 +msgid "Enter a valid VAT number." +msgstr "Įveskite tinkamą PVM numerį" + +#: contrib/localflavor/no/forms.py:36 +msgid "Enter a valid Norwegian social security number." +msgstr "Įveskite tinkamą norvegiška socialinio draudimo numerį." + +#: contrib/localflavor/cl/forms.py:21 +msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X." +msgstr "Įveskite tinkamą Čilės RUT XX.XXX.XXX-X formatu." + +#: contrib/localflavor/cl/forms.py:26 +msgid "Enter valid a Chilean RUT" +msgstr "Įveskite tinkamą Čilės RUT" + +#: contrib/localflavor/fi/forms.py:40 +#: contrib/localflavor/fi/forms.py:45 +msgid "Enter a valid Finnish social security number." +msgstr "Įveskite tinkamą suomišką socialinio draudimo numerį." + +#: contrib/sessions/models.py:68 +msgid "session key" +msgstr "sesijos raktas" + +#: contrib/sessions/models.py:69 +msgid "session data" +msgstr "sesijos data" + +#: contrib/sessions/models.py:70 +msgid "expire date" +msgstr "galiojima data" + +#: contrib/sessions/models.py:74 +msgid "session" +msgstr "sesija" + +#: contrib/sessions/models.py:75 +msgid "sessions" +msgstr "sesijos" + +#: contrib/flatpages/models.py:8 +msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "Pavyzdžiui: '/about/contact/'. Įsitikink, kad yra pasvirieji brūkšniai pradžioj ir gale." + +#: contrib/flatpages/models.py:9 +msgid "title" +msgstr "pavadinimas" + +#: contrib/flatpages/models.py:10 +msgid "content" +msgstr "turinys" + +#: contrib/flatpages/models.py:11 +msgid "enable comments" +msgstr "įjungti komentavimą" + +#: contrib/flatpages/models.py:12 +msgid "template name" +msgstr "šablono vardas" + +#: contrib/flatpages/models.py:13 +msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'." +msgstr "Pavyzdžiui: 'flatpages/contact_page.html'. Jeigu bus nenurodytas, sistema naudos 'flatpages/default.html'." + +#: contrib/flatpages/models.py:14 +msgid "registration required" +msgstr "registracija privaloma" + +#: contrib/flatpages/models.py:14 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "Jeigu pažymėta, tik prisijungę vartotojai galės matyti šį puslapį." + +#: contrib/flatpages/models.py:18 +msgid "flat page" +msgstr "paprastas puslapis" + +#: contrib/flatpages/models.py:19 +msgid "flat pages" +msgstr "paprasti puslapiai" + +#: utils/dates.py:6 +msgid "Monday" +msgstr "Pirmadienis" + +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "Antradienis" + +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "Trečiadienis" + +#: utils/dates.py:6 +msgid "Thursday" +msgstr "Ketvirtadienis" + +#: utils/dates.py:6 +msgid "Friday" +msgstr "Penktadienis" + +#: utils/dates.py:7 +msgid "Saturday" +msgstr "Šeštadienis" + +#: utils/dates.py:7 +msgid "Sunday" +msgstr "Sekmadienis" + +#: utils/dates.py:14 +msgid "January" +msgstr "Sausis" + +#: utils/dates.py:14 +msgid "February" +msgstr "Vasaris" + +#: utils/dates.py:14 +#: utils/dates.py:27 +msgid "March" +msgstr "Kovas" + +#: utils/dates.py:14 +#: utils/dates.py:27 +msgid "April" +msgstr "Balandis" + +#: utils/dates.py:14 +#: utils/dates.py:27 +msgid "May" +msgstr "Gegužė" + +#: utils/dates.py:14 +#: utils/dates.py:27 +msgid "June" +msgstr "Birželis" + +#: utils/dates.py:15 +#: utils/dates.py:27 +msgid "July" +msgstr "Liepa" + +#: utils/dates.py:15 +msgid "August" +msgstr "Rugpjūtis" + +#: utils/dates.py:15 +msgid "September" +msgstr "Rugsėjis" + +#: utils/dates.py:15 +msgid "October" +msgstr "Spalis" + +#: utils/dates.py:15 +msgid "November" +msgstr "Lapkritis" + +#: utils/dates.py:16 +msgid "December" +msgstr "Gruodis" + +#: utils/dates.py:19 +msgid "jan" +msgstr "sau" + +#: utils/dates.py:19 +msgid "feb" +msgstr "vas" + +#: utils/dates.py:19 +msgid "mar" +msgstr "kov" + +#: utils/dates.py:19 +msgid "apr" +msgstr "bal" + +#: utils/dates.py:19 +msgid "may" +msgstr "geg" + +#: utils/dates.py:19 +msgid "jun" +msgstr "bir" + +#: utils/dates.py:20 +msgid "jul" +msgstr "lie" + +#: utils/dates.py:20 +msgid "aug" +msgstr "rugp" + +#: utils/dates.py:20 +msgid "sep" +msgstr "rugs" + +#: utils/dates.py:20 +msgid "oct" +msgstr "spa" + +#: utils/dates.py:20 +msgid "nov" +msgstr "lap" + +#: utils/dates.py:20 +msgid "dec" +msgstr "grd" + +#: utils/dates.py:27 +msgid "Jan." +msgstr "Sau." + +#: utils/dates.py:27 +msgid "Feb." +msgstr "Vas." + +#: utils/dates.py:28 +msgid "Aug." +msgstr "Rugp." + +#: utils/dates.py:28 +msgid "Sept." +msgstr "Rugs." + +#: utils/dates.py:28 +msgid "Oct." +msgstr "Spa." + +#: utils/dates.py:28 +msgid "Nov." +msgstr "Lap." + +#: utils/dates.py:28 +msgid "Dec." +msgstr "Grd." + +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "metai" +msgstr[1] "metai" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "mėnesis" +msgstr[1] "mėnesiai" + +#: utils/timesince.py:14 +msgid "week" +msgid_plural "weeks" +msgstr[0] "savaitė" +msgstr[1] "savaitės" + +#: utils/timesince.py:15 +msgid "day" +msgid_plural "days" +msgstr[0] "diena" +msgstr[1] "dienos" + +#: utils/timesince.py:16 +msgid "hour" +msgid_plural "hours" +msgstr[0] "valanda" +msgstr[1] "valandos" + +#: utils/timesince.py:17 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minutė" +msgstr[1] "minutės" + +#: utils/timesince.py:40 +#, python-format +msgid "%d milliseconds" +msgstr "%d milisekundės" + +#: utils/timesince.py:41 +#, python-format +msgid "%(number)d %(type)s" +msgstr "%(number)d %(type)s" + +#: utils/timesince.py:47 +#, python-format +msgid ", %(number)d %(type)s" +msgstr ", %(number)d %(type)s" + +#: utils/dateformat.py:40 +#, fuzzy +msgid "p.m." +msgstr "p.m." + +#: utils/dateformat.py:41 +#, fuzzy +msgid "a.m." +msgstr "a.m." + +#: utils/dateformat.py:46 +#, fuzzy +msgid "PM" +msgstr "PM" + +#: utils/dateformat.py:47 +#, fuzzy +msgid "AM" +msgstr "AM" + +#: utils/dateformat.py:95 +msgid "midnight" +msgstr "vidurnaktis" + +#: utils/dateformat.py:97 +msgid "noon" +msgstr "vidurdienis" + +#: utils/translation/trans_real.py:358 +msgid "DATE_FORMAT" +msgstr "DATE_FORMAT" + +#: utils/translation/trans_real.py:359 +msgid "DATETIME_FORMAT" +msgstr "DATETIME_FORMAT" + +#: utils/translation/trans_real.py:360 +msgid "TIME_FORMAT" +msgstr "TIME_FORMAT" + +#: utils/translation/trans_real.py:376 +msgid "YEAR_MONTH_FORMAT" +msgstr "YEAR_MONTH_FORMAT" + +#: utils/translation/trans_real.py:377 +msgid "MONTH_DAY_FORMAT" +msgstr "MONTH_DAY_FORMAT" + +#: template/defaultfilters.py:491 +msgid "yes,no,maybe" +msgstr "taip,ne,galbūt" + +#: template/defaultfilters.py:520 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d baitas" +msgstr[1] "%(size)d baitai" + +#: template/defaultfilters.py:522 +#, python-format +msgid "%.1f KB" +msgstr "%.1f KB" + +#: template/defaultfilters.py:524 +#, python-format +msgid "%.1f MB" +msgstr "%.1f MB" + +#: template/defaultfilters.py:525 +#, python-format +msgid "%.1f GB" +msgstr "%.1f GB" + diff --git a/django/conf/locale/lt/LC_MESSAGES/djangojs.mo b/django/conf/locale/lt/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..d703bfbe60d123228e1b950c31f2d41ad1fb49eb GIT binary patch literal 1667 zcmZ9L&u?2r5XTn?Pz)4W%8vtwy+i_4FLjbqEE7E_ZSZR_%Xm6YvNOdA^_V2M|B@ z2unEUM=<314ZH;Y1%^7#p{P&53t-5bf!JdAX8arspCH)6eTNa^L(cH6!kxgS%mtKZ zya9&Vo*b{w456>rW-{7kZ(`zl*u|L*S6%jcVWx+=LT~>Y*SJ{8R#+oRSYs%p5Q9q}FN*-~f< z8~1r5w^H$@81b8hCM;^i8%0_;&pVWR%6eq^t=OBuLo=Kjwka+J)|82sY2UL$V>Fg~ ztW6obScf-xm*2tM;T_f?MX~22Q&=ANjg09X_bwMY;jxnOfU`~?p`8Maj(F3Q=oaLH zdWRA{mAd`HmZlvm!%j!|!a`tOGhH)dE%MwY=c(LiS#ykoqrD_LBI~5lb-sNpbZRPX z%8m6=)1@+rHjC6nT~p_k)~#-|Wl4DWM%%(uov&4^wWxY6T78eNt=FsTm#gd5DjcIW z4Q0srq+gA%t<~4xzg$IR_+;qC5DRD0|fYW&F6hM$~?VgQGhaMDUW;5cqD{$inf$#HRTojdqxmc7Z@P^i&j`v74UB{\n" +"Language-Team: Django-i18n \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 "Galimas %s" + +#: contrib/admin/media/js/SelectFilter2.js:41 +msgid "Choose all" +msgstr "Pasirinkti visus" + +#: contrib/admin/media/js/SelectFilter2.js:46 +msgid "Add" +msgstr "Pridėti" + +#: contrib/admin/media/js/SelectFilter2.js:48 +msgid "Remove" +msgstr "Pašalinti" + +#: contrib/admin/media/js/SelectFilter2.js:53 +#, perl-format +msgid "Chosen %s" +msgstr "Pasirinktas %s" + +#: contrib/admin/media/js/SelectFilter2.js:54 +msgid "Select your choice(s) and click " +msgstr "Pasirink ir paspausk" + +#: contrib/admin/media/js/SelectFilter2.js:59 +msgid "Clear all" +msgstr "Išvalyti visus" + +#: contrib/admin/media/js/dateparse.js:32 +#: contrib/admin/media/js/calendar.js:24 +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "Sausis Vasaris Kovas Balandis Gegužė Birželis Liepa Rugpjūtis Rugsėjis " +"Spalis Lapkritis Gruodis" + +#: contrib/admin/media/js/dateparse.js:33 +msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" +msgstr "Sekmadienis Pirmadienis Antradienis Trečiadienis Ketvirtadienis Penktadienis Šeštadienis" + +#: contrib/admin/media/js/calendar.js:25 +msgid "S M T W T F S" +msgstr "S P A T K P Š" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 +msgid "Now" +msgstr "Dabar" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51 +msgid "Clock" +msgstr "Laikrodis" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78 +msgid "Choose a time" +msgstr "Pasirink laiką" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82 +msgid "Midnight" +msgstr "Vidurnaktis" + +#: 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 "Vidurdienis" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183 +msgid "Cancel" +msgstr "Atšaukti" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177 +msgid "Today" +msgstr "Šiandien" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132 +msgid "Calendar" +msgstr "Kalendorius" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175 +msgid "Yesterday" +msgstr "Vakar" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179 +msgid "Tomorrow" +msgstr "Rytoj" + +#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 +#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 +msgid "Show" +msgstr "Parodyti" + +#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63 +msgid "Hide" +msgstr "Slėpti" diff --git a/django/conf/locale/pl/LC_MESSAGES/django.mo b/django/conf/locale/pl/LC_MESSAGES/django.mo index b82290dd046b42c672080d1f2504321e9e9b5e61..5cdabb1d11e5de84f399cb0bcf2860da6c65ce25 100644 GIT binary patch delta 21149 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 diff --git a/django/conf/locale/pl/LC_MESSAGES/django.po b/django/conf/locale/pl/LC_MESSAGES/django.po index d084d90688..6f73bb45d0 100644 --- a/django/conf/locale/pl/LC_MESSAGES/django.po +++ b/django/conf/locale/pl/LC_MESSAGES/django.po @@ -5,9 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-04-14 18:02+0200\n" +"POT-Creation-Date: 2008-06-24 07:36+0200\n" "PO-Revision-Date: 2008-02-25 15:53+0100\n" -"Last-Translator: Piotr Lewandowski \n" +"Last-Translator: Jarek Zgoda \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -16,191 +16,199 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%" "100<10 || n%100>=20) ? 1 : 2);\n" -#: conf/global_settings.py:39 +#: conf/global_settings.py:44 msgid "Arabic" msgstr "Arabski" -#: conf/global_settings.py:40 +#: conf/global_settings.py:45 msgid "Bengali" msgstr "Bengalski" -#: conf/global_settings.py:41 +#: conf/global_settings.py:46 msgid "Bulgarian" msgstr "Bułgarski" -#: conf/global_settings.py:42 +#: conf/global_settings.py:47 msgid "Catalan" msgstr "Kataloński" -#: conf/global_settings.py:43 +#: conf/global_settings.py:48 msgid "Czech" msgstr "Czeski" -#: conf/global_settings.py:44 +#: conf/global_settings.py:49 msgid "Welsh" msgstr "Walijski" -#: conf/global_settings.py:45 +#: conf/global_settings.py:50 msgid "Danish" msgstr "Duński" -#: conf/global_settings.py:46 +#: conf/global_settings.py:51 msgid "German" msgstr "Niemiecki" -#: conf/global_settings.py:47 +#: conf/global_settings.py:52 msgid "Greek" msgstr "Grecki" -#: conf/global_settings.py:48 +#: conf/global_settings.py:53 msgid "English" msgstr "Angielski" -#: conf/global_settings.py:49 +#: conf/global_settings.py:54 msgid "Spanish" msgstr "Hiszpański" -#: conf/global_settings.py:50 +#: conf/global_settings.py:55 +msgid "Estonian" +msgstr "Estoński" + +#: conf/global_settings.py:56 msgid "Argentinean Spanish" msgstr "Hiszpański argentyński" -#: conf/global_settings.py:51 +#: conf/global_settings.py:57 msgid "Basque" msgstr "Baskijski" -#: conf/global_settings.py:52 +#: conf/global_settings.py:58 msgid "Persian" msgstr "Perski" -#: conf/global_settings.py:53 +#: conf/global_settings.py:59 msgid "Finnish" msgstr "Fiński" -#: conf/global_settings.py:54 +#: conf/global_settings.py:60 msgid "French" msgstr "Francuski" -#: conf/global_settings.py:55 +#: conf/global_settings.py:61 msgid "Irish" msgstr "Irlandzki" -#: conf/global_settings.py:56 +#: conf/global_settings.py:62 msgid "Galician" msgstr "Galicyjski" -#: conf/global_settings.py:57 +#: conf/global_settings.py:63 msgid "Hungarian" msgstr "Węgierski" -#: conf/global_settings.py:58 +#: conf/global_settings.py:64 msgid "Hebrew" msgstr "Hebrajski" -#: conf/global_settings.py:59 +#: conf/global_settings.py:65 msgid "Croatian" msgstr "Chorwacki" -#: conf/global_settings.py:60 +#: conf/global_settings.py:66 msgid "Icelandic" msgstr "Islandzki" -#: conf/global_settings.py:61 +#: conf/global_settings.py:67 msgid "Italian" msgstr "Włoski" -#: conf/global_settings.py:62 +#: conf/global_settings.py:68 msgid "Japanese" msgstr "Japoński" -#: conf/global_settings.py:63 +#: conf/global_settings.py:69 msgid "Georgian" msgstr "Gruziński" -#: conf/global_settings.py:64 +#: conf/global_settings.py:70 msgid "Korean" msgstr "Koreański" -#: conf/global_settings.py:65 +#: conf/global_settings.py:71 msgid "Khmer" msgstr "Khmerski" -#: conf/global_settings.py:66 +#: conf/global_settings.py:72 msgid "Kannada" msgstr "Kannada" -#: conf/global_settings.py:67 +#: conf/global_settings.py:73 msgid "Latvian" msgstr "Łotewski" -#: conf/global_settings.py:68 +#: conf/global_settings.py:74 +msgid "Lithuanian" +msgstr "Litewski" + +#: conf/global_settings.py:75 msgid "Macedonian" msgstr "Macedoński" -#: conf/global_settings.py:69 +#: conf/global_settings.py:76 msgid "Dutch" msgstr "Holenderski" -#: conf/global_settings.py:70 +#: conf/global_settings.py:77 msgid "Norwegian" msgstr "Norweski" -#: conf/global_settings.py:71 +#: conf/global_settings.py:78 msgid "Polish" msgstr "Polski" -#: conf/global_settings.py:72 +#: conf/global_settings.py:79 msgid "Portugese" msgstr "Portugalski" -#: conf/global_settings.py:73 +#: conf/global_settings.py:80 msgid "Brazilian Portuguese" msgstr "Brazylijski portugalski" -#: conf/global_settings.py:74 +#: conf/global_settings.py:81 msgid "Romanian" msgstr "Rumuński" -#: conf/global_settings.py:75 +#: conf/global_settings.py:82 msgid "Russian" msgstr "Rosyjski" -#: conf/global_settings.py:76 +#: conf/global_settings.py:83 msgid "Slovak" msgstr "Słowacki" -#: conf/global_settings.py:77 +#: conf/global_settings.py:84 msgid "Slovenian" msgstr "Słoweński" -#: conf/global_settings.py:78 +#: conf/global_settings.py:85 msgid "Serbian" msgstr "Serbski" -#: conf/global_settings.py:79 +#: conf/global_settings.py:86 msgid "Swedish" msgstr "Szwedzki" -#: conf/global_settings.py:80 +#: conf/global_settings.py:87 msgid "Tamil" msgstr "Tamilski" -#: conf/global_settings.py:81 +#: conf/global_settings.py:88 msgid "Telugu" msgstr "Telugu" -#: conf/global_settings.py:82 +#: conf/global_settings.py:89 msgid "Turkish" msgstr "Turecki" -#: conf/global_settings.py:83 +#: conf/global_settings.py:90 msgid "Ukrainian" msgstr "Ukraiński" -#: conf/global_settings.py:84 +#: conf/global_settings.py:91 msgid "Simplified Chinese" msgstr "Uproszczony chiński" -#: conf/global_settings.py:85 +#: conf/global_settings.py:92 msgid "Traditional Chinese" msgstr "Chiński tradycyjny" @@ -417,7 +425,7 @@ msgstr "" #: contrib/admin/templates/admin/delete_confirmation.html:25 msgid "Yes, I'm sure" -msgstr "Tak, usuń" +msgstr "Tak, na pewno" #: contrib/admin/templates/admin/filter.html:2 #, python-format @@ -824,15 +832,15 @@ msgstr "" "Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i " "spróbuj ponownie." -#: contrib/admin/views/decorators.py:90 -msgid "Usernames cannot contain the '@' character." -msgstr "Nazwy użytkowników nie mogą zawierać znaków '@'." - -#: contrib/admin/views/decorators.py:92 +#: contrib/admin/views/decorators.py:89 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "Twój adres e-mail to nie jest twój login. Spróbuj '%s'." +#: contrib/admin/views/decorators.py:93 +msgid "Usernames cannot contain the '@' character." +msgstr "Nazwy użytkowników nie mogą zawierać znaków '@'." + #: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50 #: contrib/admin/views/doc.py:52 msgid "tag:" @@ -1063,7 +1071,7 @@ msgstr "Zaznacz %s" msgid "Select %s to change" msgstr "Zaznacz %s aby zmienić" -#: contrib/admin/views/main.py:784 +#: contrib/admin/views/main.py:765 msgid "Database error" msgstr "Błąd bazy danych" @@ -1128,15 +1136,15 @@ msgstr "uprawnienia" msgid "group" msgstr "grupa" -#: contrib/auth/models.py:98 contrib/auth/models.py:141 +#: contrib/auth/models.py:98 contrib/auth/models.py:148 msgid "groups" msgstr "grupy" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:138 msgid "username" msgstr "użytkownik" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:138 msgid "" "Required. 30 characters or fewer. Alphanumeric characters only (letters, " "digits and underscores)." @@ -1144,23 +1152,23 @@ msgstr "" "Wymagane. 30 znaków lub mniej. Tylko znaki alfanumeryczne (litery, cyfry i " "podkreślenia)." -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:139 msgid "first name" msgstr "Imię" -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:140 msgid "last name" msgstr "Nazwisko" -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:141 msgid "e-mail address" msgstr "adres e-mail" -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:142 msgid "password" msgstr "hasło" -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:142 msgid "" "Use '[algo]$[salt]$[hexdigest]' or use the change " "password form." @@ -1168,19 +1176,19 @@ msgstr "" "Użyj '[algo]$[salt]$[hexdigest]' lub formularza zmiany " "hasła." -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:143 msgid "staff status" msgstr "w zespole" -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:143 msgid "Designates whether the user can log into this admin site." msgstr "Oznacza czy użytkownik może zalogować się do panelu admina." -#: contrib/auth/models.py:137 +#: contrib/auth/models.py:144 msgid "active" msgstr "aktywny" -#: contrib/auth/models.py:137 +#: contrib/auth/models.py:144 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1188,11 +1196,11 @@ msgstr "" "Oznacza czy użytkownika należy uważać za aktywnego. Odznacz tozamiast usuwać " "konta." -#: contrib/auth/models.py:138 +#: contrib/auth/models.py:145 msgid "superuser status" msgstr "Główny Administrator" -#: contrib/auth/models.py:138 +#: contrib/auth/models.py:145 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -1200,15 +1208,15 @@ msgstr "" "Oznacza, że ten użytkownik ma wszystkie uprawnienia bez jawnego " "przypisywania ich." -#: contrib/auth/models.py:139 +#: contrib/auth/models.py:146 msgid "last login" msgstr "ostatnio zalogowany" -#: contrib/auth/models.py:140 +#: contrib/auth/models.py:147 msgid "date joined" msgstr "data przyłączenia" -#: contrib/auth/models.py:142 +#: contrib/auth/models.py:149 msgid "" "In addition to the permissions manually assigned, this user will also get " "all permissions granted to each group he/she is in." @@ -1216,39 +1224,39 @@ msgstr "" "Oprócz uprawnień przypisanych bezpośrednio użytkownikowi otrzyma on " "uprawnienia grup, do których należy." -#: contrib/auth/models.py:143 +#: contrib/auth/models.py:150 msgid "user permissions" msgstr "uprawnienia użytkownika" -#: contrib/auth/models.py:147 +#: contrib/auth/models.py:154 msgid "user" msgstr "użytkownik" -#: contrib/auth/models.py:148 +#: contrib/auth/models.py:155 msgid "users" msgstr "użytkownicy" -#: contrib/auth/models.py:154 +#: contrib/auth/models.py:161 msgid "Personal info" msgstr "Dane osobowe" -#: contrib/auth/models.py:155 +#: contrib/auth/models.py:162 msgid "Permissions" msgstr "Uprawnienia" -#: contrib/auth/models.py:156 +#: contrib/auth/models.py:163 msgid "Important dates" msgstr "Ważne daty" -#: contrib/auth/models.py:157 +#: contrib/auth/models.py:164 msgid "Groups" msgstr "Grupy" -#: contrib/auth/models.py:316 +#: contrib/auth/models.py:323 msgid "message" msgstr "wiadomość" -#: contrib/auth/views.py:47 +#: contrib/auth/views.py:48 msgid "Logged out" msgstr "Wylogowany" @@ -3516,23 +3524,23 @@ msgstr "przekieruj" msgid "redirects" msgstr "przekierowania" -#: contrib/sessions/models.py:41 +#: contrib/sessions/models.py:45 msgid "session key" msgstr "klucz sesji" -#: contrib/sessions/models.py:42 +#: contrib/sessions/models.py:47 msgid "session data" msgstr "data sesji" -#: contrib/sessions/models.py:43 +#: contrib/sessions/models.py:48 msgid "expire date" msgstr "data wygaśnięcia sesji" -#: contrib/sessions/models.py:48 +#: contrib/sessions/models.py:53 msgid "session" msgstr "sesja" -#: contrib/sessions/models.py:49 +#: contrib/sessions/models.py:54 msgid "sessions" msgstr "sesje" @@ -3617,7 +3625,7 @@ msgstr "Rok nie może być wcześniejszy niż 1900." msgid "Invalid date: %s" msgstr "Niepoprawna data: %s" -#: core/validators.py:156 db/models/fields/__init__.py:527 +#: core/validators.py:156 db/models/fields/__init__.py:548 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Proszę wpisać poprawną datę w formacie RRRR-MM-DD." @@ -3625,7 +3633,7 @@ msgstr "Proszę wpisać poprawną datę w formacie RRRR-MM-DD." msgid "Enter a valid time in HH:MM format." msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM." -#: core/validators.py:165 db/models/fields/__init__.py:604 +#: core/validators.py:165 db/models/fields/__init__.py:625 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Wprowadź poprawną datę i godzinę w formacie RRRR-MM-DD GG:MM." @@ -3888,60 +3896,60 @@ msgstr "" msgid "%(object)s with this %(type)s already exists for the given %(field)s." msgstr "%(object)s z %(type)s już istnieje dla %(field)s." -#: db/models/fields/__init__.py:52 +#: db/models/fields/__init__.py:51 #, python-format msgid "%(optname)s with this %(fieldname)s already exists." msgstr "Już istnieje %(optname)s z %(fieldname)s." -#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:327 -#: db/models/fields/__init__.py:759 db/models/fields/__init__.py:770 +#: db/models/fields/__init__.py:176 db/models/fields/__init__.py:348 +#: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791 #: newforms/fields.py:46 oldforms/__init__.py:374 msgid "This field is required." msgstr "To pole jest wymagane." -#: db/models/fields/__init__.py:427 +#: db/models/fields/__init__.py:448 msgid "This value must be an integer." msgstr "Ta wartość musi być liczbą całkowitą." -#: db/models/fields/__init__.py:466 +#: db/models/fields/__init__.py:487 msgid "This value must be either True or False." msgstr "" "Ta wartość musi być wartością logiczną (True, False - prawda lub fałsz)." -#: db/models/fields/__init__.py:490 +#: db/models/fields/__init__.py:511 msgid "This field cannot be null." msgstr "To pole nie może być puste." -#: db/models/fields/__init__.py:668 +#: db/models/fields/__init__.py:689 msgid "This value must be a decimal number." msgstr "Ta wartość musi być liczbą dziesiętną." -#: db/models/fields/__init__.py:779 +#: db/models/fields/__init__.py:800 msgid "Enter a valid filename." msgstr "Wpisz poprawną nazwę pliku." -#: db/models/fields/__init__.py:960 +#: db/models/fields/__init__.py:981 msgid "This value must be either None, True or False." msgstr "" "Ta wartość musi być jedną z None (nic), True (prawda) lub False (fałsz)." -#: db/models/fields/related.py:93 +#: db/models/fields/related.py:94 #, python-format msgid "Please enter a valid %s." msgstr "Proszę wpisać poprawne %s." -#: db/models/fields/related.py:701 +#: db/models/fields/related.py:746 msgid "Separate multiple IDs with commas." msgstr "Oddziel identyfikatory przecinkami." -#: db/models/fields/related.py:703 +#: db/models/fields/related.py:748 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby " "zaznaczyć więcej niż jeden wybór." -#: db/models/fields/related.py:750 +#: db/models/fields/related.py:795 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -4003,11 +4011,11 @@ msgstr "Upewnij się, że jest nie więcej niż %s miejsc po przecinku." msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Upewnij się, że jest nie więcej niż %s miejsc przed przecinkiem." -#: newforms/fields.py:263 newforms/fields.py:751 +#: newforms/fields.py:263 newforms/fields.py:750 msgid "Enter a valid date." msgstr "Wpisz poprawną datę." -#: newforms/fields.py:296 newforms/fields.py:752 +#: newforms/fields.py:296 newforms/fields.py:751 msgid "Enter a valid time." msgstr "Wpisz poprawną godzinę." @@ -4031,25 +4039,25 @@ msgstr "Wpisz poprawny URL." msgid "This URL appears to be a broken link." msgstr "Ten odnośnik jest nieprawidłowy." -#: newforms/fields.py:560 newforms/models.py:299 +#: newforms/fields.py:559 newforms/models.py:305 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów." -#: newforms/fields.py:599 +#: newforms/fields.py:598 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "" "Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów." -#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371 +#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:372 msgid "Enter a list of values." msgstr "Podaj listę wartości." -#: newforms/fields.py:780 +#: newforms/fields.py:779 msgid "Enter a valid IPv4 address." msgstr "Wprowadź poprawny adres IPv4." -#: newforms/models.py:372 +#: newforms/models.py:373 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów." diff --git a/django/contrib/auth/views.py b/django/contrib/auth/views.py index d3d8b4ccb7..524710327a 100644 --- a/django/contrib/auth/views.py +++ b/django/contrib/auth/views.py @@ -1,17 +1,18 @@ +from django import oldforms +from django.contrib.auth import REDIRECT_FIELD_NAME +from django.contrib.auth.decorators import login_required from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth.forms import PasswordResetForm, PasswordChangeForm -from django import oldforms -from django.shortcuts import render_to_response -from django.template import RequestContext from django.contrib.sites.models import Site, RequestSite from django.http import HttpResponseRedirect -from django.contrib.auth.decorators import login_required -from django.contrib.auth import REDIRECT_FIELD_NAME +from django.shortcuts import render_to_response +from django.template import RequestContext +from django.utils.http import urlquote from django.utils.translation import ugettext as _ def login(request, template_name='registration/login.html', redirect_field_name=REDIRECT_FIELD_NAME): "Displays the login form and handles the login action." - manipulator = AuthenticationForm(request) + manipulator = AuthenticationForm() redirect_to = request.REQUEST.get(redirect_field_name, '') if request.POST: errors = manipulator.get_validation_errors(request.POST) @@ -22,7 +23,8 @@ def login(request, template_name='registration/login.html', redirect_field_name= redirect_to = settings.LOGIN_REDIRECT_URL from django.contrib.auth import login login(request, manipulator.get_user()) - request.session.delete_test_cookie() + if request.session.test_cookie_worked(): + request.session.delete_test_cookie() return HttpResponseRedirect(redirect_to) else: errors = {} @@ -61,7 +63,7 @@ def redirect_to_login(next, login_url=None, redirect_field_name=REDIRECT_FIELD_N if not login_url: from django.conf import settings login_url = settings.LOGIN_URL - return HttpResponseRedirect('%s?%s=%s' % (login_url, redirect_field_name, next)) + return HttpResponseRedirect('%s?%s=%s' % (login_url, urlquote(redirect_field_name), urlquote(next))) def password_reset(request, is_admin_site=False, template_name='registration/password_reset_form.html', email_template_name='registration/password_reset_email.html'): @@ -74,7 +76,10 @@ def password_reset(request, is_admin_site=False, template_name='registration/pas if is_admin_site: form.save(domain_override=request.META['HTTP_HOST']) else: - form.save(email_template_name=email_template_name) + if Site._meta.installed: + form.save(email_template_name=email_template_name) + else: + form.save(domain_override=RequestSite(request).domain, email_template_name=email_template_name) return HttpResponseRedirect('%sdone/' % request.path) return render_to_response(template_name, {'form': oldforms.FormWrapper(form, new_data, errors)}, context_instance=RequestContext(request)) diff --git a/django/contrib/flatpages/models.py b/django/contrib/flatpages/models.py index 190ffbd8b3..ddd5678379 100644 --- a/django/contrib/flatpages/models.py +++ b/django/contrib/flatpages/models.py @@ -26,7 +26,8 @@ class FlatPage(models.Model): (None, {'fields': ('url', 'title', 'content', 'sites')}), (_('Advanced options'), {'classes': 'collapse', 'fields': ('enable_comments', 'registration_required', 'template_name')}), ) - list_filter = ('sites',) + list_display = ('url', 'title') + list_filter = ('sites', 'enable_comments', 'registration_required') search_fields = ('url', 'title') def __unicode__(self): diff --git a/django/contrib/formtools/tests.py b/django/contrib/formtools/tests.py index feda6e041e..143857ad58 100644 --- a/django/contrib/formtools/tests.py +++ b/django/contrib/formtools/tests.py @@ -23,12 +23,16 @@ class TestForm(forms.Form): class PreviewTests(TestCase): def setUp(self): + self._old_root_urlconf = settings.ROOT_URLCONF settings.ROOT_URLCONF = 'django.contrib.formtools.test_urls' # Create a FormPreview instance to share between tests self.preview = preview.FormPreview(TestForm) input_template = '' self.input = input_template % (self.preview.unused_name('stage'), "%d") + def tearDown(self): + settings.ROOT_URLCONF = self._old_root_urlconf + def test_unused_name(self): """ Verifies name mangling to get uniue field name. diff --git a/django/contrib/formtools/wizard.py b/django/contrib/formtools/wizard.py index a197c3e659..398de742ec 100644 --- a/django/contrib/formtools/wizard.py +++ b/django/contrib/formtools/wizard.py @@ -149,7 +149,7 @@ class FormWizard(object): data = [(bf.name, bf.data or '') for bf in form] + [settings.SECRET_KEY] # Use HIGHEST_PROTOCOL because it's the most efficient. It requires # Python 2.3, but Django requires 2.3 anyway, so that's OK. - pickled = pickle.dumps(data, protocol=pickle.HIGHEST_PROTOCOL) + pickled = pickle.dumps(data, pickle.HIGHEST_PROTOCOL) return md5.new(pickled).hexdigest() def determine_step(self, request, *args, **kwargs): diff --git a/django/contrib/localflavor/ar/forms.py b/django/contrib/localflavor/ar/forms.py index b23923b47a..464399188f 100644 --- a/django/contrib/localflavor/ar/forms.py +++ b/django/contrib/localflavor/ar/forms.py @@ -6,7 +6,7 @@ AR-specific Form helpers. 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 +from django.utils.translation import ugettext_lazy as _ class ARProvinceSelect(Select): """ @@ -24,7 +24,7 @@ class ARPostalCodeField(RegexField): See http://www.correoargentino.com.ar/consulta_cpa/home.php """ default_error_messages = { - 'invalid': ugettext("Enter a postal code in the format NNNN or ANNNNAAA."), + 'invalid': _("Enter a postal code in the format NNNN or ANNNNAAA."), } def __init__(self, *args, **kwargs): @@ -46,8 +46,8 @@ class ARDNIField(CharField): A field that validates 'Documento Nacional de Identidad' (DNI) numbers. """ default_error_messages = { - 'invalid': ugettext("This field requires only numbers."), - 'max_digits': ugettext("This field requires 7 or 8 digits."), + 'invalid': _("This field requires only numbers."), + 'max_digits': _("This field requires 7 or 8 digits."), } def __init__(self, *args, **kwargs): @@ -76,8 +76,8 @@ class ARCUITField(RegexField): CUIT is of the form XX-XXXXXXXX-V. The last digit is a check digit. """ default_error_messages = { - 'invalid': ugettext('Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.'), - 'checksum': ugettext("Invalid CUIT."), + 'invalid': _('Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.'), + 'checksum': _("Invalid CUIT."), } def __init__(self, *args, **kwargs): diff --git a/django/contrib/localflavor/au/forms.py b/django/contrib/localflavor/au/forms.py index ada27b69b9..41d4e04fec 100644 --- a/django/contrib/localflavor/au/forms.py +++ b/django/contrib/localflavor/au/forms.py @@ -5,7 +5,7 @@ Australian-specific Form helpers from django.newforms import ValidationError from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES from django.newforms.util import smart_unicode -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ import re PHONE_DIGITS_RE = re.compile(r'^(\d{10})$') @@ -13,7 +13,7 @@ PHONE_DIGITS_RE = re.compile(r'^(\d{10})$') class AUPostCodeField(RegexField): """Australian post code field.""" default_error_messages = { - 'invalid': ugettext('Enter a 4 digit post code.'), + 'invalid': _('Enter a 4 digit post code.'), } def __init__(self, *args, **kwargs): diff --git a/django/contrib/localflavor/br/forms.py b/django/contrib/localflavor/br/forms.py index aa7e3b23fd..81dcb8228b 100644 --- a/django/contrib/localflavor/br/forms.py +++ b/django/contrib/localflavor/br/forms.py @@ -6,7 +6,7 @@ BR-specific Form helpers from django.newforms import ValidationError from django.newforms.fields import Field, RegexField, CharField, Select, EMPTY_VALUES from django.utils.encoding import smart_unicode -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ import re try: diff --git a/django/contrib/localflavor/ca/forms.py b/django/contrib/localflavor/ca/forms.py index b40dba8335..548f85b7f6 100644 --- a/django/contrib/localflavor/ca/forms.py +++ b/django/contrib/localflavor/ca/forms.py @@ -5,7 +5,7 @@ Canada-specific Form helpers from django.newforms import ValidationError from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES from django.newforms.util import smart_unicode -from django.utils.translation import gettext, ugettext +from django.utils.translation import ugettext_lazy as _ import re phone_digits_re = re.compile(r'^(?:1-?)?(\d{3})[-\.]?(\d{3})[-\.]?(\d{4})$') @@ -14,7 +14,7 @@ sin_re = re.compile(r"^(\d{3})-(\d{3})-(\d{3})$") class CAPostalCodeField(RegexField): """Canadian postal code field.""" default_error_messages = { - 'invalid': gettext(u'Enter a postal code in the format XXX XXX.'), + 'invalid': _(u'Enter a postal code in the format XXX XXX.'), } def __init__(self, *args, **kwargs): @@ -85,7 +85,7 @@ class CASocialInsuranceNumberField(Field): See: http://en.wikipedia.org/wiki/Social_Insurance_Number """ default_error_messages = { - 'invalid': ugettext('Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'), + 'invalid': _('Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'), } def clean(self, value): diff --git a/django/contrib/localflavor/ch/forms.py b/django/contrib/localflavor/ch/forms.py index 2158fba697..e2d3aea944 100644 --- a/django/contrib/localflavor/ch/forms.py +++ b/django/contrib/localflavor/ch/forms.py @@ -5,7 +5,7 @@ Swiss-specific Form helpers from django.newforms import ValidationError from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES from django.utils.encoding import smart_unicode -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ import re id_re = re.compile(r"^(?P\w{8})(?P(\d{1}|<))(?P\d{1})$") @@ -13,7 +13,7 @@ phone_digits_re = re.compile(r'^0([1-9]{1})\d{8}$') class CHZipCodeField(RegexField): default_error_messages = { - 'invalid': ugettext('Enter a zip code in the format XXXX.'), + 'invalid': _('Enter a zip code in the format XXXX.'), } def __init__(self, *args, **kwargs): @@ -61,7 +61,7 @@ class CHIdentityCardNumberField(Field): Algorithm is documented at http://adi.kousz.ch/artikel/IDCHE.htm """ default_error_messages = { - 'invalid': ugettext('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'), + 'invalid': _('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'), } def has_valid_checksum(self, number): diff --git a/django/contrib/localflavor/cl/forms.py b/django/contrib/localflavor/cl/forms.py index 2f5ac29b39..69473607a6 100644 --- a/django/contrib/localflavor/cl/forms.py +++ b/django/contrib/localflavor/cl/forms.py @@ -4,7 +4,7 @@ Chile specific form helpers. from django.newforms import ValidationError from django.newforms.fields import RegexField, Select, EMPTY_VALUES -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ from django.utils.encoding import smart_unicode @@ -26,9 +26,9 @@ class CLRutField(RegexField): https://palena.sii.cl/cvc/dte/ee_empresas_emisoras.html """ default_error_messages = { - 'invalid': ugettext('Enter a valid Chilean RUT.'), - 'strict': ugettext('Enter a valid Chilean RUT. The format is XX.XXX.XXX-X.'), - 'checksum': ugettext('The Chilean RUT is not valid.'), + 'invalid': _('Enter a valid Chilean RUT.'), + 'strict': _('Enter a valid Chilean RUT. The format is XX.XXX.XXX-X.'), + 'checksum': _('The Chilean RUT is not valid.'), } def __init__(self, *args, **kwargs): diff --git a/django/contrib/localflavor/de/forms.py b/django/contrib/localflavor/de/forms.py index 76ce215dca..c5402fa260 100644 --- a/django/contrib/localflavor/de/forms.py +++ b/django/contrib/localflavor/de/forms.py @@ -4,14 +4,14 @@ DE-specific Form helpers from django.newforms import ValidationError from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ import re id_re = re.compile(r"^(?P\d{10})(?P\w{1,3})[-\ ]?(?P\d{7})[-\ ]?(?P\d{7})[-\ ]?(?P\d{1})$") class DEZipCodeField(RegexField): default_error_messages = { - 'invalid': ugettext('Enter a zip code in the format XXXXX.'), + 'invalid': _('Enter a zip code in the format XXXXX.'), } def __init__(self, *args, **kwargs): super(DEZipCodeField, self).__init__(r'^\d{5}$', @@ -38,7 +38,7 @@ class DEIdentityCardNumberField(Field): Algorithm is documented at http://de.wikipedia.org/wiki/Personalausweis """ default_error_messages = { - 'invalid': ugettext('Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format.'), + 'invalid': _('Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format.'), } def has_valid_checksum(self, number): diff --git a/django/contrib/localflavor/es/forms.py b/django/contrib/localflavor/es/forms.py index 81186f8b3d..57e730b2cf 100644 --- a/django/contrib/localflavor/es/forms.py +++ b/django/contrib/localflavor/es/forms.py @@ -5,7 +5,7 @@ Spanish-specific Form helpers from django.newforms import ValidationError from django.newforms.fields import RegexField, Select, EMPTY_VALUES -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ import re class ESPostalCodeField(RegexField): diff --git a/django/contrib/localflavor/fi/forms.py b/django/contrib/localflavor/fi/forms.py index a0274da44c..e9e0fc1e93 100644 --- a/django/contrib/localflavor/fi/forms.py +++ b/django/contrib/localflavor/fi/forms.py @@ -5,11 +5,11 @@ FI-specific Form helpers import re from django.newforms import ValidationError from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ class FIZipCodeField(RegexField): default_error_messages = { - 'invalid': ugettext('Enter a zip code in the format XXXXX.'), + 'invalid': _('Enter a zip code in the format XXXXX.'), } def __init__(self, *args, **kwargs): super(FIZipCodeField, self).__init__(r'^\d{5}$', @@ -25,7 +25,7 @@ class FIMunicipalitySelect(Select): class FISocialSecurityNumber(Field): default_error_messages = { - 'invalid': ugettext('Enter a valid Finnish social security number.'), + 'invalid': _('Enter a valid Finnish social security number.'), } def clean(self, value): diff --git a/django/contrib/localflavor/fr/forms.py b/django/contrib/localflavor/fr/forms.py index 635b62edd5..960e8b221c 100644 --- a/django/contrib/localflavor/fr/forms.py +++ b/django/contrib/localflavor/fr/forms.py @@ -5,14 +5,14 @@ FR-specific Form helpers from django.newforms import ValidationError from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES from django.utils.encoding import smart_unicode -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ import re phone_digits_re = re.compile(r'^0\d(\s|\.)?(\d{2}(\s|\.)?){3}\d{2}$') class FRZipCodeField(RegexField): default_error_messages = { - 'invalid': ugettext('Enter a zip code in the format XXXXX.'), + 'invalid': _('Enter a zip code in the format XXXXX.'), } def __init__(self, *args, **kwargs): diff --git a/django/contrib/localflavor/is_/forms.py b/django/contrib/localflavor/is_/forms.py index ea7a1e00c3..9f7b6f0211 100644 --- a/django/contrib/localflavor/is_/forms.py +++ b/django/contrib/localflavor/is_/forms.py @@ -5,7 +5,7 @@ Iceland specific form helpers. from django.newforms import ValidationError from django.newforms.fields import RegexField, EMPTY_VALUES from django.newforms.widgets import Select -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ from django.utils.encoding import smart_unicode class ISIdNumberField(RegexField): @@ -14,8 +14,8 @@ class ISIdNumberField(RegexField): of Iceland has. """ default_error_messages = { - 'invalid': ugettext('Enter a valid Icelandic identification number. The format is XXXXXX-XXXX.'), - 'checksum': ugettext(u'The Icelandic identification number is not valid.'), + 'invalid': _('Enter a valid Icelandic identification number. The format is XXXXXX-XXXX.'), + 'checksum': _(u'The Icelandic identification number is not valid.'), } def __init__(self, *args, **kwargs): diff --git a/django/contrib/localflavor/it/forms.py b/django/contrib/localflavor/it/forms.py index 88e65734e4..7d4a82dd63 100644 --- a/django/contrib/localflavor/it/forms.py +++ b/django/contrib/localflavor/it/forms.py @@ -4,14 +4,14 @@ IT-specific Form helpers from django.newforms import ValidationError from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ from django.utils.encoding import smart_unicode from django.contrib.localflavor.it.util import ssn_check_digit, vat_number_check_digit import re class ITZipCodeField(RegexField): default_error_messages = { - 'invalid': ugettext('Enter a valid zip code.'), + 'invalid': _('Enter a valid zip code.'), } def __init__(self, *args, **kwargs): super(ITZipCodeField, self).__init__(r'^\d{5}$', @@ -27,7 +27,7 @@ class ITRegionSelect(Select): class ITProvinceSelect(Select): """ - A Select widget that uses a list of IT regions as its choices. + A Select widget that uses a list of IT provinces as its choices. """ def __init__(self, attrs=None): from it_province import PROVINCE_CHOICES @@ -40,7 +40,7 @@ class ITSocialSecurityNumberField(RegexField): 'Informazioni sulla codificazione delle persone fisiche'. """ default_error_messages = { - 'invalid': ugettext(u'Enter a valid Social Security number.'), + 'invalid': _(u'Enter a valid Social Security number.'), } def __init__(self, *args, **kwargs): @@ -65,7 +65,7 @@ class ITVatNumberField(Field): A form field that validates Italian VAT numbers (partita IVA). """ default_error_messages = { - 'invalid': ugettext(u'Enter a valid VAT number.'), + 'invalid': _(u'Enter a valid VAT number.'), } def clean(self, value): diff --git a/django/contrib/localflavor/jp/forms.py b/django/contrib/localflavor/jp/forms.py index d726f822d7..70def85351 100644 --- a/django/contrib/localflavor/jp/forms.py +++ b/django/contrib/localflavor/jp/forms.py @@ -4,7 +4,7 @@ JP-specific Form helpers from django.core import validators from django.newforms import ValidationError -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ from django.newforms.fields import RegexField, Select class JPPostalCodeField(RegexField): @@ -14,7 +14,7 @@ class JPPostalCodeField(RegexField): Accepts 7 digits, with or without a hyphen. """ default_error_messages = { - 'invalid': ugettext('Enter a postal code in the format XXXXXXX or XXX-XXXX.'), + 'invalid': _('Enter a postal code in the format XXXXXXX or XXX-XXXX.'), } def __init__(self, *args, **kwargs): diff --git a/django/contrib/localflavor/nl/forms.py b/django/contrib/localflavor/nl/forms.py index 748484926e..6f9e887339 100644 --- a/django/contrib/localflavor/nl/forms.py +++ b/django/contrib/localflavor/nl/forms.py @@ -6,7 +6,7 @@ import re from django.newforms import ValidationError from django.newforms.fields import Field, Select, EMPTY_VALUES -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from django.utils.encoding import smart_unicode pc_re = re.compile('^\d{4}[A-Z]{2}$') diff --git a/django/contrib/localflavor/no/forms.py b/django/contrib/localflavor/no/forms.py index 8dc001955d..39c80ec0b2 100644 --- a/django/contrib/localflavor/no/forms.py +++ b/django/contrib/localflavor/no/forms.py @@ -5,11 +5,11 @@ Norwegian-specific Form helpers import re, datetime from django.newforms import ValidationError from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ class NOZipCodeField(RegexField): default_error_messages = { - 'invalid': ugettext('Enter a zip code in the format XXXX.'), + 'invalid': _('Enter a zip code in the format XXXX.'), } def __init__(self, *args, **kwargs): @@ -30,7 +30,7 @@ class NOSocialSecurityNumber(Field): Algorithm is documented at http://no.wikipedia.org/wiki/Personnummer """ default_error_messages = { - 'invalid': ugettext(u'Enter a valid Norwegian social security number.'), + 'invalid': _(u'Enter a valid Norwegian social security number.'), } def clean(self, value): diff --git a/django/contrib/localflavor/pe/forms.py b/django/contrib/localflavor/pe/forms.py index 57c9d441f7..328b2e36e1 100644 --- a/django/contrib/localflavor/pe/forms.py +++ b/django/contrib/localflavor/pe/forms.py @@ -5,7 +5,7 @@ PE-specific Form helpers. from django.newforms import ValidationError from django.newforms.fields import RegexField, CharField, Select, EMPTY_VALUES -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ class PEDepartmentSelect(Select): """ @@ -20,8 +20,8 @@ class PEDNIField(CharField): A field that validates `Documento Nacional de IdentidadŽ (DNI) numbers. """ default_error_messages = { - 'invalid': ugettext("This field requires only numbers."), - 'max_digits': ugettext("This field requires 8 digits."), + 'invalid': _("This field requires only numbers."), + 'max_digits': _("This field requires 8 digits."), } def __init__(self, *args, **kwargs): @@ -48,8 +48,8 @@ class PERUCField(RegexField): the form XXXXXXXXXXX. """ default_error_messages = { - 'invalid': ugettext("This field requires only numbers."), - 'max_digits': ugettext("This field requires 11 digits."), + 'invalid': _("This field requires only numbers."), + 'max_digits': _("This field requires 11 digits."), } def __init__(self, *args, **kwargs): diff --git a/django/contrib/localflavor/pl/forms.py b/django/contrib/localflavor/pl/forms.py index b02dad7025..32d00cc3a8 100644 --- a/django/contrib/localflavor/pl/forms.py +++ b/django/contrib/localflavor/pl/forms.py @@ -6,7 +6,7 @@ import re from django.newforms import ValidationError from django.newforms.fields import Select, RegexField -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ class PLVoivodeshipSelect(Select): """ diff --git a/django/contrib/localflavor/sk/forms.py b/django/contrib/localflavor/sk/forms.py index 711d70fc2b..d12927ecab 100644 --- a/django/contrib/localflavor/sk/forms.py +++ b/django/contrib/localflavor/sk/forms.py @@ -3,7 +3,7 @@ Slovak-specific form helpers """ from django.newforms.fields import Select, RegexField -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ class SKRegionSelect(Select): """ @@ -27,7 +27,7 @@ class SKPostalCodeField(RegexField): Valid form is XXXXX or XXX XX, where X represents integer. """ default_error_messages = { - 'invalid': ugettext(u'Enter a postal code in the format XXXXX or XXX XX.'), + 'invalid': _(u'Enter a postal code in the format XXXXX or XXX XX.'), } def __init__(self, *args, **kwargs): diff --git a/django/contrib/localflavor/uk/forms.py b/django/contrib/localflavor/uk/forms.py index 52cd7ad232..b3883f6477 100644 --- a/django/contrib/localflavor/uk/forms.py +++ b/django/contrib/localflavor/uk/forms.py @@ -6,7 +6,7 @@ import re from django.newforms.fields import CharField, Select from django.newforms import ValidationError -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ class UKPostcodeField(CharField): """ @@ -18,7 +18,7 @@ class UKPostcodeField(CharField): The value is uppercased and a space added in the correct place, if required. """ default_error_messages = { - 'invalid': ugettext(u'Enter a valid postcode.'), + 'invalid': _(u'Enter a valid postcode.'), } outcode_pattern = '[A-PR-UWYZ]([0-9]{1,2}|([A-HIK-Y][0-9](|[0-9]|[ABEHMNPRVWXY]))|[0-9][A-HJKSTUW])' incode_pattern = '[0-9][ABD-HJLNP-UW-Z]{2}' diff --git a/django/contrib/localflavor/uk/uk_regions.py b/django/contrib/localflavor/uk/uk_regions.py index 61d0812488..dd92f5e758 100644 --- a/django/contrib/localflavor/uk/uk_regions.py +++ b/django/contrib/localflavor/uk/uk_regions.py @@ -5,7 +5,7 @@ Sources: Welsh regions: http://en.wikipedia.org/wiki/Preserved_counties_of_Wales Scottish regions: http://en.wikipedia.org/wiki/Regions_and_districts_of_Scotland """ -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ ENGLAND_REGION_CHOICES = ( ("Bedfordshire", _("Bedfordshire")), diff --git a/django/contrib/localflavor/us/forms.py b/django/contrib/localflavor/us/forms.py index d6aa684cba..a17062d61f 100644 --- a/django/contrib/localflavor/us/forms.py +++ b/django/contrib/localflavor/us/forms.py @@ -5,7 +5,7 @@ USA-specific Form helpers from django.newforms import ValidationError from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES from django.utils.encoding import smart_unicode -from django.utils.translation import ugettext +from django.utils.translation import ugettext_lazy as _ import re phone_digits_re = re.compile(r'^(?:1-?)?(\d{3})[-\.]?(\d{3})[-\.]?(\d{4})$') @@ -13,7 +13,7 @@ ssn_re = re.compile(r"^(?P\d{3})[-\ ]?(?P\d{2})[-\ ]?(?P\d{ class USZipCodeField(RegexField): default_error_messages = { - 'invalid': ugettext('Enter a zip code in the format XXXXX or XXXXX-XXXX.'), + 'invalid': _('Enter a zip code in the format XXXXX or XXXXX-XXXX.'), } def __init__(self, *args, **kwargs): @@ -51,7 +51,7 @@ class USSocialSecurityNumberField(Field): 1962 promotional number). """ default_error_messages = { - 'invalid': ugettext('Enter a valid U.S. Social Security number in XXX-XX-XXXX format.'), + 'invalid': _('Enter a valid U.S. Social Security number in XXX-XX-XXXX format.'), } def clean(self, value): diff --git a/django/contrib/redirects/models.py b/django/contrib/redirects/models.py index ac2e8d5bac..1720f33466 100644 --- a/django/contrib/redirects/models.py +++ b/django/contrib/redirects/models.py @@ -17,6 +17,7 @@ class Redirect(models.Model): ordering = ('old_path',) class Admin: + list_display = ('old_path', 'new_path') list_filter = ('site',) search_fields = ('old_path', 'new_path') diff --git a/django/contrib/sessions/backends/base.py b/django/contrib/sessions/backends/base.py index 1063760915..b40fba6e6e 100644 --- a/django/contrib/sessions/backends/base.py +++ b/django/contrib/sessions/backends/base.py @@ -5,14 +5,15 @@ import random import sys import time from datetime import datetime, timedelta -from django.conf import settings -from django.core.exceptions import SuspiciousOperation - try: import cPickle as pickle except ImportError: import pickle +from django.conf import settings +from django.core.exceptions import SuspiciousOperation + + class SessionBase(object): """ Base class for all Session classes. @@ -87,6 +88,25 @@ class SessionBase(object): except: return {} + def update(self, dict_): + self._session.update(dict_) + self.modified = True + + def has_key(self, key): + return self._session.has_key(key) + + def values(self): + return self._session.values() + + def iterkeys(self): + return self._session.iterkeys() + + def itervalues(self): + return self._session.itervalues() + + def iteritems(self): + return self._session.iteritems() + def _get_new_session_key(self): "Returns session key that isn't being used." # The random module is seeded when this Apache child is created. @@ -150,8 +170,8 @@ class SessionBase(object): def set_expiry(self, value): """ - Sets a custom expiration for the session. ``value`` can be an integer, a - Python ``datetime`` or ``timedelta`` object or ``None``. + Sets a custom expiration for the session. ``value`` can be an integer, + a Python ``datetime`` or ``timedelta`` object or ``None``. If ``value`` is an integer, the session will expire after that many seconds of inactivity. If set to ``0`` then the session will expire on diff --git a/django/contrib/sessions/backends/cache.py b/django/contrib/sessions/backends/cache.py index 7626163a13..7e171e8309 100644 --- a/django/contrib/sessions/backends/cache.py +++ b/django/contrib/sessions/backends/cache.py @@ -2,6 +2,7 @@ from django.conf import settings from django.contrib.sessions.backends.base import SessionBase from django.core.cache import cache + class SessionStore(SessionBase): """ A cache-based session store. @@ -23,4 +24,4 @@ class SessionStore(SessionBase): return False def delete(self, session_key): - self._cache.delete(session_key) \ No newline at end of file + self._cache.delete(session_key) diff --git a/django/contrib/sessions/backends/db.py b/django/contrib/sessions/backends/db.py index b1c1097865..67132c7560 100644 --- a/django/contrib/sessions/backends/db.py +++ b/django/contrib/sessions/backends/db.py @@ -1,12 +1,14 @@ +import datetime + from django.conf import settings from django.contrib.sessions.models import Session from django.contrib.sessions.backends.base import SessionBase from django.core.exceptions import SuspiciousOperation -import datetime + class SessionStore(SessionBase): """ - Implements database session store + Implements database session store. """ def __init__(self, session_key=None): super(SessionStore, self).__init__(session_key) diff --git a/django/contrib/sessions/backends/file.py b/django/contrib/sessions/backends/file.py index d65c81c101..49a7045244 100644 --- a/django/contrib/sessions/backends/file.py +++ b/django/contrib/sessions/backends/file.py @@ -1,9 +1,11 @@ import os import tempfile + from django.conf import settings from django.contrib.sessions.backends.base import SessionBase from django.core.exceptions import SuspiciousOperation, ImproperlyConfigured + class SessionStore(SessionBase): """ Implements a file based session store. @@ -15,10 +17,10 @@ class SessionStore(SessionBase): # Make sure the storage path is valid. if not os.path.isdir(self.storage_path): - raise ImproperlyConfigured("The session storage path %r doesn't exist. "\ - "Please set your SESSION_FILE_PATH setting "\ - "to an existing directory in which Django "\ - "can store session data." % self.storage_path) + raise ImproperlyConfigured( + "The session storage path %r doesn't exist. Please set your" + " SESSION_FILE_PATH setting to an existing directory in which" + " Django can store session data." % self.storage_path) self.file_prefix = settings.SESSION_COOKIE_NAME super(SessionStore, self).__init__(session_key) @@ -31,9 +33,11 @@ class SessionStore(SessionBase): session_key = self.session_key # Make sure we're not vulnerable to directory traversal. Session keys - # should always be md5s, so they should never contain directory components. + # should always be md5s, so they should never contain directory + # components. if os.path.sep in session_key: - raise SuspiciousOperation("Invalid characters (directory components) in session key") + raise SuspiciousOperation( + "Invalid characters (directory components) in session key") return os.path.join(self.storage_path, self.file_prefix + session_key) diff --git a/django/contrib/sessions/middleware.py b/django/contrib/sessions/middleware.py index a7b376dde0..238d6095e5 100644 --- a/django/contrib/sessions/middleware.py +++ b/django/contrib/sessions/middleware.py @@ -7,6 +7,7 @@ from django.utils.http import cookie_date TEST_COOKIE_NAME = 'testcookie' TEST_COOKIE_VALUE = 'worked' + class SessionMiddleware(object): def process_request(self, request): @@ -40,5 +41,4 @@ class SessionMiddleware(object): expires=expires, domain=settings.SESSION_COOKIE_DOMAIN, path=settings.SESSION_COOKIE_PATH, secure=settings.SESSION_COOKIE_SECURE or None) - return response diff --git a/django/contrib/sessions/models.py b/django/contrib/sessions/models.py index 4769e63b1b..70fce3b226 100644 --- a/django/contrib/sessions/models.py +++ b/django/contrib/sessions/models.py @@ -6,9 +6,12 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ from django.conf import settings + class SessionManager(models.Manager): def encode(self, session_dict): - "Returns the given session dictionary pickled and encoded as a string." + """ + Returns the given session dictionary pickled and encoded as a string. + """ pickled = pickle.dumps(session_dict) pickled_md5 = md5.new(pickled + settings.SECRET_KEY).hexdigest() return base64.encodestring(pickled + pickled_md5) @@ -21,6 +24,7 @@ class SessionManager(models.Manager): s.delete() # Clear sessions with no data. return s + class Session(models.Model): """ Django provides full support for anonymous sessions. The session @@ -38,7 +42,8 @@ class Session(models.Model): the sessions documentation that is shipped with Django (also available on the Django website). """ - session_key = models.CharField(_('session key'), max_length=40, primary_key=True) + session_key = models.CharField(_('session key'), max_length=40, + primary_key=True) session_data = models.TextField(_('session data')) expire_date = models.DateTimeField(_('expire date')) objects = SessionManager() diff --git a/django/contrib/sessions/tests.py b/django/contrib/sessions/tests.py index 0f162b211f..a1bc6799fa 100644 --- a/django/contrib/sessions/tests.py +++ b/django/contrib/sessions/tests.py @@ -89,6 +89,66 @@ False >>> s.pop('some key', 'does not exist') 'does not exist' + +>>> s.get('update key', None) + +# test .update() +>>> s.modified = s.accessed = False # Reset to pretend this wasn't accessed previously +>>> s.update({'update key':1}) +>>> s.accessed, s.modified +(True, True) +>>> s.get('update key', None) +1 + +# test .has_key() +>>> s.modified = s.accessed = False # Reset to pretend this wasn't accessed previously +>>> s.has_key('update key') +True +>>> s.accessed, s.modified +(True, False) + +# test .values() +>>> s = SessionBase() +>>> s.values() +[] +>>> s.accessed +True +>>> s['x'] = 1 +>>> s.values() +[1] + +# test .iterkeys() +>>> s.accessed = False +>>> i = s.iterkeys() +>>> hasattr(i,'__iter__') +True +>>> s.accessed +True +>>> list(i) +['x'] + +# test .itervalues() +>>> s.accessed = False +>>> i = s.itervalues() +>>> hasattr(i,'__iter__') +True +>>> s.accessed +True +>>> list(i) +[1] + +# test .iteritems() +>>> s.accessed = False +>>> i = s.iteritems() +>>> hasattr(i,'__iter__') +True +>>> s.accessed +True +>>> list(i) +[('x', 1)] + + + ######################### # Custom session expiry # ######################### diff --git a/django/contrib/sites/management.py b/django/contrib/sites/management.py index 6831cab96d..5cecfb4ec0 100644 --- a/django/contrib/sites/management.py +++ b/django/contrib/sites/management.py @@ -13,5 +13,6 @@ def create_default_site(app, created_models, verbosity): print "Creating example.com Site object" s = Site(domain="example.com", name="example.com") s.save() + Site.objects.clear_cache() dispatcher.connect(create_default_site, sender=site_app, signal=signals.post_syncdb) diff --git a/django/contrib/sites/models.py b/django/contrib/sites/models.py index fb6d0a2b1e..c928a4e852 100644 --- a/django/contrib/sites/models.py +++ b/django/contrib/sites/models.py @@ -44,6 +44,15 @@ class Site(models.Model): def __unicode__(self): return self.domain + def delete(self): + pk = self.pk + super(Site, self).delete() + try: + del(SITE_CACHE[pk]) + except KeyError: + pass + + class RequestSite(object): """ A class that shares the primary interface of Site (i.e., it has diff --git a/django/contrib/sites/tests.py b/django/contrib/sites/tests.py new file mode 100644 index 0000000000..5c38ee1b6d --- /dev/null +++ b/django/contrib/sites/tests.py @@ -0,0 +1,13 @@ +""" +>>> # Make sure that get_current() does not return a deleted Site object. +>>> from django.contrib.sites.models import Site +>>> s = Site.objects.get_current() +>>> isinstance(s, Site) +True + +>>> s.delete() +>>> Site.objects.get_current() +Traceback (most recent call last): +... +DoesNotExist: Site matching query does not exist. +""" diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py index 193bb26ccf..688cd58e2c 100644 --- a/django/core/management/commands/loaddata.py +++ b/django/core/management/commands/loaddata.py @@ -111,7 +111,10 @@ class Command(BaseCommand): models.add(obj.object.__class__) obj.save() label_found = True - except Exception, e: + except (SystemExit, KeyboardInterrupt): + raise + except Exception: + import traceback fixture.close() transaction.rollback() transaction.leave_transaction_management() @@ -121,7 +124,7 @@ class Command(BaseCommand): else: sys.stderr.write( self.style.ERROR("Problem installing fixture '%s': %s\n" % - (full_path, str(e)))) + (full_path, traceback.format_exc()))) return fixture.close() except: diff --git a/django/core/management/commands/sql.py b/django/core/management/commands/sql.py index 4a0107ac02..bc68a1e43a 100644 --- a/django/core/management/commands/sql.py +++ b/django/core/management/commands/sql.py @@ -7,4 +7,4 @@ class Command(AppCommand): def handle_app(self, app, **options): from django.core.management.sql import sql_create - return '\n'.join(sql_create(app, self.style)) + return u'\n'.join(sql_create(app, self.style)).encode('utf-8') diff --git a/django/core/management/commands/sqlall.py b/django/core/management/commands/sqlall.py index bf3c734bb6..5d510f179a 100644 --- a/django/core/management/commands/sqlall.py +++ b/django/core/management/commands/sqlall.py @@ -7,4 +7,4 @@ class Command(AppCommand): def handle_app(self, app, **options): from django.core.management.sql import sql_all - return '\n'.join(sql_all(app, self.style)) + return u'\n'.join(sql_all(app, self.style)).encode('utf-8') diff --git a/django/core/management/commands/sqlclear.py b/django/core/management/commands/sqlclear.py index d76d6f4de2..8550e88e28 100644 --- a/django/core/management/commands/sqlclear.py +++ b/django/core/management/commands/sqlclear.py @@ -7,4 +7,4 @@ class Command(AppCommand): def handle_app(self, app, **options): from django.core.management.sql import sql_delete - return '\n'.join(sql_delete(app, self.style)) + return u'\n'.join(sql_delete(app, self.style)).encode('utf-8') diff --git a/django/core/management/commands/sqlcustom.py b/django/core/management/commands/sqlcustom.py index 68d4fe3c9f..465330db7e 100644 --- a/django/core/management/commands/sqlcustom.py +++ b/django/core/management/commands/sqlcustom.py @@ -7,4 +7,4 @@ class Command(AppCommand): def handle_app(self, app, **options): from django.core.management.sql import sql_custom - return '\n'.join(sql_custom(app, self.style)) + return u'\n'.join(sql_custom(app, self.style)).encode('utf-8') diff --git a/django/core/management/commands/sqlflush.py b/django/core/management/commands/sqlflush.py index 261aa0d423..d0f71d3875 100644 --- a/django/core/management/commands/sqlflush.py +++ b/django/core/management/commands/sqlflush.py @@ -7,4 +7,4 @@ class Command(NoArgsCommand): def handle_noargs(self, **options): from django.core.management.sql import sql_flush - return '\n'.join(sql_flush(self.style, only_django=True)) + return u'\n'.join(sql_flush(self.style, only_django=True)).encode('utf-8') diff --git a/django/core/management/commands/sqlindexes.py b/django/core/management/commands/sqlindexes.py index b5e86f26d6..9693588a89 100644 --- a/django/core/management/commands/sqlindexes.py +++ b/django/core/management/commands/sqlindexes.py @@ -7,4 +7,4 @@ class Command(AppCommand): def handle_app(self, app, **options): from django.core.management.sql import sql_indexes - return '\n'.join(sql_indexes(app, self.style)) + return u'\n'.join(sql_indexes(app, self.style)).encode('utf-8') diff --git a/django/core/management/commands/sqlreset.py b/django/core/management/commands/sqlreset.py index a2abb855cf..ec40848c42 100644 --- a/django/core/management/commands/sqlreset.py +++ b/django/core/management/commands/sqlreset.py @@ -7,4 +7,4 @@ class Command(AppCommand): def handle_app(self, app, **options): from django.core.management.sql import sql_reset - return '\n'.join(sql_reset(app, self.style)) + return u'\n'.join(sql_reset(app, self.style)).encode('utf-8') diff --git a/django/core/management/commands/sqlsequencereset.py b/django/core/management/commands/sqlsequencereset.py index 6b12d83843..e8dad0bef6 100644 --- a/django/core/management/commands/sqlsequencereset.py +++ b/django/core/management/commands/sqlsequencereset.py @@ -6,4 +6,4 @@ class Command(AppCommand): def handle_app(self, app, **options): from django.db import connection, models - return '\n'.join(connection.ops.sequence_reset_sql(self.style, models.get_models(app))) + return u'\n'.join(connection.ops.sequence_reset_sql(self.style, models.get_models(app))).encode('utf-8') diff --git a/django/core/management/commands/startapp.py b/django/core/management/commands/startapp.py index a3d517dd7a..a81c427142 100644 --- a/django/core/management/commands/startapp.py +++ b/django/core/management/commands/startapp.py @@ -3,8 +3,7 @@ import os from django.core.management.base import copy_helper, CommandError, LabelCommand class Command(LabelCommand): - help = ("Creates a Django app directory structure for the given app name" - " in the current directory.") + help = "Creates a Django app directory structure for the given app name in the current directory." args = "[appname]" label = 'application name' @@ -16,6 +15,7 @@ class Command(LabelCommand): def handle_label(self, app_name, directory=None, **options): if directory is None: directory = os.getcwd() + # Determine the project_name by using the basename of directory, # which should be the full path of the project directory (or the # current directory if no directory was passed). @@ -23,6 +23,15 @@ class Command(LabelCommand): if app_name == project_name: raise CommandError("You cannot create an app with the same name" " (%r) as your project." % app_name) + + # Check that the app_name cannot be imported. + try: + __import__(app_name) + except ImportError: + pass + else: + raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name." % app_name) + copy_helper(self.style, 'app', app_name, directory, project_name) class ProjectCommand(Command): diff --git a/django/core/management/commands/startproject.py b/django/core/management/commands/startproject.py index 867d4fd3da..540a64d2ea 100644 --- a/django/core/management/commands/startproject.py +++ b/django/core/management/commands/startproject.py @@ -3,8 +3,6 @@ import os import re from random import choice -INVALID_PROJECT_NAMES = ('django', 'site', 'test') - class Command(LabelCommand): help = "Creates a Django project directory structure for the given project name in the current directory." args = "[projectname]" @@ -20,13 +18,13 @@ class Command(LabelCommand): # the parent directory. directory = os.getcwd() + # Check that the project_name cannot be imported. try: - proj_name = __import__(project_name) - if proj_name: - raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name." % project_name) + __import__(project_name) except ImportError: - if project_name in INVALID_PROJECT_NAMES: - raise CommandError("%r contains an invalid project name. Please try another name." % project_name) + pass + else: + raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name." % project_name) copy_helper(self.style, 'project', project_name, directory) diff --git a/django/core/management/commands/syncdb.py b/django/core/management/commands/syncdb.py index dc0a72a2a6..e1a623ad10 100644 --- a/django/core/management/commands/syncdb.py +++ b/django/core/management/commands/syncdb.py @@ -25,6 +25,7 @@ class Command(NoArgsCommand): verbosity = int(options.get('verbosity', 1)) interactive = options.get('interactive') + show_traceback = options.get('traceback', False) self.style = no_style() @@ -119,12 +120,17 @@ class Command(NoArgsCommand): for sql in custom_sql: cursor.execute(sql) except Exception, e: - sys.stderr.write("Failed to install custom SQL for %s.%s model: %s" % \ + sys.stderr.write("Failed to install custom SQL for %s.%s model: %s\n" % \ (app_name, model._meta.object_name, e)) + if show_traceback: + import traceback + traceback.print_exc() transaction.rollback_unless_managed() else: transaction.commit_unless_managed() - + else: + if verbosity >= 2: + print "No custom SQL for %s.%s model" % (app_name, model._meta.object_name) # Install SQL indicies for all newly created models for app in models.get_apps(): app_name = app.__name__.split('.')[-2] diff --git a/django/core/servers/basehttp.py b/django/core/servers/basehttp.py index 05f8756655..5bdf08b8ca 100644 --- a/django/core/servers/basehttp.py +++ b/django/core/servers/basehttp.py @@ -17,7 +17,7 @@ import urllib from django.utils.http import http_date __version__ = "0.1" -__all__ = ['WSGIServer','WSGIRequestHandler','demo_app'] +__all__ = ['WSGIServer','WSGIRequestHandler'] server_version = "WSGIServer/" + __version__ sys_version = "Python/" + sys.version.split()[0] diff --git a/django/core/urlresolvers.py b/django/core/urlresolvers.py index 2ef3d6f169..2ad63bfc7d 100644 --- a/django/core/urlresolvers.py +++ b/django/core/urlresolvers.py @@ -86,7 +86,7 @@ def reverse_helper(regex, *args, **kwargs): """ # TODO: Handle nested parenthesis in the following regex. result = re.sub(r'\(([^)]+)\)', MatchChecker(args, kwargs), regex.pattern) - return result.replace('^', '').replace('$', '') + return result.replace('^', '').replace('$', '').replace('\\', '') class MatchChecker(object): "Class used in reverse RegexURLPattern lookup." diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index b076e290dd..7a4e46a7d7 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -45,13 +45,16 @@ class BaseDatabaseFeatures(object): autoindexes_primary_keys = True inline_fk_references = True needs_datetime_string_cast = True - needs_upper_for_iops = False supports_constraints = True supports_tablespaces = False uses_case_insensitive_names = False uses_custom_query_class = False empty_fetchmany_value = [] update_can_self_select = True + supports_usecs = True + time_field_needs_date = False + interprets_empty_strings_as_nulls = False + date_field_supports_time_value = True class BaseDatabaseOperations(object): """ @@ -266,3 +269,8 @@ class BaseDatabaseOperations(object): tablespaces. """ return None + + def prep_for_like_query(self, x): + """Prepares a value for use in a LIKE query.""" + from django.utils.encoding import smart_unicode + return smart_unicode(x).replace("\\", "\\\\").replace("%", "\%").replace("_", "\_") diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py index da57ecbe47..23735a023b 100644 --- a/django/db/backends/mysql/base.py +++ b/django/db/backends/mysql/base.py @@ -64,6 +64,7 @@ class DatabaseFeatures(BaseDatabaseFeatures): inline_fk_references = False empty_fetchmany_value = () update_can_self_select = False + supports_usecs = False class DatabaseOperations(BaseDatabaseOperations): def date_extract_sql(self, lookup_type, field_name): diff --git a/django/db/backends/mysql_old/base.py b/django/db/backends/mysql_old/base.py index 0ae114d176..e57aee6a04 100644 --- a/django/db/backends/mysql_old/base.py +++ b/django/db/backends/mysql_old/base.py @@ -68,6 +68,7 @@ class DatabaseFeatures(BaseDatabaseFeatures): inline_fk_references = False empty_fetchmany_value = () update_can_self_select = False + supports_usecs = False class DatabaseOperations(BaseDatabaseOperations): def date_extract_sql(self, lookup_type, field_name): diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index 1bcc36dcb4..56ae051de8 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -27,10 +27,12 @@ class DatabaseFeatures(BaseDatabaseFeatures): allows_unique_and_pk = False # Suppress UNIQUE/PK for Oracle (ORA-02259) empty_fetchmany_value = () needs_datetime_string_cast = False - needs_upper_for_iops = True supports_tablespaces = True uses_case_insensitive_names = True uses_custom_query_class = True + time_field_needs_date = True + interprets_empty_strings_as_nulls = True + date_field_supports_time_value = False class DatabaseOperations(BaseDatabaseOperations): def autoinc_sql(self, table, column): diff --git a/django/db/backends/oracle/creation.py b/django/db/backends/oracle/creation.py index 93dc3c2bf1..14bc8faf86 100644 --- a/django/db/backends/oracle/creation.py +++ b/django/db/backends/oracle/creation.py @@ -5,9 +5,13 @@ from django.core import management # types, as strings. Column-type strings can contain format strings; they'll # be interpolated against the values of Field.__dict__ before being output. # If a column type is set to None, it won't be included in the output. +# +# Any format strings starting with "qn_" are quoted before being used in the +# output (the "qn_" prefix is stripped before the lookup is performed. + DATA_TYPES = { 'AutoField': 'NUMBER(11)', - 'BooleanField': 'NUMBER(1) CHECK (%(column)s IN (0,1))', + 'BooleanField': 'NUMBER(1) CHECK (%(qn_column)s IN (0,1))', 'CharField': 'NVARCHAR2(%(max_length)s)', 'CommaSeparatedIntegerField': 'VARCHAR2(%(max_length)s)', 'DateField': 'DATE', @@ -19,11 +23,11 @@ DATA_TYPES = { 'ImageField': 'NVARCHAR2(%(max_length)s)', 'IntegerField': 'NUMBER(11)', 'IPAddressField': 'VARCHAR2(15)', - 'NullBooleanField': 'NUMBER(1) CHECK ((%(column)s IN (0,1)) OR (%(column)s IS NULL))', + 'NullBooleanField': 'NUMBER(1) CHECK ((%(qn_column)s IN (0,1)) OR (%(column)s IS NULL))', 'OneToOneField': 'NUMBER(11)', 'PhoneNumberField': 'VARCHAR2(20)', - 'PositiveIntegerField': 'NUMBER(11) CHECK (%(column)s >= 0)', - 'PositiveSmallIntegerField': 'NUMBER(11) CHECK (%(column)s >= 0)', + 'PositiveIntegerField': 'NUMBER(11) CHECK (%(qn_column)s >= 0)', + 'PositiveSmallIntegerField': 'NUMBER(11) CHECK (%(qn_column)s >= 0)', 'SlugField': 'NVARCHAR2(50)', 'SmallIntegerField': 'NUMBER(11)', 'TextField': 'NCLOB', diff --git a/django/db/models/base.py b/django/db/models/base.py index 5dd11a9d83..14a48044df 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -10,7 +10,7 @@ from django.core import validators from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned, FieldError from django.db.models.fields import AutoField, ImageField, FieldDoesNotExist from django.db.models.fields.related import OneToOneRel, ManyToOneRel, OneToOneField -from django.db.models.query import delete_objects, Q +from django.db.models.query import delete_objects, Q, CollectedObjects from django.db.models.options import Options, AdminOptions from django.db import connection, transaction from django.db.models import signals @@ -368,17 +368,16 @@ class Model(object): error_dict[f.name] = errors return error_dict - def _collect_sub_objects(self, seen_objs): + def _collect_sub_objects(self, seen_objs, parent=None, nullable=False): """ Recursively populates seen_objs with all objects related to this object. - When done, seen_objs will be in the format: - {model_class: {pk_val: obj, pk_val: obj, ...}, - model_class: {pk_val: obj, pk_val: obj, ...}, ...} + When done, seen_objs.items() will be in the format: + [(model_class, {pk_val: obj, pk_val: obj, ...}), + (model_class, {pk_val: obj, pk_val: obj, ...}),...] """ pk_val = self._get_pk_val() - if pk_val in seen_objs.setdefault(self.__class__, {}): + if seen_objs.add(self.__class__, pk_val, self, parent, nullable): return - seen_objs.setdefault(self.__class__, {})[pk_val] = self for related in self._meta.get_all_related_objects(): rel_opts_name = related.get_accessor_name() @@ -388,16 +387,16 @@ class Model(object): except ObjectDoesNotExist: pass else: - sub_obj._collect_sub_objects(seen_objs) + sub_obj._collect_sub_objects(seen_objs, self.__class__, related.field.null) else: for sub_obj in getattr(self, rel_opts_name).all(): - sub_obj._collect_sub_objects(seen_objs) + sub_obj._collect_sub_objects(seen_objs, self.__class__, related.field.null) def delete(self): assert self._get_pk_val() is not None, "%s object can't be deleted because its %s attribute is set to None." % (self._meta.object_name, self._meta.pk.attname) # Find all the objects than need to be deleted - seen_objs = SortedDict() + seen_objs = CollectedObjects() self._collect_sub_objects(seen_objs) # Actually delete the objects diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index bb2191e3a4..33a941ff01 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -7,7 +7,7 @@ try: except ImportError: from django.utils import _decimal as decimal # for Python 2.3 -from django.db import get_creation_module +from django.db import connection, get_creation_module from django.db.models import signals from django.db.models.query_utils import QueryWrapper from django.dispatch import dispatcher @@ -16,6 +16,7 @@ from django.core import validators from django import oldforms from django import newforms as forms from django.core.exceptions import ObjectDoesNotExist +from django.utils.datastructures import DictWrapper from django.utils.functional import curry from django.utils.itercompat import tee from django.utils.text import capfirst @@ -33,9 +34,6 @@ HORIZONTAL, VERTICAL = 1, 2 BLANK_CHOICE_DASH = [("", "---------")] BLANK_CHOICE_NONE = [("", "None")] -# prepares a value for use in a LIKE query -prep_for_like_query = lambda x: smart_unicode(x).replace("\\", "\\\\").replace("%", "\%").replace("_", "\_") - # returns the
                  class for a given radio_admin value get_ul_class = lambda x: 'radiolist%s' % ((x == HORIZONTAL) and ' inline' or '') @@ -97,7 +95,7 @@ class Field(object): self.blank, self.null = blank, null # Oracle treats the empty string ('') as null, so coerce the null # option whenever '' is a possible value. - if self.empty_strings_allowed and settings.DATABASE_ENGINE == 'oracle': + if self.empty_strings_allowed and connection.features.interprets_empty_strings_as_nulls: self.null = True self.core, self.rel, self.default = core, rel, default self.editable = editable @@ -164,8 +162,9 @@ class Field(object): # mapped to one of the built-in Django field types. In this case, you # can implement db_type() instead of get_internal_type() to specify # exactly which wacky database column type you want to use. + data = DictWrapper(self.__dict__, connection.ops.quote_name, "qn_") try: - return get_creation_module().DATA_TYPES[self.get_internal_type()] % self.__dict__ + return get_creation_module().DATA_TYPES[self.get_internal_type()] % data except KeyError: return None @@ -235,13 +234,13 @@ class Field(object): elif lookup_type in ('range', 'in'): return value elif lookup_type in ('contains', 'icontains'): - return ["%%%s%%" % prep_for_like_query(value)] + return ["%%%s%%" % connection.ops.prep_for_like_query(value)] elif lookup_type == 'iexact': - return [prep_for_like_query(value)] + return [connection.ops.prep_for_like_query(value)] elif lookup_type in ('startswith', 'istartswith'): - return ["%s%%" % prep_for_like_query(value)] + return ["%s%%" % connection.ops.prep_for_like_query(value)] elif lookup_type in ('endswith', 'iendswith'): - return ["%%%s" % prep_for_like_query(value)] + return ["%%%s" % connection.ops.prep_for_like_query(value)] elif lookup_type == 'isnull': return [] elif lookup_type == 'year': @@ -252,9 +251,12 @@ class Field(object): if settings.DATABASE_ENGINE == 'sqlite3': first = '%s-01-01' second = '%s-12-31 23:59:59.999999' - elif settings.DATABASE_ENGINE == 'oracle' and self.get_internal_type() == 'DateField': + elif not connection.features.date_field_supports_time_value and self.get_internal_type() == 'DateField': first = '%s-01-01' second = '%s-12-31' + elif not connection.features.supports_usecs: + first = '%s-01-01 00:00:00' + second = '%s-12-31 23:59:59.99' else: first = '%s-01-01 00:00:00' second = '%s-12-31 23:59:59.999999' @@ -271,7 +273,7 @@ class Field(object): if callable(self.default): return self.default() return force_unicode(self.default, strings_only=True) - if not self.empty_strings_allowed or (self.null and settings.DATABASE_ENGINE != 'oracle'): + if not self.empty_strings_allowed or (self.null and not connection.features.interprets_empty_strings_as_nulls): return None return "" @@ -633,7 +635,7 @@ class DateTimeField(DateField): if value is not None: # MySQL will throw a warning if microseconds are given, because it # doesn't support microseconds. - if settings.DATABASE_ENGINE == 'mysql' and hasattr(value, 'microsecond'): + if not connection.features.supports_usecs and hasattr(value, 'microsecond'): value = value.replace(microsecond=0) value = smart_unicode(value) return Field.get_db_prep_save(self, value) @@ -867,7 +869,7 @@ class FilePathField(Field): self.path, self.match, self.recursive = path, match, recursive kwargs['max_length'] = kwargs.get('max_length', 100) Field.__init__(self, verbose_name, name, **kwargs) - + def formfield(self, **kwargs): defaults = { 'path': self.path, @@ -1075,7 +1077,7 @@ class TimeField(Field): return "TimeField" def get_db_prep_lookup(self, lookup_type, value): - if settings.DATABASE_ENGINE == 'oracle': + if connection.features.time_field_needs_date: # Oracle requires a date in order to parse. def prep(value): if isinstance(value, datetime.time): @@ -1102,9 +1104,9 @@ class TimeField(Field): if value is not None: # MySQL will throw a warning if microseconds are given, because it # doesn't support microseconds. - if settings.DATABASE_ENGINE == 'mysql' and hasattr(value, 'microsecond'): + if not connection.features.supports_usecs and hasattr(value, 'microsecond'): value = value.replace(microsecond=0) - if settings.DATABASE_ENGINE == 'oracle': + if connection.features.time_field_needs_date: # cx_Oracle expects a datetime.datetime to persist into TIMESTAMP field. if isinstance(value, datetime.time): value = datetime.datetime(1900, 1, 1, value.hour, value.minute, diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index c9deac428f..9d5886d426 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -103,13 +103,15 @@ class RelatedField(object): if hasattr(sup, 'contribute_to_class'): sup.contribute_to_class(cls, name) + + if not cls._meta.abstract and self.rel.related_name: + self.rel.related_name = self.rel.related_name % {'class': cls.__name__.lower()} + other = self.rel.to if isinstance(other, basestring): add_lazy_relation(cls, self, other) else: self.do_related_class(other, cls) - if not cls._meta.abstract and self.rel.related_name: - self.rel.related_name = self.rel.related_name % {'class': cls.__name__.lower()} def set_attributes_from_rel(self): self.name = self.name or (self.rel.to._meta.object_name.lower() + '_' + self.rel.to._meta.pk.name) @@ -119,7 +121,8 @@ class RelatedField(object): def do_related_class(self, other, cls): self.set_attributes_from_rel() related = RelatedObject(other, cls, self) - self.contribute_to_related_class(other, related) + if not cls._meta.abstract: + self.contribute_to_related_class(other, related) def get_db_prep_lookup(self, lookup_type, value): # If we are doing a lookup on a Related Field, we must be diff --git a/django/db/models/loading.py b/django/db/models/loading.py index e7d134e6da..6837e070ac 100644 --- a/django/db/models/loading.py +++ b/django/db/models/loading.py @@ -2,6 +2,8 @@ from django.conf import settings from django.core.exceptions import ImproperlyConfigured +from django.utils.datastructures import SortedDict + import sys import os import threading @@ -18,10 +20,10 @@ class AppCache(object): # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66531. __shared_state = dict( # Keys of app_store are the model modules for each application. - app_store = {}, + app_store = SortedDict(), # Mapping of app_labels to a dictionary of model names to model code. - app_models = {}, + app_models = SortedDict(), # Mapping of app_labels to errors raised when trying to import the app. app_errors = {}, @@ -133,7 +135,7 @@ class AppCache(object): """ self._populate() if app_mod: - return self.app_models.get(app_mod.__name__.split('.')[-2], {}).values() + return self.app_models.get(app_mod.__name__.split('.')[-2], SortedDict()).values() else: model_list = [] for app_entry in self.app_models.itervalues(): @@ -149,7 +151,7 @@ class AppCache(object): """ if seed_cache: self._populate() - return self.app_models.get(app_label, {}).get(model_name.lower()) + return self.app_models.get(app_label, SortedDict()).get(model_name.lower()) def register_models(self, app_label, *models): """ @@ -157,9 +159,9 @@ class AppCache(object): """ for model in models: # Store as 'name: model' pair in a dictionary - # in the _app_models dictionary + # in the app_models dictionary model_name = model._meta.object_name.lower() - model_dict = self.app_models.setdefault(app_label, {}) + model_dict = self.app_models.setdefault(app_label, SortedDict()) if model_name in model_dict: # The same model may be imported via different paths (e.g. # appname.models and project.appname.models). We use the source diff --git a/django/db/models/options.py b/django/db/models/options.py index bc1aec62c1..c2313f221f 100644 --- a/django/db/models/options.py +++ b/django/db/models/options.py @@ -274,14 +274,17 @@ class Options(object): """ Initialises the field name -> field object mapping. """ - cache = dict([(f.name, (f, m, True, False)) for f, m in - self.get_fields_with_model()]) - for f, model in self.get_m2m_with_model(): - cache[f.name] = (f, model, True, True) + cache = {} + # We intentionally handle related m2m objects first so that symmetrical + # m2m accessor names can be overridden, if necessary. for f, model in self.get_all_related_m2m_objects_with_model(): cache[f.field.related_query_name()] = (f, model, False, True) for f, model in self.get_all_related_objects_with_model(): cache[f.field.related_query_name()] = (f, model, False, False) + for f, model in self.get_m2m_with_model(): + cache[f.name] = (f, model, True, True) + for f, model in self.get_fields_with_model(): + cache[f.name] = (f, model, True, False) if self.order_with_respect_to: cache['_order'] = OrderWrt(), None, True, False if app_cache_ready(): diff --git a/django/db/models/query.py b/django/db/models/query.py index fb6d116a6e..98caaf004c 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -16,6 +16,92 @@ ITER_CHUNK_SIZE = CHUNK_SIZE # Pull into this namespace for backwards compatibility EmptyResultSet = sql.EmptyResultSet +class CyclicDependency(Exception): + pass + +class CollectedObjects(object): + """ + A container that stores keys and lists of values along with + remembering the parent objects for all the keys. + + This is used for the database object deletion routines so that we + can calculate the 'leaf' objects which should be deleted first. + """ + + def __init__(self): + self.data = {} + self.children = {} + + def add(self, model, pk, obj, parent_model, nullable=False): + """ + Adds an item. + model is the class of the object being added, + pk is the primary key, obj is the object itself, + parent_model is the model of the parent object + that this object was reached through, nullable should + be True if this relation is nullable. + + If the item already existed in the structure, + returns true, otherwise false. + """ + d = self.data.setdefault(model, SortedDict()) + retval = pk in d + d[pk] = obj + # Nullable relationships can be ignored -- they + # are nulled out before deleting, and therefore + # do not affect the order in which objects have + # to be deleted. + if parent_model is not None and not nullable: + self.children.setdefault(parent_model, []).append(model) + + return retval + + def __contains__(self, key): + return self.data.__contains__(key) + + def __getitem__(self, key): + return self.data[key] + + def __nonzero__(self): + return bool(self.data) + + def iteritems(self): + for k in self.ordered_keys(): + yield k, self[k] + + def items(self): + return list(self.iteritems()) + + def keys(self): + return self.ordered_keys() + + def ordered_keys(self): + """ + Returns the models in the order that they should be + dealth with i.e. models with no dependencies first. + """ + dealt_with = SortedDict() + # Start with items that have no children + models = self.data.keys() + while len(dealt_with) < len(models): + found = False + for model in models: + children = self.children.setdefault(model, []) + if len([c for c in children if c not in dealt_with]) == 0: + dealt_with[model] = None + found = True + if not found: + raise CyclicDependency("There is a cyclic dependency of items to be processed.") + + return dealt_with.keys() + + def unordered_keys(self): + """ + Fallback for the case where is a cyclic dependency but we + don't care. + """ + return self.data.keys() + class QuerySet(object): "Represents a lazy database lookup for a set of objects" def __init__(self, model=None, query=None): @@ -132,6 +218,8 @@ class QuerySet(object): def __and__(self, other): self._merge_sanity_check(other) + if isinstance(other, EmptyQuerySet): + return other._clone() combined = self._clone() combined.query.combine(other.query, sql.AND) return combined @@ -139,6 +227,8 @@ class QuerySet(object): def __or__(self, other): self._merge_sanity_check(other) combined = self._clone() + if isinstance(other, EmptyQuerySet): + return combined combined.query.combine(other.query, sql.OR) return combined @@ -275,7 +365,7 @@ class QuerySet(object): while 1: # Collect all the objects to be deleted in this chunk, and all the # objects that are related to the objects that are to be deleted. - seen_objs = SortedDict() + seen_objs = CollectedObjects() for object in del_query[:CHUNK_SIZE]: object._collect_sub_objects(seen_objs) @@ -402,7 +492,9 @@ class QuerySet(object): and usually it will be more natural to use other methods. """ if isinstance(filter_obj, Q) or hasattr(filter_obj, 'add_to_query'): - return self._filter_or_exclude(None, filter_obj) + clone = self._clone() + clone.query.add_q(filter_obj) + return clone else: return self._filter_or_exclude(None, **filter_obj) @@ -497,11 +589,11 @@ class QuerySet(object): def _merge_sanity_check(self, other): """ - Checks that we are merging two comparable queryset classes. + Checks that we are merging two comparable queryset classes. By default + this does nothing, but see the ValuesQuerySet for an example of where + it's useful. """ - if self.__class__ is not other.__class__: - raise TypeError("Cannot merge querysets of different types ('%s' and '%s'." - % (self.__class__.__name__, other.__class__.__name__)) + pass class ValuesQuerySet(QuerySet): def __init__(self, *args, **kwargs): @@ -513,7 +605,7 @@ class ValuesQuerySet(QuerySet): # names of the model fields to select. def iterator(self): - if (not self.extra_names and + if (not self.extra_names and len(self.field_names) != len(self.model._meta.fields)): self.query.trim_extra_select(self.extra_names) names = self.query.extra_select.keys() + self.field_names @@ -602,9 +694,9 @@ class DateQuerySet(QuerySet): """ self.query = self.query.clone(klass=sql.DateQuery, setup=True) self.query.select = [] - self.query.add_date_select(self._field.column, self._kind, self._order) + self.query.add_date_select(self._field, self._kind, self._order) if self._field.null: - self.query.add_filter(('%s__isnull' % self._field.name, True)) + self.query.add_filter(('%s__isnull' % self._field.name, False)) def _clone(self, klass=None, setup=False, **kwargs): c = super(DateQuerySet, self)._clone(klass, False, **kwargs) @@ -619,6 +711,12 @@ class EmptyQuerySet(QuerySet): super(EmptyQuerySet, self).__init__(model, query) self._result_cache = [] + def __and__(self, other): + return self._clone() + + def __or__(self, other): + return other._clone() + def count(self): return 0 @@ -682,19 +780,27 @@ def delete_objects(seen_objs): Iterate through a list of seen classes, and remove any instances that are referred to. """ - ordered_classes = seen_objs.keys() - ordered_classes.reverse() + try: + ordered_classes = seen_objs.keys() + except CyclicDependency: + # if there is a cyclic dependency, we cannot in general delete + # the objects. However, if an appropriate transaction is set + # up, or if the database is lax enough, it will succeed. + # So for now, we go ahead and try anway. + ordered_classes = seen_objs.unordered_keys() + obj_pairs = {} for cls in ordered_classes: - seen_objs[cls] = seen_objs[cls].items() - seen_objs[cls].sort() + items = seen_objs[cls].items() + items.sort() + obj_pairs[cls] = items # Pre notify all instances to be deleted - for pk_val, instance in seen_objs[cls]: + for pk_val, instance in items: dispatcher.send(signal=signals.pre_delete, sender=cls, instance=instance) - pk_list = [pk for pk,instance in seen_objs[cls]] + pk_list = [pk for pk,instance in items] del_query = sql.DeleteQuery(cls, connection) del_query.delete_batch_related(pk_list) @@ -705,15 +811,17 @@ def delete_objects(seen_objs): # Now delete the actual data for cls in ordered_classes: - seen_objs[cls].reverse() - pk_list = [pk for pk,instance in seen_objs[cls]] + items = obj_pairs[cls] + items.reverse() + + pk_list = [pk for pk,instance in items] del_query = sql.DeleteQuery(cls, connection) del_query.delete_batch(pk_list) # Last cleanup; set NULLs where there once was a reference to the # object, NULL the primary key of the found objects, and perform # post-notification. - for pk_val, instance in seen_objs[cls]: + for pk_val, instance in items: for field in cls._meta.fields: if field.rel and field.null and field.rel.to in seen_objs: setattr(instance, field.attname, None) diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index 3044882a86..e8d10bc55b 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -610,6 +610,10 @@ class Query(object): alias = joins[-1] col = target.column + # Must use left outer joins for nullable fields. + for join in joins: + self.promote_alias(join) + # If we get to this point and the field is a relation to another model, # append the default ordering for that model. if field.rel and len(joins) > 1 and opts.ordering: @@ -631,8 +635,10 @@ class Query(object): # We have to do the same "final join" optimisation as in # add_filter, since the final column might not otherwise be part of # the select set (so we can't order on it). - join = self.alias_map[alias] - if col == join[RHS_JOIN_COL]: + while 1: + join = self.alias_map[alias] + if col != join[RHS_JOIN_COL]: + break self.unref_alias(alias) alias = join[LHS_ALIAS] col = join[LHS_JOIN_COL] @@ -679,12 +685,16 @@ class Query(object): for the join to contain NULL values on the left. If 'unconditional' is False, the join is only promoted if it is nullable, otherwise it is always promoted. + + Returns True if the join was promoted. """ if ((unconditional or self.alias_map[alias][NULLABLE]) and self.alias_map[alias] != self.LOUTER): data = list(self.alias_map[alias]) data[JOIN_TYPE] = self.LOUTER self.alias_map[alias] = tuple(data) + return True + return False def change_aliases(self, change_map): """ @@ -826,6 +836,10 @@ class Query(object): if not always_create: for alias in self.join_map.get(t_ident, ()): if alias not in exclusions: + if lhs_table and not self.alias_refcount[self.alias_map[alias][LHS_ALIAS]]: + # The LHS of this join tuple is no longer part of the + # query, so skip this possibility. + continue self.ref_alias(alias) if promote: self.promote_alias(alias) @@ -985,20 +999,22 @@ class Query(object): col = target.column alias = join_list[-1] - if final > 1: + while final > 1: # An optimization: if the final join is against the same column as # we are comparing against, we can go back one step in the join - # chain and compare against the lhs of the join instead. The result - # (potentially) involves one less table join. + # chain and compare against the lhs of the join instead (and then + # repeat the optimization). The result, potentially, involves less + # table joins. join = self.alias_map[alias] - if col == join[RHS_JOIN_COL]: - self.unref_alias(alias) - alias = join[LHS_ALIAS] - col = join[LHS_JOIN_COL] - join_list = join_list[:-1] - final -= 1 - if final == penultimate: - penultimate = last.pop() + if col != join[RHS_JOIN_COL]: + break + self.unref_alias(alias) + alias = join[LHS_ALIAS] + col = join[LHS_JOIN_COL] + join_list = join_list[:-1] + final -= 1 + if final == penultimate: + penultimate = last.pop() if (lookup_type == 'isnull' and value is True and not negate and final > 1): @@ -1033,17 +1049,27 @@ class Query(object): self.promote_alias(table) self.where.add((alias, col, field, lookup_type, value), connector) + if negate: for alias in join_list: self.promote_alias(alias) - if final > 1 and lookup_type != 'isnull': - for alias in join_list: - if self.alias_map[alias] == self.LOUTER: - j_col = self.alias_map[alias][RHS_JOIN_COL] - entry = Node([(alias, j_col, None, 'isnull', True)]) - entry.negate() - self.where.add(entry, AND) - break + if lookup_type != 'isnull': + if final > 1: + for alias in join_list: + if self.alias_map[alias][JOIN_TYPE] == self.LOUTER: + j_col = self.alias_map[alias][RHS_JOIN_COL] + entry = Node([(alias, j_col, None, 'isnull', True)]) + entry.negate() + self.where.add(entry, AND) + break + elif not (lookup_type == 'in' and not value): + # Leaky abstraction artifact: We have to specifically + # exclude the "foo__in=[]" case from this handling, because + # it's short-circuited in the Where class. + entry = Node([(alias, col, field, 'isnull', True)]) + entry.negate() + self.where.add(entry, AND) + if can_reuse is not None: can_reuse.update(join_list) @@ -1294,10 +1320,12 @@ class Query(object): final_alias = join[LHS_ALIAS] col = join[LHS_JOIN_COL] joins = joins[:-1] + promote = False for join in joins[1:]: # Only nullable aliases are promoted, so we don't end up # doing unnecessary left outer joins here. - self.promote_alias(join) + if self.promote_alias(join, promote): + promote = True self.select.append((final_alias, col)) self.select_fields.append(field) except MultiJoin: diff --git a/django/db/models/sql/subqueries.py b/django/db/models/sql/subqueries.py index 28436abede..0bb741d706 100644 --- a/django/db/models/sql/subqueries.py +++ b/django/db/models/sql/subqueries.py @@ -357,12 +357,14 @@ class DateQuery(Query): date = typecast_timestamp(str(date)) yield date - def add_date_select(self, column, lookup_type, order='ASC'): + def add_date_select(self, field, lookup_type, order='ASC'): """ Converts the query into a date extraction query. """ - alias = self.join((None, self.model._meta.db_table, None, None)) - select = Date((alias, column), lookup_type, + result = self.setup_joins([field.name], self.get_meta(), + self.get_initial_alias(), False) + alias = result[3][-1] + select = Date((alias, field.column), lookup_type, self.connection.ops.date_trunc_sql) self.select = [select] self.select_fields = [None] diff --git a/django/middleware/common.py b/django/middleware/common.py index 3d57fa4367..5cb7ca1bd3 100644 --- a/django/middleware/common.py +++ b/django/middleware/common.py @@ -108,7 +108,7 @@ class CommonMiddleware(object): if response.has_header('ETag'): etag = response['ETag'] else: - etag = md5.new(response.content).hexdigest() + etag = '"%s"' % md5.new(response.content).hexdigest() if response.status_code >= 200 and response.status_code < 300 and request.META.get('HTTP_IF_NONE_MATCH') == etag: cookies = response.cookies response = http.HttpResponseNotModified() diff --git a/django/newforms/fields.py b/django/newforms/fields.py index 08e8b842ec..dfe46a2e3e 100644 --- a/django/newforms/fields.py +++ b/django/newforms/fields.py @@ -514,7 +514,6 @@ class URLField(RegexField): return value if self.verify_exists: import urllib2 - from django.conf import settings headers = { "Accept": "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", "Accept-Language": "en-us,en;q=0.5", diff --git a/django/newforms/models.py b/django/newforms/models.py index 0590839b25..eb6d01e787 100644 --- a/django/newforms/models.py +++ b/django/newforms/models.py @@ -285,11 +285,17 @@ class ModelChoiceIterator(object): def __iter__(self): if self.field.empty_label is not None: yield (u"", self.field.empty_label) - for obj in self.queryset: - yield (obj.pk, self.field.label_from_instance(obj)) - # Clear the QuerySet cache if required. - if not self.field.cache_choices: - self.queryset._result_cache = None + if self.field.cache_choices: + if self.field.choice_cache is None: + self.field.choice_cache = [ + (obj.pk, self.field.label_from_instance(obj)) + for obj in self.queryset.all() + ] + for choice in self.field.choice_cache: + yield choice + else: + for obj in self.queryset.all(): + yield (obj.pk, self.field.label_from_instance(obj)) class ModelChoiceField(ChoiceField): """A ChoiceField whose choices are a model QuerySet.""" @@ -311,6 +317,7 @@ class ModelChoiceField(ChoiceField): Field.__init__(self, required, widget, label, initial, help_text, *args, **kwargs) self.queryset = queryset + self.choice_cache = None def _get_queryset(self): return self._queryset @@ -346,13 +353,7 @@ class ModelChoiceField(ChoiceField): # the queryset. return ModelChoiceIterator(self) - def _set_choices(self, value): - # This method is copied from ChoiceField._set_choices(). It's necessary - # because property() doesn't allow a subclass to overwrite only - # _get_choices without implementing _set_choices. - self._choices = self.widget.choices = list(value) - - choices = property(_get_choices, _set_choices) + choices = property(_get_choices, ChoiceField._set_choices) def clean(self, value): Field.clean(self, value) diff --git a/django/newforms/widgets.py b/django/newforms/widgets.py index 20a7cab469..ebbf2ab727 100644 --- a/django/newforms/widgets.py +++ b/django/newforms/widgets.py @@ -281,8 +281,12 @@ class RadioInput(StrAndUnicode): self.index = index def __unicode__(self): - return mark_safe(u'' % (self.tag(), - conditional_escape(force_unicode(self.choice_label)))) + if 'id' in self.attrs: + label_for = ' for="%s_%s"' % (self.attrs['id'], self.index) + else: + label_for = '' + choice_label = conditional_escape(force_unicode(self.choice_label)) + return mark_safe(u'%s %s' % (label_for, self.tag(), choice_label)) def is_checked(self): return self.value == self.choice_value @@ -364,11 +368,15 @@ class CheckboxSelectMultiple(SelectMultiple): # so that the checkboxes don't all have the same ID attribute. if has_id: final_attrs = dict(final_attrs, id='%s_%s' % (attrs['id'], i)) + label_for = u' for="%s"' % final_attrs['id'] + else: + label_for = '' + cb = CheckboxInput(final_attrs, check_test=lambda value: value in str_values) option_value = force_unicode(option_value) rendered_cb = cb.render(name, option_value) - output.append(u'
                • ' % (rendered_cb, - conditional_escape(force_unicode(option_label)))) + option_label = conditional_escape(force_unicode(option_label)) + output.append(u'
                • %s %s
                • ' % (label_for, rendered_cb, option_label)) output.append(u'
                ') return mark_safe(u'\n'.join(output)) diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py index cf3b35b4cc..01c43ee86f 100644 --- a/django/template/defaulttags.py +++ b/django/template/defaulttags.py @@ -39,12 +39,11 @@ class CommentNode(Node): class CycleNode(Node): def __init__(self, cyclevars, variable_name=None): - self.cycle_iter = itertools_cycle(cyclevars) + self.cycle_iter = itertools_cycle([Variable(v) for v in cyclevars]) self.variable_name = variable_name def render(self, context): - value = self.cycle_iter.next() - value = Variable(value).resolve(context) + value = self.cycle_iter.next().resolve(context) if self.variable_name: context[self.variable_name] = value return value @@ -162,10 +161,12 @@ class IfChangedNode(Node): self.nodelist = nodelist self._last_seen = None self._varlist = map(Variable, varlist) + self._id = str(id(self)) def render(self, context): - if 'forloop' in context and context['forloop']['first']: + if 'forloop' in context and self._id not in context['forloop']: self._last_seen = None + context['forloop'][self._id] = 1 try: if self._varlist: # Consider multiple parameters. This automatically behaves @@ -452,17 +453,17 @@ def cycle(parser, token): ... ... - You can use any number of values, seperated by spaces. Commas can also + You can use any number of values, separated by spaces. Commas can also be used to separate values; if a comma is used, the cycle values are interpreted as literal strings. """ # Note: This returns the exact same node on each {% cycle name %} call; # that is, the node object returned from {% cycle a b c as name %} and the - # one returned from {% cycle name %} are the exact same object. This + # one returned from {% cycle name %} are the exact same object. This # shouldn't cause problems (heh), but if it does, now you know. # - # Ugly hack warning: this stuffs the named template dict into parser so + # Ugly hack warning: This stuffs the named template dict into parser so # that names are only unique within each template (as opposed to using # a global variable, which would make cycle names have to be unique across # *all* templates. @@ -481,8 +482,7 @@ def cycle(parser, token): # {% cycle foo %} case. name = args[1] if not hasattr(parser, '_namedCycleNodes'): - raise TemplateSyntaxError("No named cycles in template." - " '%s' is not defined" % name) + raise TemplateSyntaxError("No named cycles in template. '%s' is not defined" % name) if not name in parser._namedCycleNodes: raise TemplateSyntaxError("Named cycle '%s' does not exist" % name) return parser._namedCycleNodes[name] @@ -682,8 +682,10 @@ ifnotequal = register.tag(ifnotequal) def do_if(parser, token): """ The ``{% if %}`` tag evaluates a variable, and if that variable is "true" - (i.e. exists, is not empty, and is not a false boolean value) the contents - of the block are output:: + (i.e., exists, is not empty, and is not a false boolean value), the + contents of the block are output: + + :: {% if athlete_list %} Number of athletes: {{ athlete_list|count }} diff --git a/django/template/loader_tags.py b/django/template/loader_tags.py index 00ae99bbf9..38b2fff9fd 100644 --- a/django/template/loader_tags.py +++ b/django/template/loader_tags.py @@ -69,10 +69,6 @@ class ExtendsNode(Node): def render(self, context): compiled_parent = self.get_parent(context) - pos = 0 - while isinstance(compiled_parent.nodelist[pos], TextNode): - pos += 1 - parent_is_child = isinstance(compiled_parent.nodelist[pos], ExtendsNode) parent_blocks = dict([(n.name, n) for n in compiled_parent.nodelist.get_nodes_by_type(BlockNode)]) for block_node in self.nodelist.get_nodes_by_type(BlockNode): # Check for a BlockNode with this node's name, and replace it if found. @@ -83,8 +79,16 @@ class ExtendsNode(Node): # parent block might be defined in the parent's *parent*, so we # add this BlockNode to the parent's ExtendsNode nodelist, so # it'll be checked when the parent node's render() is called. - if parent_is_child: - compiled_parent.nodelist[pos].nodelist.append(block_node) + + # Find out if the parent template has a parent itself + for node in compiled_parent.nodelist: + if not isinstance(node, TextNode): + # If the first non-text node is an extends, handle it. + if isinstance(node, ExtendsNode): + node.nodelist.append(block_node) + # Extends must be the first non-text node, so once you find + # the first non-text node you can stop looking. + break else: # Keep any existing parents and add a new one. Used by BlockNode. parent_block.parent = block_node.parent diff --git a/django/templatetags/cache.py b/django/templatetags/cache.py index 4436b15d6e..07bd590fba 100644 --- a/django/templatetags/cache.py +++ b/django/templatetags/cache.py @@ -1,4 +1,4 @@ -from django.template import Library, Node, TemplateSyntaxError +from django.template import Library, Node, TemplateSyntaxError, Variable, VariableDoesNotExist from django.template import resolve_variable from django.core.cache import cache from django.utils.encoding import force_unicode @@ -6,20 +6,27 @@ from django.utils.encoding import force_unicode register = Library() class CacheNode(Node): - def __init__(self, nodelist, expire_time, fragment_name, vary_on): + def __init__(self, nodelist, expire_time_var, fragment_name, vary_on): self.nodelist = nodelist - self.expire_time = expire_time + self.expire_time_var = Variable(expire_time_var) self.fragment_name = fragment_name self.vary_on = vary_on def render(self, context): + try: + expire_time = self.expire_time_var.resolve(context) + except VariableDoesNotExist: + raise TemplateSyntaxError('"cache" tag got an unknkown variable: %r' % self.expire_time_var.var) + try: + expire_time = int(expire_time) + except (ValueError, TypeError): + raise TemplateSyntaxError('"cache" tag got a non-integer timeout value: %r' % expire_time) # Build a unicode key for this fragment and all vary-on's. - cache_key = u':'.join([self.fragment_name] + \ - [force_unicode(resolve_variable(var, context)) for var in self.vary_on]) + cache_key = u':'.join([self.fragment_name] + [force_unicode(resolve_variable(var, context)) for var in self.vary_on]) value = cache.get(cache_key) if value is None: value = self.nodelist.render(context) - cache.set(cache_key, value, self.expire_time) + cache.set(cache_key, value, expire_time) return value def do_cache(parser, token): @@ -48,10 +55,6 @@ def do_cache(parser, token): tokens = token.contents.split() if len(tokens) < 3: raise TemplateSyntaxError(u"'%r' tag requires at least 2 arguments." % tokens[0]) - try: - expire_time = int(tokens[1]) - except ValueError: - raise TemplateSyntaxError(u"First argument to '%r' must be an integer (got '%s')." % (tokens[0], tokens[1])) - return CacheNode(nodelist, expire_time, tokens[2], tokens[3:]) + return CacheNode(nodelist, tokens[1], tokens[2], tokens[3:]) register.tag('cache', do_cache) diff --git a/django/utils/cache.py b/django/utils/cache.py index 4fcf493944..603199cc7e 100644 --- a/django/utils/cache.py +++ b/django/utils/cache.py @@ -104,7 +104,7 @@ def patch_response_headers(response, cache_timeout=None): if cache_timeout < 0: cache_timeout = 0 # Can't have max-age negative if not response.has_header('ETag'): - response['ETag'] = md5.new(response.content).hexdigest() + response['ETag'] = '"%s"' % md5.new(response.content).hexdigest() if not response.has_header('Last-Modified'): response['Last-Modified'] = http_date() if not response.has_header('Expires'): diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py index 4c278c0d8e..21a72f2d1e 100644 --- a/django/utils/datastructures.py +++ b/django/utils/datastructures.py @@ -343,3 +343,34 @@ class FileDict(dict): d = dict(self, content='') return dict.__repr__(d) return dict.__repr__(self) + +class DictWrapper(dict): + """ + Wraps accesses to a dictionary so that certain values (those starting with + the specified prefix) are passed through a function before being returned. + The prefix is removed before looking up the real value. + + Used by the SQL construction code to ensure that values are correctly + quoted before being used. + """ + def __init__(self, data, func, prefix): + super(DictWrapper, self).__init__(data) + self.func = func + self.prefix = prefix + + def __getitem__(self, key): + """ + Retrieves the real value after stripping the prefix string (if + present). If the prefix is present, pass the value through self.func + before returning, otherwise return the raw value. + """ + if key.startswith(self.prefix): + use_func = True + key = key[len(self.prefix):] + else: + use_func = False + value = super(DictWrapper, self).__getitem__(key) + if use_func: + return self.func(value) + return value + diff --git a/django/utils/html.py b/django/utils/html.py index 17ff78a2b5..747af52879 100644 --- a/django/utils/html.py +++ b/django/utils/html.py @@ -76,20 +76,20 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False): """ Converts any URLs in text into clickable links. - Works on http://, https://, and www. links. Links can have trailing - punctuation (periods, commas, close-parens) and leading punctuation - (opening parens) and it'll still do the right thing. + Works on http://, https://, www. links and links ending in .org, .net or + .com. Links can have trailing punctuation (periods, commas, close-parens) + and leading punctuation (opening parens) and it'll still do the right + thing. If trim_url_limit is not None, the URLs in link text longer than this limit will truncated to trim_url_limit-3 characters and appended with an elipsis. If nofollow is True, the URLs in link text will get a rel="nofollow" attribute. + + If autoescape is True, the link text and URLs will get autoescaped. """ - if autoescape: - trim_url = lambda x, limit=trim_url_limit: conditional_escape(limit is not None and (len(x) > limit and ('%s...' % x[:max(0, limit - 3)])) or x) - else: - trim_url = lambda x, limit=trim_url_limit: limit is not None and (len(x) > limit and ('%s...' % x[:max(0, limit - 3)])) or x + trim_url = lambda x, limit=trim_url_limit: limit is not None and (len(x) > limit and ('%s...' % x[:max(0, limit - 3)])) or x safe_input = isinstance(text, SafeData) words = word_split_re.split(force_unicode(text)) nofollow_attr = nofollow and ' rel="nofollow"' or '' @@ -97,30 +97,30 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False): match = punctuation_re.match(word) if match: lead, middle, trail = match.groups() - if safe_input: - middle = mark_safe(middle) - if middle.startswith('www.') or ('@' not in middle and not middle.startswith('http://') and \ - len(middle) > 0 and middle[0] in string.ascii_letters + string.digits and \ - (middle.endswith('.org') or middle.endswith('.net') or middle.endswith('.com'))): - middle = 'http://%s' % middle + # Make URL we want to point to. + url = None if middle.startswith('http://') or middle.startswith('https://'): url = urlquote(middle, safe='/&=:;#?+*') - if autoescape and not safe_input: - url = escape(url) - trimmed_url = trim_url(middle) - middle = '%s' % (url, nofollow_attr, - trimmed_url) - elif '@' in middle and not middle.startswith('www.') and \ - not ':' in middle and simple_email_re.match(middle): - if autoescape: - middle = conditional_escape(middle) - middle = '%s' % (middle, middle) - if lead + middle + trail != word: + elif middle.startswith('www.') or ('@' not in middle and \ + len(middle) > 0 and middle[0] in string.ascii_letters + string.digits and \ + (middle.endswith('.org') or middle.endswith('.net') or middle.endswith('.com'))): + url = urlquote('http://%s' % middle, safe='/&=:;#?+*') + elif '@' in middle and not ':' in middle and simple_email_re.match(middle): + url = 'mailto:%s' % middle + nofollow_attr = '' + # Make link. + if url: + trimmed = trim_url(middle) if autoescape and not safe_input: lead, trail = escape(lead), escape(trail) + url, trimmed = escape(url), escape(trimmed) + middle = '%s' % (url, nofollow_attr, trimmed) words[i] = mark_safe('%s%s%s' % (lead, middle, trail)) - elif autoescape and not safe_input: - words[i] = escape(word) + else: + if safe_input: + words[i] = mark_safe(word) + elif autoescape: + words[i] = escape(word) elif safe_input: words[i] = mark_safe(word) elif autoescape: diff --git a/django/views/defaults.py b/django/views/defaults.py index b4dfc1e1eb..8a8fa474b9 100644 --- a/django/views/defaults.py +++ b/django/views/defaults.py @@ -68,8 +68,7 @@ def shortcut(request, content_type_id, object_id): def page_not_found(request, template_name='404.html'): """ - Default 404 handler, which looks for the requested URL in the redirects - table, redirects if found, and displays 404 page if not redirected. + Default 404 handler. Templates: `404.html` Context: diff --git a/docs/cache.txt b/docs/cache.txt index e7e1cdd791..3318b2ad4a 100644 --- a/docs/cache.txt +++ b/docs/cache.txt @@ -336,6 +336,17 @@ template tag to uniquely identify the cache fragment:: It's perfectly fine to specify more than one argument to identify the fragment. Simply pass as many arguments to ``{% cache %}`` as you need. +The cache timeout can be a template variable, as long as the template variable +resolves to an integer value. For example, if the template variable +``my_timeout`` is set to the value ``600``, then the following two examples are +equivalent:: + + {% cache 600 sidebar %} ... {% endcache %} + {% cache my_timeout sidebar %} ... {% endcache %} + +This feature is useful in avoiding repetition in templates. You can set the +timeout in a variable, in one place, and just reuse that value. + The low-level cache API ======================= diff --git a/docs/contributing.txt b/docs/contributing.txt index c5f98bec11..686c440c96 100644 --- a/docs/contributing.txt +++ b/docs/contributing.txt @@ -238,14 +238,14 @@ Since a picture is worth a thousand words, let's start there: We've got two official roles here: - * Core developers: people with commit access who make the big decisions + * Core developers: people with commit access who make the big decisions and write the bulk of the code. * Ticket triagers: trusted community members with a proven history of working with the Django community. As a result of this history, they have been entrusted by the core developers to make some of the smaller decisions about tickets. - + Second, note the five triage stages: 1. A ticket starts as "Unreviewed", meaning that nobody has examined @@ -254,7 +254,7 @@ Second, note the five triage stages: 2. "Design decision needed" means "this concept requires a design decision," which should be discussed either in the ticket comments or on `django-developers`_. The "Design decision needed" step will generally - only be used for feature requests. It can also be used for issues + only be used for feature requests. It can also be used for issues that *might* be bugs, depending on opinion or interpretation. Obvious bugs (such as crashes, incorrect query results, or non-compliance with a standard) skip this step and move straight to "Accepted". @@ -317,7 +317,7 @@ A ticket can be resolved in a number of ways: tickets, we keep all the discussion in one place, which helps everyone. "worksforme" - Used when the the ticket doesn't contain enough detail to replicate + Used when the the ticket doesn't contain enough detail to replicate the original bug. If you believe that the ticket was closed in error -- because you're @@ -332,50 +332,49 @@ reopen tickets that have been marked as "wontfix" by core developers. Triage by the general community ------------------------------- -Although the Core Developers and Ticket Triagers make the big decisions in -the ticket triage process, there is also a lot that general community +Although the core developers and ticket triagers make the big decisions in +the ticket triage process, there's also a lot that general community members can do to help the triage process. In particular, you can help out by: - * Closing "Unreviewed" tickets as "invalid", "worksforme", or "duplicate". + * Closing "Unreviewed" tickets as "invalid", "worksforme" or "duplicate." - * Promoting "Unreviewed" tickets to "Design Decision Required" if there - is a design decision that needs to be made, or "Accepted" if they are - an obvious bug. + * Promoting "Unreviewed" tickets to "Design decision needed" if a design + decision needs to be made, or "Accepted" in case of obvious bugs. - * Correcting the "Needs Tests", "Needs documentation", or "Has Patch" flags + * Correcting the "Needs tests", "Needs documentation", or "Has patch" flags for tickets where they are incorrectly set. - + * Checking that old tickets are still valid. If a ticket hasn't seen any activity in a long time, it's possible that the problem has been - fixed, but the ticket hasn't been closed. + fixed but the ticket hasn't yet been closed. - * Contact the owners of tickets that have been claimed, but have not seen - any recent activity. If the owner doesn't respond after a week or so, + * Contacting the owners of tickets that have been claimed but have not seen + any recent activity. If the owner doesn't respond after a week or so, remove the owner's claim on the ticket. * Identifying trends and themes in the tickets. If there a lot of bug reports - about a particular part of Django, it possibly indicates that we need - to consider refactoring that part of the code. If a trend is emerging, - you should raise it for discussion (referencing the relevant tickets) - on `django-developers`_. + about a particular part of Django, it may indicate we should consider + refactoring that part of the code. If a trend is emerging, you should + raise it for discussion (referencing the relevant tickets) on + `django-developers`_. -However, we do ask that as a general community member working in the -ticket database: +However, we do ask the following of all general community members working in +the ticket database: - * Please **don't** close tickets as "wontfix". The core developers will - make the final determination of the fate of a ticket, usually after + * Please **don't** close tickets as "wontfix." The core developers will + make the final determination of the fate of a ticket, usually after consultation with the community. - - * Please **don't** promote tickets to "Ready for checkin" unless they are - *trivial* changes - for example, spelling mistakes or - broken links in documentation. - * Please **don't** reverse a decision that has been made by a core - developer. If you disagree with a discussion that has been made, + * Please **don't** promote tickets to "Ready for checkin" unless they are + *trivial* changes -- for example, spelling mistakes or broken links in + documentation. + + * Please **don't** reverse a decision that has been made by a core + developer. If you disagree with a discussion that has been made, please post a message to `django-developers`_. * Please be conservative in your actions. If you're unsure if you should - be making a change, don't make the change - leave a comment with your + be making a change, don't make the change -- leave a comment with your concerns on the ticket, or post a message to `django-developers`_. Submitting and maintaining translations @@ -702,13 +701,8 @@ Django tarball. It's our policy to make sure all tests pass at all times. The tests cover: * Models and the database API (``tests/modeltests/``). - * The cache system (``tests/regressiontests/cache.py``). - * The ``django.utils.dateformat`` module (``tests/regressiontests/dateformat/``). - * Database typecasts (``tests/regressiontests/db_typecasts/``). - * The template system (``tests/regressiontests/templates/`` and - ``tests/regressiontests/defaultfilters/``). - * ``QueryDict`` objects (``tests/regressiontests/httpwrappers/``). - * Markup template tags (``tests/regressiontests/markup/``). + * Everything else in core Django code (``tests/regressiontests``) + * Contrib apps (``django/contrib//tests``, see below) We appreciate any and all contributions to the test suite! @@ -744,6 +738,24 @@ If you're using another backend: deleted when the tests are finished. This means your user account needs permission to execute ``CREATE DATABASE``. +If you want to run the full suite of tests, you'll need to install a number of +dependencies: + + * PyYAML_ + * Markdown_ + * Textile_ + * Docutils_ + * setuptools_ + +Each of these dependencies is optional. If you're missing any of them, the +associated tests will be skipped. + +.. _PyYAML: http://pyyaml.org/wiki/PyYAML +.. _Markdown: http://pypi.python.org/pypi/Markdown/1.7 +.. _Textile: http://pypi.python.org/pypi/textile +.. _docutils: http://pypi.python.org/pypi/docutils/0.4 +.. _setuptools: http://pypi.python.org/pypi/setuptools/ + To run a subset of the unit tests, append the names of the test modules to the ``runtests.py`` command line. See the list of directories in ``tests/modeltests`` and ``tests/regressiontests`` for module names. @@ -755,6 +767,22 @@ for generic relations and internationalization, type:: PYTHONPATH=.. ./runtests.py --settings=settings generic_relations i18n +Contrib apps +------------ + +Tests for apps in ``django/contrib/`` go in their respective directories under +``django/contrib/``, in a ``tests.py`` file. (You can split the tests over +multiple modules by using a ``tests`` directory in the normal Python way.) + +For the tests to be found, a ``models.py`` file must exist (it doesn't +have to have anything in it). If you have URLs that need to be +mapped, put them in ``tests/urls.py``. + +To run tests for just one contrib app (e.g. ``markup``), use the same +method as above:: + + ./runtests.py --settings=settings markup + Requesting features =================== diff --git a/docs/db-api.txt b/docs/db-api.txt index 4e1c2c5791..f80d63797a 100644 --- a/docs/db-api.txt +++ b/docs/db-api.txt @@ -382,7 +382,7 @@ Pickling QuerySets If you pickle_ a ``QuerySet``, this will also force all the results to be loaded into memory prior to pickling. This is because pickling is usually used -as a precursor to caching and when the cached queryset is reloaded, you want +as a precursor to caching and when the cached ``QuerySet`` is reloaded, you want the results to already be present. This means that when you unpickle a ``QuerySet``, it contains the results at the moment it was pickled, rather than the results that are currently in the database. @@ -1382,7 +1382,7 @@ and then converted into a query using the ``query`` attribute:: This queryset will be evaluated as subselect statement:: - SELET ... WHERE blog.id IN (SELECT id FROM ... WHERE NAME LIKE '%Cheddar%') + SELECT ... WHERE blog.id IN (SELECT id FROM ... WHERE NAME LIKE '%Cheddar%') startswith ~~~~~~~~~~ @@ -2040,7 +2040,7 @@ automatically saved to the database. One-to-one relationships ------------------------ -One-to-one relationships are very similar to Many-to-one relationships. +One-to-one relationships are very similar to many-to-one relationships. If you define a OneToOneField on your model, instances of that model will have access to the related object via a simple attribute of the model. @@ -2053,8 +2053,8 @@ For example:: ed = EntryDetail.objects.get(id=2) ed.entry # Returns the related Entry object. -The difference comes in reverse queries. The related model in a One-to-one -relationship also has access to a ``Manager`` object; however, that ``Manager`` +The difference comes in "reverse" queries. The related model in a one-to-one +relationship also has access to a ``Manager`` object, but that ``Manager`` represents a single object, rather than a collection of objects:: e = Entry.objects.get(id=2) diff --git a/docs/django-admin.txt b/docs/django-admin.txt index 1d4dbf10be..309166fe94 100644 --- a/docs/django-admin.txt +++ b/docs/django-admin.txt @@ -438,6 +438,10 @@ means any Python code changes you make while the server is running will *not* take effect if the particular Python modules have already been loaded into memory. +Example usage:: + + django-admin.py runserver --noreload + Examples of using different ports and addresses ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -467,14 +471,6 @@ documentation. .. _serving static files: ../static_files/ -Turning off auto-reload -~~~~~~~~~~~~~~~~~~~~~~~ - -To disable auto-reloading of code while the development server is running, use the -``--noreload`` option, like so:: - - django-admin.py runserver --noreload - shell ----- @@ -760,6 +756,17 @@ variable. Note that this option is unnecessary in ``manage.py``, because it uses ``settings.py`` from the current project by default. +--traceback +----------- + +Example usage:: + + django-admin.py syncdb --traceback + +By default, ``django-admin.py`` will show a simple error message whenever an +error occurs. If you specify ``--traceback``, ``django-admin.py`` will +output a full stack trace whenever an exception is raised. + Extra niceties ============== diff --git a/docs/form_preview.txt b/docs/form_preview.txt index e6f9b05f25..e03de36187 100644 --- a/docs/form_preview.txt +++ b/docs/form_preview.txt @@ -69,12 +69,10 @@ How to use ``FormPreview`` ...and add the following line to the appropriate model in your URLconf:: - (r'^post/$', SomeModelFormPreview(forms.models.form_for_model(SomeModel))), - - Or, if you already have a Form class defined for the model:: - (r'^post/$', SomeModelFormPreview(SomeModelForm)), + where ``SomeModelForm`` is a Form or ModelForm class for the model. + 4. Run the Django server and visit ``/post/`` in your browser. .. _template loader docs: ../templates_python/#loader-types diff --git a/docs/model-api.txt b/docs/model-api.txt index 4ed4ede97a..1bed4ee818 100644 --- a/docs/model-api.txt +++ b/docs/model-api.txt @@ -662,8 +662,8 @@ Django will automatically add this field:: Thus, you don't need to set ``primary_key=True`` on any of your fields unless you want to override the default primary-key behavior. -``primary_key=True`` implies ``blank=False``, ``null=False`` and -``unique=True``. Only one primary key is allowed on an object. +``primary_key=True`` implies ``null=False`` and ``unique=True``. Only +one primary key is allowed on an object. ``radio_admin`` ~~~~~~~~~~~~~~~ @@ -681,7 +681,7 @@ set. If ``True``, this field must be unique throughout the table. This is enforced at the database level and at the Django admin-form level. If -you try to add save a model with a duplicate value in a ``unique`` field, a +you try to save a model with a duplicate value in a ``unique`` field, a ``django.db.IntegrityError`` will be raised by the model's ``save()`` method. ``unique_for_date`` @@ -822,7 +822,7 @@ relationship should work. All are optional: ======================= ============================================================ Argument Description ======================= ============================================================ - ``edit_inline`` If not ``False``, this related object is edited + ``edit_inline`` If ``True``, this related object is edited "inline" on the related object's page. This means that the object will not have its own admin interface. Use either ``models.TABULAR`` or ``models.STACKED``, @@ -2005,6 +2005,36 @@ In this way, you're tying the model's absolute URL to the view that is used to display it, without repeating the URL information anywhere. You can still use the ``get_absolute_url`` method in templates, as before. +In some cases, such as the use of generic views or the re-use of +custom views for multiple models, specifying the view function may +confuse the reverse URL matcher (because multiple patterns point to +the same view). + +For that problem, Django has **named URL patterns**. Using a named +URL pattern, it's possible to give a name to a pattern, and then +reference the name rather than the view function. A named URL +pattern is defined by replacing the pattern tuple by a call to +the ``url`` function):: + + from django.conf.urls.defaults import * + + url(r'^people/(\d+)/$', + 'django.views.generic.list_detail.object_detail', + name='people_view'), + +...and then using that name to perform the reverse URL resolution instead +of the view name:: + + from django.db.models import permalink + + def get_absolute_url(self): + return ('people_view', [str(self.id)]) + get_absolute_url = permalink(get_absolute_url) + +More details on named URL patterns are in the `URL dispatch documentation`_. + +.. _URL dispatch documentation: ../url_dispatch/#naming-url-patterns + Executing custom SQL -------------------- diff --git a/docs/modelforms.txt b/docs/modelforms.txt index a76d797527..73335a03a2 100644 --- a/docs/modelforms.txt +++ b/docs/modelforms.txt @@ -182,6 +182,13 @@ supplied, ``save()`` will update that instance. If it's not supplied, # Create a form to edit an existing Article. >>> a = Article.objects.get(pk=1) >>> f = ArticleForm(instance=a) + >>> f.save() + + # Create a form to edit an existing Article, but use + # POST data to populate the form. + >>> a = Article.objects.get(pk=1) + >>> f = ArticleForm(request.POST, instance=a) + >>> f.save() Note that ``save()`` will raise a ``ValueError`` if the data in the form doesn't validate -- i.e., ``if form.errors``. diff --git a/docs/newforms.txt b/docs/newforms.txt index 25d80fda54..04e4c1aaa0 100644 --- a/docs/newforms.txt +++ b/docs/newforms.txt @@ -1382,6 +1382,20 @@ extra arguments: as choices. ============== ========== =============================================== +``FloatField`` +~~~~~~~~~~~~~~ + + * Default widget: ``TextInput`` + * Empty value: ``None`` + * Normalizes to: A Python float. + * Validates that the given value is an float. Leading and trailing + whitespace is allowed, as in Python's ``float()`` function. + * Error message keys: ``required``, ``invalid``, ``max_value``, + ``min_value`` + +Takes two optional arguments for validation, ``max_value`` and ``min_value``. +These control the range of values permitted in the field. + ``ImageField`` ~~~~~~~~~~~~~~ diff --git a/docs/sessions.txt b/docs/sessions.txt index da083b7713..0c47f0deed 100644 --- a/docs/sessions.txt +++ b/docs/sessions.txt @@ -112,7 +112,7 @@ It also has these methods: Sets a test cookie to determine whether the user's browser supports cookies. Due to the way cookies work, you won't be able to test this - until the user's next page request. See "Setting test cookies" below for + until the user's next page request. See `Setting test cookies`_ below for more information. * ``test_cookie_worked()`` @@ -120,7 +120,7 @@ It also has these methods: Returns either ``True`` or ``False``, depending on whether the user's browser accepted the test cookie. Due to the way cookies work, you'll have to call ``set_test_cookie()`` on a previous, separate page request. - See "Setting test cookies" below for more information. + See `Setting test cookies`_ below for more information. * ``delete_test_cookie()`` diff --git a/docs/settings.txt b/docs/settings.txt index 02e458fcda..3fe999d0d2 100644 --- a/docs/settings.txt +++ b/docs/settings.txt @@ -388,8 +388,13 @@ be able to give backtraces without seeing sensitive (or offensive) settings. Still, note that there are always going to be sections of your debug output that are inappropriate for public consumption. File paths, configuration options, and -the like all give attackers extra information about your server. Never deploy a -site with ``DEBUG`` turned on. +the like all give attackers extra information about your server. + +It is also important to remember that when running with ``DEBUG`` turned on, Django +will remember every SQL query it executes. This is useful when you are debugging, +but on a production server, it will rapidly consume memory. + +Never deploy a site into production with ``DEBUG`` turned on. DEBUG_PROPAGATE_EXCEPTIONS -------------------------- @@ -958,7 +963,10 @@ See the `template documentation`_. TEMPLATE_LOADERS ---------------- -Default: ``('django.template.loaders.filesystem.load_template_source',)`` +Default:: + + ('django.template.loaders.filesystem.load_template_source', + 'django.template.loaders.app_directories.load_template_source') A tuple of callables (as strings) that know how to import templates from various sources. See the `template documentation`_. diff --git a/docs/templates.txt b/docs/templates.txt index ea9f3fb6b2..3a557c1476 100644 --- a/docs/templates.txt +++ b/docs/templates.txt @@ -346,7 +346,7 @@ To avoid this problem, you have two options: * One, you can make sure to run each untrusted variable through the ``escape`` filter (documented below), which converts potentially harmful - HTML characters to unharmful ones. This was default the default solution + HTML characters to unharmful ones. This was the default solution in Django for its first few years, but the problem is that it puts the onus on *you*, the developer / template author, to ensure you're escaping everything. It's easy to forget to escape data. @@ -819,7 +819,7 @@ The 'ifchanged' block tag is used within a loop. It has two possible uses. 2. If given a variable, check whether that variable has changed. For example, the following shows the date every time it changes, but - only shows the hour if both the hour and the date has changed:: + only shows the hour if both the hour and the date have changed:: {% for date in days %} {% ifchanged date.date %} {{ date.date }} {% endifchanged %} diff --git a/docs/templates_python.txt b/docs/templates_python.txt index 43ef016ed4..a03ea215d2 100644 --- a/docs/templates_python.txt +++ b/docs/templates_python.txt @@ -1059,8 +1059,8 @@ Passing template variables to the tag Although you can pass any number of arguments to a template tag using ``token.split_contents()``, the arguments are all unpacked as -string literals. A little more work is required in order to dynamic content (a -template variable) to a template tag as an argument. +string literals. A little more work is required in order to pass dynamic +content (a template variable) to a template tag as an argument. While the previous examples have formatted the current time into a string and returned the string, suppose you wanted to pass in a ``DateTimeField`` from an @@ -1169,10 +1169,11 @@ Our earlier ``current_time`` function could thus be written like this:: In Python 2.4, the decorator syntax also works:: @register.simple_tag - def current_time(token): + def current_time(format_string): ... A couple of things to note about the ``simple_tag`` helper function: + * Checking for the required number of arguments, etc, has already been done by the time our function is called, so we don't need to do that. * The quotes around the argument (if any) have already been stripped away, diff --git a/docs/tutorial01.txt b/docs/tutorial01.txt index b84ecd5f7e..04863cc7fd 100644 --- a/docs/tutorial01.txt +++ b/docs/tutorial01.txt @@ -22,8 +22,8 @@ installed. .. admonition:: Where to get help: If you're having trouble going through this tutorial, please post a message - to `django-users`_ or drop by `#django`_ on ``irc.freenode.net`` and we'll - try to help. + to `django-users`_ or drop by `#django`_ on ``irc.freenode.net`` to chat + with other Django users who might be able to help. .. _django-users: http://groups.google.com/group/django-users .. _#django: irc://irc.freenode.net/django diff --git a/extras/django_bash_completion b/extras/django_bash_completion old mode 100644 new mode 100755 index 7b2b1947d8..c0f7c3516d --- a/extras/django_bash_completion +++ b/extras/django_bash_completion @@ -44,7 +44,7 @@ _django_completion() # Standalone options opts="--help --settings --pythonpath --noinput --noreload --format --indent --verbosity --adminmedia --version" # Actions - actions="adminindex createcachetable dbshell diffsettings \ + actions="adminindex createcachetable createsuperuser dbshell diffsettings \ dumpdata flush inspectdb loaddata reset runfcgi runserver \ shell sql sqlall sqlclear sqlcustom sqlflush sqlindexes \ sqlreset sqlsequencereset startapp startproject \ @@ -53,9 +53,10 @@ _django_completion() action_shell_opts="--plain" action_runfcgi_opts="host port socket method maxspare minspare maxchildren daemonize pidfile workdir" - if [[ # django-admin.py, ./manage, manage.py + if [[ # django-admin.py, django-admin, ./manage, manage.py ( ${COMP_CWORD} -eq 1 && ( ${COMP_WORDS[0]} == django-admin.py || + ${COMP_WORDS[0]} == django-admin || ${COMP_WORDS[0]} == ./manage.py || ${COMP_WORDS[0]} == manage.py ) ) || @@ -68,6 +69,11 @@ _django_completion() ( ${COMP_CWORD} -eq 2 && ( $( basename -- ${COMP_WORDS[0]} ) == python?([1-9]\.[0-9]) ) && ( $( basename -- ${COMP_WORDS[1]} ) == django-admin.py) && + ( -r ${COMP_WORDS[1]} ) ) + || + ( ${COMP_CWORD} -eq 2 && + ( $( basename -- ${COMP_WORDS[0]} ) == python?([1-9]\.[0-9]) ) && + ( $( basename -- ${COMP_WORDS[1]} ) == django-admin) && ( -r ${COMP_WORDS[1]} ) ) ]] ; then case ${cur} in @@ -142,7 +148,7 @@ _django_completion() fi } -complete -F _django_completion django-admin.py manage.py +complete -F _django_completion django-admin.py manage.py django-admin # Support for multiple interpreters. unset pythons diff --git a/setup.py b/setup.py index 3cbfc55460..081cdb4c4b 100644 --- a/setup.py +++ b/setup.py @@ -51,8 +51,8 @@ setup( name = "Django", version = version, url = 'http://www.djangoproject.com/', - author = 'Lawrence Journal-World', - author_email = 'holovaty@gmail.com', + author = 'Django Software Foundation', + author_email = 'foundation@djangoproject.com', description = 'A high-level Python Web framework that encourages rapid development and clean, pragmatic design.', packages = packages, data_files = data_files, diff --git a/tests/modeltests/delete/__init__.py b/tests/modeltests/delete/__init__.py new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/tests/modeltests/delete/__init__.py @@ -0,0 +1 @@ + diff --git a/tests/modeltests/delete/models.py b/tests/modeltests/delete/models.py new file mode 100644 index 0000000000..f5b423e9ff --- /dev/null +++ b/tests/modeltests/delete/models.py @@ -0,0 +1,179 @@ +# coding: utf-8 +""" +Tests for some corner cases with deleting. +""" + +from django.db import models + +class DefaultRepr(object): + def __repr__(self): + return u"<%s: %s>" % (self.__class__.__name__, self.__dict__) + +class A(DefaultRepr, models.Model): + pass + +class B(DefaultRepr, models.Model): + a = models.ForeignKey(A) + +class C(DefaultRepr, models.Model): + b = models.ForeignKey(B) + +class D(DefaultRepr, models.Model): + c = models.ForeignKey(C) + a = models.ForeignKey(A) + +# Simplified, we have: +# A +# B -> A +# C -> B +# D -> C +# D -> A + +# So, we must delete Ds first of all, then Cs then Bs then As. +# However, if we start at As, we might find Bs first (in which +# case things will be nice), or find Ds first. + +# Some mutually dependent models, but nullable +class E(DefaultRepr, models.Model): + f = models.ForeignKey('F', null=True, related_name='e_rel') + +class F(DefaultRepr, models.Model): + e = models.ForeignKey(E, related_name='f_rel') + + +__test__ = {'API_TESTS': """ +# First, some tests for the datastructure we use + +>>> from django.db.models.query import CollectedObjects + +>>> g = CollectedObjects() +>>> g.add("key1", 1, "item1", None) +False +>>> g["key1"] +{1: 'item1'} +>>> g.add("key2", 1, "item1", "key1") +False +>>> g.add("key2", 2, "item2", "key1") +False +>>> g["key2"] +{1: 'item1', 2: 'item2'} +>>> g.add("key3", 1, "item1", "key1") +False +>>> g.add("key3", 1, "item1", "key2") +True +>>> g.ordered_keys() +['key3', 'key2', 'key1'] + +>>> g.add("key2", 1, "item1", "key3") +True +>>> g.ordered_keys() +Traceback (most recent call last): + ... +CyclicDependency: There is a cyclic dependency of items to be processed. + + + +# Due to the way that transactions work in the test harness, +# doing m.delete() here can work but fail in a real situation, +# since it may delete all objects, but not in the right order. +# So we manually check that the order of deletion is correct. + +# Also, it is possible that the order is correct 'accidentally', due +# solely to order of imports etc. To check this, we set the order +# that 'get_models()' will retrieve to a known 'nice' order, and +# then try again with a known 'tricky' order. Slightly naughty +# access to internals here :-) + +>>> from django.db.models.loading import cache + +# Nice order +>>> cache.app_models['delete'].keyOrder = ['a', 'b', 'c', 'd'] +>>> del A._meta._related_objects_cache +>>> del B._meta._related_objects_cache +>>> del C._meta._related_objects_cache +>>> del D._meta._related_objects_cache + +>>> a1 = A() +>>> a1.save() +>>> b1 = B(a=a1) +>>> b1.save() +>>> c1 = C(b=b1) +>>> c1.save() +>>> d1 = D(c=c1, a=a1) +>>> d1.save() + +>>> o = CollectedObjects() +>>> a1._collect_sub_objects(o) +>>> o.keys() +[, , , ] +>>> a1.delete() + +# Same again with a known bad order +>>> cache.app_models['delete'].keyOrder = ['d', 'c', 'b', 'a'] +>>> del A._meta._related_objects_cache +>>> del B._meta._related_objects_cache +>>> del C._meta._related_objects_cache +>>> del D._meta._related_objects_cache + +>>> a2 = A() +>>> a2.save() +>>> b2 = B(a=a2) +>>> b2.save() +>>> c2 = C(b=b2) +>>> c2.save() +>>> d2 = D(c=c2, a=a2) +>>> d2.save() + +>>> o = CollectedObjects() +>>> a2._collect_sub_objects(o) +>>> o.keys() +[, , , ] +>>> a2.delete() + +# Tests for nullable related fields + +>>> g = CollectedObjects() +>>> g.add("key1", 1, "item1", None) +False +>>> g.add("key2", 1, "item1", "key1", nullable=True) +False +>>> g.add("key1", 1, "item1", "key2") +True +>>> g.ordered_keys() +['key1', 'key2'] + +>>> e1 = E() +>>> e1.save() +>>> f1 = F(e=e1) +>>> f1.save() +>>> e1.f = f1 +>>> e1.save() + +# Since E.f is nullable, we should delete F first (after nulling out +# the E.f field), then E. + +>>> o = CollectedObjects() +>>> e1._collect_sub_objects(o) +>>> o.keys() +[, ] + +>>> e1.delete() + +>>> e2 = E() +>>> e2.save() +>>> f2 = F(e=e2) +>>> f2.save() +>>> e2.f = f2 +>>> e2.save() + +# Same deal as before, though we are starting from the other object. + +>>> o = CollectedObjects() +>>> f2._collect_sub_objects(o) +>>> o.keys() +[, ] + +>>> f2.delete() + +""" +} diff --git a/tests/modeltests/model_inheritance/models.py b/tests/modeltests/model_inheritance/models.py index 7c737b6bd1..9842cb166b 100644 --- a/tests/modeltests/model_inheritance/models.py +++ b/tests/modeltests/model_inheritance/models.py @@ -38,6 +38,29 @@ class Student(CommonInfo): class Meta: pass +# +# Abstract base classes with related models +# + +class Post(models.Model): + title = models.CharField(max_length=50) + +class Attachment(models.Model): + post = models.ForeignKey(Post, related_name='attached_%(class)s_set') + content = models.TextField() + + class Meta: + abstract = True + + def __unicode__(self): + return self.content + +class Comment(Attachment): + is_spam = models.BooleanField() + +class Link(Attachment): + url = models.URLField() + # # Multi-table inheritance # @@ -128,9 +151,25 @@ Traceback (most recent call last): ... AttributeError: type object 'CommonInfo' has no attribute 'objects' -# The Place/Restaurant/ItalianRestaurant models, on the other hand, all exist -# as independent models. However, the subclasses also have transparent access -# to the fields of their ancestors. +# Create a Post +>>> post = Post(title='Lorem Ipsum') +>>> post.save() + +# The Post model has distinct accessors for the Comment and Link models. +>>> post.attached_comment_set.create(content='Save $ on V1agr@', is_spam=True) + +>>> post.attached_link_set.create(content='The Web framework for perfectionists with deadlines.', url='http://www.djangoproject.com/') + + +# The Post model doesn't have an attribute called 'attached_%(class)s_set'. +>>> getattr(post, 'attached_%(class)s_set') +Traceback (most recent call last): + ... +AttributeError: 'Post' object has no attribute 'attached_%(class)s_set' + +# The Place/Restaurant/ItalianRestaurant models all exist as independent +# models. However, the subclasses also have transparent access to the fields of +# their ancestors. # Create a couple of Places. >>> p1 = Place(name='Master Shakes', address='666 W. Jersey') diff --git a/tests/regressiontests/datastructures/tests.py b/tests/regressiontests/datastructures/tests.py index b51b4b1233..d6141b09ce 100644 --- a/tests/regressiontests/datastructures/tests.py +++ b/tests/regressiontests/datastructures/tests.py @@ -125,4 +125,12 @@ Init from sequence of tuples >>> d = FileDict({'other-key': 'once upon a time...'}) >>> repr(d) "{'other-key': 'once upon a time...'}" + +### DictWrapper ############################################################# + +>>> f = lambda x: "*%s" % x +>>> d = DictWrapper({'a': 'a'}, f, 'xx_') +>>> "Normal: %(a)s. Modified: %(xx_a)s" % d +'Normal: a. Modified: *a' + """ diff --git a/tests/regressiontests/defaultfilters/tests.py b/tests/regressiontests/defaultfilters/tests.py index 4a8b68a897..b56c33a652 100644 --- a/tests/regressiontests/defaultfilters/tests.py +++ b/tests/regressiontests/defaultfilters/tests.py @@ -150,7 +150,7 @@ u'fran%C3%A7ois%20%26%20jill' u'http://short.com/' >>> urlizetrunc(u'http://www.google.co.uk/search?hl=en&q=some+long+url&btnG=Search&meta=', 20) -u'http://www.google....' +u'http://www.google...' >>> urlizetrunc('http://www.google.co.uk/search?hl=en&q=some+long+url&btnG=Search&meta=', 20) u'http://www.google...' @@ -166,6 +166,27 @@ u'http://31characteruri >>> urlizetrunc(uri, 2) u'...' +# Check normal urlize +>>> urlize('http://google.com') +u'http://google.com' + +>>> urlize('http://google.com/') +u'http://google.com/' + +>>> urlize('www.google.com') +u'www.google.com' + +>>> urlize('djangoproject.org') +u'djangoproject.org' + +>>> urlize('info@djangoproject.org') +u'info@djangoproject.org' + +# Check urlize with https addresses +>>> urlize('https://google.com') +u'https://google.com' + + >>> wordcount('') 0 diff --git a/tests/regressiontests/forms/forms.py b/tests/regressiontests/forms/forms.py index d7fa1780f5..7fc206de4c 100644 --- a/tests/regressiontests/forms/forms.py +++ b/tests/regressiontests/forms/forms.py @@ -443,8 +443,8 @@ zero-based index. >>> f = FrameworkForm(auto_id='id_%s') >>> print f['language']
                  -
                • -
                • +
                • +
                When RadioSelect is used with auto_id, and the whole form is printed using @@ -453,20 +453,20 @@ ID of the *first* radio button. >>> print f
                  -
                • -
                • +
                • +
                >>> print f.as_ul()
                • -
                • -
                • +
                • +
              • >>> print f.as_p()

                  -
                • -
                • +
                • +

                MultipleChoiceField is a special case, as its data is required to be a list: @@ -535,8 +535,8 @@ zero-based index. >>> f = SongForm(auto_id='%s_id') >>> print f['composers']
                  -
                • -
                • +
                • +
                Data for a MultipleChoiceField should be a list. QueryDict and MultiValueDict diff --git a/tests/regressiontests/forms/regressions.py b/tests/regressiontests/forms/regressions.py index 1bb6f6e7e5..cbc8095e60 100644 --- a/tests/regressiontests/forms/regressions.py +++ b/tests/regressiontests/forms/regressions.py @@ -40,7 +40,7 @@ Unicode decoding problems... ... somechoice = ChoiceField(choices=GENDERS, widget=RadioSelect(), label=u'\xc5\xf8\xdf') >>> f = SomeForm() >>> f.as_p() -u'

                  \n
                • \n
                • \n
                • \n

                ' +u'

                  \n
                • \n
                • \n
                • \n

                ' Testing choice validation with UTF-8 bytestrings as input (these are the Russian abbreviations "мес." and "шт.". @@ -56,7 +56,7 @@ Translated error messages used to be buggy. >>> activate('ru') >>> f = SomeForm({}) >>> f.as_p() -u'
                • \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.
                \n

                  \n
                • \n
                • \n
                • \n

                ' +u'
                • \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.
                \n

                  \n
                • \n
                • \n
                • \n

                ' >>> deactivate() Deep copying translated text shouldn't raise an error diff --git a/tests/regressiontests/forms/widgets.py b/tests/regressiontests/forms/widgets.py index 0e69602103..2c6b51a8ec 100644 --- a/tests/regressiontests/forms/widgets.py +++ b/tests/regressiontests/forms/widgets.py @@ -719,7 +719,7 @@ True False >>> r[1].name, r[1].value, r[1].choice_value, r[1].choice_label ('beatle', u'J', u'P', u'Paul') ->>> r[10] +>>> r[10] # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... IndexError: list index out of range @@ -741,20 +741,20 @@ u'
                  \n
                • -
                • -
                • -
                • +
                • +
                • +
                • +
                # Attributes provided at render-time are passed to the constituent inputs >>> w = RadioSelect() >>> print w.render('beatle', 'J', choices=(('J', 'John'), ('P', 'Paul'), ('G', 'George'), ('R', 'Ringo')), attrs={'id':'bar'})
                  -
                • -
                • -
                • -
                • +
                • +
                • +
                • +
                # CheckboxSelectMultiple Widget ############################################### diff --git a/tests/regressiontests/model_inheritance_regress/models.py b/tests/regressiontests/model_inheritance_regress/models.py index 8801715a0c..33e2e0e4f6 100644 --- a/tests/regressiontests/model_inheritance_regress/models.py +++ b/tests/regressiontests/model_inheritance_regress/models.py @@ -2,6 +2,8 @@ Regression tests for Model inheritance behaviour. """ +import datetime + from django.db import models class Place(models.Model): @@ -10,7 +12,7 @@ class Place(models.Model): class Meta: ordering = ('name',) - + def __unicode__(self): return u"%s the place" % self.name @@ -35,11 +37,17 @@ class ParkingLot(Place): def __unicode__(self): return u"%s the parking lot" % self.name +class Parent(models.Model): + created = models.DateTimeField(default=datetime.datetime.now) + +class Child(Parent): + name = models.CharField(max_length=10) + __test__ = {'API_TESTS':""" # Regression for #7350, #7202 -# Check that when you create a Parent object with a specific reference to an existent -# child instance, saving the Parent doesn't duplicate the child. -# This behaviour is only activated during a raw save - it is mostly relevant to +# Check that when you create a Parent object with a specific reference to an +# existent child instance, saving the Parent doesn't duplicate the child. This +# behaviour is only activated during a raw save - it is mostly relevant to # deserialization, but any sort of CORBA style 'narrow()' API would require a # similar approach. @@ -117,4 +125,10 @@ __test__ = {'API_TESTS':""" >>> [sorted(d.items()) for d in dicts] [[('name', u"Guido's All New House of Pasta"), ('serves_gnocchi', False), ('serves_hot_dogs', False)]] +# Regressions tests for #7105: dates() queries should be able to use fields +# from the parent model as easily as the child. +>>> obj = Child.objects.create(name='child', created=datetime.datetime(2008, 6, 26, 17, 0, 0)) +>>> Child.objects.dates('created', 'month') +[datetime.datetime(2008, 6, 1, 0, 0)] + """} diff --git a/tests/regressiontests/queries/models.py b/tests/regressiontests/queries/models.py index aa78d6583a..c02ad73998 100644 --- a/tests/regressiontests/queries/models.py +++ b/tests/regressiontests/queries/models.py @@ -45,6 +45,7 @@ class Author(models.Model): class Item(models.Model): name = models.CharField(max_length=10) created = models.DateTimeField() + modified = models.DateTimeField(blank=True, null=True) tags = models.ManyToManyField(Tag, blank=True, null=True) creator = models.ForeignKey(Author) note = models.ForeignKey(Note) @@ -57,7 +58,7 @@ class Item(models.Model): class Report(models.Model): name = models.CharField(max_length=10) - creator = models.ForeignKey(Author, to_field='num') + creator = models.ForeignKey(Author, to_field='num', null=True) def __unicode__(self): return self.name @@ -89,6 +90,15 @@ class Number(models.Model): def __unicode__(self): return unicode(self.num) +# Symmetrical m2m field with a normal field using the reverse accesor name +# ("valid"). +class Valid(models.Model): + valid = models.CharField(max_length=10) + parent = models.ManyToManyField('self') + + class Meta: + ordering = ['valid'] + # Some funky cross-linked models for testing a couple of infinite recursion # cases. class X(models.Model): @@ -121,12 +131,12 @@ class LoopZ(models.Model): class CustomManager(models.Manager): def get_query_set(self): qs = super(CustomManager, self).get_query_set() - return qs.filter(is_public=True, tag__name='t1') + return qs.filter(public=True, tag__name='t1') class ManagedModel(models.Model): data = models.CharField(max_length=10) tag = models.ForeignKey(Tag) - is_public = models.BooleanField(default=True) + public = models.BooleanField(default=True) objects = CustomManager() normal_manager = models.Manager() @@ -134,6 +144,24 @@ class ManagedModel(models.Model): def __unicode__(self): return self.data +# An inter-related setup with multiple paths from Child to Detail. +class Detail(models.Model): + data = models.CharField(max_length=10) + +class MemberManager(models.Manager): + def get_query_set(self): + return super(MemberManager, self).get_query_set().select_related("details") + +class Member(models.Model): + name = models.CharField(max_length=10) + details = models.OneToOneField(Detail, primary_key=True) + + objects = MemberManager() + +class Child(models.Model): + person = models.OneToOneField(Member, primary_key=True) + parent = models.ForeignKey(Member, related_name="children") + __test__ = {'API_TESTS':""" >>> t1 = Tag(name='t1') @@ -174,7 +202,7 @@ by 'info'. Helps detect some problems later. >>> time2 = datetime.datetime(2007, 12, 19, 21, 0, 0) >>> time3 = datetime.datetime(2007, 12, 20, 22, 25, 0) >>> time4 = datetime.datetime(2007, 12, 20, 21, 0, 0) ->>> i1 = Item(name='one', created=time1, creator=a1, note=n3) +>>> i1 = Item(name='one', created=time1, modified=time1, creator=a1, note=n3) >>> i1.save() >>> i1.tags = [t1, t2] >>> i2 = Item(name='two', created=time2, creator=a2, note=n2) @@ -190,6 +218,8 @@ by 'info'. Helps detect some problems later. >>> r1.save() >>> r2 = Report(name='r2', creator=a3) >>> r2.save() +>>> r3 = Report(name='r3') +>>> r3.save() Ordering by 'rank' gives us rank2, rank1, rank3. Ordering by the Meta.ordering will be rank3, rank2, rank1. @@ -478,7 +508,7 @@ FieldError: Infinite loop caused by ordering. # Ordering by a many-valued attribute (e.g. a many-to-many or reverse # ForeignKey) is legal, but the results might not make sense. That isn't # Django's problem. Garbage in, garbage out. ->>> Item.objects.all().order_by('tags', 'id') +>>> Item.objects.filter(tags__isnull=False).order_by('tags', 'id') [, , , , ] # If we replace the default ordering, Django adjusts the required tables @@ -627,6 +657,10 @@ Bug #7087 -- dates with extra select columns >>> Item.objects.dates('created', 'day').extra(select={'a': 1}) [datetime.datetime(2007, 12, 19, 0, 0), datetime.datetime(2007, 12, 20, 0, 0)] +Bug #7155 -- nullable dates +>>> Item.objects.dates('modified', 'day') +[datetime.datetime(2007, 12, 19, 0, 0)] + Test that parallel iterators work. >>> qs = Tag.objects.all() @@ -705,8 +739,57 @@ More twisted cases, involving nested negations. Bug #7095 Updates that are filtered on the model being updated are somewhat tricky to get in MySQL. This exercises that case. ->>> mm = ManagedModel.objects.create(data='mm1', tag=t1, is_public=True) +>>> mm = ManagedModel.objects.create(data='mm1', tag=t1, public=True) >>> ManagedModel.objects.update(data='mm') +A values() or values_list() query across joined models must use outer joins +appropriately. +>>> Report.objects.values_list("creator__extra__info", flat=True).order_by("name") +[u'e1', u'e2', None] + +Similarly for select_related(), joins beyond an initial nullable join must +use outer joins so that all results are included. +>>> Report.objects.select_related("creator", "creator__extra").order_by("name") +[, , ] + +When there are multiple paths to a table from another table, we have to be +careful not to accidentally reuse an inappropriate join when using +select_related(). We used to return the parent's Detail record here by mistake. + +>>> d1 = Detail.objects.create(data="d1") +>>> d2 = Detail.objects.create(data="d2") +>>> m1 = Member.objects.create(name="m1", details=d1) +>>> m2 = Member.objects.create(name="m2", details=d2) +>>> c1 = Child.objects.create(person=m2, parent=m1) +>>> obj = m1.children.select_related("person__details")[0] +>>> obj.person.details.data +u'd2' + +Bug #7076 -- excluding shouldn't eliminate NULL entries. +>>> Item.objects.exclude(modified=time1).order_by('name') +[, , ] +>>> Tag.objects.exclude(parent__name=t1.name) +[, , ] + +Bug #7181 -- ordering by related tables should accomodate nullable fields (this +test is a little tricky, since NULL ordering is database dependent. Instead, we +just count the number of results). +>>> len(Tag.objects.order_by('parent__name')) +5 + +Bug #7107 -- this shouldn't create an infinite loop. +>>> Valid.objects.all() +[] + +Empty querysets can be merged with others. +>>> Note.objects.none() | Note.objects.all() +[, , ] +>>> Note.objects.all() | Note.objects.none() +[, , ] +>>> Note.objects.none() & Note.objects.all() +[] +>>> Note.objects.all() & Note.objects.none() +[] + """} diff --git a/tests/regressiontests/templates/loaders.py b/tests/regressiontests/templates/loaders.py index 82e3c622d1..db37116b94 100644 --- a/tests/regressiontests/templates/loaders.py +++ b/tests/regressiontests/templates/loaders.py @@ -1,6 +1,7 @@ -# -*- coding: utf-8 -*- """ Test cases for the template loaders + +Note: This test requires setuptools! """ from django.conf import settings @@ -17,7 +18,7 @@ import StringIO from django.template import TemplateDoesNotExist from django.template.loaders.eggs import load_template_source as lts_egg -#Mock classes and objects for pkg_resources functions +# Mock classes and objects for pkg_resources functions. class MockProvider(pkg_resources.NullProvider): def __init__(self, module): pkg_resources.NullProvider.__init__(self, module) @@ -35,25 +36,25 @@ class MockProvider(pkg_resources.NullProvider): def _get(self, path): return self.module._resources[path].read() -class MockLoader(object): pass +class MockLoader(object): + pass def create_egg(name, resources): """ - Creates a mock egg with a list of resources - - name: The name of the module - resources: A dictionary of resources. Keys are the names and values the the data. + Creates a mock egg with a list of resources. + + name: The name of the module. + resources: A dictionary of resources. Keys are the names and values the the data. """ egg = imp.new_module(name) egg.__loader__ = MockLoader() egg._resources = resources sys.modules[name] = egg - class EggLoader(unittest.TestCase): def setUp(self): pkg_resources._provider_factories[MockLoader] = MockProvider - + self.empty_egg = create_egg("egg_empty", {}) self.egg_1 = create_egg("egg_1", { 'templates/y.html' : StringIO.StringIO("y"), @@ -61,7 +62,7 @@ class EggLoader(unittest.TestCase): }) self._old_installed_apps = settings.INSTALLED_APPS settings.INSTALLED_APPS = [] - + def tearDown(self): settings.INSTALLED_APPS = self._old_installed_apps @@ -74,19 +75,18 @@ class EggLoader(unittest.TestCase): "Template loading fails if the template is not in the egg" settings.INSTALLED_APPS = ['egg_1'] self.assertRaises(TemplateDoesNotExist, lts_egg, "not-existing.html") - + def test_existing(self): "A template can be loaded from an egg" settings.INSTALLED_APPS = ['egg_1'] contents, template_name = lts_egg("y.html") self.assertEqual(contents, "y") self.assertEqual(template_name, "egg:egg_1:templates/y.html") - + def test_not_installed(self): "Loading an existent template from an egg not included in INSTALLED_APPS should fail" settings.INSTALLED_APPS = [] self.assertRaises(TemplateDoesNotExist, lts_egg, "y.html") - if __name__ == "__main__": unittest.main() diff --git a/tests/regressiontests/templates/tests.py b/tests/regressiontests/templates/tests.py index 4effea55de..186b8aacb5 100644 --- a/tests/regressiontests/templates/tests.py +++ b/tests/regressiontests/templates/tests.py @@ -20,7 +20,10 @@ from django.utils.tzinfo import LocalTimezone from unicode import unicode_tests from context import context_tests -from loaders import * +try: + from loaders import * +except ImportError: + pass # If setuptools isn't installed, that's fine. Just move on. import filters @@ -132,8 +135,7 @@ class Templates(unittest.TestCase): # Quickly check that we aren't accidentally using a name in both # template and filter tests. - overlapping_names = [name for name in filter_tests if name in - template_tests] + overlapping_names = [name for name in filter_tests if name in template_tests] assert not overlapping_names, 'Duplicate test name(s): %s' % ', '.join(overlapping_names) template_tests.update(filter_tests) @@ -156,7 +158,7 @@ class Templates(unittest.TestCase): # Turn TEMPLATE_DEBUG off, because tests assume that. old_td, settings.TEMPLATE_DEBUG = settings.TEMPLATE_DEBUG, False - # Set TEMPLATE_STRING_IF_INVALID to a known string + # Set TEMPLATE_STRING_IF_INVALID to a known string. old_invalid = settings.TEMPLATE_STRING_IF_INVALID expected_invalid_str = 'INVALID' @@ -539,13 +541,14 @@ class Templates(unittest.TestCase): 'if-tag-error05': ("{% if not foo or %}yes{% else %}no{% endif %}", {'foo': True}, template.TemplateSyntaxError), ### IFCHANGED TAG ######################################################### - 'ifchanged01': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% endfor %}', { 'num': (1,2,3) }, '123'), - 'ifchanged02': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% endfor %}', { 'num': (1,1,3) }, '13'), - 'ifchanged03': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% endfor %}', { 'num': (1,1,1) }, '1'), - 'ifchanged04': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% endfor %}{% endfor %}', { 'num': (1, 2, 3), 'numx': (2, 2, 2)}, '122232'), - 'ifchanged05': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% endfor %}{% endfor %}', { 'num': (1, 1, 1), 'numx': (1, 2, 3)}, '1123123123'), - 'ifchanged06': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% endfor %}{% endfor %}', { 'num': (1, 1, 1), 'numx': (2, 2, 2)}, '1222'), - 'ifchanged07': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% for y in numy %}{% ifchanged %}{{ y }}{% endifchanged %}{% endfor %}{% endfor %}{% endfor %}', { 'num': (1, 1, 1), 'numx': (2, 2, 2), 'numy': (3, 3, 3)}, '1233323332333'), + 'ifchanged01': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% endfor %}', {'num': (1,2,3)}, '123'), + 'ifchanged02': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% endfor %}', {'num': (1,1,3)}, '13'), + 'ifchanged03': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% endfor %}', {'num': (1,1,1)}, '1'), + 'ifchanged04': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% endfor %}{% endfor %}', {'num': (1, 2, 3), 'numx': (2, 2, 2)}, '122232'), + 'ifchanged05': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% endfor %}{% endfor %}', {'num': (1, 1, 1), 'numx': (1, 2, 3)}, '1123123123'), + 'ifchanged06': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% endfor %}{% endfor %}', {'num': (1, 1, 1), 'numx': (2, 2, 2)}, '1222'), + 'ifchanged07': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% for y in numy %}{% ifchanged %}{{ y }}{% endifchanged %}{% endfor %}{% endfor %}{% endfor %}', {'num': (1, 1, 1), 'numx': (2, 2, 2), 'numy': (3, 3, 3)}, '1233323332333'), + 'ifchanged08': ('{% for data in datalist %}{% for c,d in data %}{% if c %}{% ifchanged %}{{ d }}{% endifchanged %}{% endif %}{% endfor %}{% endfor %}', {'datalist': [[(1, 'a'), (1, 'a'), (0, 'b'), (1, 'c')], [(0, 'a'), (1, 'c'), (1, 'd'), (1, 'd'), (0, 'e')]]}, 'accd'), # Test one parameter given to ifchanged. 'ifchanged-param01': ('{% for n in num %}{% ifchanged n %}..{% endifchanged %}{{ n }}{% endfor %}', { 'num': (1,2,3) }, '..1..2..3'), @@ -704,6 +707,12 @@ class Templates(unittest.TestCase): # Inheritance from local context with variable parent template 'inheritance25': ("{% extends context_template.1 %}{% block first %}2{% endblock %}{% block second %}4{% endblock %}", {'context_template': [template.Template("Wrong"), template.Template("1{% block first %}_{% endblock %}3{% block second %}_{% endblock %}")]}, '1234'), + # Set up a base template to extend + 'inheritance26': ("no tags", {}, 'no tags'), + + # Inheritance from a template that doesn't have any blocks + 'inheritance27': ("{% extends 'inheritance26' %}", {}, 'no tags'), + ### I18N ################################################################## # {% spaceless %} tag @@ -854,40 +863,46 @@ class Templates(unittest.TestCase): ### NOW TAG ######################################################## # Simple case - 'now01' : ('{% now "j n Y"%}', {}, str(datetime.now().day) + ' ' + str(datetime.now().month) + ' ' + str(datetime.now().year)), + 'now01': ('{% now "j n Y"%}', {}, str(datetime.now().day) + ' ' + str(datetime.now().month) + ' ' + str(datetime.now().year)), # Check parsing of escaped and special characters - 'now02' : ('{% now "j "n" Y"%}', {}, template.TemplateSyntaxError), - # 'now03' : ('{% now "j \"n\" Y"%}', {}, str(datetime.now().day) + '"' + str(datetime.now().month) + '"' + str(datetime.now().year)), - # 'now04' : ('{% now "j \nn\n Y"%}', {}, str(datetime.now().day) + '\n' + str(datetime.now().month) + '\n' + str(datetime.now().year)) + 'now02': ('{% now "j "n" Y"%}', {}, template.TemplateSyntaxError), + # 'now03': ('{% now "j \"n\" Y"%}', {}, str(datetime.now().day) + '"' + str(datetime.now().month) + '"' + str(datetime.now().year)), + # 'now04': ('{% now "j \nn\n Y"%}', {}, str(datetime.now().day) + '\n' + str(datetime.now().month) + '\n' + str(datetime.now().year)) ### URL TAG ######################################################## # Successes - 'url01' : ('{% url regressiontests.templates.views.client client.id %}', {'client': {'id': 1}}, '/url_tag/client/1/'), - 'url02' : ('{% url regressiontests.templates.views.client_action client.id, action="update" %}', {'client': {'id': 1}}, '/url_tag/client/1/update/'), - 'url03' : ('{% url regressiontests.templates.views.index %}', {}, '/url_tag/'), - 'url04' : ('{% url named.client client.id %}', {'client': {'id': 1}}, '/url_tag/named-client/1/'), - 'url05' : (u'{% url метка_оператора v %}', {'v': u'Ω'}, - '/url_tag/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4/%CE%A9/'), + 'url01': ('{% url regressiontests.templates.views.client client.id %}', {'client': {'id': 1}}, '/url_tag/client/1/'), + 'url02': ('{% url regressiontests.templates.views.client_action client.id, action="update" %}', {'client': {'id': 1}}, '/url_tag/client/1/update/'), + 'url03': ('{% url regressiontests.templates.views.index %}', {}, '/url_tag/'), + 'url04': ('{% url named.client client.id %}', {'client': {'id': 1}}, '/url_tag/named-client/1/'), + 'url05': (u'{% url метка_оператора v %}', {'v': u'Ω'}, '/url_tag/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4/%CE%A9/'), # Failures - 'url-fail01' : ('{% url %}', {}, template.TemplateSyntaxError), - 'url-fail02' : ('{% url no_such_view %}', {}, ''), - 'url-fail03' : ('{% url regressiontests.templates.views.client no_such_param="value" %}', {}, ''), + 'url-fail01': ('{% url %}', {}, template.TemplateSyntaxError), + 'url-fail02': ('{% url no_such_view %}', {}, ''), + 'url-fail03': ('{% url regressiontests.templates.views.client no_such_param="value" %}', {}, ''), ### CACHE TAG ###################################################### - 'cache01' : ('{% load cache %}{% cache -1 test %}cache01{% endcache %}', {}, 'cache01'), - 'cache02' : ('{% load cache %}{% cache -1 test %}cache02{% endcache %}', {}, 'cache02'), - 'cache03' : ('{% load cache %}{% cache 2 test %}cache03{% endcache %}', {}, 'cache03'), - 'cache04' : ('{% load cache %}{% cache 2 test %}cache04{% endcache %}', {}, 'cache03'), - 'cache05' : ('{% load cache %}{% cache 2 test foo %}cache05{% endcache %}', {'foo': 1}, 'cache05'), - 'cache06' : ('{% load cache %}{% cache 2 test foo %}cache06{% endcache %}', {'foo': 2}, 'cache06'), - 'cache07' : ('{% load cache %}{% cache 2 test foo %}cache06{% endcache %}', {'foo': 1}, 'cache05'), + 'cache01': ('{% load cache %}{% cache -1 test %}cache01{% endcache %}', {}, 'cache01'), + 'cache02': ('{% load cache %}{% cache -1 test %}cache02{% endcache %}', {}, 'cache02'), + 'cache03': ('{% load cache %}{% cache 2 test %}cache03{% endcache %}', {}, 'cache03'), + 'cache04': ('{% load cache %}{% cache 2 test %}cache04{% endcache %}', {}, 'cache03'), + 'cache05': ('{% load cache %}{% cache 2 test foo %}cache05{% endcache %}', {'foo': 1}, 'cache05'), + 'cache06': ('{% load cache %}{% cache 2 test foo %}cache06{% endcache %}', {'foo': 2}, 'cache06'), + 'cache07': ('{% load cache %}{% cache 2 test foo %}cache07{% endcache %}', {'foo': 1}, 'cache05'), - # Raise exception if we dont have at least 2 args, first one integer. - 'cache08' : ('{% load cache %}{% cache %}{% endcache %}', {}, template.TemplateSyntaxError), - 'cache09' : ('{% load cache %}{% cache 1 %}{% endcache %}', {}, template.TemplateSyntaxError), - 'cache10' : ('{% load cache %}{% cache foo bar %}{% endcache %}', {}, template.TemplateSyntaxError), + # Allow first argument to be a variable. + 'cache08': ('{% load cache %}{% cache time test foo %}cache08{% endcache %}', {'foo': 2, 'time': 2}, 'cache06'), + 'cache09': ('{% load cache %}{% cache time test foo %}cache09{% endcache %}', {'foo': 3, 'time': -1}, 'cache09'), + 'cache10': ('{% load cache %}{% cache time test foo %}cache10{% endcache %}', {'foo': 3, 'time': -1}, 'cache10'), + + # Raise exception if we don't have at least 2 args, first one integer. + 'cache11': ('{% load cache %}{% cache %}{% endcache %}', {}, template.TemplateSyntaxError), + 'cache12': ('{% load cache %}{% cache 1 %}{% endcache %}', {}, template.TemplateSyntaxError), + 'cache13': ('{% load cache %}{% cache foo bar %}{% endcache %}', {}, template.TemplateSyntaxError), + 'cache14': ('{% load cache %}{% cache foo bar %}{% endcache %}', {'foo': 'fail'}, template.TemplateSyntaxError), + 'cache15': ('{% load cache %}{% cache foo bar %}{% endcache %}', {'foo': []}, template.TemplateSyntaxError), ### AUTOESCAPE TAG ############################################## 'autoescape-tag01': ("{% autoescape off %}hello{% endautoescape %}", {}, "hello"), diff --git a/tests/regressiontests/urlpatterns_reverse/tests.py b/tests/regressiontests/urlpatterns_reverse/tests.py index 8f571ac66c..610c3f7bc7 100644 --- a/tests/regressiontests/urlpatterns_reverse/tests.py +++ b/tests/regressiontests/urlpatterns_reverse/tests.py @@ -17,6 +17,7 @@ test_data = ( ('^hardcoded/$', 'hardcoded/', [], {}), ('^hardcoded/$', 'hardcoded/', ['any arg'], {}), ('^hardcoded/$', 'hardcoded/', [], {'kwarg': 'foo'}), + ('^hardcoded/doc\\.pdf$', 'hardcoded/doc.pdf', [], {}), ('^people/(?P\w\w)/(?P\w+)/$', 'people/il/adrian/', [], {'state': 'il', 'name': 'adrian'}), ('^people/(?P\w\w)/(?P\d)/$', NoReverseMatch, [], {'state': 'il', 'name': 'adrian'}), ('^people/(?P\w\w)/(?P\w+)/$', NoReverseMatch, [], {'state': 'il'}),