From d76879d1b3f443705afe4ee0b241903f36c2821b Mon Sep 17 00:00:00 2001 From: Chris Cahoon Date: Thu, 13 Aug 2009 00:52:32 +0000 Subject: [PATCH] [soc2009/http-wsgi-improvements] Merged up to r11423. git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/http-wsgi-improvements@11440 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 1 + django/conf/locale/da/LC_MESSAGES/django.mo | Bin 59904 -> 64594 bytes django/conf/locale/da/LC_MESSAGES/django.po | 1143 +++++++---------- django/conf/locale/et/LC_MESSAGES/django.mo | Bin 62593 -> 64652 bytes django/conf/locale/et/LC_MESSAGES/django.po | 331 ++--- django/conf/locale/it/LC_MESSAGES/django.mo | Bin 65185 -> 66271 bytes django/conf/locale/it/LC_MESSAGES/django.po | 394 +++--- django/conf/locale/it/LC_MESSAGES/djangojs.mo | Bin 1658 -> 1692 bytes django/conf/locale/it/LC_MESSAGES/djangojs.po | 9 +- django/conf/locale/mk/LC_MESSAGES/django.mo | Bin 79005 -> 81912 bytes django/conf/locale/mk/LC_MESSAGES/django.po | 244 ++-- django/conf/locale/no/LC_MESSAGES/django.mo | Bin 62714 -> 63757 bytes django/conf/locale/no/LC_MESSAGES/django.po | 253 ++-- django/conf/locale/th/LC_MESSAGES/django.mo | Bin 83175 -> 83394 bytes django/conf/locale/th/LC_MESSAGES/django.po | 419 +++--- django/conf/locale/th/LC_MESSAGES/djangojs.mo | Bin 2286 -> 2322 bytes django/conf/locale/th/LC_MESSAGES/djangojs.po | 27 +- django/contrib/gis/db/models/query.py | 18 +- django/contrib/gis/tests/geoapp/tests.py | 41 +- django/contrib/gis/tests/relatedapp/tests.py | 5 +- .../contrib/gis/tests/test_spatialrefsys.py | 19 +- django/core/management/commands/dumpdata.py | 3 +- django/core/management/commands/runserver.py | 3 +- django/core/servers/basehttp.py | 31 +- django/db/backends/creation.py | 10 +- docs/intro/tutorial03.txt | 4 +- docs/ref/models/instances.txt | 42 +- docs/releases/index.txt | 2 +- tests/modeltests/expressions/models.py | 39 + .../fixtures_regress/models.py | 24 +- tests/regressiontests/mail/tests.py | 7 +- tests/regressiontests/servers/__init__.py | 0 tests/regressiontests/servers/models.py | 0 tests/regressiontests/servers/tests.py | 67 + 34 files changed, 1656 insertions(+), 1480 deletions(-) create mode 100644 tests/regressiontests/servers/__init__.py create mode 100644 tests/regressiontests/servers/models.py create mode 100644 tests/regressiontests/servers/tests.py diff --git a/AUTHORS b/AUTHORS index 2dd8a87b79..49a863cbd0 100644 --- a/AUTHORS +++ b/AUTHORS @@ -440,6 +440,7 @@ answer newbie questions, and generally made Django that much better: viestards.lists@gmail.com George Vilches Vlado + Zachary Voase Milton Waddams Chris Wagner Rick Wagner diff --git a/django/conf/locale/da/LC_MESSAGES/django.mo b/django/conf/locale/da/LC_MESSAGES/django.mo index 1de523dd36361e2a8347e9bbb3ab3face5547ab7..67d6facc4249d36c760748aa9eae4eb9290ce17d 100644 GIT binary patch delta 24467 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\n" "Language-Team: \n" @@ -218,6 +218,20 @@ msgstr "Forenklet kinesisk" msgid "Traditional Chinese" msgstr "Traditionelt kinesisk" +#: contrib/admin/actions.py:60 +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s blev slettet." + +#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 +msgid "Are you sure?" +msgstr "Er du sikker?" + +#: contrib/admin/actions.py:85 +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Slet valgte %(verbose_name_plural)s" + #: contrib/admin/filterspecs.py:44 #, python-format msgid "" @@ -227,43 +241,47 @@ msgstr "" "

Efter %s:

\n" "
    \n" -#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:91 -#: contrib/admin/filterspecs.py:146 contrib/admin/filterspecs.py:172 +#: contrib/admin/filterspecs.py:75 contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173 msgid "All" msgstr "Alle" -#: contrib/admin/filterspecs.py:112 +#: contrib/admin/filterspecs.py:113 msgid "Any date" msgstr "Når som helst" -#: contrib/admin/filterspecs.py:113 +#: contrib/admin/filterspecs.py:114 msgid "Today" msgstr "I dag" -#: contrib/admin/filterspecs.py:116 +#: contrib/admin/filterspecs.py:117 msgid "Past 7 days" msgstr "De sidste 7 dage" -#: contrib/admin/filterspecs.py:118 +#: contrib/admin/filterspecs.py:119 msgid "This month" msgstr "Denne måned" -#: contrib/admin/filterspecs.py:120 +#: contrib/admin/filterspecs.py:121 msgid "This year" msgstr "Dette år" -#: contrib/admin/filterspecs.py:146 forms/widgets.py:390 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 msgid "Yes" msgstr "Ja" -#: contrib/admin/filterspecs.py:146 forms/widgets.py:390 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 msgid "No" msgstr "Nej" -#: contrib/admin/filterspecs.py:153 forms/widgets.py:390 +#: contrib/admin/filterspecs.py:154 forms/widgets.py:434 msgid "Unknown" msgstr "Ukendt" +#: contrib/admin/helpers.py:14 +msgid "Action:" +msgstr "Handling" + #: contrib/admin/models.py:19 msgid "action time" msgstr "handlingstid" @@ -292,99 +310,103 @@ msgstr "logmeddelelse" msgid "log entries" msgstr "logmeddelelser" -#: contrib/admin/options.py:60 contrib/admin/options.py:121 +#: contrib/admin/options.py:133 contrib/admin/options.py:147 msgid "None" msgstr "Ingen" -#: contrib/admin/options.py:338 +#: contrib/admin/options.py:519 #, python-format msgid "Changed %s." msgstr "Ændrede %s." -#: contrib/admin/options.py:338 contrib/admin/options.py:348 -#: contrib/comments/templates/comments/preview.html:15 forms/models.py:288 +#: contrib/admin/options.py:519 contrib/admin/options.py:529 +#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 +#: forms/models.py:600 msgid "and" msgstr "og" -#: contrib/admin/options.py:343 +#: contrib/admin/options.py:524 #, python-format msgid "Added %(name)s \"%(object)s\"." msgstr "Tilføjede %(name)s \"%(object)s\"." -#: contrib/admin/options.py:347 +#: contrib/admin/options.py:528 #, python-format msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgstr "Ændrede %(list)s for %(name)s \"%(object)s\"." -#: contrib/admin/options.py:352 +#: contrib/admin/options.py:533 #, python-format msgid "Deleted %(name)s \"%(object)s\"." msgstr "Slettede %(name)s \"%(object)s\"." -#: contrib/admin/options.py:356 +#: contrib/admin/options.py:537 msgid "No fields changed." msgstr "Ingen felter ændret." -#: contrib/admin/options.py:417 contrib/auth/admin.py:51 +#: contrib/admin/options.py:599 contrib/auth/admin.py:67 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "%(name)s \"%(obj)s\" blev tilføjet i databasen." -#: contrib/admin/options.py:421 contrib/admin/options.py:454 -#: contrib/auth/admin.py:59 +#: contrib/admin/options.py:603 contrib/admin/options.py:636 +#: contrib/auth/admin.py:75 msgid "You may edit it again below." msgstr "Du kan redigere det igen herunder." -#: contrib/admin/options.py:431 contrib/admin/options.py:464 +#: contrib/admin/options.py:613 contrib/admin/options.py:646 #, python-format msgid "You may add another %s below." msgstr "Du kan tilføje endnu en %s herunder." -#: contrib/admin/options.py:452 +#: contrib/admin/options.py:634 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "%(name)s \"%(obj)s\" blev ændret." -#: contrib/admin/options.py:460 +#: contrib/admin/options.py:642 #, python-format msgid "" "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgstr "%(name)s \"%(obj)s\" blev tilføjet. Du kan redigere det igen herunder." -#: contrib/admin/options.py:528 +#: contrib/admin/options.py:773 #, python-format msgid "Add %s" msgstr "Tilføj %s" -#: contrib/admin/options.py:559 contrib/admin/options.py:673 +#: contrib/admin/options.py:804 contrib/admin/options.py:1005 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "Der findes ikke et %(name)s-objekt med primærnøgle %(key)r." -#: contrib/admin/options.py:606 +#: contrib/admin/options.py:861 #, python-format msgid "Change %s" msgstr "Ret %s" -#: contrib/admin/options.py:638 +#: contrib/admin/options.py:905 msgid "Database error" msgstr "databasefejl" -#: contrib/admin/options.py:688 +#: contrib/admin/options.py:941 +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s %(name)s blev ændret." +msgstr[1] "%(count)s %(name)s blev ændret." + +#: contrib/admin/options.py:1020 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "%(name)s \"%(obj)s\" blev slettet." -#: contrib/admin/options.py:695 -msgid "Are you sure?" -msgstr "Er du sikker?" - -#: contrib/admin/options.py:724 +#: contrib/admin/options.py:1057 #, python-format msgid "Change history: %s" msgstr "Ændringshistorik: %s" -#: contrib/admin/sites.py:16 contrib/admin/views/decorators.py:14 +#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14 #: contrib/auth/forms.py:80 msgid "" "Please enter a correct username and password. Note that both fields are case-" @@ -393,11 +415,11 @@ msgstr "" "Indtast venligst et korrekt brugernavn og adgangskode. Bemærk, at begge " "felter er versalfølsomme." -#: contrib/admin/sites.py:226 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Log venligst ind igen, da din session er udløbet." -#: contrib/admin/sites.py:233 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -405,62 +427,62 @@ msgstr "" "Det ser ud til din browser ikke er indstillet til at acceptere cookies. Slå " "venligst cookies til, genindlæs denne side og prøv igen." -#: contrib/admin/sites.py:249 contrib/admin/sites.py:255 +#: contrib/admin/sites.py:308 contrib/admin/sites.py:314 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Brugernavne kan ikke indeholde tegnet '@'." -#: contrib/admin/sites.py:252 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "Din e-mail-adresse er ikke dit brugernavn. Prøv '%s' i stedet." -#: contrib/admin/sites.py:312 +#: contrib/admin/sites.py:367 msgid "Site administration" msgstr "Website-administration" -#: contrib/admin/sites.py:325 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Log ind" -#: contrib/admin/sites.py:372 +#: contrib/admin/sites.py:426 #, python-format msgid "%s administration" msgstr "Administration af %s" -#: contrib/admin/util.py:138 +#: contrib/admin/util.py:168 #, python-format msgid "One or more %(fieldname)s in %(name)s: %(obj)s" msgstr "Et eller flere %(fieldname)s i %(name)s: %(obj)s" -#: contrib/admin/util.py:143 +#: contrib/admin/util.py:173 #, python-format msgid "One or more %(fieldname)s in %(name)s:" msgstr "Et eller flere %(fieldname)s i %(name)s:" -#: contrib/admin/widgets.py:70 +#: contrib/admin/widgets.py:71 msgid "Date:" msgstr "Dato:" -#: contrib/admin/widgets.py:70 +#: contrib/admin/widgets.py:71 msgid "Time:" msgstr "Tid:" -#: contrib/admin/widgets.py:94 +#: contrib/admin/widgets.py:95 msgid "Currently:" msgstr "Nuværende:" -#: contrib/admin/widgets.py:94 +#: contrib/admin/widgets.py:95 msgid "Change:" msgstr "Ret:" -#: contrib/admin/widgets.py:123 +#: contrib/admin/widgets.py:124 msgid "Lookup" msgstr "Slå op" -#: contrib/admin/widgets.py:230 +#: contrib/admin/widgets.py:236 msgid "Add Another" msgstr "Tilføj endnu en" @@ -475,10 +497,11 @@ msgstr "Vi beklager, men den ønskede side kunne ikke findes" #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 -#: contrib/admin/templates/admin/base.html:33 +#: contrib/admin/templates/admin/base.html:54 #: contrib/admin/templates/admin/change_form.html:17 -#: contrib/admin/templates/admin/change_list.html:8 +#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:6 #: contrib/admin/templates/admin/invalid_setup.html:4 #: contrib/admin/templates/admin/object_history.html:6 #: contrib/admin/templates/admin/auth/user/change_password.html:10 @@ -513,32 +536,40 @@ msgstr "" "Der opstod en fejl. Fejlen er rapporteret til website-administratoren via e-" "mail, og vil blive rettet hurtigst muligt. Tak for din tålmodighed." +#: contrib/admin/templates/admin/actions.html:4 +msgid "Run the selected action" +msgstr "Udfør den valgte handling" + +#: contrib/admin/templates/admin/actions.html:4 +msgid "Go" +msgstr "Kør" + #: contrib/admin/templates/admin/app_index.html:10 #: contrib/admin/templates/admin/index.html:19 -#, fuzzy, python-format +#, python-format msgid "%(name)s" msgstr "%(name)s" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:27 msgid "Welcome," msgstr "Velkommen," -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Dokumentation" -#: contrib/admin/templates/admin/base.html:28 -#: contrib/admin/templates/admin/auth/user/change_password.html:13 -#: contrib/admin/templates/admin/auth/user/change_password.html:46 +#: contrib/admin/templates/admin/base.html:40 +#: contrib/admin/templates/admin/auth/user/change_password.html:14 +#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Change password" msgstr "Skift adgangskode" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Log out" @@ -569,23 +600,24 @@ msgid "View on site" msgstr "Se på website" #: contrib/admin/templates/admin/change_form.html:38 -#: contrib/admin/templates/admin/auth/user/change_password.html:22 +#: contrib/admin/templates/admin/change_list.html:54 +#: 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] "Ret venligst fejlen herunder." msgstr[1] "Ret venligst fejlene herunder." -#: contrib/admin/templates/admin/change_list.html:16 +#: contrib/admin/templates/admin/change_list.html:46 #, python-format msgid "Add %(name)s" msgstr "Tilføj %(name)s" -#: contrib/admin/templates/admin/change_list.html:26 +#: contrib/admin/templates/admin/change_list.html:65 msgid "Filter" msgstr "Filtrer" #: contrib/admin/templates/admin/delete_confirmation.html:10 -#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:246 +#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:275 msgid "Delete" msgstr "Slet" @@ -610,9 +642,33 @@ msgstr "" "de følgende relaterede objekter vil blive slettet:" #: contrib/admin/templates/admin/delete_confirmation.html:28 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:33 msgid "Yes, I'm sure" msgstr "Ja, jeg er sikker" +#: contrib/admin/templates/admin/delete_selected_confirmation.html:9 +msgid "Delete multiple objects" +msgstr "Slet flere objekter" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:15 +#, python-format +msgid "" +"Deleting the %(object_name)s would result in deleting related objects, but " +"your account doesn't have permission to delete the following types of " +"objects:" +msgstr "" +"Hvis du sletter %(object_name)s, vil du også slette relaterede objekter, " +"men din konto har ikke rettigheder til at slette følgende objekttyper:" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:22 +#, python-format +msgid "" +"Are you sure you want to delete the selected %(object_name)s objects? All of " +"the following objects and it's related items will be deleted:" +msgstr "" +"Er du sikker på du vil slette de valgte %(object_name)s-objekter? Alle " +"de følgende relaterede objekter vil blive slettet:" + #: contrib/admin/templates/admin/filter.html:2 #, python-format msgid " By %(filter_title)s " @@ -643,6 +699,10 @@ msgstr "Mine handlinger" msgid "None available" msgstr "Ingen tilgængelige" +#: contrib/admin/templates/admin/index.html:72 +msgid "Unknown content" +msgstr "Ukendt indhold" + #: contrib/admin/templates/admin/invalid_setup.html:7 msgid "" "Something's wrong with your database installation. Make sure the appropriate " @@ -675,7 +735,7 @@ msgid "Action" msgstr "Funktion" #: contrib/admin/templates/admin/object_history.html:30 -#: utils/translation/trans_real.py:404 +#: utils/translation/trans_real.py:400 msgid "DATETIME_FORMAT" msgstr "j. F Y H:i" @@ -691,9 +751,14 @@ msgstr "" msgid "Show all" msgstr "Vis alle" +#: contrib/admin/templates/admin/pagination.html:11 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Save" +msgstr "Gem" + #: contrib/admin/templates/admin/search_form.html:8 -msgid "Go" -msgstr "Kør" +msgid "Search" +msgstr "Søg" #: contrib/admin/templates/admin/search_form.html:10 #, python-format @@ -707,10 +772,6 @@ msgstr[1] "%(counter)s resultater" msgid "%(full_result_count)s total" msgstr "%(full_result_count)s i alt" -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Save" -msgstr "Gem" - #: contrib/admin/templates/admin/submit_line.html:5 msgid "Save as new" msgstr "Gem som ny" @@ -737,23 +798,23 @@ msgid "Username" msgstr "Brugernavn" #: contrib/admin/templates/admin/auth/user/add_form.html:20 -#: contrib/admin/templates/admin/auth/user/change_password.html:33 -#: contrib/auth/forms.py:17 contrib/auth/forms.py:60 contrib/auth/forms.py:184 +#: contrib/admin/templates/admin/auth/user/change_password.html:34 +#: contrib/auth/forms.py:17 contrib/auth/forms.py:60 contrib/auth/forms.py:185 msgid "Password" msgstr "Adgangskode" #: contrib/admin/templates/admin/auth/user/add_form.html:26 -#: contrib/admin/templates/admin/auth/user/change_password.html:39 -#: contrib/auth/forms.py:185 +#: contrib/admin/templates/admin/auth/user/change_password.html:40 +#: contrib/auth/forms.py:186 msgid "Password (again)" msgstr "Adgangskode (igen)" #: contrib/admin/templates/admin/auth/user/add_form.html:27 -#: contrib/admin/templates/admin/auth/user/change_password.html:40 +#: contrib/admin/templates/admin/auth/user/change_password.html:41 msgid "Enter the same password as above, for verification." msgstr "Indtast den samme adgangskode som ovenfor for verifikation." -#: contrib/admin/templates/admin/auth/user/change_password.html:26 +#: contrib/admin/templates/admin/auth/user/change_password.html:27 #, python-format msgid "Enter a new password for the user %(username)s." msgstr "Indtast en ny adgangskode for brugeren %(username)s." @@ -917,166 +978,167 @@ msgstr "E-mail-adresse:" msgid "Reset my password" msgstr "Nulstil min adgangskode" -#: contrib/admin/templatetags/admin_list.py:284 +#: contrib/admin/templatetags/admin_list.py:299 msgid "All dates" msgstr "Alle datoer" -#: contrib/admin/views/main.py:69 +#: contrib/admin/views/main.py:70 #, python-format msgid "Select %s" msgstr "Vælg %s" -#: contrib/admin/views/main.py:69 +#: contrib/admin/views/main.py:70 #, python-format msgid "Select %s to change" msgstr "Vælg %s, der skal ændres" -#: contrib/admin/views/template.py:36 contrib/sites/models.py:38 +#: contrib/admin/views/template.py:37 contrib/sites/models.py:38 msgid "site" msgstr "website" -#: contrib/admin/views/template.py:38 +#: contrib/admin/views/template.py:39 msgid "template" msgstr "skabelon" -#: contrib/admindocs/views.py:57 contrib/admindocs/views.py:59 -#: contrib/admindocs/views.py:61 +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 msgid "tag:" msgstr "tag:" -#: contrib/admindocs/views.py:90 contrib/admindocs/views.py:92 -#: contrib/admindocs/views.py:94 +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 msgid "filter:" msgstr "filter:" -#: contrib/admindocs/views.py:154 contrib/admindocs/views.py:156 -#: contrib/admindocs/views.py:158 +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 msgid "view:" msgstr "view:" -#: contrib/admindocs/views.py:186 +#: contrib/admindocs/views.py:190 #, python-format msgid "App %r not found" msgstr "Applikationen %r blev ikke fundet" -#: contrib/admindocs/views.py:193 +#: contrib/admindocs/views.py:197 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" msgstr "Modellen %(model_name)r ikke fundet i applikationen %(app_label)r" -#: contrib/admindocs/views.py:205 +#: contrib/admindocs/views.py:209 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" msgstr "det relaterede `%(app_label)s.%(data_type)s`-objekt" -#: contrib/admindocs/views.py:205 contrib/admindocs/views.py:227 -#: contrib/admindocs/views.py:241 contrib/admindocs/views.py:246 +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 msgid "model:" msgstr "model:" -#: contrib/admindocs/views.py:236 +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" msgstr "relaterede `%(app_label)s.%(object_name)s`-objekter" -#: contrib/admindocs/views.py:241 +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 #, python-format msgid "all %s" msgstr "alle %s" -#: contrib/admindocs/views.py:246 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 #, python-format msgid "number of %s" msgstr "antal %s" -#: contrib/admindocs/views.py:251 +#: contrib/admindocs/views.py:271 #, python-format msgid "Fields on %s objects" msgstr "Felter på %s-objekter" -#: contrib/admindocs/views.py:314 contrib/admindocs/views.py:325 -#: contrib/admindocs/views.py:327 contrib/admindocs/views.py:333 -#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:336 +#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 +#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 msgid "Integer" msgstr "Heltal" -#: contrib/admindocs/views.py:315 +#: contrib/admindocs/views.py:335 msgid "Boolean (Either True or False)" msgstr "Boolsk (enten True eller False)" -#: contrib/admindocs/views.py:316 contrib/admindocs/views.py:335 +#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 #, python-format msgid "String (up to %(max_length)s)" msgstr "Streng (op til %(max_length)s)" -#: contrib/admindocs/views.py:317 +#: contrib/admindocs/views.py:337 msgid "Comma-separated integers" msgstr "Kommaseparerede heltal" -#: contrib/admindocs/views.py:318 +#: contrib/admindocs/views.py:338 msgid "Date (without time)" msgstr "Dato (uden tid)" -#: contrib/admindocs/views.py:319 +#: contrib/admindocs/views.py:339 msgid "Date (with time)" msgstr "Dato (med tid)" -#: contrib/admindocs/views.py:320 +#: contrib/admindocs/views.py:340 msgid "Decimal number" msgstr "Decimaltal" -#: contrib/admindocs/views.py:321 +#: contrib/admindocs/views.py:341 msgid "E-mail address" msgstr "E-mail-adresse" -#: contrib/admindocs/views.py:322 contrib/admindocs/views.py:323 -#: contrib/admindocs/views.py:326 +#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:346 msgid "File path" msgstr "Sti" -#: contrib/admindocs/views.py:324 +#: contrib/admindocs/views.py:344 msgid "Floating point number" msgstr "Flydende-komma-tal" -#: contrib/admindocs/views.py:328 contrib/comments/models.py:58 +#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 msgid "IP address" msgstr "IP-adresse" -#: contrib/admindocs/views.py:330 +#: contrib/admindocs/views.py:350 msgid "Boolean (Either True, False or None)" msgstr "Boolsk (True, False eller None)" -#: contrib/admindocs/views.py:331 +#: contrib/admindocs/views.py:351 msgid "Relation to parent model" msgstr "Relation til forældermodel" -#: contrib/admindocs/views.py:332 +#: contrib/admindocs/views.py:352 msgid "Phone number" msgstr "Telefonnummer" -#: contrib/admindocs/views.py:337 +#: contrib/admindocs/views.py:357 msgid "Text" msgstr "Tekst" -#: contrib/admindocs/views.py:338 +#: contrib/admindocs/views.py:358 msgid "Time" msgstr "Tid" -#: contrib/admindocs/views.py:339 contrib/comments/forms.py:21 +#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 #: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 msgid "URL" msgstr "URL" -#: contrib/admindocs/views.py:340 +#: contrib/admindocs/views.py:360 msgid "U.S. state (two uppercase letters)" msgstr "Stat (i USA, to store bogstaver)" -#: contrib/admindocs/views.py:341 +#: contrib/admindocs/views.py:361 msgid "XML text" msgstr "XML-tekst" -#: contrib/admindocs/views.py:367 +#: contrib/admindocs/views.py:387 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s ser ikke ud til at være et urlpattern-objekt" @@ -1168,21 +1230,21 @@ msgstr "Vigtige datoer" msgid "Groups" msgstr "Grupper" -#: contrib/auth/admin.py:64 +#: contrib/auth/admin.py:80 msgid "Add user" msgstr "Tilføj bruger" -#: contrib/auth/admin.py:90 +#: contrib/auth/admin.py:106 msgid "Password changed successfully." msgstr "Adgangskoden blev ændret." -#: contrib/auth/admin.py:96 +#: contrib/auth/admin.py:112 #, python-format msgid "Change password: %s" msgstr "Skift adgangskode: %s" #: contrib/auth/forms.py:15 contrib/auth/forms.py:48 -#: contrib/auth/models.py:127 +#: contrib/auth/models.py:128 msgid "" "Required. 30 characters or fewer. Alphanumeric characters only (letters, " "digits and underscores)." @@ -1202,8 +1264,8 @@ msgstr "Bekræftelse af adgangskode" msgid "A user with that username already exists." msgstr "En bruger med dette brugernavn findes allerede." -#: contrib/auth/forms.py:36 contrib/auth/forms.py:154 -#: contrib/auth/forms.py:196 +#: contrib/auth/forms.py:36 contrib/auth/forms.py:155 +#: contrib/auth/forms.py:197 msgid "The two password fields didn't match." msgstr "De to adgangskoder var ikke identiske." @@ -1231,24 +1293,24 @@ msgstr "" "Den e-mail-adresse er ikke tilknyttet en konto. Er du sikker på at du har " "registreret dig?" -#: contrib/auth/forms.py:134 +#: contrib/auth/forms.py:135 #, python-format msgid "Password reset on %s" msgstr "Adgangskode nulstillet på %s" -#: contrib/auth/forms.py:142 +#: contrib/auth/forms.py:143 msgid "New password" msgstr "Ny adgangskode" -#: contrib/auth/forms.py:143 +#: contrib/auth/forms.py:144 msgid "New password confirmation" msgstr "Bekræftelse af ny adgangskode" -#: contrib/auth/forms.py:168 +#: contrib/auth/forms.py:169 msgid "Old password" msgstr "Gammel adgangskode" -#: contrib/auth/forms.py:176 +#: contrib/auth/forms.py:177 msgid "Your old password was entered incorrectly. Please enter it again." msgstr "" "Din gamle adgangskode blev ikke indtastet korrekt. Indtast den venligst igen." @@ -1273,31 +1335,31 @@ msgstr "rettigheder" msgid "group" msgstr "gruppe" -#: contrib/auth/models.py:91 contrib/auth/models.py:137 +#: contrib/auth/models.py:91 contrib/auth/models.py:138 msgid "groups" msgstr "grupper" -#: contrib/auth/models.py:127 +#: contrib/auth/models.py:128 msgid "username" msgstr "brugernavn" -#: contrib/auth/models.py:128 +#: contrib/auth/models.py:129 msgid "first name" msgstr "fornavn" -#: contrib/auth/models.py:129 +#: contrib/auth/models.py:130 msgid "last name" msgstr "efternavn" -#: contrib/auth/models.py:130 +#: contrib/auth/models.py:131 msgid "e-mail address" msgstr "e-mail-adresse" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:132 msgid "password" msgstr "adgangskode" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:132 msgid "" "Use '[algo]$[salt]$[hexdigest]' or use the change " "password form." @@ -1305,19 +1367,19 @@ msgstr "" "Brug '[algo]$[salt]$[hexdigest]' eller brug formularen " "til skift af adgangskode." -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:133 msgid "staff status" msgstr "admin-status" -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:133 msgid "Designates whether the user can log into this admin site." msgstr "Bestemmer om brugeren kan logge ind på dette administrationswebsite." -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:134 msgid "active" msgstr "aktiv" -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:134 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1325,26 +1387,26 @@ msgstr "" "Bestemmer om brugeren skal behandles som aktiv. Fravælg dette frem for at " "slette en konto." -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:135 msgid "superuser status" msgstr "superbrugerstatus" -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:135 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "" "Bestemmer at denne bruger har alle rettigheder uden at tildele dem eksplicit." -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:136 msgid "last login" msgstr "sidst logget ind" -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:137 msgid "date joined" msgstr "dato for registrering" -#: contrib/auth/models.py:138 +#: contrib/auth/models.py:139 msgid "" "In addition to the permissions manually assigned, this user will also get " "all permissions granted to each group he/she is in." @@ -1352,27 +1414,28 @@ msgstr "" "Udover de rettigheder, der manuelt er tildelt brugeren, vil denne også få " "alle rettigheder, der er tildelt hver gruppe, brugeren er medlem af." -#: contrib/auth/models.py:139 +#: contrib/auth/models.py:140 msgid "user permissions" msgstr "Rettigheder" -#: contrib/auth/models.py:143 +#: contrib/auth/models.py:144 contrib/comments/models.py:50 +#: contrib/comments/models.py:168 msgid "user" msgstr "bruger" -#: contrib/auth/models.py:144 +#: contrib/auth/models.py:145 msgid "users" msgstr "brugere" -#: contrib/auth/models.py:300 +#: contrib/auth/models.py:301 msgid "message" msgstr "meddelelse" -#: contrib/auth/views.py:50 +#: contrib/auth/views.py:56 msgid "Logged out" msgstr "Logget ud" -#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:428 +#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:429 msgid "Enter a valid e-mail address." msgstr "Indtast en gyldig e-mail-adresse." @@ -1384,73 +1447,88 @@ msgstr "Indhold" msgid "Metadata" msgstr "Metadata" -#: contrib/comments/forms.py:19 +#: contrib/comments/feeds.py:13 +#, python-format +msgid "%(site_name)s comments" +msgstr "kommentarer på %(site_name)s" + +#: contrib/comments/feeds.py:23 +#, python-format +msgid "Latest comments on %(site_name)s" +msgstr "Seneste kommentarer på %(site_name)s" + +#: contrib/comments/forms.py:93 #: contrib/comments/templates/comments/moderation_queue.html:34 msgid "Name" msgstr "Navn" -#: contrib/comments/forms.py:20 +#: contrib/comments/forms.py:94 msgid "Email address" msgstr "E-mail-adresse" -#: contrib/comments/forms.py:22 +#: contrib/comments/forms.py:96 #: contrib/comments/templates/comments/moderation_queue.html:35 msgid "Comment" msgstr "Kommentar" -#: contrib/comments/forms.py:25 -msgid "" -"If you enter anything in this field your comment will be treated as spam" -msgstr "" -"Hvis du indtaster noget i dette felt, vil din kommentar blive betragtet som " -"spam." - -#: contrib/comments/forms.py:125 +#: contrib/comments/forms.py:173 #, 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] "Var din mund! Ordet %s er ikke tilladt her." msgstr[1] "Var din mund! Ordene %s er ikke tilladt her." -#: contrib/comments/models.py:23 +#: contrib/comments/forms.py:180 +msgid "" +"If you enter anything in this field your comment will be treated as spam" +msgstr "" +"Hvis du indtaster noget i dette felt, vil din kommentar blive betragtet som " +"spam." + +#: contrib/comments/models.py:22 contrib/contenttypes/models.py:74 +msgid "content type" +msgstr "indholdstype" + +#: contrib/comments/models.py:24 msgid "object ID" msgstr "objekt-ID" -#: contrib/comments/models.py:50 +#: contrib/comments/models.py:52 msgid "user's name" msgstr "brugerens navn" -#: contrib/comments/models.py:51 +#: contrib/comments/models.py:53 msgid "user's email address" msgstr "brugerens e-mail-adresse" -#: contrib/comments/models.py:52 +#: contrib/comments/models.py:54 msgid "user's URL" msgstr "brugerens URL" -#: contrib/comments/models.py:54 +#: contrib/comments/models.py:56 contrib/comments/models.py:76 +#: contrib/comments/models.py:169 msgid "comment" msgstr "kommentar" -#: contrib/comments/models.py:57 +#: contrib/comments/models.py:59 msgid "date/time submitted" msgstr "dato/tidspunkt for oprettelse" -#: contrib/comments/models.py:59 +#: contrib/comments/models.py:61 msgid "is public" msgstr "er offentlig" -#: contrib/comments/models.py:60 +#: contrib/comments/models.py:62 msgid "" "Uncheck this box to make the comment effectively disappear from the site." msgstr "" "Hvis du fjerner afkrydsningen her, bliver din kommentar slettet fra sitet." -#: contrib/comments/models.py:62 +#: contrib/comments/models.py:64 msgid "is removed" msgstr "er fjernet" -#: contrib/comments/models.py:63 +#: contrib/comments/models.py:65 msgid "" "Check this box if the comment is inappropriate. A \"This comment has been " "removed\" message will be displayed instead." @@ -1458,7 +1536,11 @@ msgstr "" "Afkryds denne boks, hvis kommentaren er upassende. Beskeden \"Denne " "kommentar er blevet fjernet\" vil blive vist i stedet." -#: contrib/comments/models.py:115 +#: contrib/comments/models.py:77 +msgid "comments" +msgstr "kommentarer" + +#: contrib/comments/models.py:119 msgid "" "This comment was posted by an authenticated user and thus the name is read-" "only." @@ -1466,7 +1548,7 @@ msgstr "" "Denne kommentar blev indsendt af en autenticeret bruger; derfor er navnet " "skrivebeskyttet." -#: contrib/comments/models.py:124 +#: contrib/comments/models.py:128 msgid "" "This comment was posted by an authenticated user and thus the email is read-" "only." @@ -1474,7 +1556,7 @@ msgstr "" "Denne kommentar blev indsendt af en autenticeret bruger; derfor er e-mail-" "adressen skrivebeskyttet." -#: contrib/comments/models.py:149 +#: contrib/comments/models.py:153 #, python-format msgid "" "Posted by %(user)s at %(date)s\n" @@ -1489,6 +1571,22 @@ msgstr "" "\n" "http://%(domain)s%(url)s" +#: contrib/comments/models.py:170 +msgid "flag" +msgstr "Flag" + +#: contrib/comments/models.py:171 +msgid "date" +msgstr "dato" + +#: contrib/comments/models.py:181 +msgid "comment flag" +msgstr "kommentarflag" + +#: contrib/comments/models.py:182 +msgid "comment flags" +msgstr "kommentarflag" + #: contrib/comments/templates/comments/approve.html:4 msgid "Approve a comment" msgstr "Godkend en kommentar" @@ -1548,13 +1646,13 @@ msgstr "Flag" msgid "Thanks for flagging" msgstr "Tak for flagningen" -#: contrib/comments/templates/comments/form.html:16 -#: contrib/comments/templates/comments/preview.html:31 +#: contrib/comments/templates/comments/form.html:17 +#: contrib/comments/templates/comments/preview.html:32 msgid "Post" msgstr "Indsend" -#: contrib/comments/templates/comments/form.html:17 -#: contrib/comments/templates/comments/preview.html:32 +#: contrib/comments/templates/comments/form.html:18 +#: contrib/comments/templates/comments/preview.html:33 msgid "Preview" msgstr "Forhåndsvis" @@ -1600,33 +1698,29 @@ msgid "Thank you for your comment" msgstr "Tak for kommentaren" #: contrib/comments/templates/comments/preview.html:4 -#: contrib/comments/templates/comments/preview.html:12 +#: contrib/comments/templates/comments/preview.html:13 msgid "Preview your comment" msgstr "Forhåndsvis kommentar" -#: contrib/comments/templates/comments/preview.html:10 +#: contrib/comments/templates/comments/preview.html:11 msgid "Please correct the error below" msgid_plural "Please correct the errors below" msgstr[0] "Ret venligst fejlen herunder." msgstr[1] "Ret venligst fejlene herunder." -#: contrib/comments/templates/comments/preview.html:15 +#: contrib/comments/templates/comments/preview.html:16 msgid "Post your comment" msgstr "Indsend din kommentar" -#: contrib/comments/templates/comments/preview.html:15 +#: contrib/comments/templates/comments/preview.html:16 msgid "or make changes" msgstr "eller gennemfør ændringer" -#: contrib/contenttypes/models.py:67 +#: contrib/contenttypes/models.py:70 msgid "python model class name" msgstr "klassenavn i Python-model" -#: contrib/contenttypes/models.py:71 -msgid "content type" -msgstr "indholdstype" - -#: contrib/contenttypes/models.py:72 +#: contrib/contenttypes/models.py:75 msgid "content types" msgstr "indholdstyper" @@ -1699,18 +1793,24 @@ msgstr "" "Tiden er udløbet - vi beklager. Vær venlig at fortsætte med at udfylde " "formularen på denne side." -#: contrib/gis/forms/fields.py:14 +#: contrib/gis/forms/fields.py:17 msgid "No geometry value provided." msgstr "Ingen værdi givet for geometri." -#: contrib/gis/forms/fields.py:15 +#: contrib/gis/forms/fields.py:18 msgid "Invalid geometry value." msgstr "Ugyldig geometriværdi." -#: contrib/gis/forms/fields.py:16 +#: contrib/gis/forms/fields.py:19 msgid "Invalid geometry type." msgstr "Ugyldig gemometritype." +#: contrib/gis/forms/fields.py:20 +msgid "" +"An error occurred when transforming the geometry to the SRID of the geometry " +"form field." +msgstr "" + #: contrib/humanize/templatetags/humanize.py:19 msgid "th" msgstr "." @@ -2029,6 +2129,82 @@ msgstr "Indtast en gyldig chilensk RUT. Formatet er XX.XXX.XXX-X." msgid "The Chilean RUT is not valid." msgstr "Den chilenske RUT er ugyldig." +#: contrib/localflavor/cz/cz_regions.py:8 +msgid "Prague" +msgstr "Prag" + +#: contrib/localflavor/cz/cz_regions.py:9 +msgid "Central Bohemian Region" +msgstr "Centrale Böhmen" + +#: contrib/localflavor/cz/cz_regions.py:10 +msgid "South Bohemian Region" +msgstr "Sydlige Böhmen" + +#: contrib/localflavor/cz/cz_regions.py:11 +msgid "Pilsen Region" +msgstr "Pilsen-regionen" + +#: contrib/localflavor/cz/cz_regions.py:12 +msgid "Carlsbad Region" +msgstr "Carlsbad-regionen" + +#: contrib/localflavor/cz/cz_regions.py:13 +msgid "Usti Region" +msgstr "Usti-regionen" + +#: contrib/localflavor/cz/cz_regions.py:14 +msgid "Liberec Region" +msgstr "Liberec-regionen" + +#: contrib/localflavor/cz/cz_regions.py:15 +msgid "Hradec Region" +msgstr "Hradec-regionen" + +#: contrib/localflavor/cz/cz_regions.py:16 +msgid "Pardubice Region" +msgstr "Pardubice-region" + +#: contrib/localflavor/cz/cz_regions.py:17 +msgid "Vysocina Region" +msgstr "Vysocina region" + +#: contrib/localflavor/cz/cz_regions.py:18 +msgid "South Moravian Region" +msgstr "Sydmoravien" + +#: contrib/localflavor/cz/cz_regions.py:19 +msgid "Olomouc Region" +msgstr "Olomuc-regionen" + +#: contrib/localflavor/cz/cz_regions.py:20 +msgid "Zlin Region" +msgstr "Zlin-regionen" + +#: contrib/localflavor/cz/cz_regions.py:21 +msgid "Moravian-Silesian Region" +msgstr "Moravien-Silesien" + +#: contrib/localflavor/cz/forms.py:27 contrib/localflavor/sk/forms.py:30 +msgid "Enter a postal code in the format XXXXX or XXX XX." +msgstr "Indtast et postnr. i format XXXXX eller XXX XX." + +#: contrib/localflavor/cz/forms.py:47 +msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." +msgstr "Indtast et fødselsnr. i formatet XXXXXX/XXXX or XXXXXXXXXX." + +#: contrib/localflavor/cz/forms.py:48 +msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" +msgstr "Ugyldig værdi for køn. Gyldige værdier er 'f' og 'm'." + +#: contrib/localflavor/cz/forms.py:49 +msgid "Enter a valid birth number." +msgstr "Indtast et gyldigt fødselsnummer." + +#: contrib/localflavor/cz/forms.py:106 +msgid "Enter a valid IC number." +msgstr "Indtast et IC-nummer." + #: contrib/localflavor/de/de_states.py:5 msgid "Baden-Wuerttemberg" msgstr "Baden-Wuerttemberg" @@ -2096,7 +2272,7 @@ 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 "Indtast et postnummer i formatet XXXXX" #: contrib/localflavor/de/forms.py:41 msgid "" @@ -2766,15 +2942,15 @@ msgstr "Zacatecas" #: contrib/localflavor/nl/forms.py:21 msgid "Enter a valid postal code" -msgstr "" +msgstr "Indtast et gyldigt postnummer" #: contrib/localflavor/nl/forms.py:52 msgid "Enter a valid phone number" -msgstr "" +msgstr "Indtast et gyldigt telefonnummer" #: contrib/localflavor/nl/forms.py:78 msgid "Enter a valid SoFi number" -msgstr "" +msgstr "Indtast et gyldigt SoFi-nummer" #: contrib/localflavor/nl/nl_provinces.py:4 msgid "Drenthe" @@ -2853,15 +3029,15 @@ msgstr "Indtast et NIP i formatet XXX-XXX-XX-XX or XX-XX-XXX-XXX." msgid "Wrong checksum for the Tax Number (NIP)." msgstr "Forkert kontrolsum for NIP. " -#: contrib/localflavor/pl/forms.py:111 -msgid "National Business Register Number (REGON) consists of 7 or 9 digits." -msgstr "REGON skal består af 7 eller 9 cifre." +#: contrib/localflavor/pl/forms.py:109 +msgid "National Business Register Number (REGON) consists of 9 or 14 digits." +msgstr "National Business Register Number (REGON) består af 9 eller 14 cifre." -#: contrib/localflavor/pl/forms.py:112 +#: contrib/localflavor/pl/forms.py:110 msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Foerkert kontrolsum for REGON." +msgstr "Forkert kontrolsum for REGON-nr." -#: contrib/localflavor/pl/forms.py:155 +#: contrib/localflavor/pl/forms.py:148 msgid "Enter a postal code in the format XX-XXX." msgstr "Indtast et postnummer i formatet XX-XXX." @@ -2949,10 +3125,6 @@ msgstr "Telefinnumre skal være i formatet XXXX-XXXXXX." msgid "Enter a valid postal code in the format XXXXXX" msgstr "Indtast et gyldigt postnummer i formatet XXXXXX" -#: contrib/localflavor/sk/forms.py:30 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Indtast et postnr. i format XXXXX eller XXX XX." - #: contrib/localflavor/sk/sk_districts.py:8 msgid "Banska Bystrica" msgstr "Banska Bystrica" @@ -3639,7 +3811,7 @@ msgstr "Western Cape" #: contrib/redirects/models.py:7 msgid "redirect from" -msgstr "" +msgstr "rediriger fra" #: contrib/redirects/models.py:8 msgid "" @@ -3651,7 +3823,7 @@ msgstr "" #: contrib/redirects/models.py:9 msgid "redirect to" -msgstr "omadresser til" +msgstr "rediriger til" #: contrib/redirects/models.py:10 msgid "" @@ -3663,11 +3835,11 @@ msgstr "" #: contrib/redirects/models.py:13 msgid "redirect" -msgstr "omadresser" +msgstr "rediriger" #: contrib/redirects/models.py:14 msgid "redirects" -msgstr "omaddresseringer" +msgstr "redirigeringer" #: contrib/sessions/models.py:45 msgid "session key" @@ -3701,55 +3873,59 @@ msgstr "vist navn" msgid "sites" msgstr "websites" -#: db/models/fields/__init__.py:348 db/models/fields/__init__.py:683 +#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710 msgid "This value must be an integer." msgstr "Denne værdi skal et heltal." -#: db/models/fields/__init__.py:379 +#: db/models/fields/__init__.py:388 msgid "This value must be either True or False." msgstr "Denne værdi skal være enten True eller False." -#: db/models/fields/__init__.py:412 +#: db/models/fields/__init__.py:427 msgid "This field cannot be null." msgstr "Dette felt kan ikke være null." -#: db/models/fields/__init__.py:428 +#: db/models/fields/__init__.py:443 msgid "Enter only digits separated by commas." msgstr "Indtast kun cifre adskilt af kommaer." -#: db/models/fields/__init__.py:459 +#: db/models/fields/__init__.py:474 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Indtast en gyldig dato i formatet ÅÅÅÅ-MM-DD." -#: db/models/fields/__init__.py:468 +#: db/models/fields/__init__.py:483 #, python-format msgid "Invalid date: %s" msgstr "Ugyldig dato: %s" -#: db/models/fields/__init__.py:532 db/models/fields/__init__.py:550 +#: db/models/fields/__init__.py:547 db/models/fields/__init__.py:565 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." msgstr "Indtast gyldig dato og tid i formatet ÅÅÅÅ-MM-DD TT:MM[:ss[.uuuuuu]]." -#: db/models/fields/__init__.py:586 +#: db/models/fields/__init__.py:601 msgid "This value must be a decimal number." msgstr "Denne værdi skal et decimaltal." -#: db/models/fields/__init__.py:719 +#: db/models/fields/__init__.py:686 +msgid "This value must be a float." +msgstr "Denne værdi skal være et kommatal." + +#: db/models/fields/__init__.py:746 msgid "This value must be either None, True or False." msgstr "Denne værdi skal være None, True eller False." -#: db/models/fields/__init__.py:817 db/models/fields/__init__.py:831 +#: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863 msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgstr "Indtast en gyldig tid i formatet TT:MM[:ss[.uuuuuu]]." -#: db/models/fields/related.py:761 +#: db/models/fields/related.py:816 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Hold \"Ctrl\" (eller \"Æbletasten\" på Mac) nede for at vælge mere end en." -#: db/models/fields/related.py:838 -#, fuzzy, python-format +#: db/models/fields/related.py:894 +#, 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." @@ -3810,31 +3986,37 @@ msgstr "Der må højst være %s decimalpladser." msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Der må maksimalt være %s cifre før decimaltegnet." -#: forms/fields.py:287 forms/fields.py:849 +#: forms/fields.py:288 forms/fields.py:863 msgid "Enter a valid date." msgstr "Indtast en gyldig dato." -#: forms/fields.py:321 forms/fields.py:850 +#: forms/fields.py:322 forms/fields.py:864 msgid "Enter a valid time." msgstr "Indtast en gyldig tid." -#: forms/fields.py:360 +#: forms/fields.py:361 msgid "Enter a valid date/time." msgstr "Indtast gyldig dato/tid." -#: forms/fields.py:446 +#: forms/fields.py:447 msgid "No file was submitted. Check the encoding type on the form." msgstr "Ingen fil blev indsendt. Kontroller kodningstypen i formularen." -#: forms/fields.py:447 +#: forms/fields.py:448 msgid "No file was submitted." msgstr "Ingen fil blev indsendt." -#: forms/fields.py:448 +#: forms/fields.py:449 msgid "The submitted file is empty." msgstr "Den indsendte fil er tom." -#: forms/fields.py:477 +#: forms/fields.py:450 +#, python-format +msgid "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr "Denne værdi må maksimalt indeholde %(max)d tegn (den har %(length)d)." + +#: forms/fields.py:483 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -3842,107 +4024,141 @@ msgstr "" "Indsend en billedfil. Filen, du indsendte, var enten ikke et billede eller " "en defekt billedfil." -#: forms/fields.py:538 +#: forms/fields.py:544 msgid "Enter a valid URL." msgstr "Indtast en gyldig URL." -#: forms/fields.py:539 +#: forms/fields.py:545 msgid "This URL appears to be a broken link." msgstr "Denne URL henviser ikke til en gyldig side eller fil." -#: forms/fields.py:618 forms/fields.py:696 +#: forms/fields.py:625 forms/fields.py:703 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "" "Marker en gyldigt valgmulighed; '%(value)s' er ikke en af de tilgængelige " "valgmuligheder." -#: forms/fields.py:697 forms/fields.py:758 forms/models.py:714 +#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003 msgid "Enter a list of values." msgstr "Indtast en liste af værdier." -#: forms/fields.py:878 +#: forms/fields.py:892 msgid "Enter a valid IPv4 address." msgstr "Indtast en gyldig IPv4-adresse." -#: forms/fields.py:888 +#: forms/fields.py:902 msgid "" "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." msgstr "" "Dette felt må kun indeholde bogstaver, cifre, understreger og bindestreger." -#: forms/formsets.py:242 forms/formsets.py:244 +#: forms/formsets.py:271 forms/formsets.py:273 msgid "Order" msgstr "Rækkefølge" -#: forms/models.py:281 forms/models.py:290 +#: forms/models.py:367 +#, python-format +msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." +msgstr "%(field_name)s skal være unik for %(date_field)s %(lookup)s." + +#: forms/models.py:381 forms/models.py:389 #, python-format msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s med dette %(field_label)s eksisterer allerede." -#: forms/models.py:581 -msgid "The inline foreign key did not match the parent instance primary key." -msgstr "Den indlejrede fremmednøgle passede ikke med forælderinstansens primærnøgle." +#: forms/models.py:594 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Ret venligst duplikerede data for %(field)s." -#: forms/models.py:644 +#: forms/models.py:598 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Ret venligst de duplikerede data for %(field)s, som skal være unik." + +#: forms/models.py:604 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Ret venligst de duplikerede data for %(field_name)s, som skal være unik " +"for %(lookup)s i %(date_field)s." + +#: forms/models.py:612 +msgid "Please correct the duplicate values below." +msgstr "Ret venligst de duplikerede data herunder." + +#: forms/models.py:867 +msgid "The inline foreign key did not match the parent instance primary key." +msgstr "" +"Den indlejrede fremmednøgle passede ikke med forælderinstansens primærnøgle." + +#: forms/models.py:930 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "" "Marker en gyldig valgmulighed. Det valg, du har foretaget, er ikke blandt de " "tilgængelige valgmuligheder." -#: forms/models.py:715 +#: forms/models.py:1004 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "" "Marker et gyldigt valg. %s er ikke en af de tilgængelige valgmuligheder." -#: template/defaultfilters.py:743 +#: forms/models.py:1006 +#, python-format +msgid "\"%s\" is not a valid value for a primary key." +msgstr "\"%s\" er ikke en gyldig værdi for en primærnøgle." + +#: template/defaultfilters.py:767 msgid "yes,no,maybe" msgstr "ja,nej,måske" -#: template/defaultfilters.py:774 +#: template/defaultfilters.py:798 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d byte" msgstr[1] "%(size)d bytes" -#: template/defaultfilters.py:776 +#: template/defaultfilters.py:800 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:778 +#: template/defaultfilters.py:802 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:779 +#: template/defaultfilters.py:803 #, python-format msgid "%.1f GB" msgstr "%.1f GB" -#: utils/dateformat.py:41 +#: utils/dateformat.py:42 msgid "p.m." msgstr "p.m." -#: utils/dateformat.py:42 +#: utils/dateformat.py:43 msgid "a.m." msgstr "a.m." -#: utils/dateformat.py:47 +#: utils/dateformat.py:48 msgid "PM" msgstr "PM" -#: utils/dateformat.py:48 +#: utils/dateformat.py:49 msgid "AM" msgstr "AM" -#: utils/dateformat.py:97 +#: utils/dateformat.py:98 msgid "midnight" msgstr "midnat" -#: utils/dateformat.py:99 +#: utils/dateformat.py:100 msgid "noon" msgstr "middag" @@ -4166,33 +4382,33 @@ msgid_plural "minutes" msgstr[0] "minut" msgstr[1] "minutter" -#: utils/timesince.py:43 +#: utils/timesince.py:45 msgid "minutes" msgstr "minutter" -#: utils/timesince.py:48 +#: utils/timesince.py:50 #, python-format msgid "%(number)d %(type)s" msgstr "%(number)d %(type)s" -#: utils/timesince.py:54 +#: utils/timesince.py:56 #, python-format msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/translation/trans_real.py:403 +#: utils/translation/trans_real.py:399 msgid "DATE_FORMAT" msgstr "j. F Y" -#: utils/translation/trans_real.py:405 +#: utils/translation/trans_real.py:401 msgid "TIME_FORMAT" msgstr "H:i" -#: utils/translation/trans_real.py:421 +#: utils/translation/trans_real.py:417 msgid "YEAR_MONTH_FORMAT" msgstr "F Y" -#: utils/translation/trans_real.py:422 +#: utils/translation/trans_real.py:418 msgid "MONTH_DAY_FORMAT" msgstr "j. F" @@ -4211,404 +4427,3 @@ msgstr "%(verbose_name)s blev opdateret." msgid "The %(verbose_name)s was deleted." msgstr "%(verbose_name)s blev slettet." -#~ msgid "headline" -#~ msgstr "overskrift" - -#~ msgid "rating #1" -#~ msgstr "bedømmelse: 1" - -#~ msgid "rating #2" -#~ msgstr "bedømmelse: 2" - -#~ msgid "rating #3" -#~ msgstr "bedømmelse: 3" - -#~ msgid "rating #4" -#~ msgstr "bedømmelse: 4" - -#~ msgid "rating #5" -#~ msgstr "bedømmelse: 5" - -#~ msgid "rating #6" -#~ msgstr "bedømmelse: 6" - -#~ msgid "rating #7" -#~ msgstr "bedømmelse: 7" - -#~ msgid "rating #8" -#~ msgstr "bedømmelse: 8" - -#~ msgid "is valid rating" -#~ msgstr "er en gyldig bedømmelse" - -#~ msgid "comments" -#~ msgstr "kommentarer" - -#~ msgid "Content object" -#~ msgstr "Indholdsobjekt" - -#~ msgid "person's name" -#~ msgstr "personens navn" - -#~ msgid "ip address" -#~ msgstr "IP-adresse" - -#~ msgid "approved by staff" -#~ msgstr "godkendt af personale" - -#~ msgid "free comments" -#~ msgstr "frie kommentarer" - -#~ msgid "score" -#~ msgstr "score" - -#~ msgid "score date" -#~ msgstr "scoringsdato" - -#~ msgid "karma score" -#~ msgstr "karma-score" - -#~ msgid "karma scores" -#~ msgstr "karma-scores" - -#~ msgid "%(score)d rating by %(user)s" -#~ msgstr "%(score)d bedømmelse efter %(user)s" - -#~ msgid "" -#~ "This comment was flagged by %(user)s:\n" -#~ "\n" -#~ "%(text)s" -#~ msgstr "" -#~ "Denne kommentar blev mærket af %(user)s:\n" -#~ "\n" -#~ "%(text)s" - -#~ msgid "flag date" -#~ msgstr "mærkningsdato" - -#~ msgid "user flag" -#~ msgstr "brugermærke" - -#~ msgid "user flags" -#~ msgstr "brugermærker" - -#~ msgid "Flag by %r" -#~ msgstr "Mærket af %r" - -#~ msgid "deletion date" -#~ msgstr "sletningsdato" - -#~ msgid "moderator deletion" -#~ msgstr "moderatorsletning" - -#~ msgid "moderator deletions" -#~ msgstr "moderatorsletninger" - -#~ msgid "Moderator deletion by %r" -#~ msgstr "Moderatorsletning af %r" - -#~ msgid "Forgotten your password?" -#~ msgstr "Har du glemt din adgangskode?" - -#~ msgid "Ratings" -#~ msgstr "Bedømmelser" - -#~ msgid "Required" -#~ msgstr "Påkrævet" - -#~ msgid "Optional" -#~ msgstr "Valgfri" - -#~ msgid "Post a photo" -#~ msgstr "Indsend et foto" - -#~ msgid "Your name:" -#~ msgstr "Dit navn:" - -#~ msgid "" -#~ "This rating is required because you've entered at least one other rating." -#~ msgstr "" -#~ "Denne bedømmelse er påkrævet fordi du har indtastet mindst en anden " -#~ "bedømmelse." - -#~ msgid "" -#~ "This comment was posted by a user who has posted fewer than %(count)s " -#~ "comment:\n" -#~ "\n" -#~ "%(text)sThis comment was posted by a user who has posted fewer than %" -#~ "(count)s comments:\n" -#~ "\n" -#~ "%(text)s" -#~ msgstr "" -#~ "Denne kommentar blev indsendt af en bruger, som har indsendt færre end %" -#~ "(count)s kommentar:\n" -#~ "\n" -#~ "%(text)sDenne kommentar blev indsendt af en bruger som har indsendt færre " -#~ "end %(count)s kommentarer:\n" -#~ "\n" -#~ "%(text)s" - -#~ msgid "Only POSTs are allowed" -#~ msgstr "Kun POST er tilladt" - -#~ msgid "One or more of the required fields wasn't submitted" -#~ msgstr "Et eller flere af de påkrævede felter blev ikke indsendt" - -#~ msgid "Somebody tampered with the comment form (security violation)" -#~ msgstr "Nogen har misbrugt kommentarformularen (sikkerhedsovertrædelse)" - -#~ msgid "" -#~ "The comment form had an invalid 'target' parameter -- the object ID was " -#~ "invalid" -#~ msgstr "" -#~ "Kommentarformularen havde en ugyldigt 'target'-parameter - objekt-ID'et " -#~ "var ugyldigt" - -#~ msgid "The comment form didn't provide either 'preview' or 'post'" -#~ msgstr "" -#~ "Kommentarformularen tilbød ikke hverken 'forhåndsvis' eller 'indsend'" - -#~ msgid "Anonymous users cannot vote" -#~ msgstr "Anonyme brugere kan ikke stemme" - -#~ msgid "Invalid comment ID" -#~ msgstr "Ugyldigt kommentar-ID" - -#~ msgid "No voting for yourself" -#~ msgstr "Du kan ikke selv stemme" - -#~ msgid "Uppercase letters are not allowed here." -#~ msgstr "Store bogstaver er ikke tilladt her." - -#~ msgid "Lowercase letters are not allowed here." -#~ msgstr "Små bogstaver er ikke tilladt her." - -#~ msgid "Enter valid e-mail addresses separated by commas." -#~ msgstr "Indtast gyldige e-mail-adresser adskilt af kommaer." - -#~ msgid "Please enter a valid IP address." -#~ msgstr "Indtast venligst en gyldig IP-adresse." - -#~ msgid "Empty values are not allowed here." -#~ msgstr "Dette felt må ikke være tomt." - -#~ msgid "Non-numeric characters aren't allowed here." -#~ msgstr "Ikke-numeriske tegn er ikke tilladt her." - -#~ msgid "This value can't be comprised solely of digits." -#~ msgstr "Denne værdi kan ikke udelukkende bestå af cifre." - -#~ msgid "Only alphabetical characters are allowed here." -#~ msgstr "Her er kun bogstaver tilladt." - -#~ msgid "Enter a valid time in HH:MM format." -#~ msgstr "Indtast en gyldig tid i formatet TT:MM." - -#~ msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." -#~ msgstr "Indtast dato og tidspunkt i formatet ÅÅÅÅ-MM-DD TT:MM." - -#~ msgid "The URL %s does not point to a valid image." -#~ msgstr "URL'en %s henviser ikke til en gyldig billedfil." - -#~ msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." -#~ msgstr "Telefonnumre skal være i formatet XXX-XXX-XXXX. \"%s\" er ugyldigt." - -#~ msgid "The URL %s does not point to a valid QuickTime video." -#~ msgstr "URL'en %s henviser ikke til en gyldig QuickTime-video." - -#~ msgid "A valid URL is required." -#~ msgstr "En gyldig URL er påkrævet." - -#~ msgid "" -#~ "Valid HTML is required. Specific errors are:\n" -#~ "%s" -#~ msgstr "" -#~ "Gyldig HTML er påkrævet. Specifikke fejl:\n" -#~ "%s" - -#~ msgid "Badly formed XML: %s" -#~ msgstr "Ugyldig XML: %s" - -#~ msgid "Invalid URL: %s" -#~ msgstr "Ugyldig URL: %s" - -#~ msgid "The URL %s is a broken link." -#~ msgstr "Denne URL %s henviser ikke til en gyldig side eller fil." - -#~ msgid "Enter a valid U.S. state abbreviation." -#~ msgstr "Indtast en gyldig amerikansk statsforkortelse." - -#~ msgid "This field must match the '%s' field." -#~ msgstr "Dette felt skal matche feltet '%s'." - -#~ msgid "Please enter something for at least one field." -#~ msgstr "Indtast venligst noget i mindst ét felt" - -#~ msgid "Please enter both fields or leave them both empty." -#~ msgstr "Udfyld venligst begge felter eller lad dem begge være tomme." - -#~ msgid "This field must be given if %(field)s is %(value)s" -#~ msgstr "Dette felt skal udfyldes, hvis %(field)s er lig %(value)s." - -#~ msgid "This field must be given if %(field)s is not %(value)s" -#~ msgstr "" -#~ "Dette felt skal udfyldes, hvis %(field)s er forskellig fra %(value)s." - -#~ msgid "Duplicate values are not allowed." -#~ msgstr "Identiske værdier er ikke tilladt." - -#~ msgid "This value must be between %(lower)s and %(upper)s." -#~ msgstr "Denne værdi skal være mellem %(lower)s og %(upper)s." - -#~ msgid "This value must be at least %s." -#~ msgstr "Denne værdi skal være en mindst %s." - -#~ msgid "This value must be no more than %s." -#~ msgstr "Denne værdi må højst være %s." - -#~ msgid "This value must be a power of %s." -#~ msgstr "Denne værdi skal være en potens af %s." - -#~ msgid "Please enter a valid decimal number." -#~ msgstr "Indtast venligst et gyldigt decimaltal." - -#~ msgid "" -#~ "Please enter a valid decimal number with at most %s total digit.Please " -#~ "enter a valid decimal number with at most %s total digits." -#~ msgstr "" -#~ "Indtast venligst et gyldigt decimaltal med %s ciffer.Indtast venligst et " -#~ "gyldigt decimaltal med maksimalt %s cifre i alt." - -#~ msgid "" -#~ "Please enter a valid decimal number with a whole part of at most %s digit." -#~ "Please enter a valid decimal number with a whole part of at most %s " -#~ "digits." -#~ msgstr "" -#~ "Indtast venligst et gyldigt decimaltal med en heltalsdel på %s cifre." -#~ "Indtast venligst et gyldigt decimaltal med en heltalsdel på maksimalt %s " -#~ "cifre." - -#~ msgid "" -#~ "Please enter a valid decimal number with at most %s decimal place. Please " -#~ "enter a valid decimal number with at most %s decimal places." -#~ msgstr "" -#~ "Indtast venligst et gyldigt decimaltal med %s cifre efter kommaet. " -#~ "Indtast venligst et gyldigt decimaltal med maksimalt %s cifre efter " -#~ "kommaet." - -#~ msgid "Please enter a valid floating point number." -#~ msgstr "Indtast venligst et gyldigt flydende-komma-tal." - -#~ msgid "Make sure your uploaded file is at least %s bytes big." -#~ msgstr "Kontroller, at den fil, du uploader, er på mindst %s bytes." - -#~ msgid "Make sure your uploaded file is at most %s bytes big." -#~ msgstr "Kontroller, at den fil, du uploader, er på maksimalt %s bytes." - -#~ msgid "The format for this field is wrong." -#~ msgstr "Formatet i dette felt er forkert." - -#~ msgid "This field is invalid." -#~ msgstr "Dette felt er ugyldigt." - -#~ msgid "Could not retrieve anything from %s." -#~ msgstr "Kunne ikke finde noget i %s." - -#~ msgid "" -#~ "The URL %(url)s returned the invalid Content-Type header '%(contenttype)" -#~ "s'." -#~ msgstr "" -#~ "URL'en %(url)s returnerede det ugyldige indholdstypehoved '%(contenttype)" -#~ "s'." - -#~ msgid "" -#~ "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts " -#~ "with \"%(start)s\".)" -#~ msgstr "" -#~ "Luk venligst det uafsluttede tag %(tag)s fra linje %(line)s. (Linjen " -#~ "starter med \"%(start)s\".)" - -#~ msgid "" -#~ "Some text starting on line %(line)s is not allowed in that context. (Line " -#~ "starts with \"%(start)s\".)" -#~ msgstr "" -#~ "Noget tekst, som starter på linje %(line)s, er ikke tilladt i den givne " -#~ "sammenhæng. (Linjen starter med \"%(start)s\".)" - -#~ msgid "" -#~ "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with " -#~ "\"%(start)s\".)" -#~ msgstr "" -#~ "\"%(attr)s\" på linje %(line)s er ikke en gyldig attribut. (Linjen " -#~ "starter med \"%(start)s\".)" - -#~ msgid "" -#~ "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" -#~ "(start)s\".)" -#~ msgstr "" -#~ "\"<%(tag)s>\" på linje %(line)s er et ugyldigt tag. (Linjen starter med " -#~ "\"%(start)s\".)" - -#~ msgid "" -#~ "A tag on line %(line)s is missing one or more required attributes. (Line " -#~ "starts with \"%(start)s\".)" -#~ msgstr "" -#~ "Et tag på linje %(line)s mangler en eller flere påkrævede attributter. " -#~ "(Linjen starter med \"%(start)s\".)" - -#~ msgid "" -#~ "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " -#~ "starts with \"%(start)s\".)" -#~ msgstr "" -#~ "Attributten \"%(attr)s\" på linje %(line)s har en ugyldig værdi. (Linjen " -#~ "starter med \"%(start)s\".)" - -#~ msgid "" -#~ "%(object)s with this %(type)s already exists for the given %(field)s." -#~ msgstr "" -#~ "%(object)s med denne %(type)s eksisterer allerede for den givne %(field)s." - -#~ msgid "Enter a valid filename." -#~ msgstr "Indtast et gyldigt filnavn." - -#~ msgid "Please enter a valid %s." -#~ msgstr "Indtast venligst en gyldig %s." - -#~ msgid "Ensure your text is less than %s character." -#~ msgstr "Sørg for din tekst er kortere end %s tegn." - -#~ msgid "Line breaks are not allowed here." -#~ msgstr "Linjeskift er ikke tilladt her." - -#~ msgid "Select a valid choice; '%(data)s' is not in %(choices)s." -#~ msgstr "Markér et gyldigt valg; '%(data)s' er ikke i %(choices)s." - -#~ msgid "Enter a whole number between -32,768 and 32,767." -#~ msgstr "Indtast et heltal mellem -32,768 og 32,767." - -#~ msgid "Enter a positive number." -#~ msgstr "Indtast et positivt tal." - -#~ msgid "Enter a whole number between 0 and 32,767." -#~ msgstr "Indtast et heltal mellem 0 og 32,767." - -#~ msgid "Added %s." -#~ msgstr "Tilføjede %s." - -#~ msgid "Deleted %s." -#~ msgstr "Slettede %s." - -#~ msgid "Have you forgotten your password?" -#~ msgstr "Har du glemt din adgangskode?" - -#~ msgid "Your new password is: %(new_password)s" -#~ msgstr "Din nye adgangskode er: %(new_password)s" - -#~ msgid "Feel free to change this password by going to this page:" -#~ msgstr "Du kan ændre din adgangskode ved at gå til denne side:" - -#~ msgid "Use '[algo]$[salt]$[hexdigest]'" -#~ msgstr "Brug '[algo]$[salt]$[hexdigest]'" - -#~ msgid "Separate multiple IDs with commas." -#~ msgstr "Adskil flere ID'er med kommaer." diff --git a/django/conf/locale/et/LC_MESSAGES/django.mo b/django/conf/locale/et/LC_MESSAGES/django.mo index f2fef35f526e2552333f9b2c81d94eea7712522f..426ee9c9371b95d8605774efe49dbdad3f3210a7 100644 GIT binary patch delta 23064 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

    #GilO?|MBQ;y)I{x2pPnwL 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 ACjbBd diff --git a/django/conf/locale/et/LC_MESSAGES/django.po b/django/conf/locale/et/LC_MESSAGES/django.po index 6d9b9e41e2..9b8ae9e27a 100644 --- a/django/conf/locale/et/LC_MESSAGES/django.po +++ b/django/conf/locale/et/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-11 07:53+0300\n" +"POT-Creation-Date: 2009-07-24 22:06+0300\n" "PO-Revision-Date: 2008-09-03 00:35+0200\n" "Last-Translator: Erik Allik \n" "Language-Team: Django-i18n \n" @@ -217,19 +217,19 @@ msgstr "lihtsustatud hiina" msgid "Traditional Chinese" msgstr "traditsiooniline hiina" -#: contrib/admin/actions.py:56 +#: contrib/admin/actions.py:60 #, python-format msgid "Successfully deleted %(count)d %(items)s." -msgstr "" +msgstr "%(count)d %(items)s kustutamine õnnestus" -#: contrib/admin/actions.py:63 contrib/admin/options.py:1023 +#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 msgid "Are you sure?" msgstr "Kas olete kindel?" -#: contrib/admin/actions.py:81 +#: contrib/admin/actions.py:85 #, python-format msgid "Delete selected %(verbose_name_plural)s" -msgstr "" +msgstr "Kustuta valitud %(verbose_name_plural)s" #: contrib/admin/filterspecs.py:44 #, python-format @@ -265,15 +265,15 @@ msgstr "Käesolev kuu" msgid "This year" msgstr "Käesolev aasta" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 msgid "Yes" msgstr "Jah" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 msgid "No" msgstr "Ei" -#: contrib/admin/filterspecs.py:154 forms/widgets.py:413 +#: contrib/admin/filterspecs.py:154 forms/widgets.py:434 msgid "Unknown" msgstr "Tundmatu" @@ -311,100 +311,101 @@ msgstr "logisissekanded" #: contrib/admin/options.py:133 contrib/admin/options.py:147 msgid "None" -msgstr "puudub" +msgstr "Puudub" -#: contrib/admin/options.py:517 +#: contrib/admin/options.py:519 #, python-format msgid "Changed %s." msgstr "Muutsin %s." -#: contrib/admin/options.py:517 contrib/admin/options.py:527 -#: contrib/comments/templates/comments/preview.html:16 forms/models.py:306 +#: contrib/admin/options.py:519 contrib/admin/options.py:529 +#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 +#: forms/models.py:600 msgid "and" msgstr "ja" -#: contrib/admin/options.py:522 +#: contrib/admin/options.py:524 #, python-format msgid "Added %(name)s \"%(object)s\"." msgstr "Lisatud %(name)s \"%(object)s\"." -#: contrib/admin/options.py:526 +#: contrib/admin/options.py:528 #, python-format msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgstr "Muudetud %(list)s objektil %(name)s \"%(object)s\"." -#: contrib/admin/options.py:531 +#: contrib/admin/options.py:533 #, python-format msgid "Deleted %(name)s \"%(object)s\"." msgstr "Kustutatud %(name)s \"%(object)s\"." -#: contrib/admin/options.py:535 +#: contrib/admin/options.py:537 msgid "No fields changed." msgstr "Ühtegi välja ei muudetud." -#: contrib/admin/options.py:596 contrib/auth/admin.py:67 +#: contrib/admin/options.py:599 contrib/auth/admin.py:67 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "%(name)s \"%(obj)s\" lisamine õnnestus." -#: contrib/admin/options.py:600 contrib/admin/options.py:633 +#: contrib/admin/options.py:603 contrib/admin/options.py:636 #: contrib/auth/admin.py:75 msgid "You may edit it again below." msgstr "Võite jätkata redigeerimist." -#: contrib/admin/options.py:610 contrib/admin/options.py:643 +#: contrib/admin/options.py:613 contrib/admin/options.py:646 #, python-format msgid "You may add another %s below." msgstr "Võite jätkata uue %s lisamisega." -#: contrib/admin/options.py:631 +#: contrib/admin/options.py:634 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "%(name)s \"%(obj)s\" muutmine õnnestus." -#: contrib/admin/options.py:639 +#: contrib/admin/options.py:642 #, python-format msgid "" "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgstr "%(name)s \"%(obj)s\" lisamine õnnestus. Te võite seda muuta." -#: contrib/admin/options.py:770 +#: contrib/admin/options.py:773 #, python-format msgid "Add %s" msgstr "Lisa %s" -#: contrib/admin/options.py:801 contrib/admin/options.py:1001 +#: contrib/admin/options.py:804 contrib/admin/options.py:1005 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "%(name)s primaarvõtmega %(key)r ei eksisteeri." -#: contrib/admin/options.py:858 +#: contrib/admin/options.py:861 #, python-format msgid "Change %s" msgstr "Muuda %s" -#: contrib/admin/options.py:902 +#: contrib/admin/options.py:905 msgid "Database error" msgstr "Andmebaasi viga" -#: contrib/admin/options.py:938 +#: contrib/admin/options.py:941 #, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s %(name)s muutmine õnnestus." msgstr[1] "%(count)s %(name)s muutmine õnnestus." -#: contrib/admin/options.py:1016 +#: contrib/admin/options.py:1020 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "%(name)s \"%(obj)s\" kustutati." -#: contrib/admin/options.py:1052 +#: contrib/admin/options.py:1057 #, python-format msgid "Change history: %s" msgstr "Muudatuste ajalugu: %s" -#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 +#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14 #: contrib/auth/forms.py:80 msgid "" "Please enter a correct username and password. Note that both fields are case-" @@ -413,11 +414,11 @@ msgstr "" "Palun sisestage korrektne kasutajatunnus ja salasõna. Mõlemad väljad on " "tõstutundlikud." -#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Teie sessioon on aegunud. Palun logige uuesti sisse." -#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -425,28 +426,27 @@ msgstr "" "Paistab, et Teie brauser ei aktsepteeri küpsiseid. Palun võimaldage küpsised " "ning seejärel laadige see leht uuesti." -#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 +#: contrib/admin/sites.py:308 contrib/admin/sites.py:314 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Kasutajatunnused ei tohi sisaldada '@' märki." -#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." -msgstr "" -"Teie e-posti aadress ei ole Teie kasutajatunnus. Proovige '%s'." +msgstr "Teie e-posti aadress ei ole Teie kasutajatunnus. Proovige '%s'." -#: contrib/admin/sites.py:360 +#: contrib/admin/sites.py:367 msgid "Site administration" msgstr "Saidi administreerimine" -#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Sisene" -#: contrib/admin/sites.py:417 +#: contrib/admin/sites.py:426 #, python-format msgid "%s administration" msgstr "%s - administreerimine" @@ -496,7 +496,7 @@ msgstr "Vabandame, kuid soovitud lehte ei leitud." #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 -#: contrib/admin/templates/admin/base.html:33 +#: contrib/admin/templates/admin/base.html:54 #: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/delete_confirmation.html:6 @@ -541,7 +541,6 @@ msgid "Run the selected action" msgstr "Käivita valitud toiming" #: contrib/admin/templates/admin/actions.html:4 -#: contrib/admin/templates/admin/search_form.html:8 msgid "Go" msgstr "Mine" @@ -551,18 +550,18 @@ msgstr "Mine" msgid "%(name)s" msgstr "%(name)s" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:27 msgid "Welcome," msgstr "Tere tulemast," -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Dokumentatsioon" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:40 #: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 @@ -570,7 +569,7 @@ msgstr "Dokumentatsioon" msgid "Change password" msgstr "Muuda salasõna" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Log out" @@ -659,9 +658,8 @@ msgid "" "your account doesn't have permission to delete the following types of " "objects:" msgstr "" -"%(object_name)s kustutamiseks on vaja " -"kustutada ka seotud objektid, aga teil puudub õigus järgnevat " -"tüüpi objektide kustutamiseks:" +"%(object_name)s kustutamiseks on vaja kustutada ka seotud objektid, aga teil " +"puudub õigus järgnevat tüüpi objektide kustutamiseks:" #: contrib/admin/templates/admin/delete_selected_confirmation.html:22 #, python-format @@ -702,6 +700,10 @@ msgstr "Minu Toimingud" msgid "None available" msgstr "Ei leitud ühtegi" +#: contrib/admin/templates/admin/index.html:72 +msgid "Unknown content" +msgstr "Tundmatu sisu" + #: contrib/admin/templates/admin/invalid_setup.html:7 msgid "" "Something's wrong with your database installation. Make sure the appropriate " @@ -750,6 +752,15 @@ msgstr "" msgid "Show all" msgstr "Näita kõiki" +#: contrib/admin/templates/admin/pagination.html:11 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Save" +msgstr "Salvesta" + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Search" +msgstr "Otsing" + #: contrib/admin/templates/admin/search_form.html:10 #, python-format msgid "1 result" @@ -762,10 +773,6 @@ msgstr[1] "%(counter)s tulemust" msgid "%(full_result_count)s total" msgstr "Kokku %(full_result_count)s" -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Save" -msgstr "Salvesta" - #: contrib/admin/templates/admin/submit_line.html:5 msgid "Save as new" msgstr "Salvesta uuena" @@ -993,144 +1000,145 @@ msgstr "sait" msgid "template" msgstr "mall" -#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 -#: contrib/admindocs/views.py:62 +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 msgid "tag:" msgstr "lipik:" -#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 -#: contrib/admindocs/views.py:95 +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 msgid "filter:" msgstr "filtreeri:" -#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 -#: contrib/admindocs/views.py:159 +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 msgid "view:" msgstr "vaade:" -#: contrib/admindocs/views.py:187 +#: contrib/admindocs/views.py:190 #, python-format msgid "App %r not found" msgstr "Rakendust %r ei leitud" -#: contrib/admindocs/views.py:194 +#: contrib/admindocs/views.py:197 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" msgstr "Mudelit %(model_name)r ei leitud rakendusest %(app_label)r" -#: contrib/admindocs/views.py:206 +#: contrib/admindocs/views.py:209 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" msgstr "seotud `%(app_label)s.%(data_type)s` objekt" -#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 -#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 msgid "model:" msgstr "mudel:" -#: contrib/admindocs/views.py:237 +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" msgstr "seotud `%(app_label)s.%(object_name)s` objektid" -#: contrib/admindocs/views.py:242 +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 #, python-format msgid "all %s" msgstr "kõik %s" -#: contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 #, python-format msgid "number of %s" msgstr "%s arv" -#: contrib/admindocs/views.py:252 +#: contrib/admindocs/views.py:271 #, python-format msgid "Fields on %s objects" msgstr "Objekti %s väljad" -#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 -#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 -#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 +#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 +#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 msgid "Integer" msgstr "Täisarv" -#: contrib/admindocs/views.py:316 +#: contrib/admindocs/views.py:335 msgid "Boolean (Either True or False)" msgstr "Tõeväärtus (Kas tõene või väär)" -#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 +#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 #, python-format msgid "String (up to %(max_length)s)" msgstr "String (kuni %(max_length)s märki)" -#: contrib/admindocs/views.py:318 +#: contrib/admindocs/views.py:337 msgid "Comma-separated integers" msgstr "Komaga eraldatud täisarvud" -#: contrib/admindocs/views.py:319 +#: contrib/admindocs/views.py:338 msgid "Date (without time)" msgstr "Kuupäev (kellaajata)" -#: contrib/admindocs/views.py:320 +#: contrib/admindocs/views.py:339 msgid "Date (with time)" msgstr "Kuupäev (kellaajaga)" -#: contrib/admindocs/views.py:321 +#: contrib/admindocs/views.py:340 msgid "Decimal number" msgstr "Kümnendmurd" -#: contrib/admindocs/views.py:322 +#: contrib/admindocs/views.py:341 msgid "E-mail address" msgstr "E-posti aadress" -#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 -#: contrib/admindocs/views.py:327 +#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:346 msgid "File path" msgstr "Faili asukoht" -#: contrib/admindocs/views.py:325 +#: contrib/admindocs/views.py:344 msgid "Floating point number" msgstr "Ujukomaarv" -#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 +#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 msgid "IP address" msgstr "IP aadress" -#: contrib/admindocs/views.py:331 +#: contrib/admindocs/views.py:350 msgid "Boolean (Either True, False or None)" msgstr "Tõeväärtus (Kas tõene, väär või tühi)" -#: contrib/admindocs/views.py:332 +#: contrib/admindocs/views.py:351 msgid "Relation to parent model" msgstr "Seos ülem-mudeliga" -#: contrib/admindocs/views.py:333 +#: contrib/admindocs/views.py:352 msgid "Phone number" msgstr "Telefoninumber" -#: contrib/admindocs/views.py:338 +#: contrib/admindocs/views.py:357 msgid "Text" msgstr "Tekst" -#: contrib/admindocs/views.py:339 +#: contrib/admindocs/views.py:358 msgid "Time" msgstr "Aeg" -#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 +#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 #: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 msgid "URL" msgstr "URL" -#: contrib/admindocs/views.py:341 +#: contrib/admindocs/views.py:360 msgid "U.S. state (two uppercase letters)" msgstr "U.S.A. osariik (kaks suurt tähte)" -#: contrib/admindocs/views.py:342 +#: contrib/admindocs/views.py:361 msgid "XML text" msgstr "XML tekst" -#: contrib/admindocs/views.py:368 +#: contrib/admindocs/views.py:387 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s ei tundu olevat urlpattern objekt" @@ -1470,7 +1478,7 @@ msgid "" "If you enter anything in this field your comment will be treated as spam" msgstr "Kui sisestate sellesse lahtrisse midagi, loetakse kommentaar rämpsuks" -#: contrib/comments/models.py:22 contrib/contenttypes/models.py:71 +#: contrib/comments/models.py:22 contrib/contenttypes/models.py:74 msgid "content type" msgstr "sisutüüp" @@ -1698,11 +1706,11 @@ msgstr "Postita kommentaar" msgid "or make changes" msgstr "või tee muudatused" -#: contrib/contenttypes/models.py:67 +#: contrib/contenttypes/models.py:70 msgid "python model class name" msgstr "pythoni mudeli klassinimi" -#: contrib/contenttypes/models.py:72 +#: contrib/contenttypes/models.py:75 msgid "content types" msgstr "sisutüübid" @@ -1772,18 +1780,25 @@ msgstr "" "Vabandame, kuid vorm on aegunud. Palun jätkake vormi täitmist käesolevalt " "lehelt." -#: contrib/gis/forms/fields.py:14 +#: contrib/gis/forms/fields.py:17 msgid "No geometry value provided." msgstr "Geomeetriline väärtus puudub." -#: contrib/gis/forms/fields.py:15 +#: contrib/gis/forms/fields.py:18 msgid "Invalid geometry value." msgstr "Vigane geomeetriline väärtus." -#: contrib/gis/forms/fields.py:16 +#: contrib/gis/forms/fields.py:19 msgid "Invalid geometry type." msgstr "Vigane geomeetriline tüüp." +#: contrib/gis/forms/fields.py:20 +msgid "" +"An error occurred when transforming the geometry to the SRID of the geometry " +"form field." +msgstr "" +"Geomeetria teisendamisel geomeetria vormivälja SRID-ks tekkis viga." + #: contrib/humanize/templatetags/humanize.py:19 msgid "th" msgstr "." @@ -2104,59 +2119,59 @@ msgstr "Tšiili RUT on ebakorrektne." #: contrib/localflavor/cz/cz_regions.py:8 msgid "Prague" -msgstr "" +msgstr "Praha" #: contrib/localflavor/cz/cz_regions.py:9 msgid "Central Bohemian Region" -msgstr "" +msgstr "Kesk-Boheemia regioon" #: contrib/localflavor/cz/cz_regions.py:10 msgid "South Bohemian Region" -msgstr "" +msgstr "Lõuna-Boheemia regioon" #: contrib/localflavor/cz/cz_regions.py:11 msgid "Pilsen Region" -msgstr "" +msgstr "Pilseni regioon" #: contrib/localflavor/cz/cz_regions.py:12 msgid "Carlsbad Region" -msgstr "" +msgstr "Carlsbadi regioon" #: contrib/localflavor/cz/cz_regions.py:13 msgid "Usti Region" -msgstr "" +msgstr "Usti regioon" #: contrib/localflavor/cz/cz_regions.py:14 msgid "Liberec Region" -msgstr "" +msgstr "Libereci regioon" #: contrib/localflavor/cz/cz_regions.py:15 msgid "Hradec Region" -msgstr "" +msgstr "Hradeci regioon" #: contrib/localflavor/cz/cz_regions.py:16 msgid "Pardubice Region" -msgstr "" +msgstr "Pardubice regioon" #: contrib/localflavor/cz/cz_regions.py:17 msgid "Vysocina Region" -msgstr "" +msgstr "Vysocina regioon" #: contrib/localflavor/cz/cz_regions.py:18 msgid "South Moravian Region" -msgstr "" +msgstr "Lõuna-Moraavia regioon" #: contrib/localflavor/cz/cz_regions.py:19 msgid "Olomouc Region" -msgstr "" +msgstr "Olomouci regioon" #: contrib/localflavor/cz/cz_regions.py:20 msgid "Zlin Region" -msgstr "" +msgstr "Zlini regioon" #: contrib/localflavor/cz/cz_regions.py:21 msgid "Moravian-Silesian Region" -msgstr "" +msgstr "Moraavia-Sileesia regioon" #: contrib/localflavor/cz/forms.py:27 contrib/localflavor/sk/forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." @@ -2164,12 +2179,13 @@ msgstr "Sisesta postiindeks kujul XXXXX või XXX XX." #: contrib/localflavor/cz/forms.py:47 msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Sisesta sünninumber formaadis XXXXXX/XXXX või XXXXXXXXXX" +msgstr "Sisesta sünninumber formaadis XXXXXX/XXXX või XXXXXXXXXX" #: contrib/localflavor/cz/forms.py:48 msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Ebasobiv valikuline parameeter Sugu, sobivad väärtused on 'f' (naine) ja 'm' (mees)" +msgstr "" +"Ebasobiv valikuline parameeter Sugu, sobivad väärtused on 'f' (naine) ja " +"'m' (mees)" #: contrib/localflavor/cz/forms.py:49 msgid "Enter a valid birth number." @@ -3846,7 +3862,7 @@ msgstr "hüüdnimi" msgid "sites" msgstr "saidid" -#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:707 +#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710 msgid "This value must be an integer." msgstr "See väärtus peab olema täisarv." @@ -3880,24 +3896,24 @@ msgstr "" msgid "This value must be a decimal number." msgstr "See väärtus peab olema kümnendarv." -#: db/models/fields/__init__.py:683 +#: db/models/fields/__init__.py:686 msgid "This value must be a float." msgstr "See väärtus peab olema murdarv." -#: db/models/fields/__init__.py:743 +#: db/models/fields/__init__.py:746 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/__init__.py:846 db/models/fields/__init__.py:860 +#: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863 msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgstr "Sisestage korrektne kellaaeg formaadis TT:MM[:ss[.uuuuuu]]" -#: db/models/fields/related.py:792 +#: db/models/fields/related.py:816 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:870 +#: db/models/fields/related.py:894 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -3961,11 +3977,11 @@ msgstr "Veenduge, et komakohtade arv ei ületaks %s." 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." -#: forms/fields.py:288 forms/fields.py:862 +#: forms/fields.py:288 forms/fields.py:863 msgid "Enter a valid date." msgstr "Sisestage korrektne kuupäev." -#: forms/fields.py:322 forms/fields.py:863 +#: forms/fields.py:322 forms/fields.py:864 msgid "Enter a valid time." msgstr "Sisestage korrektne kellaaeg." @@ -4009,20 +4025,20 @@ msgstr "Sisestage korrektne URL." msgid "This URL appears to be a broken link." msgstr "See URL näib olevat katkine." -#: forms/fields.py:624 forms/fields.py:702 +#: forms/fields.py:625 forms/fields.py:703 #, 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." -#: forms/fields.py:703 forms/fields.py:764 forms/models.py:776 +#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003 msgid "Enter a list of values." msgstr "Sisestage väärtuste nimekiri." -#: forms/fields.py:891 +#: forms/fields.py:892 msgid "Enter a valid IPv4 address." msgstr "Sisestage korrektne IPv4 aadress." -#: forms/fields.py:901 +#: forms/fields.py:902 msgid "" "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." msgstr "" @@ -4032,76 +4048,103 @@ msgstr "" msgid "Order" msgstr "Järjestus" -#: forms/models.py:299 forms/models.py:308 +#: forms/models.py:367 +#, python-format +msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." +msgstr "%(field_name)s peab olema unikaalne %(date_field)s %(lookup)s suhtes." + +#: forms/models.py:381 forms/models.py:389 #, python-format msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Sellise %(field_label)s-väljaga %(model_name)s on juba olemas." -#: forms/models.py:651 -msgid "The inline foreign key did not match the parent instance primary key." -msgstr "" +#: forms/models.py:594 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Palun parandage duplikaat-andmed lahtris %(field)s." -#: forms/models.py:706 +#: forms/models.py:598 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Palun parandage duplikaat-andmed lahtris %(field)s, mis peab olema unikaalne." + +#: forms/models.py:604 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"" + +#: forms/models.py:612 +msgid "Please correct the duplicate values below." +msgstr "Palun parandage allolevad duplikaat-väärtused" + +#: forms/models.py:867 +msgid "The inline foreign key did not match the parent instance primary key." +msgstr "Pesastatud välisvõti ei sobi ülemobjekti primaarvõtmega." + +#: forms/models.py:930 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." -#: forms/models.py:777 +#: forms/models.py:1004 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Valige korrektne väärtus. %s ei ole valitav." -#: forms/models.py:779 +#: forms/models.py:1006 #, python-format msgid "\"%s\" is not a valid value for a primary key." -msgstr "" +msgstr "\"%s\" ei ole sobiv väärtust primaarvõtmeks." -#: template/defaultfilters.py:765 +#: template/defaultfilters.py:767 msgid "yes,no,maybe" msgstr "jah,ei,võib-olla" -#: template/defaultfilters.py:796 +#: template/defaultfilters.py:798 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d bait" msgstr[1] "%(size)d baiti" -#: template/defaultfilters.py:798 +#: template/defaultfilters.py:800 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:800 +#: template/defaultfilters.py:802 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:801 +#: template/defaultfilters.py:803 #, python-format msgid "%.1f GB" msgstr "%.1f GB" -#: utils/dateformat.py:41 +#: utils/dateformat.py:42 msgid "p.m." msgstr "p.l." -#: utils/dateformat.py:42 +#: utils/dateformat.py:43 msgid "a.m." msgstr "e.l." -#: utils/dateformat.py:47 +#: utils/dateformat.py:48 msgid "PM" msgstr "PL" -#: utils/dateformat.py:48 +#: utils/dateformat.py:49 msgid "AM" msgstr "EL" -#: utils/dateformat.py:97 +#: utils/dateformat.py:98 msgid "midnight" msgstr "südaöö" -#: utils/dateformat.py:99 +#: utils/dateformat.py:100 msgid "noon" msgstr "keskpäev" diff --git a/django/conf/locale/it/LC_MESSAGES/django.mo b/django/conf/locale/it/LC_MESSAGES/django.mo index cad80c1f9181e6409916a1ed04e3859a566889b6..f4b5a0810185274eb41b1f4f85b02680a0ce244e 100644 GIT binary patch delta 22924 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 HvSj=}bQT`t delta 21661 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 z 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\n" -"Language-Team: Italian\n" +"Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: Lokalize 0.3\n" #: conf/global_settings.py:44 msgid "Arabic" @@ -202,7 +202,7 @@ msgstr "telugu" #: conf/global_settings.py:90 msgid "Thai" -msgstr "thai" +msgstr "tailandese" #: conf/global_settings.py:91 msgid "Turkish" @@ -220,19 +220,19 @@ msgstr "cinese semplificato" msgid "Traditional Chinese" msgstr "cinese tradizionale" -#: contrib/admin/actions.py:56 +#: contrib/admin/actions.py:60 #, python-format msgid "Successfully deleted %(count)d %(items)s." -msgstr "Cancellati con successo %(count)d %(items)s." +msgstr "Cancellati/e con successo %(count)d %(items)s." -#: contrib/admin/actions.py:63 contrib/admin/options.py:1023 +#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 msgid "Are you sure?" msgstr "Sei sicuro?" -#: contrib/admin/actions.py:81 +#: contrib/admin/actions.py:85 #, python-format msgid "Delete selected %(verbose_name_plural)s" -msgstr "Cancellati i %(verbose_name_plural)s selezionati" +msgstr "Cancella %(verbose_name_plural)s selezionati/e" #: contrib/admin/filterspecs.py:44 #, python-format @@ -268,15 +268,15 @@ msgstr "Questo mese" msgid "This year" msgstr "Quest'anno" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 msgid "Yes" msgstr "Sì" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 msgid "No" msgstr "No" -#: contrib/admin/filterspecs.py:154 forms/widgets.py:413 +#: contrib/admin/filterspecs.py:154 forms/widgets.py:434 msgid "Unknown" msgstr "Sconosciuto" @@ -316,99 +316,100 @@ msgstr "voci di log" msgid "None" msgstr "Nessuno" -#: contrib/admin/options.py:517 +#: contrib/admin/options.py:519 #, python-format msgid "Changed %s." -msgstr "%s modificato." +msgstr "%s modificato/a." -#: contrib/admin/options.py:517 contrib/admin/options.py:527 -#: contrib/comments/templates/comments/preview.html:16 forms/models.py:306 +#: contrib/admin/options.py:519 contrib/admin/options.py:529 +#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 +#: forms/models.py:600 msgid "and" msgstr "e" -#: contrib/admin/options.py:522 +#: contrib/admin/options.py:524 #, python-format msgid "Added %(name)s \"%(object)s\"." -msgstr "Aggiunti %(name)s \"%(object)s\"." +msgstr "Aggiunto/a %(name)s \"%(object)s\"." -#: contrib/admin/options.py:526 +#: contrib/admin/options.py:528 #, python-format msgid "Changed %(list)s for %(name)s \"%(object)s\"." -msgstr "Cambiati %(list)s per %(name)s \"%(object)s\"." +msgstr "Cambiato/i %(list)s per %(name)s \"%(object)s\"." -#: contrib/admin/options.py:531 +#: contrib/admin/options.py:533 #, python-format msgid "Deleted %(name)s \"%(object)s\"." -msgstr "Cancellati %(name)s \"%(object)s\"." +msgstr "Cancellato/a %(name)s \"%(object)s\"." -#: contrib/admin/options.py:535 +#: contrib/admin/options.py:537 msgid "No fields changed." msgstr "Nessun campo modificato." -#: contrib/admin/options.py:596 contrib/auth/admin.py:67 +#: contrib/admin/options.py:599 contrib/auth/admin.py:67 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." -msgstr "%(name)s \"%(obj)s\" è stato aggiunto correttamente." +msgstr "%(name)s \"%(obj)s\" aggiunto/a correttamente." -#: contrib/admin/options.py:600 contrib/admin/options.py:633 +#: contrib/admin/options.py:603 contrib/admin/options.py:636 #: contrib/auth/admin.py:75 msgid "You may edit it again below." -msgstr "È possibile modificarlo nuovamente qui sotto." +msgstr "È possibile modificare nuovamente qui sotto." -#: contrib/admin/options.py:610 contrib/admin/options.py:643 +#: contrib/admin/options.py:613 contrib/admin/options.py:646 #, python-format msgid "You may add another %s below." -msgstr "Puoi aggiungere un altro %s qui sotto." +msgstr "Puoi aggiungere un altro/a %s qui sotto." -#: contrib/admin/options.py:631 +#: contrib/admin/options.py:634 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "%(name)s \"%(obj)s\" modificato correttamente." +msgstr "%(name)s \"%(obj)s\" modificato/a correttamente." -#: contrib/admin/options.py:639 +#: contrib/admin/options.py:642 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgstr "" -"%(name)s \"%(obj)s\" aggiunto correttamente. Puoi modificarlo ancora qui " +"%(name)s \"%(obj)s\" aggiunto/a correttamente. Puoi modificare ancora qui " "sotto." -#: contrib/admin/options.py:770 +#: contrib/admin/options.py:773 #, python-format msgid "Add %s" msgstr "Aggiungi %s" -#: contrib/admin/options.py:801 contrib/admin/options.py:1001 +#: contrib/admin/options.py:804 contrib/admin/options.py:1005 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "L'oggetto %(name)s con chiave primaria %(key)r non esiste." -#: contrib/admin/options.py:858 +#: contrib/admin/options.py:861 #, python-format msgid "Change %s" msgstr "Modifica %s" -#: contrib/admin/options.py:902 +#: contrib/admin/options.py:905 msgid "Database error" msgstr "Errore nel database" -#: contrib/admin/options.py:938 +#: contrib/admin/options.py:941 #, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." -msgstr[0] "%(count)s %(name)s è stato modificato correttamente." -msgstr[1] "%(count)s %(name)s sono stati modificati correttamente." +msgstr[0] "%(count)s %(name)s modificato/a correttamente." +msgstr[1] "%(count)s %(name)s modificati/e correttamente." -#: contrib/admin/options.py:1016 +#: contrib/admin/options.py:1020 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" cancellato correttamente." +msgstr "%(name)s \"%(obj)s\" cancellato/a correttamente." -#: contrib/admin/options.py:1052 +#: contrib/admin/options.py:1057 #, python-format msgid "Change history: %s" msgstr "Tracciato delle modifiche: %s" -#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 +#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14 #: contrib/auth/forms.py:80 msgid "" "Please enter a correct username and password. Note that both fields are case-" @@ -417,11 +418,11 @@ msgstr "" "Inserisci nome utente e password corretti. In entrambi i campi le maiuscole " "sono significative." -#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Effettua di nuovo l'accesso, perché la tua sessione è scaduta." -#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -429,27 +430,27 @@ msgstr "" "Il browser non sembra configurato per accettare i cookie. Una volta " "abilitati, ricarica la pagina e riprova." -#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 +#: contrib/admin/sites.py:308 contrib/admin/sites.py:314 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "I nomi utente non possono contenere il carattere '@'." -#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "Il nome utente non è costituito dall'indirizzo e-mail. Prova con '%s'." -#: contrib/admin/sites.py:360 +#: contrib/admin/sites.py:367 msgid "Site administration" msgstr "Amministrazione sito" -#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Accedi" -#: contrib/admin/sites.py:417 +#: contrib/admin/sites.py:426 #, python-format msgid "%s administration" msgstr "Amministrazione %s" @@ -499,7 +500,7 @@ msgstr "Spiacenti, ma la pagina richiesta non è stata trovata." #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 -#: contrib/admin/templates/admin/base.html:33 +#: contrib/admin/templates/admin/base.html:54 #: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/delete_confirmation.html:6 @@ -535,7 +536,8 @@ 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 "" -"Si è verificato un errore. È stato riportato agli amministratori del sito " +"Si è verificato un errore. Gli amministratori del sito ne sono stati " +"informati" "via e-mail e verrà corretto a breve. Grazie per la tua pazienza." #: contrib/admin/templates/admin/actions.html:4 @@ -543,7 +545,6 @@ msgid "Run the selected action" msgstr "Esegui l'azione selezionata" #: contrib/admin/templates/admin/actions.html:4 -#: contrib/admin/templates/admin/search_form.html:8 msgid "Go" msgstr "Vai" @@ -553,18 +554,18 @@ msgstr "Vai" msgid "%(name)s" msgstr "%(name)s" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:27 msgid "Welcome," -msgstr "Benvenuto," +msgstr "Benvenuto/a," -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Documentazione" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:40 #: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 @@ -572,7 +573,7 @@ msgstr "Documentazione" msgid "Change password" msgstr "Cambia la password" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Log out" @@ -607,7 +608,7 @@ msgstr "Vedi sul sito" #: 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] "Correggi gli errori qui sotto." +msgstr[0] "Correggi l'errore qui sotto." msgstr[1] "Correggi gli errori qui sotto." #: contrib/admin/templates/admin/change_list.html:46 @@ -703,6 +704,10 @@ msgstr "Azioni Proprie" msgid "None available" msgstr "Nessuna disponibile" +#: contrib/admin/templates/admin/index.html:72 +msgid "Unknown content" +msgstr "Contenuto sconosciuto" + #: contrib/admin/templates/admin/invalid_setup.html:7 msgid "" "Something's wrong with your database installation. Make sure the appropriate " @@ -751,6 +756,15 @@ msgstr "" msgid "Show all" msgstr "Mostra tutto" +#: contrib/admin/templates/admin/pagination.html:11 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Save" +msgstr "Salva" + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Search" +msgstr "Cerca" + #: contrib/admin/templates/admin/search_form.html:10 #, python-format msgid "1 result" @@ -763,10 +777,6 @@ msgstr[1] "%(counter)s risultati" msgid "%(full_result_count)s total" msgstr "%(full_result_count)s totali" -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Save" -msgstr "Salva" - #: contrib/admin/templates/admin/submit_line.html:5 msgid "Save as new" msgstr "Salva come nuovo" @@ -836,7 +846,7 @@ msgstr "Cambio password" #: contrib/admin/templates/registration/password_change_done.html:6 #: contrib/admin/templates/registration/password_change_done.html:10 msgid "Password change successful" -msgstr "Cambio di password avvenuto correttamente" +msgstr "Cambio password avvenuto correttamente" #: contrib/admin/templates/registration/password_change_done.html:12 msgid "Your password was changed." @@ -905,7 +915,7 @@ msgstr "" #: contrib/admin/templates/registration/password_reset_confirm.html:26 msgid "Password reset unsuccessful" -msgstr "Password NON reimpostata" +msgstr "Password non reimpostata" #: contrib/admin/templates/registration/password_reset_confirm.html:28 msgid "" @@ -943,7 +953,7 @@ msgstr "Vai alla pagina seguente e scegli una nuova password:" #: contrib/admin/templates/registration/password_reset_email.html:9 msgid "Your username, in case you've forgotten:" -msgstr "Il tuo nome utente, in caso l'abbia dimenticato:" +msgstr "Il tuo nome utente, in caso tu l'abbia dimenticato:" #: contrib/admin/templates/registration/password_reset_email.html:11 msgid "Thanks for using our site!" @@ -959,7 +969,7 @@ msgid "" "Forgotten your password? Enter your e-mail address below, and we'll e-mail " "instructions for setting a new one." msgstr "" -"Dimenticata la password? Inserisci il tuo indirizzo email qui sotto, e ti " +"Password dimenticata? Inserisci il tuo indirizzo email qui sotto, e ti " "invieremo per email le istruzioni per impostarne una nuova." #: contrib/admin/templates/registration/password_reset_form.html:16 @@ -992,144 +1002,145 @@ msgstr "sito" msgid "template" msgstr "modello" -#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 -#: contrib/admindocs/views.py:62 +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 msgid "tag:" msgstr "tag:" -#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 -#: contrib/admindocs/views.py:95 +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 msgid "filter:" msgstr "filtro:" -#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 -#: contrib/admindocs/views.py:159 +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 msgid "view:" msgstr "view:" -#: contrib/admindocs/views.py:187 +#: contrib/admindocs/views.py:190 #, python-format msgid "App %r not found" msgstr "Appl. %r non trovata" -#: contrib/admindocs/views.py:194 +#: contrib/admindocs/views.py:197 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" msgstr "Modello %(model_name)r non trovato nell'appl. %(app_label)r" -#: contrib/admindocs/views.py:206 +#: contrib/admindocs/views.py:209 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" msgstr "l'oggetto `%(app_label)s.%(data_type)s` collegato" -#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 -#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 msgid "model:" msgstr "modello:" -#: contrib/admindocs/views.py:237 +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" msgstr "oggetti `%(app_label)s.%(object_name)s` collegati" -#: contrib/admindocs/views.py:242 +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 #, python-format msgid "all %s" msgstr "tutti %s" -#: contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 #, python-format msgid "number of %s" msgstr "numero di %s" -#: contrib/admindocs/views.py:252 +#: contrib/admindocs/views.py:271 #, python-format msgid "Fields on %s objects" msgstr "Campi sugli oggetti %s" -#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 -#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 -#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 +#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 +#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 msgid "Integer" msgstr "Intero" -#: contrib/admindocs/views.py:316 +#: contrib/admindocs/views.py:335 msgid "Boolean (Either True or False)" msgstr "Booleano (True o False)" -#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 +#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 #, python-format msgid "String (up to %(max_length)s)" msgstr "Stringa (fino a %(max_length)s)" -#: contrib/admindocs/views.py:318 +#: contrib/admindocs/views.py:337 msgid "Comma-separated integers" msgstr "Interi separati da virgola" -#: contrib/admindocs/views.py:319 +#: contrib/admindocs/views.py:338 msgid "Date (without time)" msgstr "Data (senza ora)" -#: contrib/admindocs/views.py:320 +#: contrib/admindocs/views.py:339 msgid "Date (with time)" msgstr "Data (con ora)" -#: contrib/admindocs/views.py:321 +#: contrib/admindocs/views.py:340 msgid "Decimal number" msgstr "Numero decimale" -#: contrib/admindocs/views.py:322 +#: contrib/admindocs/views.py:341 msgid "E-mail address" msgstr "Indirizzo e-mail" -#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 -#: contrib/admindocs/views.py:327 +#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:346 msgid "File path" msgstr "Percorso di file" -#: contrib/admindocs/views.py:325 +#: contrib/admindocs/views.py:344 msgid "Floating point number" msgstr "Numero decimale" -#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 +#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 msgid "IP address" msgstr "indirizzo IP" -#: contrib/admindocs/views.py:331 +#: contrib/admindocs/views.py:350 msgid "Boolean (Either True, False or None)" msgstr "Booleano (True, False o None)" -#: contrib/admindocs/views.py:332 +#: contrib/admindocs/views.py:351 msgid "Relation to parent model" msgstr "Collegamento a modello padre" -#: contrib/admindocs/views.py:333 +#: contrib/admindocs/views.py:352 msgid "Phone number" msgstr "Numero di telefono" -#: contrib/admindocs/views.py:338 +#: contrib/admindocs/views.py:357 msgid "Text" msgstr "Testo" -#: contrib/admindocs/views.py:339 +#: contrib/admindocs/views.py:358 msgid "Time" msgstr "Ora" -#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 +#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 #: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 msgid "URL" msgstr "URL" -#: contrib/admindocs/views.py:341 +#: contrib/admindocs/views.py:360 msgid "U.S. state (two uppercase letters)" msgstr "Stato USA (due lettere maiuscole)" -#: contrib/admindocs/views.py:342 +#: contrib/admindocs/views.py:361 msgid "XML text" msgstr "Testo XML" -#: contrib/admindocs/views.py:368 +#: contrib/admindocs/views.py:387 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s non sembra essere un oggetto urlpattern" @@ -1153,10 +1164,10 @@ msgid "" "your computer is \"internal\").

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

    Per installare i bookmarklet, trascina il link sulla " -"barra \n" -"dei bookmark, o clicca il link con il tasto destro e aggiungilo ai " -"bookmark.\n" +"

    Per installare i bookmarklet, trascina il link sulla barra " +"\n" +"dei bookmark, o clicca il link con il tasto destro e aggiungilo ai bookmark." +"\n" "Potrai poi scegliere un bookmarklet in qualsiasi pagina del sito.\n" "Nota che alcuni di questi bookmarklet richiedono l'accesso al sito tramite " "un\n" @@ -1253,7 +1264,7 @@ msgstr "Conferma password" #: contrib/auth/forms.py:30 msgid "A user with that username already exists." -msgstr "Un utente con questo nome·è già presente." +msgstr "Un utente con questo nome è già presente." #: contrib/auth/forms.py:36 contrib/auth/forms.py:155 #: contrib/auth/forms.py:197 @@ -1303,7 +1314,8 @@ msgstr "Password attuale" #: contrib/auth/forms.py:177 msgid "Your old password was entered incorrectly. Please enter it again." -msgstr "La password attuale non è stata inserita correttamente: va inserita di nuovo." +msgstr "" +"La password attuale non è stata inserita correttamente: va inserita di nuovo." #: contrib/auth/models.py:63 contrib/auth/models.py:86 msgid "name" @@ -1466,14 +1478,14 @@ msgstr "Commento" #, 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] "Modera i termini: la parola %s non è ammessa." -msgstr[1] "Modera i termini: le parole %s non sono ammesse." +msgstr[0] "Modera i termini: la parola %s non è ammessa qui." +msgstr[1] "Modera i termini: le parole %s non sono ammesse qui." #: contrib/comments/forms.py:180 msgid "If you enter anything in this field your comment will be treated as spam" msgstr "Se inserisci qualcosa in questo campo il tuo commento verrà considerato spam" -#: contrib/comments/models.py:22 contrib/contenttypes/models.py:71 +#: contrib/comments/models.py:22 contrib/contenttypes/models.py:74 msgid "content type" msgstr "content type" @@ -1701,11 +1713,11 @@ msgstr "Pubblica il tuo commento" msgid "or make changes" msgstr "o fai dei cambiamenti" -#: contrib/contenttypes/models.py:67 +#: contrib/contenttypes/models.py:70 msgid "python model class name" msgstr "nome della classe del modello Python" -#: contrib/contenttypes/models.py:72 +#: contrib/contenttypes/models.py:75 msgid "content types" msgstr "content type" @@ -1777,18 +1789,26 @@ msgstr "" "Spiacenti, ma la tua form è scaduta. Puoi continuare a compilare la form da " "questa pagina." -#: contrib/gis/forms/fields.py:14 +#: contrib/gis/forms/fields.py:17 msgid "No geometry value provided." msgstr "Nessun valore geometrico fornito." -#: contrib/gis/forms/fields.py:15 +#: contrib/gis/forms/fields.py:18 msgid "Invalid geometry value." msgstr "Valore geometrico non valido." -#: contrib/gis/forms/fields.py:16 +#: contrib/gis/forms/fields.py:19 msgid "Invalid geometry type." msgstr "Tipo geometrico non valido." +#: contrib/gis/forms/fields.py:20 +msgid "" +"An error occurred when transforming the geometry to the SRID of the geometry " +"form field." +msgstr "" +"Si è verificato un errore durante la trasformazione della geometria nello " +"SRID del campo geometria della form." + #: contrib/humanize/templatetags/humanize.py:19 msgid "th" msgstr "º" @@ -2251,7 +2271,7 @@ msgstr "Schleswig-Holstein" #: contrib/localflavor/de/de_states.py:20 msgid "Thuringia" -msgstr "Thuringia" +msgstr "Turingia" #: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12 #: contrib/localflavor/fr/forms.py:15 @@ -3017,7 +3037,9 @@ msgstr "Checksum errato per il Numero d'Imposta (NIP)." #: contrib/localflavor/pl/forms.py:109 msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "Il Numero di Registro Nazionale d'Impresa (REGON) è costituito da 9 o 14 cifre." +msgstr "" +"Il Numero di Registro Nazionale d'Impresa (REGON) è costituito da 9 o 14 " +"cifre." #: contrib/localflavor/pl/forms.py:110 msgid "Wrong checksum for the National Business Register Number (REGON)." @@ -3625,27 +3647,27 @@ msgstr "Worcestershire" #: contrib/localflavor/uk/uk_regions.py:55 msgid "County Antrim" -msgstr "County Antrim" +msgstr "Contea di Antrim" #: contrib/localflavor/uk/uk_regions.py:56 msgid "County Armagh" -msgstr "County Armagh" +msgstr "Contea di Armagh" #: contrib/localflavor/uk/uk_regions.py:57 msgid "County Down" -msgstr "County Down" +msgstr "Contea di Down" #: contrib/localflavor/uk/uk_regions.py:58 msgid "County Fermanagh" -msgstr "County Fermanagh" +msgstr "Contea di Fermanagh" #: contrib/localflavor/uk/uk_regions.py:59 msgid "County Londonderry" -msgstr "County Londonderry" +msgstr "Contea di Londonderry" #: contrib/localflavor/uk/uk_regions.py:60 msgid "County Tyrone" -msgstr "County Tyrone" +msgstr "Contea di Tyrone" #: contrib/localflavor/uk/uk_regions.py:64 msgid "Clwyd" @@ -3750,7 +3772,7 @@ msgstr "Inserisci un codice postale nel formato XXXXX o XXXXX-XXXX ." #: contrib/localflavor/us/forms.py:54 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." msgstr "" -"Inserisci un numero di assistenza sociale statunitense valido, nel formato " +"Inserisci un numero di assistenza sociale USA valido, nel formato " "XXX-XX-XXXX ." #: contrib/localflavor/za/forms.py:20 @@ -3861,56 +3883,57 @@ msgstr "nome visualizzato" msgid "sites" msgstr "siti" -#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:700 +#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710 msgid "This value must be an integer." msgstr "Questo valore deve essere un intero." -#: db/models/fields/__init__.py:387 +#: db/models/fields/__init__.py:388 msgid "This value must be either True or False." msgstr "Questo valore deve essere True o False." -#: db/models/fields/__init__.py:420 +#: db/models/fields/__init__.py:427 msgid "This field cannot be null." msgstr "Questo campo non può essere nullo." -#: db/models/fields/__init__.py:436 +#: db/models/fields/__init__.py:443 msgid "Enter only digits separated by commas." msgstr "Inserisci solo cifre separate da virgole." -#: db/models/fields/__init__.py:467 +#: db/models/fields/__init__.py:474 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Inserisci una data valida in formato AAAA-MM-GG." -#: db/models/fields/__init__.py:476 +#: db/models/fields/__init__.py:483 #, python-format msgid "Invalid date: %s" msgstr "Data non valida: %s" -#: db/models/fields/__init__.py:540 db/models/fields/__init__.py:558 +#: db/models/fields/__init__.py:547 db/models/fields/__init__.py:565 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." msgstr "Inserisci una data/ora valida nel formato AAAA-MM-GG OO:MM[ss[.uuuuuu]]." -#: db/models/fields/__init__.py:594 +#: db/models/fields/__init__.py:601 msgid "This value must be a decimal number." msgstr "Questo valore deve essere un numero decimale." -#: db/models/fields/__init__.py:676 +#: db/models/fields/__init__.py:686 msgid "This value must be a float." msgstr "Questo valore deve essere un numero a virgola mobile." -#: db/models/fields/__init__.py:736 +#: db/models/fields/__init__.py:746 msgid "This value must be either None, True or False." msgstr "Questo valore deve essere None, True o False." -#: db/models/fields/__init__.py:839 db/models/fields/__init__.py:853 +#: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863 msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgstr "Inserisci un'ora valida nel formato OO:MM[ss[.uuuuuu]]." -#: db/models/fields/related.py:792 +#: db/models/fields/related.py:816 msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "Tieni premuto \"Control\", o \"Command\" su Mac, per selezionarne più di uno." +msgstr "" +"Tieni premuto \"Control\", o \"Command\" su Mac, per selezionarne più di uno." -#: db/models/fields/related.py:870 +#: db/models/fields/related.py:894 #, 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." @@ -3972,11 +3995,11 @@ msgstr "Assicurarsi che non vi siano più di %s cifre decimali." msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Assicurarsi che non vi siano più di %s cifre prima della virgola." -#: forms/fields.py:288 forms/fields.py:862 +#: forms/fields.py:288 forms/fields.py:863 msgid "Enter a valid date." msgstr "Inserisci una data valida." -#: forms/fields.py:322 forms/fields.py:863 +#: forms/fields.py:322 forms/fields.py:864 msgid "Enter a valid time." msgstr "Inserisci un'ora valida." @@ -3999,7 +4022,9 @@ msgstr "Il file inviato è vuoto." #: forms/fields.py:450 #, python-format msgid "Ensure this filename has at most %(max)d characters (it has %(length)d)." -msgstr "Assicurarsi che questo nome di file non contenga più di %(max)d caratteri (ne ha %(length)d)." +msgstr "" +"Assicurarsi che questo nome di file non contenga più di %(max)d caratteri " +"(ne ha %(length)d)." #: forms/fields.py:483 msgid "" @@ -4015,20 +4040,20 @@ msgstr "Inserisci una URL valida." msgid "This URL appears to be a broken link." msgstr "Questa URL non sembra funzionare." -#: forms/fields.py:624 forms/fields.py:702 +#: forms/fields.py:625 forms/fields.py:703 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Scegli un'opzione valida. '%(value)s non compare tra quelle disponibili." -#: forms/fields.py:703 forms/fields.py:764 forms/models.py:776 +#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003 msgid "Enter a list of values." msgstr "Inserisci una lista di valori." -#: forms/fields.py:891 +#: forms/fields.py:892 msgid "Enter a valid IPv4 address." msgstr "Inserisci un indirizzo IPv4 valido." -#: forms/fields.py:901 +#: forms/fields.py:902 msgid "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." msgstr "" "Inserisci uno 'slug' valido contenente lettere, cifre, sottolineati o " @@ -4038,80 +4063,107 @@ msgstr "" msgid "Order" msgstr "Ordine" -#: forms/models.py:299 forms/models.py:308 +#: forms/models.py:367 +#, python-format +msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." +msgstr "%(field_name)s deve essere unico per %(lookup)s %(date_field)s." + +#: forms/models.py:381 forms/models.py:389 #, python-format msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s con questo %(field_label)s esiste già." -#: forms/models.py:651 +#: forms/models.py:594, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Correggi i dati duplicati di %(field)s." + +#: forms/models.py:598 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Correggi i dati duplicati di %(field)s, che deve essere unico." + +#: forms/models.py:604 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Correggi i dati duplicati di %(field_name)s che deve essere unico/a per %(lookup)s " +"in %(date_field)s." + +#: forms/models.py:612 +msgid "Please correct the duplicate values below." +msgstr "Correggi i dati duplicati qui sotto." + +#: forms/models.py:867 msgid "The inline foreign key did not match the parent instance primary key." msgstr "" "La foreign key inline non concorda con la chiave primaria dell'istanza " -"principale." +"padre." -#: forms/models.py:706 +#: forms/models.py:930 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "" "Scegli un'opzione valida. La scelta effettuata non compare tra quelle " "disponibili." -#: forms/models.py:777 +#: forms/models.py:1004 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Scegli un'opzione valida. %s non compare tra quelle disponibili." -#: forms/models.py:779 +#: forms/models.py:1006 #, python-format msgid "\"%s\" is not a valid value for a primary key." msgstr "\"%s\" non è un valore valido per una chiave primaria." -#: template/defaultfilters.py:765 +#: template/defaultfilters.py:767 msgid "yes,no,maybe" msgstr "sì,no,forse" -#: template/defaultfilters.py:796 +#: template/defaultfilters.py:798 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d byte" msgstr[1] "%(size)d byte" -#: template/defaultfilters.py:798 +#: template/defaultfilters.py:800 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:800 +#: template/defaultfilters.py:802 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:801 +#: template/defaultfilters.py:803 #, python-format msgid "%.1f GB" msgstr "%.1f GB" -#: utils/dateformat.py:41 +#: utils/dateformat.py:42 msgid "p.m." msgstr "p.m." -#: utils/dateformat.py:42 +#: utils/dateformat.py:43 msgid "a.m." msgstr "a.m." -#: utils/dateformat.py:47 +#: utils/dateformat.py:48 msgid "PM" msgstr "PM" -#: utils/dateformat.py:48 +#: utils/dateformat.py:49 msgid "AM" msgstr "AM" -#: utils/dateformat.py:97 +#: utils/dateformat.py:98 msgid "midnight" msgstr "mezzanotte" -#: utils/dateformat.py:99 +#: utils/dateformat.py:100 msgid "noon" msgstr "mezzogiorno" @@ -4368,15 +4420,15 @@ msgstr "F j" #: views/generic/create_update.py:114 #, python-format msgid "The %(verbose_name)s was created successfully." -msgstr "%(verbose_name)s creato correttamente." +msgstr "%(verbose_name)s creato/a correttamente." #: views/generic/create_update.py:156 #, python-format msgid "The %(verbose_name)s was updated successfully." -msgstr "%(verbose_name)s aggiornato correttamente." +msgstr "%(verbose_name)s aggiornato/a correttamente." #: views/generic/create_update.py:198 #, python-format msgid "The %(verbose_name)s was deleted." -msgstr "%(verbose_name)s è stato cancellato." +msgstr "%(verbose_name)s cancellato/a." diff --git a/django/conf/locale/it/LC_MESSAGES/djangojs.mo b/django/conf/locale/it/LC_MESSAGES/djangojs.mo index 2208b3e6e3bd0165a111c422d317032c7406d907..310afc7efb21674745b22e1e5750cac8100ee3fd 100644 GIT binary patch delta 286 zcmeyxGlzG=o%&8j28K3f1_oXR1_l9E1_llwEeE9efV4W0<^s}YK$;y$I|69|AnggH zd4O~jkmdx^=|CE!z7R-*^fy51P9Pl%K6>8%VPOX?8XSJFvlgKpw~e zVnA9ENUH#8kODU#VGE>vfiw${?uLp_fbyqrp2--?#A~T*V6JOqreJ7pWokH?nZ-|5 z!6qduF)uw|H?zbcJwHD^CpEn&zqFuOFF8NgZgL>Y6ds@a?8KbRs#FC7J>$)vSi~4P SgHv--t1|QR5+`%BVqq3lj|kH7#v0JfnEEf~TkjG&lbL9xH7 z&0viD2*sTTG~o;C@U2n!Km0*KJW#iZua)*Z_L diff --git a/django/conf/locale/it/LC_MESSAGES/djangojs.po b/django/conf/locale/it/LC_MESSAGES/djangojs.po index 2e534b1494..ff7237968f 100644 --- a/django/conf/locale/it/LC_MESSAGES/djangojs.po +++ b/django/conf/locale/it/LC_MESSAGES/djangojs.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-04-10 08:26+0200\n" -"PO-Revision-Date: 2008-08-14 18:36+0200\n" +"PO-Revision-Date: 2009-07-26 17:51+0200\n" "Last-Translator: Nicola Larosa \n" -"Language-Team: Italian\n" +"Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: Lokalize 0.3\n" #: contrib/admin/media/js/SelectFilter2.js:33 #, perl-format @@ -40,7 +40,7 @@ msgstr "%s scelti" #: contrib/admin/media/js/SelectFilter2.js:54 msgid "Select your choice(s) and click " -msgstr "Fai le tue scelte e clicca " +msgstr "Seleziona le tue scelte e clicca " #: contrib/admin/media/js/SelectFilter2.js:59 msgid "Clear all" @@ -118,3 +118,4 @@ msgstr "Ieri" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:179 msgid "Tomorrow" msgstr "Domani" + diff --git a/django/conf/locale/mk/LC_MESSAGES/django.mo b/django/conf/locale/mk/LC_MESSAGES/django.mo index b4ff149c2cd483f2f18a9326a7d1ee4c012c15c5..7796e56624f100aa457a4ebc53827e2f976b46f3 100644 GIT binary patch delta 23775 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 D*h&E8 delta 21322 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\n" "Language-Team: Macedonian \n" @@ -222,14 +222,14 @@ msgstr "Традиционален кинески" msgid "Successfully deleted %(count)d %(items)s." msgstr "Успешно беа избришани %(count)d %(items)s." -#: contrib/admin/actions.py:67 contrib/admin/options.py:1025 +#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 msgid "Are you sure?" msgstr "Сигурни сте?" #: contrib/admin/actions.py:85 #, python-format msgid "Delete selected %(verbose_name_plural)s" -msgstr "Избриши ги селектираните %(verbose_name_plural)s" +msgstr "Избриши ги избраните %(verbose_name_plural)s" #: contrib/admin/filterspecs.py:44 #, python-format @@ -237,7 +237,7 @@ msgid "" "

    By %s:

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

      Од %s:

      \n" +"

      Според %s:

      \n" "
        \n" #: contrib/admin/filterspecs.py:75 contrib/admin/filterspecs.py:92 @@ -343,70 +343,71 @@ msgstr "Избришан %(name)s „%(object)s“." msgid "No fields changed." msgstr "Не беше изменето ниедно поле." -#: contrib/admin/options.py:598 contrib/auth/admin.py:67 +#: contrib/admin/options.py:599 contrib/auth/admin.py:67 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." -msgstr "%(name)s \"%(obj)s\" беше успешно додаден." +msgstr "Ставката %(name)s \"%(obj)s\" беше успешно додадена." -#: contrib/admin/options.py:602 contrib/admin/options.py:635 +#: contrib/admin/options.py:603 contrib/admin/options.py:636 #: contrib/auth/admin.py:75 msgid "You may edit it again below." msgstr "Подолу можете повторно да го уредите." -#: contrib/admin/options.py:612 contrib/admin/options.py:645 +#: contrib/admin/options.py:613 contrib/admin/options.py:646 #, python-format msgid "You may add another %s below." msgstr "Подолу можете да додате уште еден %s." -#: contrib/admin/options.py:633 +#: contrib/admin/options.py:634 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "%(name)s \"%(obj)s\" беше успешно изменета." -#: contrib/admin/options.py:641 +#: contrib/admin/options.py:642 #, python-format msgid "" "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgstr "" -"%(name)s \"%(obj)s\" беше успешно додадена.Подолу можете повторно да ја " -"уредите." +"Ставката %(name)s \"%(obj)s\" беше успешно додадена. Подолу можете повторно " +"да ја уредите." -#: contrib/admin/options.py:772 +#: contrib/admin/options.py:773 #, python-format msgid "Add %s" msgstr "Додади %s" -#: contrib/admin/options.py:803 contrib/admin/options.py:1003 +#: contrib/admin/options.py:804 contrib/admin/options.py:1005 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." -msgstr "" +msgstr "објект %(name)s со примарен клуч %(key)r не постои." -#: contrib/admin/options.py:860 +#: contrib/admin/options.py:861 #, python-format msgid "Change %s" msgstr "Измени %s" -#: contrib/admin/options.py:904 +#: contrib/admin/options.py:905 msgid "Database error" -msgstr "Грешка во базата со податоци" +msgstr "Грешка во базата на податоци" -#: contrib/admin/options.py:940 +#: contrib/admin/options.py:941 +#, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s ставка %(name)s беше успешно изменета." -msgstr[1] "%(count)s %(name)s беа успешно изменети." +msgstr[1] "%(count)s ставки %(name)s беа успешно изменети." -#: contrib/admin/options.py:1018 +#: contrib/admin/options.py:1020 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" беше избришана успешно." +msgstr "Ставаката %(name)s \"%(obj)s\" беше избришана успешно." -#: contrib/admin/options.py:1054 +#: contrib/admin/options.py:1057 #, python-format msgid "Change history: %s" msgstr "Историја на измени: %s" -#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 +#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14 #: contrib/auth/forms.py:80 msgid "" "Please enter a correct username and password. Note that both fields are case-" @@ -415,11 +416,11 @@ msgstr "" "Ве молам внесете точно корисничко име и лозинка. Имајте на ум дека и во " "двете полиња се битни големите и малите букви." -#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Ве молам најавете се повторно бидејќи вашата сесија е истечена." -#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -427,27 +428,27 @@ msgstr "" "Изгледа дека вашиот прелистувач не е конфигуриран да прифаќа колачиња. Ве " "молам овозможете ги колачињата, превчитајте ја страта и пробајте повторно." -#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 +#: contrib/admin/sites.py:308 contrib/admin/sites.py:314 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Корисничките имиња неможе да го содржат „@“ знакот." -#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "Вашата е-пошта не е вашето корисничко име. Пробајте со „%s“." -#: contrib/admin/sites.py:360 +#: contrib/admin/sites.py:367 msgid "Site administration" msgstr "Администрација на сајт" -#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Најава" -#: contrib/admin/sites.py:417 +#: contrib/admin/sites.py:426 #, python-format msgid "%s administration" msgstr "%s администрација" @@ -497,7 +498,7 @@ msgstr "Се извинуваме, но неможе да ја најдеме с #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 -#: contrib/admin/templates/admin/base.html:31 +#: contrib/admin/templates/admin/base.html:54 #: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/delete_confirmation.html:6 @@ -538,7 +539,7 @@ msgstr "" #: contrib/admin/templates/admin/actions.html:4 msgid "Run the selected action" -msgstr "" +msgstr "Изврши ја избраната акција" #: contrib/admin/templates/admin/actions.html:4 msgid "Go" @@ -550,18 +551,18 @@ msgstr "Оди" msgid "%(name)s" msgstr "%(name)s" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:27 msgid "Welcome," msgstr "Добредојдовте," -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Документација" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:40 #: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 @@ -569,7 +570,7 @@ msgstr "Документација" msgid "Change password" msgstr "Промени лозинка" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Log out" @@ -648,7 +649,7 @@ msgstr "Да, сигурен сум" #: contrib/admin/templates/admin/delete_selected_confirmation.html:9 msgid "Delete multiple objects" -msgstr "Избриши повеќе ставки." +msgstr "Избриши повеќе ставки" #: contrib/admin/templates/admin/delete_selected_confirmation.html:15 msgid "" @@ -656,17 +657,18 @@ msgid "" "your account doesn't have permission to delete the following types of " "objects:" msgstr "" -"Бришење на %(object_name)s '%(escaped_object)s' ќе резултира со бришење на " +"Бришење на %(object_name)s би резултирало со бришење на " "поврзаните објекти, но вие како корисник немате доволно привилегии да ги " "бришете следните типови на објекти:" #: contrib/admin/templates/admin/delete_selected_confirmation.html:22 +#, python-format msgid "" "Are you sure you want to delete the selected %(object_name)s objects? All of " "the following objects and it's related items will be deleted:" msgstr "" -"Сигурне сте дека сакате да ги избришете избраните %(object_name)s? " -"Сите овие ставки и ставките поврзани со нив ќе бидат избришани:" +"Сигурне сте дека сакате да ги избришете избраните %(object_name)s? Сите овие " +"ставки и ставките поврзани со нив ќе бидат избришани:" #: contrib/admin/templates/admin/filter.html:2 #, python-format @@ -829,7 +831,7 @@ msgstr "" #: contrib/admin/templates/registration/logged_out.html:10 msgid "Log in again" -msgstr "Логирајте се повторно" +msgstr "Најавете се повторно" #: contrib/admin/templates/registration/password_change_done.html:4 #: contrib/admin/templates/registration/password_change_form.html:4 @@ -983,7 +985,7 @@ msgstr "Сите датуми" #: contrib/admin/views/main.py:70 #, python-format msgid "Select %s" -msgstr "Изберет %s" +msgstr "Изберете %s" #: contrib/admin/views/main.py:70 #, python-format @@ -998,145 +1000,145 @@ msgstr "сајт" msgid "template" msgstr "шаблон" -#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 -#: contrib/admindocs/views.py:62 +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 msgid "tag:" msgstr "таг:" -#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 -#: contrib/admindocs/views.py:95 +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 msgid "filter:" msgstr "филтер:" -#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 -#: contrib/admindocs/views.py:159 +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 msgid "view:" msgstr "поглед:" -#: contrib/admindocs/views.py:187 +#: contrib/admindocs/views.py:190 #, python-format msgid "App %r not found" msgstr "Не е најдена апликацијата %r" -#: contrib/admindocs/views.py:194 +#: contrib/admindocs/views.py:197 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" msgstr "Моделот %(model_name)r не е најден во апликацијата %(app_label)r" -#: contrib/admindocs/views.py:206 +#: contrib/admindocs/views.py:209 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" msgstr "поврзаниот `%(app_label)s.%(data_type)s` објект" -#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:225 -#: contrib/admindocs/views.py:230 contrib/admindocs/views.py:244 -#: contrib/admindocs/views.py:258 contrib/admindocs/views.py:263 +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 msgid "model:" msgstr "модел:" -#: contrib/admindocs/views.py:221 contrib/admindocs/views.py:253 +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" msgstr "поврзани `%(app_label)s.%(object_name)s` објекти" -#: contrib/admindocs/views.py:225 contrib/admindocs/views.py:258 +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 #, python-format msgid "all %s" msgstr "сите %s" -#: contrib/admindocs/views.py:230 contrib/admindocs/views.py:263 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 #, python-format msgid "number of %s" msgstr "број на %s" -#: contrib/admindocs/views.py:268 +#: contrib/admindocs/views.py:271 #, python-format msgid "Fields on %s objects" msgstr "Полиња на %s објекти" -#: contrib/admindocs/views.py:331 contrib/admindocs/views.py:342 -#: contrib/admindocs/views.py:344 contrib/admindocs/views.py:350 -#: contrib/admindocs/views.py:351 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 +#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 msgid "Integer" msgstr "Цел број" -#: contrib/admindocs/views.py:332 +#: contrib/admindocs/views.py:335 msgid "Boolean (Either True or False)" msgstr "Логичка (или точно или неточно)" -#: contrib/admindocs/views.py:333 contrib/admindocs/views.py:352 +#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 #, python-format msgid "String (up to %(max_length)s)" msgstr "Збор (до %(max_length)s)" -#: contrib/admindocs/views.py:334 +#: contrib/admindocs/views.py:337 msgid "Comma-separated integers" msgstr "Целобројни вредности одделени со запирка" -#: contrib/admindocs/views.py:335 +#: contrib/admindocs/views.py:338 msgid "Date (without time)" msgstr "Датум (без час)" -#: contrib/admindocs/views.py:336 +#: contrib/admindocs/views.py:339 msgid "Date (with time)" msgstr "Датум (со час)" -#: contrib/admindocs/views.py:337 +#: contrib/admindocs/views.py:340 msgid "Decimal number" msgstr "Децимален број" -#: contrib/admindocs/views.py:338 +#: contrib/admindocs/views.py:341 msgid "E-mail address" msgstr "Адреса на е-пошта" -#: contrib/admindocs/views.py:339 contrib/admindocs/views.py:340 -#: contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:346 msgid "File path" msgstr "Патека на датотека" -#: contrib/admindocs/views.py:341 +#: contrib/admindocs/views.py:344 msgid "Floating point number" msgstr "Децимален број" -#: contrib/admindocs/views.py:345 contrib/comments/models.py:60 +#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 msgid "IP address" msgstr "ИП адреса" -#: contrib/admindocs/views.py:347 +#: contrib/admindocs/views.py:350 msgid "Boolean (Either True, False or None)" msgstr "Логичка (точно,неточно или празно)" -#: contrib/admindocs/views.py:348 +#: contrib/admindocs/views.py:351 msgid "Relation to parent model" msgstr "Релација со родителскиот модел" -#: contrib/admindocs/views.py:349 +#: contrib/admindocs/views.py:352 msgid "Phone number" msgstr "Телефонски број" -#: contrib/admindocs/views.py:354 +#: contrib/admindocs/views.py:357 msgid "Text" msgstr "Текст" -#: contrib/admindocs/views.py:355 +#: contrib/admindocs/views.py:358 msgid "Time" msgstr "Час" -#: contrib/admindocs/views.py:356 contrib/comments/forms.py:95 +#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 #: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 msgid "URL" msgstr "URL" -#: contrib/admindocs/views.py:357 +#: contrib/admindocs/views.py:360 msgid "U.S. state (two uppercase letters)" msgstr "Држава во САД (две големи букви)" -#: contrib/admindocs/views.py:358 +#: contrib/admindocs/views.py:361 msgid "XML text" msgstr "XML текст" -#: contrib/admindocs/views.py:384 +#: contrib/admindocs/views.py:387 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s не изгледа дека е url објект" @@ -1447,10 +1449,12 @@ msgid "Metadata" msgstr "Метаподатоци" #: contrib/comments/feeds.py:13 +#, python-format msgid "%(site_name)s comments" msgstr "коментари за %(site_name)s" #: contrib/comments/feeds.py:23 +#, python-format msgid "Latest comments on %(site_name)s" msgstr "Последни коментари за %(site_name)s" @@ -1576,14 +1580,12 @@ msgid "date" msgstr "датум" #: contrib/comments/models.py:181 -#, fuzzy msgid "comment flag" -msgstr "коментар" +msgstr "обележје за коментар" #: contrib/comments/models.py:182 -#, fuzzy msgid "comment flags" -msgstr "коментар" +msgstr "обележја за коментари" #: contrib/comments/templates/comments/approve.html:4 msgid "Approve a comment" @@ -1796,17 +1798,19 @@ msgstr "Не е внесена геометриска вредност." #: contrib/gis/forms/fields.py:18 msgid "Invalid geometry value." -msgstr "невалидна геометриска вредност." +msgstr "Невалидна геометриска вредност." #: contrib/gis/forms/fields.py:19 msgid "Invalid geometry type." -msgstr "невалиден геометриски тип." +msgstr "Невалиден геометриски тип." #: contrib/gis/forms/fields.py:20 msgid "" "An error occurred when transforming the geometry to the SRID of the geometry " "form field." msgstr "" +"Се појави грешка при трансформација на геометриската вредност во SRID од " +"геометриското поле" #: contrib/humanize/templatetags/humanize.py:19 msgid "th" @@ -2135,84 +2139,75 @@ msgstr "Прага" #: contrib/localflavor/cz/cz_regions.py:9 msgid "Central Bohemian Region" -msgstr "" +msgstr "Централен Бохемиски регион" #: contrib/localflavor/cz/cz_regions.py:10 msgid "South Bohemian Region" -msgstr "" +msgstr "Јужен Бохемиски регион" #: contrib/localflavor/cz/cz_regions.py:11 -#, fuzzy msgid "Pilsen Region" -msgstr "Зилина регион" +msgstr "Пилзенски регион" #: contrib/localflavor/cz/cz_regions.py:12 msgid "Carlsbad Region" -msgstr "" +msgstr "Карлсбадски регион" #: contrib/localflavor/cz/cz_regions.py:13 -#, fuzzy msgid "Usti Region" -msgstr "Кошице регион" +msgstr "Усти регион" #: contrib/localflavor/cz/cz_regions.py:14 -#, fuzzy msgid "Liberec Region" -msgstr "Тренцин регион" +msgstr "Либерец регион" #: contrib/localflavor/cz/cz_regions.py:15 -#, fuzzy msgid "Hradec Region" -msgstr "Тренцин регион" +msgstr "Храдец регион" #: contrib/localflavor/cz/cz_regions.py:16 -#, fuzzy msgid "Pardubice Region" -msgstr "Кошице регион" +msgstr "Пардубице регион" #: contrib/localflavor/cz/cz_regions.py:17 -#, fuzzy msgid "Vysocina Region" -msgstr "Зилина регион" +msgstr "Висоцина регион" #: contrib/localflavor/cz/cz_regions.py:18 msgid "South Moravian Region" -msgstr "" +msgstr "Јужно Моравски регион" #: contrib/localflavor/cz/cz_regions.py:19 msgid "Olomouc Region" -msgstr "" +msgstr "Оломуц регион" #: contrib/localflavor/cz/cz_regions.py:20 -#, fuzzy msgid "Zlin Region" msgstr "Зилина регион" #: contrib/localflavor/cz/cz_regions.py:21 msgid "Moravian-Silesian Region" -msgstr "" +msgstr "Моравско-Силесански регион" #: contrib/localflavor/cz/forms.py:27 contrib/localflavor/sk/forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." msgstr "Внесете поштенски број во форматот XXXXX или XXX XX." #: contrib/localflavor/cz/forms.py:47 -#, fuzzy msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Внесете даночен број (NIP) во форматот XXX-XXX-XX-XX или XX-XX-XXX-XXX." +msgstr "Внесете даночен број (NIP) во форматот XXXXXX/XXXX или XXXXXXXXXX." #: contrib/localflavor/cz/forms.py:48 msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" msgstr "" +"Невалидна вредност за опционален параметар пол, валидни вредности се 'f' и " +"'m'" #: contrib/localflavor/cz/forms.py:49 -#, fuzzy msgid "Enter a valid birth number." msgstr "Внесете правилен даночен број." #: contrib/localflavor/cz/forms.py:106 -#, fuzzy msgid "Enter a valid IC number." msgstr "Внесете правилен даночен број." @@ -4029,10 +4024,12 @@ msgid "The submitted file is empty." msgstr "Пратената датотека е празна." #: forms/fields.py:450 +#, python-format msgid "" "Ensure this filename has at most %(max)d characters (it has %(length)d)." msgstr "" -"Осигурајте се дека ова име на датотека има најмногу %(max)d знаци (има %(length)d)." +"Осигурајте се дека ова име на датотека има најмногу %(max)d знаци (има %" +"(length)d)." #: forms/fields.py:483 msgid "" @@ -4077,7 +4074,7 @@ msgstr "Редослед" #: forms/models.py:367 #, python-format msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." -msgstr "" +msgstr "%(field_name)s мора да биде уникатно за %(date_field)s %(lookup)s." #: forms/models.py:381 forms/models.py:389 #, python-format @@ -4085,13 +4082,16 @@ msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s со %(field_label)s веќе постои." #: forms/models.py:594 +#, python-format msgid "Please correct the duplicate data for %(field)s." msgstr "Ве молам поправете ја дуплираната вредност за %(field)s." #: forms/models.py:598 #, python-format msgid "Please correct the duplicate data for %(field)s, which must be unique." -msgstr "Ве молам поправете ја дуплираната вредност за %(field)s, која мора да биде уникатна." +msgstr "" +"Ве молам поправете ја дуплираната вредност за %(field)s, која мора да биде " +"уникатна." #: forms/models.py:604 #, python-format @@ -4099,8 +4099,8 @@ msgid "" "Please correct the duplicate data for %(field_name)s which must be unique " "for the %(lookup)s in %(date_field)s." msgstr "" -"Ве молам поправете ја дуплираната вредност за %(field_name)s која мора да биде уникатна " -"за %(lookup)s во %(date_field)s." +"Ве молам поправете ја дуплираната вредност за %(field_name)s која мора да " +"биде уникатна за %(lookup)s во %(date_field)s." #: forms/models.py:612 msgid "Please correct the duplicate values below." @@ -4109,6 +4109,8 @@ msgstr "Ве молам поправете ги дуплираните вред #: forms/models.py:867 msgid "The inline foreign key did not match the parent instance primary key." msgstr "" +"Надворешниот клуч на вгезденото поле не се совпаѓа со примарниот клуч на " +"родителската инстанца." #: forms/models.py:930 msgid "Select a valid choice. That choice is not one of the available choices." @@ -4122,7 +4124,7 @@ msgstr "Внесете правилно. %s не е еден од достапн #: forms/models.py:1006 #, python-format msgid "\"%s\" is not a valid value for a primary key." -msgstr "" +msgstr "\"%s\" не е правилна вредност за примарен клуч." #: template/defaultfilters.py:767 msgid "yes,no,maybe" @@ -4427,14 +4429,14 @@ msgstr "F j" #: views/generic/create_update.py:114 #, python-format msgid "The %(verbose_name)s was created successfully." -msgstr "%(verbose_name)s беше успешно создаден." +msgstr "Ставка %(verbose_name)s беше успешно создадена." #: views/generic/create_update.py:156 #, python-format msgid "The %(verbose_name)s was updated successfully." -msgstr "%(verbose_name)s беше успешно ажуриран." +msgstr "Ставка %(verbose_name)s беше успешно ажурирана." #: views/generic/create_update.py:198 #, python-format msgid "The %(verbose_name)s was deleted." -msgstr "%(verbose_name)s беше избришан." +msgstr "Ставка %(verbose_name)s беше избришана." diff --git a/django/conf/locale/no/LC_MESSAGES/django.mo b/django/conf/locale/no/LC_MESSAGES/django.mo index 55b8da6b98ebda055281b0c1d433b9d2aba79476..8e523f3f96d80c233e3c6e1150d4bdebdd8d0ef8 100644 GIT binary patch delta 22200 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 delta 21248 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 diff --git a/django/conf/locale/no/LC_MESSAGES/django.po b/django/conf/locale/no/LC_MESSAGES/django.po index c4fb1a5787..f27cb79d9e 100644 --- a/django/conf/locale/no/LC_MESSAGES/django.po +++ b/django/conf/locale/no/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-05-16 10:12+0200\n" -"PO-Revision-Date: 2009-04-12 15:27+0200\n" +"PO-Revision-Date: 2009-07-24 15:44+0200\n" "Last-Translator: Christian Mikalsen and Jon Lønne\n" "Language-Team: Norsk \n" "MIME-Version: 1.0\n" @@ -218,16 +218,16 @@ msgstr "Simplifisert kinesisk" msgid "Traditional Chinese" msgstr "Tradisjonell kinesisk" -#: contrib/admin/actions.py:56 +#: contrib/admin/actions.py:60 #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "Slettet %(count)d %(items)s." -#: contrib/admin/actions.py:63 contrib/admin/options.py:1023 +#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 msgid "Are you sure?" msgstr "Er du sikker?" -#: contrib/admin/actions.py:81 +#: contrib/admin/actions.py:85 #, python-format msgid "Delete selected %(verbose_name_plural)s" msgstr "Slett valgte %(verbose_name_plural)s" @@ -266,15 +266,15 @@ msgstr "Denne måneden" msgid "This year" msgstr "I år" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 msgid "Yes" msgstr "Ja" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 msgid "No" msgstr "Nei" -#: contrib/admin/filterspecs.py:154 forms/widgets.py:413 +#: contrib/admin/filterspecs.py:154 forms/widgets.py:434 msgid "Unknown" msgstr "Ukjent" @@ -314,98 +314,99 @@ msgstr "logginnlegg" msgid "None" msgstr "Ingen" -#: contrib/admin/options.py:517 +#: contrib/admin/options.py:519 #, python-format msgid "Changed %s." msgstr "Endret %s." -#: contrib/admin/options.py:517 contrib/admin/options.py:527 -#: contrib/comments/templates/comments/preview.html:16 forms/models.py:306 +#: contrib/admin/options.py:519 contrib/admin/options.py:529 +#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 +#: forms/models.py:600 msgid "and" msgstr "og" -#: contrib/admin/options.py:522 +#: contrib/admin/options.py:524 #, python-format msgid "Added %(name)s \"%(object)s\"." msgstr "Opprettet %(name)s \"%(object)s\"." -#: contrib/admin/options.py:526 +#: contrib/admin/options.py:528 #, python-format msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgstr "Endret %(list)s for %(name)s \"%(object)s\"." -#: contrib/admin/options.py:531 +#: contrib/admin/options.py:533 #, python-format msgid "Deleted %(name)s \"%(object)s\"." msgstr "Slettet %(name)s \"%(object)s\"." -#: contrib/admin/options.py:535 +#: contrib/admin/options.py:537 msgid "No fields changed." msgstr "Ingen felt endret." -#: contrib/admin/options.py:596 contrib/auth/admin.py:67 +#: contrib/admin/options.py:599 contrib/auth/admin.py:67 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "%(name)s \"%(obj)s\" ble opprettet." -#: contrib/admin/options.py:600 contrib/admin/options.py:633 +#: contrib/admin/options.py:603 contrib/admin/options.py:636 #: contrib/auth/admin.py:75 msgid "You may edit it again below." msgstr "Du kan redigere videre nedenfor." -#: contrib/admin/options.py:610 contrib/admin/options.py:643 +#: contrib/admin/options.py:613 contrib/admin/options.py:646 #, python-format msgid "You may add another %s below." msgstr "Du kan opprette ny %s nedenfor." -#: contrib/admin/options.py:631 +#: contrib/admin/options.py:634 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "%(name)s \"%(obj)s\" ble endret." -#: contrib/admin/options.py:639 +#: contrib/admin/options.py:642 #, python-format msgid "" "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgstr "%(name)s \"%(obj)s\" ble endret. Du kan redigere videre nedenfor." -#: contrib/admin/options.py:770 +#: contrib/admin/options.py:773 #, python-format msgid "Add %s" msgstr "Opprett %s" -#: contrib/admin/options.py:801 contrib/admin/options.py:1001 +#: contrib/admin/options.py:804 contrib/admin/options.py:1005 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "%(name)s-objekt med primærnøkkelen %(key)r finnes ikke." -#: contrib/admin/options.py:858 +#: contrib/admin/options.py:861 #, python-format msgid "Change %s" msgstr "Rediger %s" -#: contrib/admin/options.py:902 +#: contrib/admin/options.py:905 msgid "Database error" msgstr "Databasefeil" -#: contrib/admin/options.py:938 +#: contrib/admin/options.py:941 #, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s %(name)s ble endret." msgstr[1] "%(count)s %(name)s ble endret." -#: contrib/admin/options.py:1016 +#: contrib/admin/options.py:1020 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "%(name)s \"%(obj)s\" ble slettet." -#: contrib/admin/options.py:1052 +#: contrib/admin/options.py:1057 #, python-format msgid "Change history: %s" msgstr "Endringshistorikk: %s" -#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 +#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14 #: contrib/auth/forms.py:80 msgid "" "Please enter a correct username and password. Note that both fields are case-" @@ -414,11 +415,11 @@ msgstr "" "Vennligst angi korrekt brukernavn og passord. Merk at det er forskjell på " "små og store bokstaver." -#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Økten din har tidsavbrutt, vennligst logg inn igjen." -#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -426,27 +427,27 @@ msgstr "" "Det ser ut som om nettleseren din ikke støtter informasjonskapsler " "(cookies). Vennligst konfigurer nettleseren din og prøv igjen." -#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 +#: contrib/admin/sites.py:308 contrib/admin/sites.py:314 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Brukernavnet kan ikke inneholde tegnet '@'." -#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "E-postadressen er ikke brukernavnet ditt, prøv '%s' isteden." -#: contrib/admin/sites.py:360 +#: contrib/admin/sites.py:367 msgid "Site administration" msgstr "Nettstedsadministrasjon" -#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Logg inn" -#: contrib/admin/sites.py:417 +#: contrib/admin/sites.py:426 #, python-format msgid "%s administration" msgstr "%s-administrasjon" @@ -496,7 +497,7 @@ msgstr "Beklager, men siden du spør etter finnes ikke." #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 -#: contrib/admin/templates/admin/base.html:33 +#: contrib/admin/templates/admin/base.html:54 #: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/delete_confirmation.html:6 @@ -540,7 +541,6 @@ msgid "Run the selected action" msgstr "Utfør den valgte handlingen" #: contrib/admin/templates/admin/actions.html:4 -#: contrib/admin/templates/admin/search_form.html:8 msgid "Go" msgstr "Gå" @@ -550,18 +550,18 @@ msgstr "Gå" msgid "%(name)s" msgstr "%(name)s" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:27 msgid "Welcome," msgstr "Velkommen," -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Dokumentasjon" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:40 #: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 @@ -569,7 +569,7 @@ msgstr "Dokumentasjon" msgid "Change password" msgstr "Endre passord" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Log out" @@ -699,6 +699,10 @@ msgstr "Mine handlinger" msgid "None available" msgstr "Ingen tilgjengelige" +#: contrib/admin/templates/admin/index.html:72 +msgid "Unknown content" +msgstr "Ukjent innhold" + #: contrib/admin/templates/admin/invalid_setup.html:7 msgid "" "Something's wrong with your database installation. Make sure the appropriate " @@ -746,6 +750,15 @@ msgstr "" msgid "Show all" msgstr "Vis alle" +#: contrib/admin/templates/admin/pagination.html:11 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Save" +msgstr "Lagre" + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Search" +msgstr "Søk" + #: contrib/admin/templates/admin/search_form.html:10 #, python-format msgid "1 result" @@ -758,10 +771,6 @@ msgstr[1] "%(counter)s resultater" msgid "%(full_result_count)s total" msgstr "%(full_result_count)s totalt" -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Save" -msgstr "Lagre" - #: contrib/admin/templates/admin/submit_line.html:5 msgid "Save as new" msgstr "Lagre som ny" @@ -989,144 +998,145 @@ msgstr "nettside" msgid "template" msgstr "mal" -#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 -#: contrib/admindocs/views.py:62 +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 msgid "tag:" msgstr "tag:" -#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 -#: contrib/admindocs/views.py:95 +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 msgid "filter:" msgstr "filter:" -#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 -#: contrib/admindocs/views.py:159 +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 msgid "view:" msgstr "view:" -#: contrib/admindocs/views.py:187 +#: contrib/admindocs/views.py:190 #, python-format msgid "App %r not found" msgstr "Fant ikke applikasjonen %r" -#: contrib/admindocs/views.py:194 +#: contrib/admindocs/views.py:197 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" msgstr "Fant ikke modellen %(model_name)r i applikasjonen %(app_label)r" -#: contrib/admindocs/views.py:206 +#: contrib/admindocs/views.py:209 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" msgstr "det relaterte `%(app_label)s.%(data_type)s`-objektet" -#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 -#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 msgid "model:" msgstr "modell:" -#: contrib/admindocs/views.py:237 +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" msgstr "relaterte `%(app_label)s.%(object_name)s`-objekter" -#: contrib/admindocs/views.py:242 +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 #, python-format msgid "all %s" msgstr "alle %s" -#: contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 #, python-format msgid "number of %s" msgstr "antall %s" -#: contrib/admindocs/views.py:252 +#: contrib/admindocs/views.py:271 #, python-format msgid "Fields on %s objects" msgstr "Felter på %s-objekter" -#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 -#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 -#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 +#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 +#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 msgid "Integer" msgstr "Heltall" -#: contrib/admindocs/views.py:316 +#: contrib/admindocs/views.py:335 msgid "Boolean (Either True or False)" msgstr "Boolsk (True eller False)" -#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 +#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 #, python-format msgid "String (up to %(max_length)s)" msgstr "Tekst (opp til %(max_length)s tegn)" -#: contrib/admindocs/views.py:318 +#: contrib/admindocs/views.py:337 msgid "Comma-separated integers" msgstr "Heltall adskilt med komma" -#: contrib/admindocs/views.py:319 +#: contrib/admindocs/views.py:338 msgid "Date (without time)" msgstr "Dato (uten tid)" -#: contrib/admindocs/views.py:320 +#: contrib/admindocs/views.py:339 msgid "Date (with time)" msgstr "Dato (med tid)" -#: contrib/admindocs/views.py:321 +#: contrib/admindocs/views.py:340 msgid "Decimal number" msgstr "Desimaltall" -#: contrib/admindocs/views.py:322 +#: contrib/admindocs/views.py:341 msgid "E-mail address" msgstr "E-postadresse" -#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 -#: contrib/admindocs/views.py:327 +#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:346 msgid "File path" msgstr "Filsti" -#: contrib/admindocs/views.py:325 +#: contrib/admindocs/views.py:344 msgid "Floating point number" msgstr "Flyttall" -#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 +#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 msgid "IP address" msgstr "IP-adresse" -#: contrib/admindocs/views.py:331 +#: contrib/admindocs/views.py:350 msgid "Boolean (Either True, False or None)" msgstr "Boolsk (True, False eller None)" -#: contrib/admindocs/views.py:332 +#: contrib/admindocs/views.py:351 msgid "Relation to parent model" msgstr "Relasjon til foreldermodell" -#: contrib/admindocs/views.py:333 +#: contrib/admindocs/views.py:352 msgid "Phone number" msgstr "Telefonnummer" -#: contrib/admindocs/views.py:338 +#: contrib/admindocs/views.py:357 msgid "Text" msgstr "Tekst" -#: contrib/admindocs/views.py:339 +#: contrib/admindocs/views.py:358 msgid "Time" msgstr "Tid" -#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 +#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 #: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 msgid "URL" msgstr "Nettadresse" -#: contrib/admindocs/views.py:341 +#: contrib/admindocs/views.py:360 msgid "U.S. state (two uppercase letters)" msgstr "Stat (i USA, to store bokstaver)" -#: contrib/admindocs/views.py:342 +#: contrib/admindocs/views.py:361 msgid "XML text" msgstr "XML-tekst" -#: contrib/admindocs/views.py:368 +#: contrib/admindocs/views.py:387 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s ser ikke ut til å være et urlpattern-objekt" @@ -1770,18 +1780,25 @@ msgstr "" "Vi beklager, men dette skjemaet har tidsavbrutt. Vennligst fyll ut skjemaet " "fra denne siden." -#: contrib/gis/forms/fields.py:14 +#: contrib/gis/forms/fields.py:17 msgid "No geometry value provided." msgstr "Ingen geometriverdi oppgitt." -#: contrib/gis/forms/fields.py:15 +#: contrib/gis/forms/fields.py:18 msgid "Invalid geometry value." msgstr "Ugyldig geometriverdi" -#: contrib/gis/forms/fields.py:16 +#: contrib/gis/forms/fields.py:19 msgid "Invalid geometry type." msgstr "Ugyldig geometritype" +#: contrib/gis/forms/fields.py:20 +msgid "" +"An error occurred when transforming the geometry to the SRID of the geometry " +"form field." +msgstr "" +"En feil oppstod ved transformering av geometrien til SRID fra geometrifeltet." + #: contrib/humanize/templatetags/humanize.py:19 msgid "th" msgstr "." @@ -3891,13 +3908,13 @@ msgstr "Verdien må være None, True eller False." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgstr "Oppgi tiden på formen TT:MM[:ss[.uuuuuu]]." -#: db/models/fields/related.py:792 +#: db/models/fields/related.py:816 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Hold nede \"Control\", eller \"Command\" på en Mac, for å velge mer enn en." -#: db/models/fields/related.py:870 +#: db/models/fields/related.py:894 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -3956,11 +3973,11 @@ msgstr "Verdien kan ikke ha mer enn %s desimaler." msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Verdien kan ikke ha mer enn %s siffer foran komma." -#: forms/fields.py:288 forms/fields.py:862 +#: forms/fields.py:288 forms/fields.py:863 msgid "Enter a valid date." msgstr "Oppgi en gyldig dato." -#: forms/fields.py:322 forms/fields.py:863 +#: forms/fields.py:322 forms/fields.py:864 msgid "Enter a valid time." msgstr "Oppgi et gyldig tidspunkt." @@ -4002,20 +4019,20 @@ msgstr "Oppgi en gyldig nettadresse." msgid "This URL appears to be a broken link." msgstr "Nettadressen fører til en side som ikke eksisterer." -#: forms/fields.py:624 forms/fields.py:702 +#: forms/fields.py:625 forms/fields.py:703 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Velg et gyldig valg. %(value)s er ikke et av de tilgjengelige valgene." -#: forms/fields.py:703 forms/fields.py:764 forms/models.py:776 +#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003 msgid "Enter a list of values." msgstr "Oppgi en liste med verdier." -#: forms/fields.py:891 +#: forms/fields.py:892 msgid "Enter a valid IPv4 address." msgstr "Oppgi en gyldig IPv4-adresse." -#: forms/fields.py:901 +#: forms/fields.py:902 msgid "" "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." msgstr "" @@ -4026,25 +4043,53 @@ msgstr "" msgid "Order" msgstr "Rekkefølge" -#: forms/models.py:299 forms/models.py:308 +#: forms/models.py:367 +#, python-format +msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." +msgstr "%(field_name)s må være unik for %(date_field)s %(lookup)s." + +#: forms/models.py:381 forms/models.py:389 #, python-format msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s med %(field_label)s finnes allerede." -#: forms/models.py:651 +#: forms/models.py:594 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Vennligst korriger duplisert data for %(field)s." + +#: forms/models.py:598 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Vennligst korriger duplisert data for %(field)s, som må være unik." + +#: forms/models.py:604 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Vennligst korriger duplisert data for %(field_name)s, som må være unik for " +"%(lookup)s i %(date_field)s." + +#: forms/models.py:612 +msgid "Please correct the duplicate values below." +msgstr "Vennligst korriger de dupliserte verdiene nedenfor." + +#: forms/models.py:867 msgid "The inline foreign key did not match the parent instance primary key." msgstr "Primærnøkkelen er ikke den samme som foreldreinstansens primærnøkkel." -#: forms/models.py:706 +#: forms/models.py:930 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "Velg et gyldig valg. Valget er ikke et av de tilgjengelige valgene." -#: forms/models.py:777 +#: forms/models.py:1004 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Velg et gyldig valg. %s er ikke et av de tilgjengelige valgene." -#: forms/models.py:779 +#: forms/models.py:1006 #, python-format msgid "\"%s\" is not a valid value for a primary key." msgstr "\"%s\" er ikke en gyldig verdi for en primærnøkkel." @@ -4075,27 +4120,27 @@ msgstr "%.1f MB" msgid "%.1f GB" msgstr "%.1f GB" -#: utils/dateformat.py:41 +#: utils/dateformat.py:42 msgid "p.m." msgstr "p.m." -#: utils/dateformat.py:42 +#: utils/dateformat.py:43 msgid "a.m." msgstr "a.m." -#: utils/dateformat.py:47 +#: utils/dateformat.py:48 msgid "PM" msgstr "PM" -#: utils/dateformat.py:48 +#: utils/dateformat.py:49 msgid "AM" msgstr "AM" -#: utils/dateformat.py:97 +#: utils/dateformat.py:98 msgid "midnight" msgstr "midnatt" -#: utils/dateformat.py:99 +#: utils/dateformat.py:100 msgid "noon" msgstr "12:00" diff --git a/django/conf/locale/th/LC_MESSAGES/django.mo b/django/conf/locale/th/LC_MESSAGES/django.mo index 7dce1c3feaf71f11cf2405d1a4b4d164e88455b3..026ba1b1f8e905529ce495b81045d14d527c501f 100644 GIT binary patch delta 24311 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 RusC1ebivbIx3%5<{{cL*Y=8g& delta 23873 zcma)@2Ygn=*00~41X3sgLINZ}LJc*9DxmZ(9RyUm5PB~PD!zb7N5w5{nm`mqP!I@^ zP~_0TN>{qUhNvKxV?l-c{Pzr=aPIwn-`&46d1kFyvu4ejvUh@K|GZpR=i~}rE)=#X zz%ws25GW2O@Z;UEK;Xl=(gp&1+XezJJAuGH7>nG!eISqkM?jg(h7oWdjDhc4UWSE{ ze}dsKyn|u1Wf52~5C{emsZ_zBI+UY6Py-FN@)TGRc_s{jn_zC3VYw3$dte{T3lCZS zNtg%u9F*U$peA?&7Jzv=1_JpRKTw=XE)0t&SP=arsEN((!a^#-RVc(apfa%mYG&_3&FF}2KM57!IjF!tv+`BT>rk2a87hFk zp#0?NY8VUEo(Pq}3PCE0s2-HVwoo0qT7%wD1CD|UaDr`r3Kl|s&Tl1lj!-k|XAQ9(t4-STDFdZtu@P`faK?M>6V_{iXknsccsVFt=U_5*j>aLs!HKT=4fxH40$QmdI zZ$r&|ztx|FvO5no@Dh`;dP*YTG9es0yb; zj%;8PtPex`nx$w6+aNy*tHCv}7(5Nj!5fx^`?153>qD{}cnmg%yP!7rUr_y``*ZeT z#UK^!$}X@890ZHPH(?354=U2nAV)ZG3(7%<$4n}Rz{bcPR3^_trTQk6-_irjO;-o1 zy)D$<831*Y1}9Tds#ij#`Xtnh{(_oG>47Hl2Vr^S-ca^4U@n*ib?)~-ou1>cEj$ND z!g6V56T2`Bc@>o18dzB8e}iq<4|Oh&K<(laP@C;6>;|)Kd!0dM292RI(;be2W1)^? zHp~sbgQ4&zr~!Yq`a4kLR7IaIMi9z+NV3`7g;V5cR5g&juY!2nH1Jt?iX5|4;cEex<90z6pl+{0H z^$RQ)!{)TFg382~P=2pj-W)>yPJFQ5~q%-47#SQz!@R zpa$*+HDGV6e+(+X;g(~e?4E$~6NJiCa3&QwS`6iQ6^w%Gth^N}RePWud3hKxr2cQR1|qTm=AV_imy4uGEf|9FO{-#W!M}!73zCoB9#BP#@O?pfkGX2LCy3K)NwosHIwgc`z@%B zVPnl^%M1O?z!3C_P@Atb)N!p1_1

        6X0ya-ylyP{*8o{4#KTYnoQ8665h?>e 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 RyGPJn_f36oTnneu{{bFsRm1=Q diff --git a/django/conf/locale/th/LC_MESSAGES/django.po b/django/conf/locale/th/LC_MESSAGES/django.po index 54283660c6..fbf67de078 100644 --- a/django/conf/locale/th/LC_MESSAGES/django.po +++ b/django/conf/locale/th/LC_MESSAGES/django.po @@ -2,214 +2,215 @@ # msgid "" msgstr "" -"Project-Id-Version: Django\n" +"Project-Id-Version: Django-1.1-rc-1\n" "Report-Msgid-Bugs-To: kowito@felspar.com\n" "POT-Creation-Date: 2008-09-02 22:36-0700\n" -"PO-Revision-Date: 2008-11-26 18:40+0700\n" +"PO-Revision-Date: 2009-07-28 22:31+0700\n" "Last-Translator: Kowit Charoenratchatabhan \n" -"Language-Team: Kowit Charoenratchatabhan,Kadsarin Sanjek, Felspar \n" +"Language-Team: Kowit Charoenratchatabhan,Kadsarin Sanjek, Felspar,Theppitak Karoonboonyanan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Thai\n" -"X-Poedit-Country: Thailand\n" +"X-Poedit-Country: THAILAND\n" "X-Poedit-SourceCharset: utf-8\n" +"Plural-Forms: nplurals=1; plural=0;\n" #: conf/global_settings.py:44 msgid "Arabic" -msgstr "ภาษาอารบิก" +msgstr "อารบิก" #: conf/global_settings.py:45 msgid "Bengali" -msgstr "ภาษาเบงกาลี" +msgstr "เบ็งกาลี" #: conf/global_settings.py:46 msgid "Bulgarian" -msgstr "ภาษาบัลกาเรีย" +msgstr "บัลแกเรีย" #: conf/global_settings.py:47 msgid "Catalan" -msgstr "ภาษาคาตาลาน" +msgstr "คาตะลาน" #: conf/global_settings.py:48 msgid "Czech" -msgstr "ภาษาเชค" +msgstr "เช็ก" #: conf/global_settings.py:49 msgid "Welsh" -msgstr "ภาษาเวลส์" +msgstr "เวลส์" #: conf/global_settings.py:50 msgid "Danish" -msgstr "ภาษาเดนมาร์ก" +msgstr "เดนมาร์ก" #: conf/global_settings.py:51 msgid "German" -msgstr "ภาษาเยอรมัน" +msgstr "เยอรมัน" #: conf/global_settings.py:52 msgid "Greek" -msgstr "ภาษากรีก" +msgstr "กรีก" #: conf/global_settings.py:53 msgid "English" -msgstr "ภาษาอังกฤษ" +msgstr "อังกฤษ" #: conf/global_settings.py:54 msgid "Spanish" -msgstr "ภาษาสเปน" +msgstr "สเปน" #: conf/global_settings.py:55 msgid "Estonian" -msgstr "ภาษาเอสโตเนีย" +msgstr "เอสโตเนีย" #: conf/global_settings.py:56 msgid "Argentinean Spanish" -msgstr "ภาษาสเปน(อาร์เจนตินา)" +msgstr "สเปน (อาร์เจนตินา)" #: conf/global_settings.py:57 msgid "Basque" -msgstr "ภาษาบาสค์" +msgstr "แบ็ซค์" #: conf/global_settings.py:58 msgid "Persian" -msgstr "ภาษาเปอร์เชีย" +msgstr "เปอร์เชีย" #: conf/global_settings.py:59 msgid "Finnish" -msgstr "ภาษาฟินแลนด์" +msgstr "ฟินแลนด์" #: conf/global_settings.py:60 msgid "French" -msgstr "ภาษาฝรั่งเศส" +msgstr "ฝรั่งเศส" #: conf/global_settings.py:61 msgid "Irish" -msgstr "ภาษาไอร์แลนด์" +msgstr "ไอริช" #: conf/global_settings.py:62 msgid "Galician" -msgstr "ภาษากาลิเซีย" +msgstr "กาลิเซีย" #: conf/global_settings.py:63 msgid "Hungarian" -msgstr "ภาษาฮังการี" +msgstr "ฮังการี" #: conf/global_settings.py:64 msgid "Hebrew" -msgstr "ภาษาฮิบรู" +msgstr "ฮีบรู" #: conf/global_settings.py:65 msgid "Croatian" -msgstr "ภาษาโครเอเชีย" +msgstr "โครเอเชีย" #: conf/global_settings.py:66 msgid "Icelandic" -msgstr "ภาษาไอซ์แลนด์" +msgstr "ไอซ์แลนด์" #: conf/global_settings.py:67 msgid "Italian" -msgstr "ภาษาอิตาลี" +msgstr "อิตาลี" #: conf/global_settings.py:68 msgid "Japanese" -msgstr "ภาษาญี่ปุ่น" +msgstr "ญี่ปุ่น" #: conf/global_settings.py:69 msgid "Georgian" -msgstr "ภาษาจอร์เจีย" +msgstr "จอร์เจีย" #: conf/global_settings.py:70 msgid "Korean" -msgstr "ภาษาเกาหลี" +msgstr "เกาหลี" #: conf/global_settings.py:71 msgid "Khmer" -msgstr "ภาษาเขมร" +msgstr "เขมร" #: conf/global_settings.py:72 msgid "Kannada" -msgstr "ภาษาคานนาดา" +msgstr "กัณณาท" #: conf/global_settings.py:73 msgid "Latvian" -msgstr "ภาษาลัตเวีย" +msgstr "ลัตเวีย" #: conf/global_settings.py:74 msgid "Lithuanian" -msgstr "ภาษาลิทัวเนีย" +msgstr "ลิทัวเนีย" #: conf/global_settings.py:75 msgid "Macedonian" -msgstr "ภาษามาซีโดเนีย" +msgstr "มาซิโดเนีย" #: conf/global_settings.py:76 msgid "Dutch" -msgstr "ภาษาดัตช์" +msgstr "ดัตช์" #: conf/global_settings.py:77 msgid "Norwegian" -msgstr "ภาษานอร์เวย์" +msgstr "นอร์เวย์" #: conf/global_settings.py:78 msgid "Polish" -msgstr "ภาษาโปแลนด์" +msgstr "โปแลนด์" #: conf/global_settings.py:79 msgid "Portugese" -msgstr "ภาษาโปรตุเกส" +msgstr "โปรตุเกส" #: conf/global_settings.py:80 msgid "Brazilian Portuguese" -msgstr "ภาษาโปรตุเกส (บราซิล)" +msgstr "โปรตุเกส (บราซิล)" #: conf/global_settings.py:81 msgid "Romanian" -msgstr "ภาษาโรมาเนีย" +msgstr "โรมาเนีย" #: conf/global_settings.py:82 msgid "Russian" -msgstr "ภาษารัสเซีย" +msgstr "รัสเซีย" #: conf/global_settings.py:83 msgid "Slovak" -msgstr "ภาษาสโลวัค" +msgstr "สโลวัก" #: conf/global_settings.py:84 msgid "Slovenian" -msgstr "ภาษาสโลเวเนีย" +msgstr "สโลวีเนีย" #: conf/global_settings.py:85 msgid "Serbian" -msgstr "ภาษาเซอร์เบีย" +msgstr "เซอร์เบีย" #: conf/global_settings.py:86 msgid "Swedish" -msgstr "ภาษาสวีเดน" +msgstr "สวีเดน" #: conf/global_settings.py:87 msgid "Tamil" -msgstr "ภาษาทมิฬ" +msgstr "ทมิฬ" #: conf/global_settings.py:88 msgid "Telugu" -msgstr "ภาษาเตลูกู" +msgstr "เตลุคู" #: conf/global_settings.py:89 msgid "Turkish" -msgstr "ภาษาตุรกี" +msgstr "ตุรกี" #: conf/global_settings.py:90 msgid "Ukrainian" -msgstr "ภาษายูเครน" +msgstr "ยูเครน" #: conf/global_settings.py:91 msgid "Simplified Chinese" -msgstr "อักษรจีนดั้งเดิม" +msgstr "จีนตัวย่อ" #: conf/global_settings.py:92 msgid "Traditional Chinese" -msgstr "อักษรจีนสมัยใหม่" +msgstr "จีนตัวเต็ม" #: contrib/admin/filterspecs.py:44 #, python-format @@ -268,7 +269,7 @@ msgstr "เวลาลงมือ" #: contrib/admin/models.py:22 msgid "object id" -msgstr "object id" +msgstr "อ็อบเจ็กต์ไอดี" #: contrib/admin/models.py:23 msgid "object repr" @@ -309,12 +310,12 @@ msgstr "และ" #: contrib/admin/options.py:343 #, python-format msgid "Added %(name)s \"%(object)s\"." -msgstr "เพิ่ม %(name)s \"%(object)s\"." +msgstr "เพิ่ม %(name)s \"%(object)s\" แล้ว" #: contrib/admin/options.py:347 #, python-format msgid "Changed %(list)s for %(name)s \"%(object)s\"." -msgstr "เปลี่ยน %(list)s เพื่อ %(name)s \"%(object)s\"" +msgstr "เปลี่ยน %(list)s สำหรับ %(name)s \"%(object)s\" แล้ว" #: contrib/admin/options.py:352 #, python-format @@ -329,39 +330,39 @@ msgstr "ไม่มีฟิลด์ใดถูกเปลี่ยน" #: contrib/auth/admin.py:51 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." -msgstr "%(name)s \"%(obj)s\" ได้ถูกเพิ่มเรียบร้อยแล้ว" +msgstr "เพิ่ม %(name)s \"%(obj)s\" เรียบร้อยแล้ว" #: contrib/admin/options.py:421 #: contrib/admin/options.py:454 #: contrib/auth/admin.py:59 msgid "You may edit it again below." -msgstr "สามารถแก้ไขเพิ่มเติมได้ด้านล่าง" +msgstr "สามารถแก้ไขเพิ่มเติมได้ที่ด้านล่าง" #: contrib/admin/options.py:431 #: contrib/admin/options.py:464 #, python-format msgid "You may add another %s below." -msgstr "คุณอาจจะเพิ่ม %s ได้อีกด้านล่าง" +msgstr "คุณสามารถเพิ่ม %s ได้อีกที่ด้านล่าง" #: contrib/admin/options.py:452 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "%(name)s \"%(obj)s\" ได้ถูกเปลี่ยนแปลงเรียบร้อยแล้ว" +msgstr "เปลี่ยนแปลง %(name)s \"%(obj)s\" เรียบร้อยแล้ว" #: contrib/admin/options.py:460 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." -msgstr " %(name)s \"%(obj)s\" ได้ถูกเพิ่มเรียบร้อยแล้ว, แก้ไขได้ด้านล่าง" +msgstr "เพิ่ม %(name)s \"%(obj)s\" เรียบร้อยแล้ว แก้ไขได้อีกที่ด้านล่าง" #: contrib/admin/options.py:536 #, python-format msgid "Add %s" -msgstr "เพิ่ม%s" +msgstr "เพิ่ม %s" #: contrib/admin/options.py:614 #, python-format msgid "Change %s" -msgstr "เปลี่ยนแปลง %s" +msgstr "เปลี่ยน %s" #: contrib/admin/options.py:646 msgid "Database error" @@ -370,7 +371,7 @@ msgstr "เกิดความผิดพลาดที่ฐานข้อ #: contrib/admin/options.py:696 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" ได้ถูกลบเรียบร้อยแล้ว" +msgstr "ลบ %(name)s \"%(obj)s\" เรียบร้อยแล้ว" #: contrib/admin/options.py:703 msgid "Are you sure?" @@ -395,19 +396,19 @@ msgstr "กรุณาลงชื่อเข้าใช้อีกครั #: contrib/admin/sites.py:234 #: contrib/admin/views/decorators.py:47 msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." -msgstr "ดูเหมือนบราวเซอร์ของคุณจะไม่เปิดระบบคุกกี้ กรุณาเปิดระบบคุกกี้และลองเรียกหน้านี้ใหม่อีกครั้ง" +msgstr "ดูเหมือนเบราว์เซอร์ของคุณจะไม่เปิดรับคุกกี้ กรุณาเปิดรับคุกกี้และลองเรียกหน้านี้ใหม่อีกครั้ง" #: contrib/admin/sites.py:250 #: contrib/admin/sites.py:256 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." -msgstr "ชื่อผู้ใช้ไม่สามารถใช้ '@' สัญลักษณ์นี้ได้" +msgstr "ชื่อผู้ใช้ไม่สามารถใช้อักขระ '@' ได้" #: contrib/admin/sites.py:253 #: contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." -msgstr "อีเมลล์นี้ไม่สามารถใช้ชื่อผู้ใช้นี้ได้ ลองใช้ '%s' " +msgstr "ที่อยู่อีเมลไม่ใช่ชื่อผู้ใช้ของคุณ ลองใช้ '%s' แทน" #: contrib/admin/sites.py:313 msgid "Site administration" @@ -445,7 +446,7 @@ msgstr "เวลา :" #: contrib/admin/widgets.py:94 msgid "Currently:" -msgstr "ปัจจุบัน :" +msgstr "ปัจจุบัน:" #: contrib/admin/widgets.py:94 msgid "Change:" @@ -502,7 +503,7 @@ msgstr "เซิร์ฟเวอร์ขัดข้อง (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 "เกิดเหตุขัดข้องขี้น ทางเราได้รายงานไปยังหน่วยงานที่ดูแลแล้ว และจะดำเนินการซ่อมแซมอย่างเร่งด่วน ขอบคุณ" +msgstr "เกิดเหตุขัดข้องขี้น ทางเราได้รายงานไปยังผู้ดูแลระบบแล้ว และจะดำเนินการแก้ไขอย่างเร่งด่วน ขอบคุณที่ราบงานความผิดพลาด" #: contrib/admin/templates/admin/app_index.html:10 #: contrib/admin/templates/admin/index.html:19 @@ -562,7 +563,8 @@ msgstr "ดูที่หน้าเว็บ" #: contrib/admin/templates/admin/change_form.html:38 #: contrib/admin/templates/admin/auth/user/change_password.html:22 msgid "Please correct the error below." -msgstr "โปรดแก้ไขข้อผิดพลาดด้านล่าง" +msgid_plural "Please correct the errors below." +msgstr[0] "โปรดแก้ไขข้อผิดพลาดด้านล่าง" #: contrib/admin/templates/admin/change_list.html:16 #, python-format @@ -582,7 +584,7 @@ msgstr "ลบ" #: contrib/admin/templates/admin/delete_confirmation.html:16 #, python-format msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:" -msgstr "กำลังดำเนินการลบ %(object_name)s '%(escaped_object)s'และจะแสดงผลการลบ ชื่อผู้ใช้งานของคุณไม่สามารถทำการลบข้อมูลนี้ได้" +msgstr "กำลังดำเนินการลบ %(object_name)s '%(escaped_object)s'และจะแสดงผลการลบ แต่บัญชีของคุณไม่สามารถทำการลบข้อมูลชนิดนี้ได้" #: contrib/admin/templates/admin/delete_confirmation.html:23 #, python-format @@ -601,7 +603,7 @@ msgstr " โดย %(filter_title)s " #: contrib/admin/templates/admin/index.html:18 #, python-format msgid "Models available in the %(name)s application." -msgstr "Models available in the %(name)s application." +msgstr "โมเดลใช้ได้ในแอป %(name)s ." #: contrib/admin/templates/admin/index.html:35 msgid "Change" @@ -625,15 +627,15 @@ msgstr "ไม่ว่าง" #: contrib/admin/templates/admin/invalid_setup.html:7 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 "มีสิ่งผิดปกติเกิดขึ้นกับการติดตั้งฐานข้อมูล กรุณาตรวจสอบอีกครั้ง ฐานข้อมูลได้ถูกติดตั้งแล้ว กรุณาตอบสอบให้แน่ใจว่าสามารถใช้งานได้โดยผู้ใช้ที่จัดสรรให้" +msgstr "มีสิ่งผิดปกติเกิดขึ้นกับการติดตั้งฐานข้อมูล กรุณาตรวจสอบอีกครั้งว่าฐานข้อมูลได้ถูกติดตั้งแล้ว หรือฐานข้อมูลสามารถอ่านและเขียนได้โคยผู้ใช้นี้" #: contrib/admin/templates/admin/login.html:19 msgid "Username:" -msgstr "ชื่อผู้ใช้" +msgstr "ชื่อผู้ใช้:" #: contrib/admin/templates/admin/login.html:22 msgid "Password:" -msgstr "รหัสผ่าน" +msgstr "รหัสผ่าน:" #: contrib/admin/templates/admin/object_history.html:22 msgid "Date/time" @@ -654,11 +656,11 @@ msgstr "N j, Y, P" #: contrib/admin/templates/admin/object_history.html:38 msgid "This object doesn't have a change history. It probably wasn't added via this admin site." -msgstr "อ็อบเจ็กนี้ไม่ได้แก้ไขประวัติ เป็นไปได้ว่าอาจจะไม่ได้ถูกเพิ่มเข้าไปในส่วนของผู้ดูแลระบบ" +msgstr "อ็อบเจ็กต์นี้ไม่ได้แก้ไขประวัติ เป็นไปได้ว่ามันอาจจะไม่ได้ถูกเพิ่มเข้าไปโดยระบบ" #: contrib/admin/templates/admin/pagination.html:10 msgid "Show all" -msgstr "แสดงผลทั้งหมด" +msgstr "แสดงทั้งหมด" #: contrib/admin/templates/admin/search_form.html:8 msgid "Go" @@ -667,7 +669,8 @@ msgstr "ไป" #: contrib/admin/templates/admin/search_form.html:10 #, python-format msgid "1 result" -msgstr "1 ผลลัพท์" +msgid_plural "%(counter)s results" +msgstr[0] "%(counter)s ผลลัพท์" #: contrib/admin/templates/admin/search_form.html:10 #, python-format @@ -688,7 +691,7 @@ msgstr "บันทึกและเพิ่ม" #: contrib/admin/templates/admin/submit_line.html:7 msgid "Save and continue editing" -msgstr "บันทึกและเริ่มต้นการแก้ไข" +msgstr "บันทึกและกลับมาแก้ไข" #: contrib/admin/templates/admin/auth/user/add_form.html:6 msgid "First, enter a username and password. Then, you'll be able to edit more user options." @@ -718,7 +721,7 @@ msgstr "รหัสผ่าน (อีกครั้ง)" #: contrib/admin/templates/admin/auth/user/add_form.html:27 #: contrib/admin/templates/admin/auth/user/change_password.html:40 msgid "Enter the same password as above, for verification." -msgstr "ใส่รหัสผ่านเหมือนด้านบน เพื่อตรวจสอบ" +msgstr "ใส่รหัสผ่านเหมือนด้านบน เพื่อตรวจสอบความถูกต้อง" #: contrib/admin/templates/admin/auth/user/change_password.html:26 #, python-format @@ -755,7 +758,7 @@ msgstr "รหัสผ่านของคุณถูกเปลี่ยน #: 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 "กรุณาใส่รหัสผ่านเดิม ด้วยเหตุผลทางด้านการรักษาความปลอดภัย หลังจากนั้นให้ใส่รหัสผ่านตัวใหม่อีกสองครั้ง เพื่อตรวจสอบว่าคุณได้พิมพ์รหัสอย่างถูกต้อง" +msgstr "กรุณาใส่รหัสผ่านเดิม ด้วยเหตุผลทางด้านการรักษาความปลอดภัย หลังจากนั้นให้ใส่รหัสผ่านใหม่อีกสองครั้ง เพื่อตรวจสอบว่าคุณได้พิมพ์รหัสอย่างถูกต้อง" #: contrib/admin/templates/registration/password_change_form.html:17 msgid "Old password:" @@ -821,7 +824,7 @@ msgstr "การตั้งค่ารหัสผ่านใหม่เร #: contrib/admin/templates/registration/password_reset_done.html:12 msgid "We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly." -msgstr "เราได้ส่งอีเมลการตั้งรหัสผ่านถึงคุณ ไปที่อีเมลที่คุณให้ไว้เรียบร้อยแล้ว และคุณจะได้รับเร็วๆ นี้" +msgstr "เราได้ส่งอีเมลวิธีการตั้งรหัสผ่าน ไปที่อีเมลที่คุณให้ไว้เรียบร้อยแล้ว และคุณจะได้รับเร็วๆ นี้" #: contrib/admin/templates/registration/password_reset_email.html:2 msgid "You're receiving this e-mail because you requested a password reset" @@ -838,7 +841,7 @@ msgstr "กรุณาไปที่หน้านี้และเลือ #: contrib/admin/templates/registration/password_reset_email.html:9 msgid "Your username, in case you've forgotten:" -msgstr "ชื่อผู้ใช้งานของคุณ ในกรณีที่คุณลืม:" +msgstr "ชื่อผู้ใช้ของคุณ ในกรณีที่คุณถูกลืม:" #: contrib/admin/templates/registration/password_reset_email.html:11 msgid "Thanks for using our site!" @@ -851,7 +854,7 @@ msgstr "%(site_name)s ทีม" #: contrib/admin/templates/registration/password_reset_form.html:12 msgid "Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one." -msgstr "ลืมรหัสผ่าน? กรุณาใส่อีเมลด้านล่าง ทางเราจะทำการส่งวิธีการในการสร้างรหัสผ่านใหม่ไปให้" +msgstr "ลืมรหัสผ่าน? กรุณาใส่อีเมลด้านล่าง ทางเราจะทำการส่งวิธีการในการตั้งรหัสผ่านใหม่ไปให้" #: contrib/admin/templates/registration/password_reset_form.html:16 msgid "E-mail address:" @@ -873,7 +876,7 @@ msgstr "เลือก %s" #: contrib/admin/views/main.py:69 #, python-format msgid "Select %s to change" -msgstr "เลือก %s เพื่อเปลี่ยน" +msgstr "เลือก %s เพื่อเปลี่ยนแปลง" #: contrib/admin/views/template.py:36 #: contrib/sites/models.py:38 @@ -888,7 +891,7 @@ msgstr "เทมเพลต" #: contrib/admindocs/views.py:59 #: contrib/admindocs/views.py:61 msgid "tag:" -msgstr "ป้าย:" +msgstr "ป้ายกำกับ:" #: contrib/admindocs/views.py:90 #: contrib/admindocs/views.py:92 @@ -905,17 +908,17 @@ msgstr "ดู:" #: contrib/admindocs/views.py:186 #, python-format msgid "App %r not found" -msgstr "ไม่พบโปรแกรม %r " +msgstr "ไม่พบแอป %r " #: contrib/admindocs/views.py:193 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" -msgstr "ไม่พบโมเดล %(model_name)r ในโปรแกรม %(app_label)r" +msgstr "ไม่พบโมเดล %(model_name)r ในแอป %(app_label)r" #: contrib/admindocs/views.py:205 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" -msgstr "ความสัมพันธ์`%(app_label)s.%(data_type)s` อ็อบเจ็ก" +msgstr "ความสัมพันธ์`%(app_label)s.%(data_type)s` อ็อบเจ็กต์" #: contrib/admindocs/views.py:205 #: contrib/admindocs/views.py:227 @@ -927,7 +930,7 @@ msgstr "โมเดล:" #: contrib/admindocs/views.py:236 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" -msgstr "ความสัมพันธ์`%(app_label)s.%(object_name)s` อ็อบเจ็ก" +msgstr "ความสัมพันธ์`%(app_label)s.%(object_name)s` อ็อบเจ็กต์" #: contrib/admindocs/views.py:241 #, python-format @@ -942,7 +945,7 @@ msgstr "จำนวนของ %s" #: contrib/admindocs/views.py:251 #, python-format msgid "Fields on %s objects" -msgstr "ฟิลด์บน %s อ็อบเจ็ก" +msgstr "ฟิลด์บน %s อ็อบเจ็กต์" #: contrib/admindocs/views.py:314 #: contrib/admindocs/views.py:325 @@ -965,7 +968,7 @@ msgstr "สตริง(ได้ถึง %(max_length)s)" #: contrib/admindocs/views.py:317 msgid "Comma-separated integers" -msgstr "จำนวนเต็มที่มีจุลภาคคั่น" +msgstr "จำนวนเต็มแบบมีจุลภาค" #: contrib/admindocs/views.py:318 msgid "Date (without time)" @@ -977,7 +980,7 @@ msgstr "วันที่ (พร้อมด้วยเวลา)" #: contrib/admindocs/views.py:320 msgid "Decimal number" -msgstr "เลขฐานสิบ" +msgstr "เลขฐานสิบหรือเลขทศนิยม" #: contrib/admindocs/views.py:321 msgid "E-mail address" @@ -987,16 +990,16 @@ msgstr "ที่อยู่อีเมล" #: contrib/admindocs/views.py:323 #: contrib/admindocs/views.py:326 msgid "File path" -msgstr "ไฟล์พาธ" +msgstr "ตำแหน่งไฟล์" #: contrib/admindocs/views.py:324 msgid "Floating point number" -msgstr "เลชทศนิยม" +msgstr "เลขทศนิยม" #: contrib/admindocs/views.py:328 #: contrib/comments/models.py:58 msgid "IP address" -msgstr "ไอพี แอดเดรส" +msgstr "หมายเลขไอพี" #: contrib/admindocs/views.py:330 msgid "Boolean (Either True, False or None)" @@ -1027,7 +1030,7 @@ msgstr "URL" #: contrib/admindocs/views.py:340 msgid "U.S. state (two uppercase letters)" -msgstr "รัฐในสหรัฐ(ตัวอักษรใหญ่ 2 ตัว)" +msgstr "รัฐในสหรัฐ (ตัวอักษรใหญ่ 2 ตัว)" #: contrib/admindocs/views.py:341 msgid "XML text" @@ -1036,7 +1039,7 @@ msgstr "ข้อความ XML" #: contrib/admindocs/views.py:367 #, python-format msgid "%s does not appear to be a urlpattern object" -msgstr "%s ดูเหมือนจะไม่ใช่ urlpattern อ็อบเจ็ก" +msgstr "%s ดูเหมือนจะไม่ใช่ urlpattern อ็อบเจ็กต์" #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Bookmarklets" @@ -1057,9 +1060,9 @@ 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, ลากลิ้งก์ไปที่แถบเครื่องมือบุ๊กมาร์ค\n" +", หรือคลิกขวาที่ลิ้งและเพิ่มเข้าบุ๊กมาร์คของคุณ. ตอนนี้คุณสามารถ\n" +"เลือก bookmarklet จากหน้าใดๆในเว็บไซต์. 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" @@ -1074,19 +1077,19 @@ msgstr "ย้ายจากทุกหน้าไปที่วิวที #: contrib/admindocs/templates/admin_doc/bookmarklets.html:21 msgid "Show object ID" -msgstr "แสดงอ็อบเจ็กไอดี" +msgstr "แสดงอ็อบเจ็กต์ไอดี" #: contrib/admindocs/templates/admin_doc/bookmarklets.html:22 msgid "Shows the content-type and unique ID for pages that represent a single object." -msgstr "แสดง content-type และ unique ID เพื่อแสดงอ็อบเจ็กเดี่ยว." +msgstr "แสดง content-type และ unique ID เพื่อแสดงอ็อบเจ็กต์เพียงอย่างเดียว." #: contrib/admindocs/templates/admin_doc/bookmarklets.html:24 msgid "Edit this object (current window)" -msgstr "แก้ไขออปเจ็กนี้ (หน้าต่างปัจจุบัน)" +msgstr "แก้ไขออปเจ็กนี้ (ในหน้าต่างปัจจุบัน)" #: contrib/admindocs/templates/admin_doc/bookmarklets.html:25 msgid "Jumps to the admin page for pages that represent a single object." -msgstr "ไปที่หน้าแอดมินเพื่อแสดงอ็อบเจ็กเดี่ยว." +msgstr "ไปที่หน้าแอดมินเพื่อแสดงอ็อบเจ็กต์เพียงอย่างเดียว." #: contrib/admindocs/templates/admin_doc/bookmarklets.html:27 msgid "Edit this object (new window)" @@ -1094,7 +1097,7 @@ msgstr "แก้ไขออปเจ็กนี้ (หน้าใหม่) #: contrib/admindocs/templates/admin_doc/bookmarklets.html:28 msgid "As above, but opens the admin page in a new window." -msgstr "เหมือนด้านบน แต่เปิดหน้าต่างผู้ดูแลระบบขึ้นมาใหม่" +msgstr "เหมือนด้านบน แต่เปิดหน้าต่างผู้ดูแลระบบในหน้าต่างใหม่" #: contrib/auth/admin.py:21 msgid "Personal info" @@ -1114,7 +1117,7 @@ msgstr "กลุ่ม" #: contrib/auth/admin.py:64 msgid "Add user" -msgstr "เพิ่มผู้ใช้งาน" +msgstr "เพิ่มผู้ใช้" #: contrib/auth/admin.py:90 msgid "Password changed successfully." @@ -1152,7 +1155,7 @@ msgstr "รหัสผ่านไม่ตรงกัน" #: contrib/auth/forms.py:82 msgid "This account is inactive." -msgstr "ชื่อผู้ใช้นี้ไม่สามารถใช้งานได้" +msgstr "บัญชีนี้ไม่ทำงาน" #: contrib/auth/forms.py:87 msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in." @@ -1164,7 +1167,7 @@ msgstr "อีเมล" #: contrib/auth/forms.py:109 msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?" -msgstr "อีเมลนั้นไม่สามารถเข้าสู่ระบบได้ คุณแน่ใจหรือว่าคุณได้ลงทะเบียนแล้ว" +msgstr "อีเมลนี้ไม่ตรงกับบัญชีใดๆในระบบ คุณแน่ใจหรือว่าคุณได้ลงทะเบียนแล้ว" #: contrib/auth/forms.py:134 #, python-format @@ -1228,7 +1231,7 @@ msgstr "นามสกุล" #: contrib/auth/models.py:139 msgid "e-mail address" -msgstr "ที่อยู่อีเมล" +msgstr "อีเมล" #: contrib/auth/models.py:140 msgid "password" @@ -1236,11 +1239,11 @@ msgstr "รหัสผ่าน" #: contrib/auth/models.py:140 msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form." -msgstr "ใช้ '[algo]$[salt]$[hexdigest]' หรือใช้ แบบฟอร์มเปลี่ยนรหัสผ่าน ." +msgstr "ใช้ '[algo]$[salt]$[hexdigest]'หรือใช้ แบบฟอร์มเปลี่ยนรหัสผ่าน ." #: contrib/auth/models.py:141 msgid "staff status" -msgstr "สถานะ" +msgstr "สถานะของพนักงาน" #: contrib/auth/models.py:141 msgid "Designates whether the user can log into this admin site." @@ -1252,7 +1255,7 @@ msgstr "ใช้งานได้" #: contrib/auth/models.py:142 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." -msgstr "ผู้ที่ถูกเลือกนั้นต้องมีสถานะที่สามารถเข้ามาใช้งานได้ตลอดเวลา เลือกออกแทนที่จะลบชื่อผู้ใช้ทิ้งไป " +msgstr "กำหนดให้ผู้ใช้มีสถานะที่สามารถเข้ามาใช้งานได้ เลือกออกแทนที่จะลบชื่อผู้ใช้ทิ้งไป " #: contrib/auth/models.py:143 msgid "superuser status" @@ -1260,7 +1263,7 @@ msgstr "สถานะผู้ใช้พิเศษ" #: contrib/auth/models.py:143 msgid "Designates that this user has all permissions without explicitly assigning them." -msgstr "ชื่อผู้ใช้งานที่ถูกเลือกนั้นได้รับอนุญาตในทุกกรณีโดยไม่ต้องการมอบหมายอย่างเป็นทางการ" +msgstr "กำหนดสิทธิ์ทุกอย่างให้ผู้ใช้ โดยไม่ต้องการมอบหมายอย่างเป็นทางการ" #: contrib/auth/models.py:144 msgid "last login" @@ -1272,19 +1275,19 @@ msgstr "วันที่เข้าร่วม" #: contrib/auth/models.py:147 msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in." -msgstr "ดังนั้นการอนุญาตที่ได้รับมอบหมาย ผู้ใช้งานนี้ยังได้รับสิทธิ์ให้ใช้อำนาจได้กับกลุ่มของตนเองอีกด้วย" +msgstr "ด้วยสิทธิ์ที่ได้รับ ผู้ใช้นี้ยังได้รับสิทธิ์ให้ใช้อำนาจได้กับกลุ่มของตนเองอีกด้วย" #: contrib/auth/models.py:148 msgid "user permissions" -msgstr "สิทธิ์ผู้ใช้งาน" +msgstr "สิทธิ์ของผู้ใช้" #: contrib/auth/models.py:152 msgid "user" -msgstr "ผู้ใช้งาน" +msgstr "ผู้ใช้" #: contrib/auth/models.py:153 msgid "users" -msgstr "ผู้ใช้งาน" +msgstr "ผู้ใช้" #: contrib/auth/models.py:308 msgid "message" @@ -1313,7 +1316,7 @@ msgstr "ชื่อ" #: contrib/comments/forms.py:21 msgid "Email address" -msgstr "ที่อยู่อีเมล" +msgstr "อีเมล" #: contrib/comments/forms.py:23 msgid "Comment" @@ -1324,13 +1327,13 @@ msgid "If you enter anything in this field your comment will be treated as spam" msgstr "ถ้าคุณใส่ข้อมูลใดๆ ก็ตามในส่วนนี้ มันจะกลายเป็นสแปม" #: contrib/comments/forms.py:126 -#, python-format msgid "Watch your mouth! The word %s is not allowed here." -msgstr "ระวังนะ! คำว่า %s ไม่ได้รับอนุญาตให้ใช้ที่นี่" +msgid_plural "Watch your mouth! The words %s are not allowed here." +msgstr[0] "ระวังนะ ไม่สามารถใช้คำว่า %s ที่นี่ได้" #: contrib/comments/models.py:23 msgid "object ID" -msgstr "อ็อบเจ็กไอดี" +msgstr "อ็อบเจ็กต์ไอดี" #: contrib/comments/models.py:50 msgid "user's name" @@ -1338,7 +1341,7 @@ msgstr "ชื่อของผู้ใช้" #: contrib/comments/models.py:51 msgid "user's email address" -msgstr "ที่อยู่อีเมลของผู้ใช้" +msgstr "อีเมลของผู้ใช้" #: contrib/comments/models.py:52 msgid "user's URL" @@ -1370,11 +1373,11 @@ msgstr "เลือกเมื่อเห็นว่าข้อคิดเ #: contrib/comments/models.py:115 msgid "This comment was posted by an authenticated user and thus the name is read-only." -msgstr "ข้อคิดเห็นนี้ได้ถูกเขียนไว้โดยผู้ใช้งานที่สามารถเชื่อถือได้ จะถูกอ่านได้เพียงอย่างเดียว" +msgstr "ข้อคิดเห็นนี้ได้ถูกเขียนไว้โดยผู้ใช้ที่สามารถเชื่อถือได้ จะถูกอ่านได้เพียงอย่างเดียว" #: contrib/comments/models.py:124 msgid "This comment was posted by an authenticated user and thus the email is read-only." -msgstr "ข้อคิดเห็นนี้ถูกเขียนไว้โดยผู้ใช้งานที่สามารถเชื่อถือได้ ดังนั้นอีเมลนั้นจะถูกอ่านเท่านั้น" +msgstr "ข้อคิดเห็นนี้ถูกเขียนไว้โดยผู้ใช้ที่สามารถเชื่อถือได้ ดังนั้นอีเมลนั้นจะถูกอ่านเท่านั้น" #: contrib/comments/models.py:149 #, python-format @@ -1405,11 +1408,11 @@ msgstr "content types" #: contrib/flatpages/admin.py:9 msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." -msgstr "ตัวอย่าง: '/about/contact/'. ต้องแน่ใจว่าขึ้นต้นและลงท้ายด้วยเครื่องหมายขีดทับ (/)" +msgstr "ตัวอย่าง: '/about/contact/'. ต้องแน่ใจว่าขึ้นต้นและลงท้ายด้วยเครื่องหมาย /" #: contrib/flatpages/admin.py:11 msgid "This value must contain only letters, numbers, underscores, dashes or slashes." -msgstr "ค่าที่ว่านี้จะต้องประกอบด้วยตัวหน้งสือ ตัวเลข เครื่องหมายขีดล่าง หรือขีดทับ(/)" +msgstr "ค่าที่ว่านี้จะต้องประกอบด้วยตัวหน้งสือ ตัวเลข เครื่องหมายขีดล่าง และขีดทับ" #: contrib/flatpages/admin.py:22 msgid "Advanced options" @@ -1433,15 +1436,15 @@ msgstr "ชื่อเทมเพลต" #: contrib/flatpages/models.py:12 msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'." -msgstr "ตัวอย่าง: 'flatpages/contact_page.html'ถ้าไม่ได้ถูกนำเสนอ ระบบจะใช้ 'flatpages/default.html' " +msgstr "ตัวอย่าง: 'flatpages/contact_page.html' ถ้าไม่ได้ถูกใช้ ระบบจะใช้ 'flatpages/default.html' " #: contrib/flatpages/models.py:13 msgid "registration required" -msgstr "ต้องการการลงทะเบียน" +msgstr "ต้องลงทะเบียนก่อน" #: contrib/flatpages/models.py:13 msgid "If this is checked, only logged-in users will be able to view the page." -msgstr "ถ้าถูกเลือก ผู้ใช้งานที่ลงทะเบียนเข้าสู่ระบบเท่านั้นที่จะสามารถดูหน้านี้" +msgstr "ถ้าถูกเลือก ผู้ใช้ที่ลงทะเบียนเข้าสู่ระบบเท่านั้นที่จะสามารถดูหน้านี้" #: contrib/flatpages/models.py:18 msgid "flat page" @@ -1449,7 +1452,7 @@ msgstr "flat page" #: contrib/flatpages/models.py:19 msgid "flat pages" -msgstr "" +msgstr "flat page" #: contrib/formtools/wizard.py:130 msgid "We apologize, but your form has expired. Please continue filling out the form from this page." @@ -1484,19 +1487,19 @@ msgid "rd" msgstr "rd" #: contrib/humanize/templatetags/humanize.py:51 -#, python-format msgid "%(value).1f million" -msgstr "%(value).1f ล้าน" +msgid_plural "%(value).1f million" +msgstr[0] "%(value).1f หนึ่งล้าน" #: contrib/humanize/templatetags/humanize.py:54 -#, python-format msgid "%(value).1f billion" -msgstr "%(value).1f สิบล้าน" +msgid_plural "%(value).1f billion" +msgstr[0] "%(value).1f สิบล้าน" #: contrib/humanize/templatetags/humanize.py:57 -#, python-format msgid "%(value).1f trillion" -msgstr "%(value).1f ร้อยล้าน" +msgid_plural "%(value).1f trillion" +msgstr[0] "%(value).1f ร้อยล้าน" #: contrib/humanize/templatetags/humanize.py:73 msgid "one" @@ -1614,7 +1617,7 @@ msgstr "ใส่รหัสไปรษณีย์ในรูปแบบข #: contrib/localflavor/at/forms.py:48 msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "ใส่หมายเลขบัตรประกันสังคมออสเตรีย ในรูปแบบ XXXX XXXXXX " +msgstr "ใส่หมายเลขประกันสังคมออสเตรีย ในรูปแบบ XXXX XXXXXX " #: contrib/localflavor/au/forms.py:16 msgid "Enter a 4 digit post code." @@ -1638,7 +1641,7 @@ msgstr "ตัวเลข CPF ไม่สมบูรณ์" #: contrib/localflavor/br/forms.py:95 msgid "This field requires at most 11 digits or 14 characters." -msgstr "ในส่วนนี้ต้องการตัวเลขมากที่สุด 11 หรือ 14 ตัว" +msgstr "ฟิลด์นี้ต้องการตัวเลขมากที่สุด 11 หรือ 14 ตัว" #: contrib/localflavor/br/forms.py:134 msgid "Invalid CNPJ number." @@ -1646,7 +1649,7 @@ msgstr "ตัวเลข CNPJ ไม่สมบูรณ์" #: contrib/localflavor/br/forms.py:136 msgid "This field requires at least 14 digits" -msgstr "ส่วนนี้ต้องการตัวเลขอย่างน้อย 14 ตัวเลข" +msgstr "ฟิลด์นี้ต้องการตัวเลขอย่างน้อย 14 หลัก" #: contrib/localflavor/ca/forms.py:17 msgid "Enter a postal code in the format XXX XXX." @@ -1730,7 +1733,7 @@ msgstr "โซโลเธิร์น" #: contrib/localflavor/ch/ch_states.py:23 msgid "St. Gallen" -msgstr "เซนท์ กาลเลน" +msgstr "เซนท์ กัลเลน" #: contrib/localflavor/ch/ch_states.py:24 msgid "Thurgau" @@ -1762,7 +1765,7 @@ msgstr "ซูริค" #: 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" +msgstr "ใส่หมายเลขประจำตัวประชาชนหรือหมายเลขพาสปอร์ต ในรูปแบบ X1234567<0 หรือ 1234567890" #: contrib/localflavor/cl/forms.py:29 msgid "Enter a valid Chilean RUT." @@ -1810,7 +1813,7 @@ msgstr "เม็กเลนเบิร์กตะวันตก-โพเ #: contrib/localflavor/de/de_states.py:13 msgid "Lower Saxony" -msgstr "แซกโซนี ต่ำ" +msgstr "แซกโซนีล่าง" #: contrib/localflavor/de/de_states.py:14 msgid "North Rhine-Westphalia" @@ -1848,7 +1851,7 @@ msgstr "ใส่รหัสไปรษณ๊ย์ ในรูปแบบ X #: 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" +msgstr "ใส่หมายเลขประจำตัวประชาชนเยอรมันในรูปแบบ XXXXXXXXXXX-XXXXXXX-XXXXXXX-X" #: contrib/localflavor/es/es_provinces.py:5 msgid "Arava" @@ -1916,7 +1919,7 @@ msgstr "เกวงกา" #: contrib/localflavor/es/es_provinces.py:21 msgid "Girona" -msgstr "ชีโรนา" +msgstr "จีโรนา" #: contrib/localflavor/es/es_provinces.py:22 msgid "Granada" @@ -1953,7 +1956,7 @@ msgstr "เยย์ดา" #: contrib/localflavor/es/es_provinces.py:30 #: contrib/localflavor/es/es_regions.py:17 msgid "La Rioja" -msgstr "ลา ริโอจา" +msgstr "ลา ริโอฮา" #: contrib/localflavor/es/es_provinces.py:31 msgid "Lugo" @@ -1966,7 +1969,7 @@ msgstr "มาดริด" #: contrib/localflavor/es/es_provinces.py:33 msgid "Malaga" -msgstr "มะยอกา" +msgstr "มายอกา" #: contrib/localflavor/es/es_provinces.py:34 msgid "Murcia" @@ -1974,7 +1977,7 @@ msgstr "มูร์เซีย" #: contrib/localflavor/es/es_provinces.py:35 msgid "Navarre" -msgstr "นาบาร์รา" +msgstr "นาวาร์" #: contrib/localflavor/es/es_provinces.py:36 msgid "Ourense" @@ -2007,7 +2010,7 @@ msgstr "ซานตาครูซ ดา เตริเนเฟ" #: contrib/localflavor/es/es_provinces.py:43 #: contrib/localflavor/es/es_regions.py:11 msgid "Cantabria" -msgstr "ปอนเตเบดรา" +msgstr "กันตาเบรีย" #: contrib/localflavor/es/es_provinces.py:44 msgid "Segovia" @@ -2155,7 +2158,7 @@ msgstr "ผลรวมตรวจสอบ สำหรับบัญชี #: contrib/localflavor/fi/forms.py:28 msgid "Enter a valid Finnish social security number." -msgstr "ใส่หมายเลขประกันสังคมของฟินแลนด์" +msgstr "ใส่หมายเลขประกันสังคมฟินแลนด์" #: contrib/localflavor/in_/forms.py:14 msgid "Enter a zip code in the format XXXXXXX." @@ -2163,11 +2166,11 @@ msgstr "กรุณาใส่รหัสไปรษณีย์ในรู #: contrib/localflavor/is_/forms.py:17 msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "ใส่หมายเลขประจำตัวประชาชนของไอซ์แลนด์ในรูปของ XXXXXX-XXXX" +msgstr "ใส่หมายเลขประจำตัวประชาชนไอซ์แลนด์ในรูปของ XXXXXX-XXXX" #: contrib/localflavor/is_/forms.py:18 msgid "The Icelandic identification number is not valid." -msgstr "หมายเลขบัตรประจำตัวประชาชนของไอซ์แลนด์ไม่ถูกต้อง" +msgstr "หมายเลขประจำตัวประชาชนไอซ์แลนด์ไม่ถูกต้อง" #: contrib/localflavor/it/forms.py:14 msgid "Enter a valid zip code." @@ -2175,7 +2178,7 @@ msgstr "ใส่รหัสไปรษณีย์" #: contrib/localflavor/it/forms.py:43 msgid "Enter a valid Social Security number." -msgstr "ใส่หมายเลขบัตรประกันสังคม" +msgstr "ใส่หมายเลขประกันสังคม" #: contrib/localflavor/it/forms.py:68 msgid "Enter a valid VAT number." @@ -2379,7 +2382,7 @@ msgstr "อากวัสกาเลียนเตส" #: contrib/localflavor/mx/mx_states.py:13 msgid "Baja California" -msgstr "บาฮา กาลิฟอร์เนีย" +msgstr "บาจา แคลิฟอร์เนีย" #: contrib/localflavor/mx/mx_states.py:14 msgid "Baja California Sur" @@ -2407,7 +2410,7 @@ msgstr "โคลิมา" #: contrib/localflavor/mx/mx_states.py:20 msgid "Distrito Federal" -msgstr "เมคีโก เด.เอเฟ. เฟเดอรัลดิสตริกต์" +msgstr "เม็กซิโก ซิตี้" #: contrib/localflavor/mx/mx_states.py:21 msgid "Durango" @@ -2443,7 +2446,7 @@ msgstr "มอเรโลส" #: contrib/localflavor/mx/mx_states.py:29 msgid "Nayarit" -msgstr "Nayarit" +msgstr "นายาริต" #: contrib/localflavor/mx/mx_states.py:30 msgid "Nuevo León" @@ -2511,7 +2514,7 @@ msgstr "ใส่หมายเลขโทรศัพท์" #: contrib/localflavor/nl/forms.py:78 msgid "Enter a valid SoFi number" -msgstr "กรอกหมายเลข SoFi ที่ถูต้อง" +msgstr "กรอกหมายเลขประจำตัวประชาชน" #: contrib/localflavor/nl/nl_provinces.py:4 msgid "Drenthe" @@ -2523,7 +2526,7 @@ msgstr "เฟลโวแลนด์" #: contrib/localflavor/nl/nl_provinces.py:6 msgid "Friesland" -msgstr "ฟรีส์แลนด์" +msgstr "ฟรายส์แลนด์" #: contrib/localflavor/nl/nl_provinces.py:7 msgid "Gelderland" @@ -2563,19 +2566,19 @@ msgstr "ซูด ฮอลแลนด์" #: contrib/localflavor/no/forms.py:33 msgid "Enter a valid Norwegian social security number." -msgstr "ใส่หมายเลขบัตรประกันสังคมของชาวนอร์เวย์" +msgstr "ใส่หมายเลขประกันสังคมนอร์เวย์" #: contrib/localflavor/pe/forms.py:24 msgid "This field requires 8 digits." -msgstr "ฟิลด์นี้ต้องการตัวเลข 8 ตัว" +msgstr "ข่องนี้ต้องการตัวเลข 8 ตัว" #: contrib/localflavor/pe/forms.py:52 msgid "This field requires 11 digits." -msgstr "ฟิลด์นี้ต้องการตัวเลข 11 ตัว" +msgstr "ช่องนี้ต้องการตัวเลข 11 ตัว" #: contrib/localflavor/pl/forms.py:38 msgid "National Identification Number consists of 11 digits." -msgstr "บัตรประจำตัวประชาประกอบด้วยตัวเลข 11 หน่วย" +msgstr "บัตรประจำตัวประชาประกอบด้วยตัวเลข 11 ตัว" #: contrib/localflavor/pl/forms.py:39 msgid "Wrong checksum for the National Identification Number." @@ -2583,7 +2586,7 @@ msgstr "ผลรวมตรวจสอบของหมายเลขปร #: contrib/localflavor/pl/forms.py:71 msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." -msgstr "ใส่หมายเลขประจำตัวของผู้เสียภาษีอากรในรูปของ XXX-XXX-XX-XX หรือ XX-XX-XXX-XXX " +msgstr "ใส่หมายเลขประจำตัวผู้เสียภาษี (NIP) ในรูปของ XXX-XXX-XX-XX หรือ XX-XX-XXX-XXX " #: contrib/localflavor/pl/forms.py:72 msgid "Wrong checksum for the Tax Number (NIP)." @@ -2639,7 +2642,7 @@ msgstr "ซับคาเพเทีย" #: contrib/localflavor/pl/pl_voivodeships.py:17 msgid "Podlasie" -msgstr "พอดล่ซีย์" +msgstr "พอดลาซีย์" #: contrib/localflavor/pl/pl_voivodeships.py:18 msgid "Pomerania" @@ -3203,27 +3206,27 @@ msgstr "วอร์เซสเตอร์เชียร์" #: contrib/localflavor/uk/uk_regions.py:55 msgid "County Antrim" -msgstr "เขตการปกครอง แอนทริม" +msgstr "แอนทริม" #: contrib/localflavor/uk/uk_regions.py:56 msgid "County Armagh" -msgstr "เขตการปกครอง อามาห์" +msgstr "อามาห์" #: contrib/localflavor/uk/uk_regions.py:57 msgid "County Down" -msgstr "เขตการปกครอง ดาวน์" +msgstr "ดาวน์" #: contrib/localflavor/uk/uk_regions.py:58 msgid "County Fermanagh" -msgstr "เขตการปกครอง เฟอร์มานาห์" +msgstr "เฟอร์มานาห์" #: contrib/localflavor/uk/uk_regions.py:59 msgid "County Londonderry" -msgstr "เขตการปกครอง ลอนดอนเดอร์รี่" +msgstr "ลอนดอนเดอร์รี่" #: contrib/localflavor/uk/uk_regions.py:60 msgid "County Tyrone" -msgstr "เขตการปกครอง ไทโรน" +msgstr "ไทโรน" #: contrib/localflavor/uk/uk_regions.py:64 msgid "Clwyd" @@ -3327,11 +3330,11 @@ msgstr "ใส่รหัสไปรษณีย์ในรูปของ XX #: contrib/localflavor/us/forms.py:54 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "ใส่หมายเลขบัตรประกันสังคมของอเมริกา" +msgstr "ใส่หมายเลขประกันสังคมอเมริกา" #: contrib/localflavor/za/forms.py:20 msgid "Enter a valid South African ID number" -msgstr "ใส่หมายเลขบัตรประจำตัวประชาชนของแอฟริกาใต้" +msgstr "ใส่หมายเลขประจำตัวประชาชนแอฟริกาใต้" #: contrib/localflavor/za/forms.py:54 msgid "Enter a valid South African postal code" @@ -3343,7 +3346,7 @@ msgstr "อิสเทิร์นแคป" #: contrib/localflavor/za/za_provinces.py:5 msgid "Free State" -msgstr "ฟรีเสตต" +msgstr "ฟรีเสตต์" #: contrib/localflavor/za/za_provinces.py:6 msgid "Gauteng" @@ -3379,7 +3382,7 @@ msgstr "เปลี่ยนทิศทางจาก" #: contrib/redirects/models.py:8 msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'." -msgstr "สิ่งนี้น่าจะเป็นแนวทางที่แน่นอนที่จะแยกออกมาจากชื่อโดเมน ตัวอย่าง : '/events/search/'" +msgstr "พาธไม่รวมโดเมน ตัวอย่าง : '/events/search/'" #: contrib/redirects/models.py:9 msgid "redirect to" @@ -3387,7 +3390,7 @@ msgstr "เปลี่ยนทิศทางไปที่" #: contrib/redirects/models.py:10 msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'." -msgstr "มันอาจจะเป็นพาธที่แท้จริงหรือ URL แบบเต็มที่ขึ้นต้นด้วย 'http://'." +msgstr "มันอาจจะเป็นพาธหรือ URL แบบเต็มที่ขึ้นต้นด้วย 'http://'." #: contrib/redirects/models.py:13 msgid "redirect" @@ -3403,11 +3406,11 @@ msgstr "เซสชันคีย์" #: contrib/sessions/models.py:47 msgid "session data" -msgstr "เซสชันดาตา" +msgstr "ข้อมูลเซสชัน" #: contrib/sessions/models.py:48 msgid "expire date" -msgstr "expire date" +msgstr "วันหมดอายุ" #: contrib/sessions/models.py:53 msgid "session" @@ -3436,24 +3439,24 @@ msgstr "ค่านี้ต้องเป็นจำนวนเต็ม" #: db/models/fields/__init__.py:379 msgid "This value must be either True or False." -msgstr "ค่านี้ต้องเป็น True หรือ False" +msgstr "ค่านี้ต้องเป็นถูกหรือผิด" #: db/models/fields/__init__.py:412 msgid "This field cannot be null." -msgstr "ฟิลด์นี้จำเป็น" +msgstr "ฟิลด์นี้ไม่สารถปล่อยว่างได้" #: db/models/fields/__init__.py:428 msgid "Enter only digits separated by commas." -msgstr "ใส่ตัวเลขหรือลูกน้ำเท่านั้น" +msgstr "ใส่ตัวเลขที่คั่นด้วยจุลภาคเท่านั้น" #: db/models/fields/__init__.py:459 msgid "Enter a valid date in YYYY-MM-DD format." -msgstr "Enter a valid date in YYYY-MM-DD format." +msgstr "ใส่วันที่ในรูปแบบ YYYY-MM-DD" #: db/models/fields/__init__.py:468 #, python-format msgid "Invalid date: %s" -msgstr "Invalid date: %s" +msgstr "วันที่ไม่ถูกต้อง: %s" #: db/models/fields/__init__.py:532 #: db/models/fields/__init__.py:550 @@ -3462,7 +3465,7 @@ msgstr "ใส่วันเวลาที่ถูกต้องในรู #: db/models/fields/__init__.py:586 msgid "This value must be a decimal number." -msgstr "ช่องนี้ต้องเป็นเลขฐานสิบ" +msgstr "ค่านี้ต้องเป็นเลขฐานสิบหรือเลขทศนิยม" #: db/models/fields/__init__.py:719 msgid "This value must be either None, True or False." @@ -3481,8 +3484,7 @@ msgstr "กดปุ่ม \"Control\", หรือ \"Command\" บน Mac ค #, 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] "" -msgstr[1] "" +msgstr[0] "โปรดใส่ %(self)s ไอดี. ค่า %(value)r ไม่ถูกต้อง" #: forms/fields.py:54 msgid "This field is required." @@ -3533,12 +3535,12 @@ msgstr "แน่ใจว่ารวมแล้วไม่เกิน %s #: forms/fields.py:228 #, python-format msgid "Ensure that there are no more than %s decimal places." -msgstr "แน่ใจว่ารวมแล้วไม่เกิน %s หลัก." +msgstr "แน่ใจว่ารวมแล้วเป็นทศนิยมไม่เกิน %s หลัก." #: forms/fields.py:229 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." -msgstr "Ensure that there are no more than %s digits before the decimal point." +msgstr "แน่ใจว่ารวมแล้วไม่เกิน %s หลัก ก่อนจุดทศนิยม." #: forms/fields.py:287 #: forms/fields.py:848 @@ -3568,7 +3570,7 @@ msgstr "ไฟล์ที่ส่งว่างเปล่า" #: forms/fields.py:477 msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." -msgstr "อัพโหลดไฟล์ที่ถูกต้อง. ไฟล์ที่อัพโหลดไปไม่ใช่รูป หรือรูปเสียหาย." +msgstr "อัพโหลดรูปที่ถูกต้อง. ไฟล์ที่อัพโหลดไปไม่ใช่รูป หรือรูปเสียหาย." #: forms/fields.py:538 msgid "Enter a valid URL." @@ -3582,7 +3584,7 @@ msgstr "URL อาจจะเป็นลิ้งค์ที่เสีย #: forms/fields.py:696 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." -msgstr "เลือกตัวเลือกที่ถูกต้อง. %(value)s ไม่ใช่ตัวเลือกที่ถูกต้อง." +msgstr "เลือกตัวเลือกที่ถูกต้อง. %(value)s ไม่ใช่ตัวเลือกที่ใช้ได้." #: forms/fields.py:697 #: forms/fields.py:758 @@ -3623,11 +3625,9 @@ msgid "yes,no,maybe" msgstr "ใช่,ไม่ใช่,อาจจะ" #: template/defaultfilters.py:737 -#, fuzzy, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(size)d ไบต์" #: template/defaultfilters.py:739 #, python-format @@ -3779,7 +3779,7 @@ msgstr "ธันวาคม" #: utils/dates.py:23 msgid "jan" -msgstr "มก." +msgstr "ม.ค." #: utils/dates.py:23 msgid "feb" @@ -3827,7 +3827,7 @@ msgstr "ธ.ค." #: utils/dates.py:31 msgid "Jan." -msgstr "มก." +msgstr "ม.ค." #: utils/dates.py:31 msgid "Feb." @@ -3858,57 +3858,54 @@ msgid "or" msgstr "หรือ" #: utils/timesince.py:21 +msgid "year" +msgid_plural "years" +msgstr[0] "ปี" + #: utils/timesince.py:22 msgid "month" msgid_plural "months" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "เดือน" #: utils/timesince.py:23 msgid "week" msgid_plural "weeks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "สัปดาห์" #: utils/timesince.py:24 msgid "day" msgid_plural "days" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "วัน" #: utils/timesince.py:25 msgid "hour" msgid_plural "hours" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "ชั่วโมง" #: utils/timesince.py:26 msgid "minute" msgid_plural "minutes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "นาที" #: utils/timesince.py:43 msgid "minutes" msgstr "นาที" #: utils/timesince.py:48 -#, python-format msgid "%(number)d %(type)s" -msgstr "" +msgstr "%(number)d %(type)s" #: utils/timesince.py:54 -#, python-format msgid ", %(number)d %(type)s" -msgstr "" +msgstr ", %(number)d %(type)s" #: utils/translation/trans_real.py:403 msgid "DATE_FORMAT" -msgstr "N j, Y" +msgstr "j N Y" #: utils/translation/trans_real.py:405 msgid "TIME_FORMAT" -msgstr "P" +msgstr "G:i" #: utils/translation/trans_real.py:421 msgid "YEAR_MONTH_FORMAT" @@ -3916,7 +3913,7 @@ msgstr "F Y" #: utils/translation/trans_real.py:422 msgid "MONTH_DAY_FORMAT" -msgstr "F j" +msgstr "j F" #: views/generic/create_update.py:114 #, python-format diff --git a/django/conf/locale/th/LC_MESSAGES/djangojs.mo b/django/conf/locale/th/LC_MESSAGES/djangojs.mo index a5e0b4f3790b96e9fc51e03f6ccfb326e68580e2..f999fd0303f779155f00fe70e484c704048a6961 100644 GIT binary patch delta 460 zcmY+;y-Px26bA73W_mS}$cTc9E`2}*-{_niCHy6@S0&wMLFY}th95<;xng=m3? zum={Q2R_%WK$-i51JLdeq91yp?8l+ZFTiHF2Hn`7tIto=TCNOb?oAcZ>cI~*hS2zd za&fn_wjc)AQOBYD;1za4uKQccD{6yFH++Vkn$->S+}2^f*hbwWx<9A~f?B``4F^l@ zjeUwb5u2Qf#mCI3y*D|XSV_$!^zo(CVmhQHm#bwuVuZEYGvW_738rhNEL)pQ1*UDb zHkfj3?K0hqYH`L?W@`syF_>mLW_qZV@m9x`@Vb6KKI@w#*Q3}`59yDPR4qm4g>H2 z`e40n6Aqw$fur!NU3YgeHjFw5#r`t%z%}SaehP|rMfrbTfug>a*}Q$Qg~k{fZ%_pP zKoKzL!Xr2dMerr;hb9yUU(K2%cTBiflQ}J4P*?O+CZR4BQ@R?{qRN)Gn<;3Eo5`%6 zi|3~{v~8p1Sn$rN;jkK-Q9_~Ubj0*@j!1Gkp2@~{5=O*1hoT diff --git a/django/conf/locale/th/LC_MESSAGES/djangojs.po b/django/conf/locale/th/LC_MESSAGES/djangojs.po index fcc346f8fe..461cdf264d 100644 --- a/django/conf/locale/th/LC_MESSAGES/djangojs.po +++ b/django/conf/locale/th/LC_MESSAGES/djangojs.po @@ -2,23 +2,24 @@ # msgid "" msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: kowito@felspar.com\n" +"Project-Id-Version: Django-1.1-rc-1\n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-09-02 22:36-0700\n" -"PO-Revision-Date: 2008-11-04 00:35+0700\n" +"PO-Revision-Date: 2009-07-27 21:47+0700\n" "Last-Translator: Kowit Charoenratchatabhan \n" "Language-Team: Kowit Charoenratchatabhan,Kadsarin Sanjek, Felspar \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Thai\n" -"X-Poedit-Country: Thailand\n" +"X-Poedit-Country: THAILAND\n" "X-Poedit-SourceCharset: utf-8\n" +"Plural-Forms: nplurals=1; plural=0;\n" #: contrib/admin/media/js/SelectFilter2.js:33 #, perl-format msgid "Available %s" -msgstr "ที่มีอยู่ %s" +msgstr "%sที่มีอยู่" #: contrib/admin/media/js/SelectFilter2.js:41 msgid "Choose all" @@ -35,7 +36,7 @@ msgstr "ลบออก" #: contrib/admin/media/js/SelectFilter2.js:53 #, perl-format msgid "Chosen %s" -msgstr "ได้เลือก %s" +msgstr "%sที่ถูกเลือก" #: contrib/admin/media/js/SelectFilter2.js:54 msgid "Select your choice(s) and click " @@ -43,7 +44,7 @@ msgstr "เลือกและคลิก" #: contrib/admin/media/js/SelectFilter2.js:59 msgid "Clear all" -msgstr "ล้างทั้งหมด" +msgstr "ลบทั้งหมด" #: contrib/admin/media/js/calendar.js:24 #: contrib/admin/media/js/dateparse.js:32 @@ -52,11 +53,11 @@ msgstr "มกราคม กุมภาพันธ์ มีนาคม เ #: contrib/admin/media/js/calendar.js:25 msgid "S M T W T F S" -msgstr "อา จ. อ. พ. พฤ. ศ. ส." +msgstr "อา. จ. อ. พ. พฤ. ศ. ส." #: contrib/admin/media/js/dateparse.js:33 msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" -msgstr "อาทิตย์ จันทร์ อังคาร พุธ พฤหัส ศุกร์ เสาร์" +msgstr "อาทิตย์ จันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์" #: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 @@ -70,7 +71,7 @@ msgstr "ซ่อน" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:47 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 msgid "Now" -msgstr "เดี๋ยวนี้" +msgstr "ขณะนี้" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:51 msgid "Clock" @@ -86,11 +87,11 @@ msgstr "เที่ยงคืน" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 msgid "6 a.m." -msgstr "6 นาฬิกา" +msgstr "หกโมงเช้า" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:84 msgid "Noon" -msgstr "เที่ยง" +msgstr "เที่ยงวัน" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:88 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:183 @@ -108,7 +109,7 @@ msgstr "ปฏิทิน" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:175 msgid "Yesterday" -msgstr "เมื่อวานนี้" +msgstr "เมื่อวาน" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:179 msgid "Tomorrow" diff --git a/django/contrib/gis/db/models/query.py b/django/contrib/gis/db/models/query.py index d055260a58..ad2cd8ceda 100644 --- a/django/contrib/gis/db/models/query.py +++ b/django/contrib/gis/db/models/query.py @@ -125,11 +125,19 @@ class GeoQuerySet(QuerySet): if not isinstance(precision, (int, long)): raise TypeError('Precision keyword must be set with an integer.') - # Setting the options flag - options = 0 - if crs and bbox: options = 3 - elif crs: options = 1 - elif bbox: options = 2 + # Setting the options flag -- which depends on which version of + # PostGIS we're using. + major, minor1, minor2 = SpatialBackend.version + if major >=1 and (minor1 >= 4): + options = 0 + if crs and bbox: options = 3 + elif bbox: options = 1 + elif crs: options = 2 + else: + options = 0 + if crs and bbox: options = 3 + elif crs: options = 1 + elif bbox: options = 2 s = {'desc' : 'GeoJSON', 'procedure_args' : {'precision' : precision, 'options' : options}, 'procedure_fmt' : '%(geo_col)s,%(precision)s,%(options)s', diff --git a/django/contrib/gis/tests/geoapp/tests.py b/django/contrib/gis/tests/geoapp/tests.py index 1eaed196b0..8bf4990fe9 100644 --- a/django/contrib/gis/tests/geoapp/tests.py +++ b/django/contrib/gis/tests/geoapp/tests.py @@ -148,15 +148,16 @@ class GeoModelTest(unittest.TestCase): ptown1 = City.objects.gml(field_name='point', precision=9).get(name='Pueblo') ptown2 = City.objects.gml(precision=9).get(name='Pueblo') + import re if SpatialBackend.oracle: # No precision parameter for Oracle :-/ - import re - gml_regex = re.compile(r'-104.60925\d+,38.25500\d+ ') + gml_regex = re.compile(r'^-104.60925\d+,38.25500\d+ ') for ptown in [ptown1, ptown2]: - self.assertEqual(True, bool(gml_regex.match(ptown.gml))) + self.failUnless(gml_regex.match(ptown.gml)) else: + gml_regex = re.compile(r'^-104\.60925\d+,38\.255001') for ptown in [ptown1, ptown2]: - self.assertEqual('-104.609252,38.255001', ptown.gml) + self.failUnless(gml_regex.match(ptown.gml)) @no_spatialite @no_oracle @@ -167,28 +168,38 @@ class GeoModelTest(unittest.TestCase): if not SpatialBackend.geojson: return + major, minor1, minor2 = SpatialBackend.version + if major >=1 and minor1 >= 4: + pueblo_json = '{"type":"Point","coordinates":[-104.609252,38.255001]}' + houston_json = '{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"coordinates":[-95.363151,29.763374]}' + victoria_json = '{"type":"Point","bbox":[-123.30519600,48.46261100,-123.30519600,48.46261100],"coordinates":[-123.305196,48.462611]}' + chicago_json = '{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"bbox":[-87.65018,41.85039,-87.65018,41.85039],"coordinates":[-87.65018,41.85039]}' + else: + pueblo_json = '{"type":"Point","coordinates":[-104.60925200,38.25500100]}' + houston_json = '{"type":"Point","crs":{"type":"EPSG","properties":{"EPSG":4326}},"coordinates":[-95.36315100,29.76337400]}' + victoria_json = '{"type":"Point","bbox":[-123.30519600,48.46261100,-123.30519600,48.46261100],"coordinates":[-123.30519600,48.46261100]}' + chicago_json = '{"type":"Point","crs":{"type":"EPSG","properties":{"EPSG":4326}},"bbox":[-87.65018,41.85039,-87.65018,41.85039],"coordinates":[-87.65018,41.85039]}' + # Precision argument should only be an integer self.assertRaises(TypeError, City.objects.geojson, precision='foo') # Reference queries and values. # SELECT ST_AsGeoJson("geoapp_city"."point", 8, 0) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Pueblo'; - json = '{"type":"Point","coordinates":[-104.60925200,38.25500100]}' - self.assertEqual(City.objects.geojson().get(name='Pueblo').geojson, json) + self.assertEqual(pueblo_json, City.objects.geojson().get(name='Pueblo').geojson) - # SELECT ST_AsGeoJson("geoapp_city"."point", 8, 1) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Houston'; - json = '{"type":"Point","crs":{"type":"EPSG","properties":{"EPSG":4326}},"coordinates":[-95.36315100,29.76337400]}' + # 1.3.x: SELECT ST_AsGeoJson("geoapp_city"."point", 8, 1) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Houston'; + # 1.4.x: SELECT ST_AsGeoJson("geoapp_city"."point", 8, 2) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Houston'; # This time we want to include the CRS by using the `crs` keyword. - self.assertEqual(City.objects.geojson(crs=True, model_att='json').get(name='Houston').json, json) + self.assertEqual(houston_json, City.objects.geojson(crs=True, model_att='json').get(name='Houston').json) - # SELECT ST_AsGeoJson("geoapp_city"."point", 8, 2) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Victoria'; - json = '{"type":"Point","bbox":[-123.30519600,48.46261100,-123.30519600,48.46261100],"coordinates":[-123.30519600,48.46261100]}' + # 1.3.x: SELECT ST_AsGeoJson("geoapp_city"."point", 8, 2) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Victoria'; + # 1.4.x: SELECT ST_AsGeoJson("geoapp_city"."point", 8, 1) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Houston'; # This time we include the bounding box by using the `bbox` keyword. - self.assertEqual(City.objects.geojson(bbox=True).get(name='Victoria').geojson, json) + self.assertEqual(victoria_json, City.objects.geojson(bbox=True).get(name='Victoria').geojson) - # SELECT ST_AsGeoJson("geoapp_city"."point", 5, 3) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Chicago'; - json = '{"type":"Point","crs":{"type":"EPSG","properties":{"EPSG":4326}},"bbox":[-87.65018,41.85039,-87.65018,41.85039],"coordinates":[-87.65018,41.85039]}' + # 1.(3|4).x: SELECT ST_AsGeoJson("geoapp_city"."point", 5, 3) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Chicago'; # Finally, we set every available keyword. - self.assertEqual(City.objects.geojson(bbox=True, crs=True, precision=5).get(name='Chicago').geojson, json) + self.assertEqual(chicago_json, City.objects.geojson(bbox=True, crs=True, precision=5).get(name='Chicago').geojson) @no_oracle def test03d_svg(self): diff --git a/django/contrib/gis/tests/relatedapp/tests.py b/django/contrib/gis/tests/relatedapp/tests.py index 60528f177c..b9039ea44b 100644 --- a/django/contrib/gis/tests/relatedapp/tests.py +++ b/django/contrib/gis/tests/relatedapp/tests.py @@ -39,10 +39,7 @@ class RelatedGeoModelTest(unittest.TestCase): "Testing the `transform` GeoQuerySet method on related geographic models." # All the transformations are to state plane coordinate systems using # US Survey Feet (thus a tolerance of 0 implies error w/in 1 survey foot). - if SpatialBackend.postgis: - tol = 3 - else: - tol = 0 + tol = 0 def check_pnt(ref, pnt): self.assertAlmostEqual(ref.x, pnt.x, tol) diff --git a/django/contrib/gis/tests/test_spatialrefsys.py b/django/contrib/gis/tests/test_spatialrefsys.py index 4b1cc093eb..dd2c10f7e8 100644 --- a/django/contrib/gis/tests/test_spatialrefsys.py +++ b/django/contrib/gis/tests/test_spatialrefsys.py @@ -1,4 +1,5 @@ import unittest +from django.contrib.gis.db.backend import SpatialBackend from django.contrib.gis.tests.utils import mysql, no_mysql, oracle, postgis, spatialite if not mysql: from django.contrib.gis.models import SpatialRefSys @@ -7,6 +8,7 @@ test_srs = ({'srid' : 4326, 'auth_name' : ('EPSG', True), 'auth_srid' : 4326, 'srtext' : 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]', + 'srtext14' : 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]', 'proj4' : '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ', 'spheroid' : 'WGS 84', 'name' : 'WGS 84', 'geographic' : True, 'projected' : False, 'spatialite' : True, @@ -17,6 +19,7 @@ test_srs = ({'srid' : 4326, 'auth_name' : ('EPSG', False), 'auth_srid' : 32140, 'srtext' : 'PROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","32140"]]', + 'srtext14': 'PROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","32140"],AXIS["X",EAST],AXIS["Y",NORTH]]', 'proj4' : '+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs ', 'spheroid' : 'GRS 1980', 'name' : 'NAD83 / Texas South Central', 'geographic' : False, 'projected' : True, 'spatialite' : False, @@ -25,6 +28,10 @@ test_srs = ({'srid' : 4326, }, ) +if SpatialBackend.postgis: + major, minor1, minor2 = SpatialBackend.version + POSTGIS_14 = major >=1 and minor1 >= 4 + class SpatialRefSysTest(unittest.TestCase): @no_mysql @@ -45,7 +52,11 @@ class SpatialRefSysTest(unittest.TestCase): # No proj.4 and different srtext on oracle backends :( if postgis: - self.assertEqual(sd['srtext'], srs.wkt) + if POSTGIS_14: + srtext = sd['srtext14'] + else: + srtext = sd['srtext'] + self.assertEqual(srtext, srs.wkt) self.assertEqual(sd['proj4'], srs.proj4text) @no_mysql @@ -68,7 +79,11 @@ class SpatialRefSysTest(unittest.TestCase): self.assertEqual(sd['proj4'], srs.proj4) # No `srtext` field in the `spatial_ref_sys` table in SpatiaLite if not spatialite: - self.assertEqual(sd['srtext'], srs.wkt) + if POSTGIS_14: + srtext = sd['srtext14'] + else: + srtext = sd['srtext'] + self.assertEqual(srtext, srs.wkt) @no_mysql def test03_ellipsoid(self): diff --git a/django/core/management/commands/dumpdata.py b/django/core/management/commands/dumpdata.py index 9172d938d2..7e05b89160 100644 --- a/django/core/management/commands/dumpdata.py +++ b/django/core/management/commands/dumpdata.py @@ -73,7 +73,8 @@ class Command(BaseCommand): model_list = get_models(app) for model in model_list: - objects.extend(model._default_manager.all()) + if not model._meta.proxy: + objects.extend(model._default_manager.all()) try: return serializers.serialize(format, objects, indent=indent) diff --git a/django/core/management/commands/runserver.py b/django/core/management/commands/runserver.py index 16d75fd88b..fc2c694ab6 100644 --- a/django/core/management/commands/runserver.py +++ b/django/core/management/commands/runserver.py @@ -56,8 +56,7 @@ class Command(BaseCommand): translation.activate(settings.LANGUAGE_CODE) try: - path = admin_media_path or django.__path__[0] + '/contrib/admin/media' - handler = AdminMediaHandler(WSGIHandler(), path) + handler = AdminMediaHandler(WSGIHandler(), admin_media_path) run(addr, int(port), handler) except WSGIServerException, e: # Use helpful error messages instead of ugly tracebacks. diff --git a/django/core/servers/basehttp.py b/django/core/servers/basehttp.py index 44090a4516..9a5172967c 100644 --- a/django/core/servers/basehttp.py +++ b/django/core/servers/basehttp.py @@ -16,6 +16,7 @@ import sys import urllib from django.utils.http import http_date +from django.utils._os import safe_join __version__ = "0.1" __all__ = ['WSGIServer','WSGIRequestHandler'] @@ -620,11 +621,25 @@ class AdminMediaHandler(object): self.application = application if not media_dir: import django - self.media_dir = django.__path__[0] + '/contrib/admin/media' + self.media_dir = \ + os.path.join(django.__path__[0], 'contrib', 'admin', 'media') else: self.media_dir = media_dir self.media_url = settings.ADMIN_MEDIA_PREFIX + def file_path(self, url): + """ + Returns the path to the media file on disk for the given URL. + + The passed URL is assumed to begin with ADMIN_MEDIA_PREFIX. If the + resultant file path is outside the media directory, then a ValueError + is raised. + """ + # Remove ADMIN_MEDIA_PREFIX. + relative_url = url[len(self.media_url):] + relative_path = urllib.url2pathname(relative_url) + return safe_join(self.media_dir, relative_path) + def __call__(self, environ, start_response): import os.path @@ -635,19 +650,25 @@ class AdminMediaHandler(object): return self.application(environ, start_response) # Find the admin file and serve it up, if it exists and is readable. - relative_url = environ['PATH_INFO'][len(self.media_url):] - file_path = os.path.join(self.media_dir, relative_url) + try: + file_path = self.file_path(environ['PATH_INFO']) + except ValueError: # Resulting file path was not valid. + status = '404 NOT FOUND' + headers = {'Content-type': 'text/plain'} + output = ['Page not found: %s' % environ['PATH_INFO']] + start_response(status, headers.items()) + return output if not os.path.exists(file_path): status = '404 NOT FOUND' headers = {'Content-type': 'text/plain'} - output = ['Page not found: %s' % file_path] + output = ['Page not found: %s' % environ['PATH_INFO']] else: try: fp = open(file_path, 'rb') except IOError: status = '401 UNAUTHORIZED' headers = {'Content-type': 'text/plain'} - output = ['Permission denied: %s' % file_path] + output = ['Permission denied: %s' % environ['PATH_INFO']] else: # This is a very simple implementation of conditional GET with # the Last-Modified header. It makes media files a bit speedier diff --git a/django/db/backends/creation.py b/django/db/backends/creation.py index 1ac75426c1..43f47048e0 100644 --- a/django/db/backends/creation.py +++ b/django/db/backends/creation.py @@ -40,7 +40,7 @@ class BaseDatabaseCreation(object): from django.db import models opts = model._meta - if not opts.managed: + if not opts.managed or opts.proxy: return [], {} final_output = [] table_output = [] @@ -121,7 +121,7 @@ class BaseDatabaseCreation(object): "Returns any ALTER TABLE statements to add constraints after the fact." from django.db.backends.util import truncate_name - if not model._meta.managed: + if not model._meta.managed or model._meta.proxy: return [] qn = self.connection.ops.quote_name final_output = [] @@ -236,7 +236,7 @@ class BaseDatabaseCreation(object): def sql_indexes_for_model(self, model, style): "Returns the CREATE INDEX SQL statements for a single model" - if not model._meta.managed: + if not model._meta.managed or model._meta.proxy: return [] output = [] for f in model._meta.local_fields: @@ -268,7 +268,7 @@ class BaseDatabaseCreation(object): def sql_destroy_model(self, model, references_to_delete, style): "Return the DROP TABLE and restraint dropping statements for a single model" - if not model._meta.managed: + if not model._meta.managed or model._meta.proxy: return [] # Drop the table now qn = self.connection.ops.quote_name @@ -286,7 +286,7 @@ class BaseDatabaseCreation(object): def sql_remove_table_constraints(self, model, references_to_delete, style): from django.db.backends.util import truncate_name - if not model._meta.managed: + if not model._meta.managed or model._meta.proxy: return [] output = [] qn = self.connection.ops.quote_name diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt index 687407a284..238dc63f71 100644 --- a/docs/intro/tutorial03.txt +++ b/docs/intro/tutorial03.txt @@ -326,8 +326,8 @@ shortcut. Here's the ``detail()`` view, rewritten:: return render_to_response('polls/detail.html', {'poll': p}) The :func:`~django.shortcuts.get_object_or_404` function takes a Django model -module as its first argument and an arbitrary number of keyword arguments, which -it passes to the module's :meth:`~django.db.models.QuerySet.get` function. It +as its first argument and an arbitrary number of keyword arguments, which it +passes to the module's :meth:`~django.db.models.QuerySet.get` function. It raises :exc:`~django.http.Http404` if the object doesn't exist. .. admonition:: Philosophy diff --git a/docs/ref/models/instances.txt b/docs/ref/models/instances.txt index c6509ece3d..7a0606dafe 100644 --- a/docs/ref/models/instances.txt +++ b/docs/ref/models/instances.txt @@ -188,6 +188,46 @@ almost always do the right thing and trying to override that will lead to errors that are difficult to track down. This feature is for advanced use only. +Updating attributes based on existing fields +-------------------------------------------- + +Sometimes you'll need to perform a simple arithmetic task on a field, such +as incrementing or decrementing the current value. The obvious way to +achieve this is to do something like:: + + >>> product = Product.objects.get(name='Venezuelan Beaver Cheese') + >>> product.number_sold += 1 + >>> product.save() + +If the old ``number_sold`` value retrieved from the database was 10, then +the value of 11 will be written back to the database. + +This can be optimized slightly by expressing the update relative to the +original field value, rather than as an explicit assignment of a new value. +Django provides :ref:`F() expressions ` as a way of +performing this kind of relative update. Using ``F()`` expressions, the +previous example would be expressed as:: + + >>> from django.db.models import F + >>> product = Product.objects.get(name='Venezuelan Beaver Cheese') + >>> product.number_sold = F('number_sold') + 1 + >>> product.save() + +This approach doesn't use the initial value from the database. Instead, it +makes the database do the update based on whatever value is current at the +time that the save() is executed. + +Once the object has been saved, you must reload the object in order to access +the actual value that was applied to the updated field:: + + >>> product = Products.objects.get(pk=product.pk) + >>> print product.number_sold + 42 + +For more details, see the documentation on :ref:`F() expressions +` and their :ref:`use in update queries +`. + Deleting objects ================ @@ -196,7 +236,7 @@ Deleting objects Issues a SQL ``DELETE`` for the object. This only deletes the object in the database; the Python instance will still be around, and will still have data in its fields. - + For more details, including how to delete objects in bulk, see :ref:`topics-db-queries-delete`. diff --git a/docs/releases/index.txt b/docs/releases/index.txt index 1744b66f40..f359ff4dda 100644 --- a/docs/releases/index.txt +++ b/docs/releases/index.txt @@ -3,7 +3,7 @@ Release notes ============= -Releases notes for the official Django releases. Each release note will tell you +Release notes for the official Django releases. Each release note will tell you what's new in each version, and will also describe any backwards-incompatible changes made in that version. diff --git a/tests/modeltests/expressions/models.py b/tests/modeltests/expressions/models.py index f29767a9d1..d4de5ccee9 100644 --- a/tests/modeltests/expressions/models.py +++ b/tests/modeltests/expressions/models.py @@ -80,4 +80,43 @@ Traceback (most recent call last): ... FieldError: Joined field references are not permitted in this query +# F expressions can be used to update attributes on single objects +>>> test_gmbh = Company.objects.get(name='Test GmbH') +>>> test_gmbh.num_employees +32 +>>> test_gmbh.num_employees = F('num_employees') + 4 +>>> test_gmbh.save() +>>> test_gmbh = Company.objects.get(pk=test_gmbh.pk) +>>> test_gmbh.num_employees +36 + +# F expressions cannot be used to update attributes which are foreign keys, or +# attributes which involve joins. +>>> test_gmbh.point_of_contact = None +>>> test_gmbh.save() +>>> test_gmbh.point_of_contact is None +True +>>> test_gmbh.point_of_contact = F('ceo') +Traceback (most recent call last): +... +ValueError: Cannot assign "": "Company.point_of_contact" must be a "Employee" instance. + +>>> test_gmbh.point_of_contact = test_gmbh.ceo +>>> test_gmbh.save() +>>> test_gmbh.name = F('ceo__last_name') +>>> test_gmbh.save() +Traceback (most recent call last): +... +FieldError: Joined field references are not permitted in this query + +# F expressions cannot be used to update attributes on objects which do not yet +# exist in the database +>>> acme = Company(name='The Acme Widget Co.', num_employees=12, num_chairs=5, +... ceo=test_gmbh.ceo) +>>> acme.num_employees = F('num_employees') + 16 +>>> acme.save() +Traceback (most recent call last): +... +TypeError: int() argument must be a string or a number, not 'ExpressionNode' + """} diff --git a/tests/regressiontests/fixtures_regress/models.py b/tests/regressiontests/fixtures_regress/models.py index 16a9fc4fc5..e33471646c 100644 --- a/tests/regressiontests/fixtures_regress/models.py +++ b/tests/regressiontests/fixtures_regress/models.py @@ -54,7 +54,7 @@ class Parent(models.Model): class Child(Parent): data = models.CharField(max_length=10) -# Models to regresison check #7572 +# Models to regression test #7572 class Channel(models.Model): name = models.CharField(max_length=255) @@ -65,6 +65,14 @@ class Article(models.Model): class Meta: ordering = ('id',) +# Models to regression test #11428 +class Widget(models.Model): + name = models.CharField(max_length=255) + +class WidgetProxy(Widget): + class Meta: + proxy = True + __test__ = {'API_TESTS':""" >>> from django.core import management @@ -170,4 +178,18 @@ Weight = 1.2 () >>> management.call_command('dumpdata', 'fixtures_regress.animal', format='json') [{"pk": 1, "model": "fixtures_regress.animal", "fields": {"count": 3, "weight": 1.2, "name": "Lion", "latin_name": "Panthera leo"}}, {"pk": 2, "model": "fixtures_regress.animal", "fields": {"count": 2, "weight": 2.29..., "name": "Platypus", "latin_name": "Ornithorhynchus anatinus"}}, {"pk": 10, "model": "fixtures_regress.animal", "fields": {"count": 42, "weight": 1.2, "name": "Emu", "latin_name": "Dromaius novaehollandiae"}}] +############################################### +# Regression for #11428 - Proxy models aren't included +# when you run dumpdata over an entire app + +# Flush out the database first +>>> management.call_command('reset', 'fixtures_regress', interactive=False, verbosity=0) + +# Create an instance of the concrete class +>>> Widget(name='grommet').save() + +# Dump data for the entire app. The proxy class shouldn't be included +>>> management.call_command('dumpdata', 'fixtures_regress', format='json') +[{"pk": 1, "model": "fixtures_regress.widget", "fields": {"name": "grommet"}}] + """} diff --git a/tests/regressiontests/mail/tests.py b/tests/regressiontests/mail/tests.py index f4c416c231..e90d77366f 100644 --- a/tests/regressiontests/mail/tests.py +++ b/tests/regressiontests/mail/tests.py @@ -90,8 +90,8 @@ BadHeaderError: Header values can't contain newlines (got u'Subject\nInjection T # Make sure we can manually set the From header (#9214) ->>> email = EmailMessage('Subject', 'Content', 'bounce@example.com', ['to@example.com'], headers={'From': 'from@example.com'}) ->>> message = email.message() +>>> email = EmailMessage('Subject', 'Content', 'bounce@example.com', ['to@example.com'], headers={'From': 'from@example.com'}) +>>> message = email.message() >>> message['From'] 'from@example.com' @@ -115,8 +115,7 @@ To: to@example.com Date: Fri, 09 Nov 2001 01:08:47 -0000 Message-ID: foo ... -Content-Type: multipart/alternative; boundary="..." -MIME-Version: 1.0 +Content-Type: multipart/alternative;... ... Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 diff --git a/tests/regressiontests/servers/__init__.py b/tests/regressiontests/servers/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/regressiontests/servers/models.py b/tests/regressiontests/servers/models.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/regressiontests/servers/tests.py b/tests/regressiontests/servers/tests.py new file mode 100644 index 0000000000..7621439032 --- /dev/null +++ b/tests/regressiontests/servers/tests.py @@ -0,0 +1,67 @@ +""" +Tests for django.core.servers. +""" + +import os + +import django +from django.test import TestCase +from django.core.handlers.wsgi import WSGIHandler +from django.core.servers.basehttp import AdminMediaHandler + + +class AdminMediaHandlerTests(TestCase): + + def setUp(self): + self.admin_media_file_path = \ + os.path.join(django.__path__[0], 'contrib', 'admin', 'media') + self.handler = AdminMediaHandler(WSGIHandler()) + + def test_media_urls(self): + """ + Tests that URLs that look like absolute file paths after the + settings.ADMIN_MEDIA_PREFIX don't turn into absolute file paths. + """ + # Cases that should work on all platforms. + data = ( + ('/media/css/base.css', ('css', 'base.css')), + ) + # Cases that should raise an exception. + bad_data = () + + # Add platform-specific cases. + if os.sep == '/': + data += ( + # URL, tuple of relative path parts. + ('/media/\\css/base.css', ('\\css', 'base.css')), + ) + bad_data += ( + '/media//css/base.css', + '/media////css/base.css', + '/media/../css/base.css', + ) + elif os.sep == '\\': + bad_data += ( + '/media/C:\css/base.css', + '/media//\\css/base.css', + '/media/\\css/base.css', + '/media/\\\\css/base.css' + ) + for url, path_tuple in data: + try: + output = self.handler.file_path(url) + except ValueError: + self.fail("Got a ValueError exception, but wasn't expecting" + " one. URL was: %s" % url) + rel_path = os.path.join(*path_tuple) + desired = os.path.normcase( + os.path.join(self.admin_media_file_path, rel_path)) + self.assertEqual(output, desired, + "Got: %s, Expected: %s, URL was: %s" % (output, desired, url)) + for url in bad_data: + try: + output = self.handler.file_path(url) + except ValueError: + continue + self.fail('URL: %s should have caused a ValueError exception.' + % url)