mirror of
https://github.com/django/django.git
synced 2025-07-04 01:39:20 +00:00
unicode: Merged changes from trunk up to [5579].
git-svn-id: http://code.djangoproject.com/svn/django/branches/unicode@5580 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
b89d409bf7
commit
a61d4ebd5f
2
AUTHORS
2
AUTHORS
@ -123,6 +123,7 @@ answer newbie questions, and generally made Django that much better:
|
|||||||
Ian Holsman <http://feh.holsman.net/>
|
Ian Holsman <http://feh.holsman.net/>
|
||||||
Kieran Holland <http://www.kieranholland.com>
|
Kieran Holland <http://www.kieranholland.com>
|
||||||
Sung-Jin Hong <serialx.net@gmail.com>
|
Sung-Jin Hong <serialx.net@gmail.com>
|
||||||
|
Richard House <Richard.House@i-logue.com>
|
||||||
Robert Rock Howard <http://djangomojo.com/>
|
Robert Rock Howard <http://djangomojo.com/>
|
||||||
Jason Huggins <http://www.jrandolph.com/blog/>
|
Jason Huggins <http://www.jrandolph.com/blog/>
|
||||||
Hyun Mi Ae
|
Hyun Mi Ae
|
||||||
@ -231,6 +232,7 @@ answer newbie questions, and generally made Django that much better:
|
|||||||
Frank Tegtmeyer <fte@fte.to>
|
Frank Tegtmeyer <fte@fte.to>
|
||||||
thebjorn <bp@datakortet.no>
|
thebjorn <bp@datakortet.no>
|
||||||
Zach Thompson <zthompson47@gmail.com>
|
Zach Thompson <zthompson47@gmail.com>
|
||||||
|
tibimicu@gmax.net
|
||||||
Tom Tobin
|
Tom Tobin
|
||||||
Joe Topjian <http://joe.terrarum.net/geek/code/python/django/>
|
Joe Topjian <http://joe.terrarum.net/geek/code/python/django/>
|
||||||
torne-django@wolfpuppy.org.uk
|
torne-django@wolfpuppy.org.uk
|
||||||
|
BIN
django/conf/locale/bn/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/bn/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
118
django/conf/locale/bn/LC_MESSAGES/djangojs.po
Normal file
118
django/conf/locale/bn/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2007-06-28 17:36+1000\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||||
|
#, perl-format
|
||||||
|
msgid "Available %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||||
|
msgid "Choose all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||||
|
msgid "Add"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||||
|
#, perl-format
|
||||||
|
msgid "Chosen %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||||
|
msgid "Select your choice(s) and click "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||||
|
msgid "Clear all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:32
|
||||||
|
#: contrib/admin/media/js/calendar.js:24
|
||||||
|
msgid ""
|
||||||
|
"January February March April May June July August September October November "
|
||||||
|
"December"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:33
|
||||||
|
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/calendar.js:25
|
||||||
|
msgid "S M T W T F S"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||||
|
msgid "Now"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||||
|
msgid "Clock"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||||
|
msgid "Choose a time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||||
|
msgid "Midnight"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||||
|
msgid "6 a.m."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||||
|
msgid "Noon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||||
|
msgid "Today"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||||
|
msgid "Calendar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||||
|
msgid "Yesterday"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||||
|
msgid "Tomorrow"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||||
|
msgid "Show"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||||
|
msgid "Hide"
|
||||||
|
msgstr ""
|
Binary file not shown.
@ -1,20 +1,18 @@
|
|||||||
# translation of django.po to
|
# translation of django.po to
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the Django package.
|
||||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
|
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: django\n"
|
"Project-Id-Version: django\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2007-05-25 13:04+0200\n"
|
"POT-Creation-Date: 2007-06-25 17:31+0200\n"
|
||||||
"PO-Revision-Date: 2007-05-25 13:04+0200\n"
|
"PO-Revision-Date: 2007-06-25 17:47+0200\n"
|
||||||
"Last-Translator: Marc Fargas <marc@fargas.com>\n"
|
"Last-Translator: Marc Fargas <telenieko@telenieko.com>\n"
|
||||||
"Language-Team: <es@li.org>\n"
|
"Language-Team: <es@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: VIM 7.0\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
||||||
|
|
||||||
#: template/defaultfilters.py:491
|
#: template/defaultfilters.py:491
|
||||||
msgid "yes,no,maybe"
|
msgid "yes,no,maybe"
|
||||||
@ -42,38 +40,38 @@ msgstr "%.1f MB"
|
|||||||
msgid "%.1f GB"
|
msgid "%.1f GB"
|
||||||
msgstr "%.1f GB"
|
msgstr "%.1f GB"
|
||||||
|
|
||||||
#: newforms/models.py:173 newforms/fields.py:432
|
#: newforms/models.py:172 newforms/fields.py:432
|
||||||
msgid "Select a valid choice. That choice is not one of the available choices."
|
msgid "Select a valid choice. That choice is not one of the available choices."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Esculli una opció vàlida; Aquesta opció no és una de les opcions disponibles."
|
"Esculli una opció vàlida; Aquesta opció no és una de les opcions disponibles."
|
||||||
|
|
||||||
#: newforms/models.py:186 newforms/fields.py:87 newforms/fields.py:444
|
#: newforms/models.py:185 newforms/fields.py:87 newforms/fields.py:444
|
||||||
#: newforms/fields.py:520 newforms/fields.py:531 oldforms/__init__.py:357
|
#: newforms/fields.py:522 newforms/fields.py:533 oldforms/__init__.py:357
|
||||||
#: db/models/fields/__init__.py:121 db/models/fields/__init__.py:278
|
#: db/models/fields/__init__.py:126 db/models/fields/__init__.py:283
|
||||||
#: db/models/fields/__init__.py:675 db/models/fields/__init__.py:686
|
#: db/models/fields/__init__.py:680 db/models/fields/__init__.py:691
|
||||||
msgid "This field is required."
|
msgid "This field is required."
|
||||||
msgstr "Aquest camp és obligatori."
|
msgstr "Aquest camp és obligatori."
|
||||||
|
|
||||||
#: newforms/models.py:190 newforms/fields.py:448 newforms/fields.py:524
|
#: newforms/models.py:189 newforms/fields.py:448 newforms/fields.py:526
|
||||||
msgid "Enter a list of values."
|
msgid "Enter a list of values."
|
||||||
msgstr "Introdueixi una llista de valors."
|
msgstr "Introdueixi una llista de valors."
|
||||||
|
|
||||||
#: newforms/models.py:196 newforms/fields.py:457
|
#: newforms/models.py:195 newforms/fields.py:457
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Select a valid choice. %s is not one of the available choices."
|
msgid "Select a valid choice. %s is not one of the available choices."
|
||||||
msgstr "Esculli una opció vàlida; %s' no és una de les opcions vàlides."
|
msgstr "Esculli una opció vàlida; %s' no és una de les opcions vàlides."
|
||||||
|
|
||||||
#: newforms/widgets.py:182 contrib/admin/filterspecs.py:150
|
#: newforms/widgets.py:181 contrib/admin/filterspecs.py:150
|
||||||
#: oldforms/__init__.py:577
|
#: oldforms/__init__.py:577
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Desconegut"
|
msgstr "Desconegut"
|
||||||
|
|
||||||
#: newforms/widgets.py:182 contrib/admin/filterspecs.py:143
|
#: newforms/widgets.py:181 contrib/admin/filterspecs.py:143
|
||||||
#: oldforms/__init__.py:577
|
#: oldforms/__init__.py:577
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Si"
|
msgstr "Si"
|
||||||
|
|
||||||
#: newforms/widgets.py:182 contrib/admin/filterspecs.py:143
|
#: newforms/widgets.py:181 contrib/admin/filterspecs.py:143
|
||||||
#: oldforms/__init__.py:577
|
#: oldforms/__init__.py:577
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "No"
|
msgstr "No"
|
||||||
@ -121,11 +119,11 @@ msgstr "Asseguris de que no hi ha més de %s decimals."
|
|||||||
msgid "Ensure that there are no more than %s digits before the decimal point."
|
msgid "Ensure that there are no more than %s digits before the decimal point."
|
||||||
msgstr "Asseguris de que no hia ha més de %s dígits decimals."
|
msgstr "Asseguris de que no hia ha més de %s dígits decimals."
|
||||||
|
|
||||||
#: newforms/fields.py:233
|
#: newforms/fields.py:233 newforms/fields.py:566
|
||||||
msgid "Enter a valid date."
|
msgid "Enter a valid date."
|
||||||
msgstr "Introdueixi una data vàlida."
|
msgstr "Introdueixi una data vàlida."
|
||||||
|
|
||||||
#: newforms/fields.py:260
|
#: newforms/fields.py:260 newforms/fields.py:568
|
||||||
msgid "Enter a valid time."
|
msgid "Enter a valid time."
|
||||||
msgstr "Introdueixi una hora vàlida."
|
msgstr "Introdueixi una hora vàlida."
|
||||||
|
|
||||||
@ -198,118 +196,122 @@ msgid "Argentinean Spanish"
|
|||||||
msgstr "Castellà Argentí"
|
msgstr "Castellà Argentí"
|
||||||
|
|
||||||
#: conf/global_settings.py:51
|
#: conf/global_settings.py:51
|
||||||
|
msgid "Persian"
|
||||||
|
msgstr "Persa"
|
||||||
|
|
||||||
|
#: conf/global_settings.py:52
|
||||||
msgid "Finnish"
|
msgid "Finnish"
|
||||||
msgstr "Finlandès"
|
msgstr "Finlandès"
|
||||||
|
|
||||||
#: conf/global_settings.py:52
|
#: conf/global_settings.py:53
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Francès"
|
msgstr "Francès"
|
||||||
|
|
||||||
#: conf/global_settings.py:53
|
#: conf/global_settings.py:54
|
||||||
msgid "Galician"
|
msgid "Galician"
|
||||||
msgstr "Galleg"
|
msgstr "Galleg"
|
||||||
|
|
||||||
#: conf/global_settings.py:54
|
#: conf/global_settings.py:55
|
||||||
msgid "Hungarian"
|
msgid "Hungarian"
|
||||||
msgstr "Húngar"
|
msgstr "Húngar"
|
||||||
|
|
||||||
#: conf/global_settings.py:55
|
#: conf/global_settings.py:56
|
||||||
msgid "Hebrew"
|
msgid "Hebrew"
|
||||||
msgstr "Hebreu"
|
msgstr "Hebreu"
|
||||||
|
|
||||||
#: conf/global_settings.py:56
|
#: conf/global_settings.py:57
|
||||||
msgid "Icelandic"
|
msgid "Icelandic"
|
||||||
msgstr "Islandès"
|
msgstr "Islandès"
|
||||||
|
|
||||||
#: conf/global_settings.py:57
|
#: conf/global_settings.py:58
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italià"
|
msgstr "Italià"
|
||||||
|
|
||||||
#: conf/global_settings.py:58
|
#: conf/global_settings.py:59
|
||||||
msgid "Japanese"
|
msgid "Japanese"
|
||||||
msgstr "Japonès"
|
msgstr "Japonès"
|
||||||
|
|
||||||
#: conf/global_settings.py:59
|
#: conf/global_settings.py:60
|
||||||
msgid "Korean"
|
msgid "Korean"
|
||||||
msgstr "Coreà"
|
msgstr "Coreà"
|
||||||
|
|
||||||
#: conf/global_settings.py:60
|
#: conf/global_settings.py:61
|
||||||
msgid "Kannada"
|
msgid "Kannada"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: conf/global_settings.py:61
|
|
||||||
msgid "Latvian"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: conf/global_settings.py:62
|
#: conf/global_settings.py:62
|
||||||
|
msgid "Latvian"
|
||||||
|
msgstr "Letó"
|
||||||
|
|
||||||
|
#: conf/global_settings.py:63
|
||||||
msgid "Macedonian"
|
msgid "Macedonian"
|
||||||
msgstr "Macedoni"
|
msgstr "Macedoni"
|
||||||
|
|
||||||
#: conf/global_settings.py:63
|
#: conf/global_settings.py:64
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Holandès"
|
msgstr "Holandès"
|
||||||
|
|
||||||
#: conf/global_settings.py:64
|
#: conf/global_settings.py:65
|
||||||
msgid "Norwegian"
|
msgid "Norwegian"
|
||||||
msgstr "Norueg"
|
msgstr "Norueg"
|
||||||
|
|
||||||
#: conf/global_settings.py:65
|
#: conf/global_settings.py:66
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr "Polac"
|
msgstr "Polac"
|
||||||
|
|
||||||
#: conf/global_settings.py:66
|
#: conf/global_settings.py:67
|
||||||
msgid "Portugese"
|
msgid "Portugese"
|
||||||
msgstr "Portuguès"
|
msgstr "Portuguès"
|
||||||
|
|
||||||
#: conf/global_settings.py:67
|
#: conf/global_settings.py:68
|
||||||
msgid "Brazilian"
|
msgid "Brazilian"
|
||||||
msgstr "Brasileny"
|
msgstr "Brasileny"
|
||||||
|
|
||||||
#: conf/global_settings.py:68
|
#: conf/global_settings.py:69
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Rumanès"
|
msgstr "Rumanès"
|
||||||
|
|
||||||
#: conf/global_settings.py:69
|
#: conf/global_settings.py:70
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Rús"
|
msgstr "Rús"
|
||||||
|
|
||||||
#: conf/global_settings.py:70
|
#: conf/global_settings.py:71
|
||||||
msgid "Slovak"
|
msgid "Slovak"
|
||||||
msgstr "Eslovac"
|
msgstr "Eslovac"
|
||||||
|
|
||||||
#: conf/global_settings.py:71
|
#: conf/global_settings.py:72
|
||||||
msgid "Slovenian"
|
msgid "Slovenian"
|
||||||
msgstr "Esloveni"
|
msgstr "Esloveni"
|
||||||
|
|
||||||
#: conf/global_settings.py:72
|
#: conf/global_settings.py:73
|
||||||
msgid "Serbian"
|
msgid "Serbian"
|
||||||
msgstr "Serbi"
|
msgstr "Serbi"
|
||||||
|
|
||||||
#: conf/global_settings.py:73
|
#: conf/global_settings.py:74
|
||||||
msgid "Swedish"
|
msgid "Swedish"
|
||||||
msgstr "Suec"
|
msgstr "Suec"
|
||||||
|
|
||||||
#: conf/global_settings.py:74
|
|
||||||
msgid "Tamil"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: conf/global_settings.py:75
|
#: conf/global_settings.py:75
|
||||||
msgid "Telugu"
|
msgid "Tamil"
|
||||||
msgstr ""
|
msgstr "Tàmil"
|
||||||
|
|
||||||
#: conf/global_settings.py:76
|
#: conf/global_settings.py:76
|
||||||
|
msgid "Telugu"
|
||||||
|
msgstr "Telugu"
|
||||||
|
|
||||||
|
#: conf/global_settings.py:77
|
||||||
msgid "Turkish"
|
msgid "Turkish"
|
||||||
msgstr "Turc"
|
msgstr "Turc"
|
||||||
|
|
||||||
#: conf/global_settings.py:77
|
#: conf/global_settings.py:78
|
||||||
msgid "Ukrainian"
|
msgid "Ukrainian"
|
||||||
msgstr "Ucranià"
|
msgstr "Ucranià"
|
||||||
|
|
||||||
#: conf/global_settings.py:78
|
#: conf/global_settings.py:79
|
||||||
msgid "Simplified Chinese"
|
msgid "Simplified Chinese"
|
||||||
msgstr "Xinés simplificat"
|
msgstr "Xinés simplificat"
|
||||||
|
|
||||||
#: conf/global_settings.py:79
|
#: conf/global_settings.py:80
|
||||||
msgid "Traditional Chinese"
|
msgid "Traditional Chinese"
|
||||||
msgstr "Xinés tradicional"
|
msgstr "Xinés tradicional"
|
||||||
|
|
||||||
@ -576,17 +578,15 @@ msgid ""
|
|||||||
"comment:\n"
|
"comment:\n"
|
||||||
"\n"
|
"\n"
|
||||||
"%(text)s"
|
"%(text)s"
|
||||||
msgid_plural ""
|
|
||||||
"This comment was posted by a user who has posted fewer than %(count)s "
|
"This comment was posted by a user who has posted fewer than %(count)s "
|
||||||
"comments:\n"
|
"comments:\n"
|
||||||
"\n"
|
"\n"
|
||||||
"%(text)s"
|
"%(text)s"
|
||||||
msgstr[0] ""
|
msgstr ""
|
||||||
"Aquest comentari el va enviar un usuari que ha enviat menys de %(count)s "
|
"Aquest comentari el va enviar un usuari que ha enviat menys de %(count)s "
|
||||||
"comentari:\n"
|
"comentari:\n"
|
||||||
"\n"
|
"\n"
|
||||||
"%(text)s"
|
"%(text)s"
|
||||||
msgstr[1] ""
|
|
||||||
"Aquest comentari el va enviar un usuari que ha enviat menys de %(count)s "
|
"Aquest comentari el va enviar un usuari que ha enviat menys de %(count)s "
|
||||||
"comentaris:\n"
|
"comentaris:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@ -1218,13 +1218,13 @@ msgstr "Editar aquest objecte (nova finestra)"
|
|||||||
msgid "As above, but opens the admin page in a new window."
|
msgid "As above, but opens the admin page in a new window."
|
||||||
msgstr "Com abans, però obre la pàgina d'administració en una nova finestra."
|
msgstr "Com abans, però obre la pàgina d'administració en una nova finestra."
|
||||||
|
|
||||||
#: contrib/admin/views/auth.py:19 contrib/admin/views/main.py:257
|
#: contrib/admin/views/auth.py:19 contrib/admin/views/main.py:262
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The %(name)s \"%(obj)s\" was added successfully."
|
msgid "The %(name)s \"%(obj)s\" was added successfully."
|
||||||
msgstr "El/la %(name)s \"%(obj)s\".ha estat agregat/da amb èxit."
|
msgstr "El/la %(name)s \"%(obj)s\".ha estat agregat/da amb èxit."
|
||||||
|
|
||||||
#: contrib/admin/views/auth.py:24 contrib/admin/views/main.py:261
|
#: contrib/admin/views/auth.py:24 contrib/admin/views/main.py:266
|
||||||
#: contrib/admin/views/main.py:347
|
#: contrib/admin/views/main.py:352
|
||||||
msgid "You may edit it again below."
|
msgid "You may edit it again below."
|
||||||
msgstr "Pot editar-lo de nou abaix."
|
msgstr "Pot editar-lo de nou abaix."
|
||||||
|
|
||||||
@ -1241,96 +1241,96 @@ msgstr "Canvi de clau exitós"
|
|||||||
msgid "Change password: %s"
|
msgid "Change password: %s"
|
||||||
msgstr "Canviar clau: %s"
|
msgstr "Canviar clau: %s"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:223
|
#: contrib/admin/views/main.py:228
|
||||||
msgid "Site administration"
|
msgid "Site administration"
|
||||||
msgstr "Lloc administratiu"
|
msgstr "Lloc administratiu"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
|
#: contrib/admin/views/main.py:276 contrib/admin/views/main.py:361
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You may add another %s below."
|
msgid "You may add another %s below."
|
||||||
msgstr "Pot agregar un altre %s abaix."
|
msgstr "Pot agregar un altre %s abaix."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:289
|
#: contrib/admin/views/main.py:294
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Add %s"
|
msgid "Add %s"
|
||||||
msgstr "Agregar %s"
|
msgstr "Agregar %s"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:335
|
#: contrib/admin/views/main.py:340
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Added %s."
|
msgid "Added %s."
|
||||||
msgstr "Agregat %s."
|
msgstr "Agregat %s."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337
|
#: contrib/admin/views/main.py:340 contrib/admin/views/main.py:342
|
||||||
#: contrib/admin/views/main.py:339 db/models/manipulators.py:308
|
#: contrib/admin/views/main.py:344 db/models/manipulators.py:308
|
||||||
msgid "and"
|
msgid "and"
|
||||||
msgstr "i"
|
msgstr "i"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:337
|
#: contrib/admin/views/main.py:342
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Changed %s."
|
msgid "Changed %s."
|
||||||
msgstr "Modificat %s."
|
msgstr "Modificat %s."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:339
|
#: contrib/admin/views/main.py:344
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Deleted %s."
|
msgid "Deleted %s."
|
||||||
msgstr "Eliminat %s."
|
msgstr "Eliminat %s."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:342
|
#: contrib/admin/views/main.py:347
|
||||||
msgid "No fields changed."
|
msgid "No fields changed."
|
||||||
msgstr "Cap camp canviat."
|
msgstr "Cap camp canviat."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:345
|
#: contrib/admin/views/main.py:350
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The %(name)s \"%(obj)s\" was changed successfully."
|
msgid "The %(name)s \"%(obj)s\" was changed successfully."
|
||||||
msgstr "S'ha modificat amb èxist el/la %(name)s \"%(obj)s."
|
msgstr "S'ha modificat amb èxist el/la %(name)s \"%(obj)s."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:353
|
#: contrib/admin/views/main.py:358
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
|
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"S'ha agregat amb èxit el/la %(name)s \"%(obj)s\". Pot editar-lo de nou abaix."
|
"S'ha agregat amb èxit el/la %(name)s \"%(obj)s\". Pot editar-lo de nou abaix."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:391
|
#: contrib/admin/views/main.py:396
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Change %s"
|
msgid "Change %s"
|
||||||
msgstr "Modificar %s"
|
msgstr "Modificar %s"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:476
|
#: contrib/admin/views/main.py:481
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
|
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
|
||||||
msgstr "Un o més %(fieldname)s en %(name)s: %(obj)s"
|
msgstr "Un o més %(fieldname)s en %(name)s: %(obj)s"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:481
|
#: contrib/admin/views/main.py:486
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "One or more %(fieldname)s in %(name)s:"
|
msgid "One or more %(fieldname)s in %(name)s:"
|
||||||
msgstr "Un o més %(fieldname)s en %(name)s:"
|
msgstr "Un o més %(fieldname)s en %(name)s:"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:514
|
#: contrib/admin/views/main.py:518
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
|
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
|
||||||
msgstr "El/la %(name)s \"%(obj)s\".ha estat eliminat amb èxit."
|
msgstr "El/la %(name)s \"%(obj)s\".ha estat eliminat amb èxit."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:517
|
#: contrib/admin/views/main.py:521
|
||||||
msgid "Are you sure?"
|
msgid "Are you sure?"
|
||||||
msgstr "Està segur?"
|
msgstr "Està segur?"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:539
|
#: contrib/admin/views/main.py:543
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Change history: %s"
|
msgid "Change history: %s"
|
||||||
msgstr "Modificar històric: %s"
|
msgstr "Modificar històric: %s"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:573
|
#: contrib/admin/views/main.py:577
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Select %s"
|
msgid "Select %s"
|
||||||
msgstr "Seleccioni %s"
|
msgstr "Seleccioni %s"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:573
|
#: contrib/admin/views/main.py:577
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Select %s to change"
|
msgid "Select %s to change"
|
||||||
msgstr "Seleccioni %s per modificar"
|
msgstr "Seleccioni %s per modificar"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:768
|
#: contrib/admin/views/main.py:772
|
||||||
msgid "Database error"
|
msgid "Database error"
|
||||||
msgstr "Error de/en la base de dades"
|
msgstr "Error de/en la base de dades"
|
||||||
|
|
||||||
@ -1697,35 +1697,35 @@ msgstr "llocs"
|
|||||||
msgid "Logged out"
|
msgid "Logged out"
|
||||||
msgstr "Sessió finalitzada"
|
msgstr "Sessió finalitzada"
|
||||||
|
|
||||||
#: contrib/auth/models.py:44 contrib/auth/models.py:64
|
#: contrib/auth/models.py:49 contrib/auth/models.py:69
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "nom"
|
msgstr "nom"
|
||||||
|
|
||||||
#: contrib/auth/models.py:46
|
#: contrib/auth/models.py:51
|
||||||
msgid "codename"
|
msgid "codename"
|
||||||
msgstr "nom en clau"
|
msgstr "nom en clau"
|
||||||
|
|
||||||
#: contrib/auth/models.py:49
|
#: contrib/auth/models.py:54
|
||||||
msgid "permission"
|
msgid "permission"
|
||||||
msgstr "permís"
|
msgstr "permís"
|
||||||
|
|
||||||
#: contrib/auth/models.py:50 contrib/auth/models.py:65
|
#: contrib/auth/models.py:55 contrib/auth/models.py:70
|
||||||
msgid "permissions"
|
msgid "permissions"
|
||||||
msgstr "permissos"
|
msgstr "permissos"
|
||||||
|
|
||||||
#: contrib/auth/models.py:68
|
#: contrib/auth/models.py:73
|
||||||
msgid "group"
|
msgid "group"
|
||||||
msgstr "grup"
|
msgstr "grup"
|
||||||
|
|
||||||
#: contrib/auth/models.py:69 contrib/auth/models.py:109
|
#: contrib/auth/models.py:74 contrib/auth/models.py:114
|
||||||
msgid "groups"
|
msgid "groups"
|
||||||
msgstr "grups"
|
msgstr "grups"
|
||||||
|
|
||||||
#: contrib/auth/models.py:99
|
#: contrib/auth/models.py:104
|
||||||
msgid "username"
|
msgid "username"
|
||||||
msgstr "nom d'usuari"
|
msgstr "nom d'usuari"
|
||||||
|
|
||||||
#: contrib/auth/models.py:99
|
#: contrib/auth/models.py:104
|
||||||
msgid ""
|
msgid ""
|
||||||
"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
|
"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
|
||||||
"digits and underscores)."
|
"digits and underscores)."
|
||||||
@ -1733,23 +1733,23 @@ msgstr ""
|
|||||||
"Requerit. 30 o menys caracters. Només caracters alfanumèrics (lletres, "
|
"Requerit. 30 o menys caracters. Només caracters alfanumèrics (lletres, "
|
||||||
"dígits i guions baixos)."
|
"dígits i guions baixos)."
|
||||||
|
|
||||||
#: contrib/auth/models.py:100
|
#: contrib/auth/models.py:105
|
||||||
msgid "first name"
|
msgid "first name"
|
||||||
msgstr "nom propi"
|
msgstr "nom propi"
|
||||||
|
|
||||||
#: contrib/auth/models.py:101
|
#: contrib/auth/models.py:106
|
||||||
msgid "last name"
|
msgid "last name"
|
||||||
msgstr "cognoms"
|
msgstr "cognoms"
|
||||||
|
|
||||||
#: contrib/auth/models.py:102
|
#: contrib/auth/models.py:107
|
||||||
msgid "e-mail address"
|
msgid "e-mail address"
|
||||||
msgstr "adreça de correu electrònic"
|
msgstr "adreça de correu electrònic"
|
||||||
|
|
||||||
#: contrib/auth/models.py:103
|
#: contrib/auth/models.py:108
|
||||||
msgid "password"
|
msgid "password"
|
||||||
msgstr "contrasenya"
|
msgstr "contrasenya"
|
||||||
|
|
||||||
#: contrib/auth/models.py:103
|
#: contrib/auth/models.py:108
|
||||||
msgid ""
|
msgid ""
|
||||||
"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
|
"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
|
||||||
"password form</a>."
|
"password form</a>."
|
||||||
@ -1757,19 +1757,19 @@ msgstr ""
|
|||||||
"Utilitzi '[algo]$[salt]$[hexdigest]' o el <a href=\"password/\">formulari de "
|
"Utilitzi '[algo]$[salt]$[hexdigest]' o el <a href=\"password/\">formulari de "
|
||||||
"canvi de contrasenya</a>."
|
"canvi de contrasenya</a>."
|
||||||
|
|
||||||
#: contrib/auth/models.py:104
|
#: contrib/auth/models.py:109
|
||||||
msgid "staff status"
|
msgid "staff status"
|
||||||
msgstr "és membre del personal"
|
msgstr "és membre del personal"
|
||||||
|
|
||||||
#: contrib/auth/models.py:104
|
#: contrib/auth/models.py:109
|
||||||
msgid "Designates whether the user can log into this admin site."
|
msgid "Designates whether the user can log into this admin site."
|
||||||
msgstr "Indica si l'usuari pot entrar en el lloc administratiu."
|
msgstr "Indica si l'usuari pot entrar en el lloc administratiu."
|
||||||
|
|
||||||
#: contrib/auth/models.py:105
|
#: contrib/auth/models.py:110
|
||||||
msgid "active"
|
msgid "active"
|
||||||
msgstr "actiu"
|
msgstr "actiu"
|
||||||
|
|
||||||
#: contrib/auth/models.py:105
|
#: contrib/auth/models.py:110
|
||||||
msgid ""
|
msgid ""
|
||||||
"Designates whether this user can log into the Django admin. Unselect this "
|
"Designates whether this user can log into the Django admin. Unselect this "
|
||||||
"instead of deleting accounts."
|
"instead of deleting accounts."
|
||||||
@ -1777,11 +1777,11 @@ msgstr ""
|
|||||||
"Designa si aquest usuari pot iniciar sessió a la interfície administrativa "
|
"Designa si aquest usuari pot iniciar sessió a la interfície administrativa "
|
||||||
"Djano. Deselecciona-ho enlloc de esborrar comptes d'usuari."
|
"Djano. Deselecciona-ho enlloc de esborrar comptes d'usuari."
|
||||||
|
|
||||||
#: contrib/auth/models.py:106
|
#: contrib/auth/models.py:111
|
||||||
msgid "superuser status"
|
msgid "superuser status"
|
||||||
msgstr "estat de superusuari"
|
msgstr "estat de superusuari"
|
||||||
|
|
||||||
#: contrib/auth/models.py:106
|
#: contrib/auth/models.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"Designates that this user has all permissions without explicitly assigning "
|
"Designates that this user has all permissions without explicitly assigning "
|
||||||
"them."
|
"them."
|
||||||
@ -1789,15 +1789,15 @@ msgstr ""
|
|||||||
"Designa que aquest usuari té tots els permisos sense assignar-los "
|
"Designa que aquest usuari té tots els permisos sense assignar-los "
|
||||||
"explícitament."
|
"explícitament."
|
||||||
|
|
||||||
#: contrib/auth/models.py:107
|
#: contrib/auth/models.py:112
|
||||||
msgid "last login"
|
msgid "last login"
|
||||||
msgstr "últim inici de sessió"
|
msgstr "últim inici de sessió"
|
||||||
|
|
||||||
#: contrib/auth/models.py:108
|
#: contrib/auth/models.py:113
|
||||||
msgid "date joined"
|
msgid "date joined"
|
||||||
msgstr "data de creació"
|
msgstr "data de creació"
|
||||||
|
|
||||||
#: contrib/auth/models.py:110
|
#: contrib/auth/models.py:115
|
||||||
msgid ""
|
msgid ""
|
||||||
"In addition to the permissions manually assigned, this user will also get "
|
"In addition to the permissions manually assigned, this user will also get "
|
||||||
"all permissions granted to each group he/she is in."
|
"all permissions granted to each group he/she is in."
|
||||||
@ -1805,39 +1805,39 @@ msgstr ""
|
|||||||
"Junt amb els permissos asignats manualment, aquest usuari tindrà, també, els "
|
"Junt amb els permissos asignats manualment, aquest usuari tindrà, també, els "
|
||||||
"permissos dels grups dels que sigui membre."
|
"permissos dels grups dels que sigui membre."
|
||||||
|
|
||||||
#: contrib/auth/models.py:111
|
#: contrib/auth/models.py:116
|
||||||
msgid "user permissions"
|
msgid "user permissions"
|
||||||
msgstr "permissos de l'usuari"
|
msgstr "permissos de l'usuari"
|
||||||
|
|
||||||
#: contrib/auth/models.py:115
|
#: contrib/auth/models.py:120
|
||||||
msgid "user"
|
msgid "user"
|
||||||
msgstr "usuari"
|
msgstr "usuari"
|
||||||
|
|
||||||
#: contrib/auth/models.py:116
|
#: contrib/auth/models.py:121
|
||||||
msgid "users"
|
msgid "users"
|
||||||
msgstr "usuaris"
|
msgstr "usuaris"
|
||||||
|
|
||||||
#: contrib/auth/models.py:122
|
#: contrib/auth/models.py:127
|
||||||
msgid "Personal info"
|
msgid "Personal info"
|
||||||
msgstr "Informaciò personal"
|
msgstr "Informaciò personal"
|
||||||
|
|
||||||
#: contrib/auth/models.py:123
|
#: contrib/auth/models.py:128
|
||||||
msgid "Permissions"
|
msgid "Permissions"
|
||||||
msgstr "permissos"
|
msgstr "permissos"
|
||||||
|
|
||||||
#: contrib/auth/models.py:124
|
#: contrib/auth/models.py:129
|
||||||
msgid "Important dates"
|
msgid "Important dates"
|
||||||
msgstr "Dates importants"
|
msgstr "Dates importants"
|
||||||
|
|
||||||
#: contrib/auth/models.py:125
|
#: contrib/auth/models.py:130
|
||||||
msgid "Groups"
|
msgid "Groups"
|
||||||
msgstr "Grups"
|
msgstr "Grups"
|
||||||
|
|
||||||
#: contrib/auth/models.py:269
|
#: contrib/auth/models.py:273
|
||||||
msgid "message"
|
msgid "message"
|
||||||
msgstr "missatge"
|
msgstr "missatge"
|
||||||
|
|
||||||
#: contrib/auth/models.py:282
|
#: contrib/auth/models.py:286
|
||||||
msgid "AnonymousUser"
|
msgid "AnonymousUser"
|
||||||
msgstr "AnonymousUser"
|
msgstr "AnonymousUser"
|
||||||
|
|
||||||
@ -1861,7 +1861,7 @@ msgstr ""
|
|||||||
msgid "This account is inactive."
|
msgid "This account is inactive."
|
||||||
msgstr "Aquest compte està inactiu"
|
msgstr "Aquest compte està inactiu"
|
||||||
|
|
||||||
#: contrib/auth/forms.py:85
|
#: contrib/auth/forms.py:84
|
||||||
msgid ""
|
msgid ""
|
||||||
"That e-mail address doesn't have an associated user account. Are you sure "
|
"That e-mail address doesn't have an associated user account. Are you sure "
|
||||||
"you've registered?"
|
"you've registered?"
|
||||||
@ -2423,7 +2423,7 @@ msgstr "L'any ha de ser posterior al 1900"
|
|||||||
msgid "Invalid date: %s"
|
msgid "Invalid date: %s"
|
||||||
msgstr "Data invàlida: %s"
|
msgstr "Data invàlida: %s"
|
||||||
|
|
||||||
#: core/validators.py:149 db/models/fields/__init__.py:463
|
#: core/validators.py:149 db/models/fields/__init__.py:468
|
||||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||||
msgstr "Introdueixi una data vàlida en el forma AAAA-MM-DD."
|
msgstr "Introdueixi una data vàlida en el forma AAAA-MM-DD."
|
||||||
|
|
||||||
@ -2431,7 +2431,7 @@ msgstr "Introdueixi una data vàlida en el forma AAAA-MM-DD."
|
|||||||
msgid "Enter a valid time in HH:MM format."
|
msgid "Enter a valid time in HH:MM format."
|
||||||
msgstr "Introdueixi una hora vàlida en el format HH:MM."
|
msgstr "Introdueixi una hora vàlida en el format HH:MM."
|
||||||
|
|
||||||
#: core/validators.py:158 db/models/fields/__init__.py:532
|
#: core/validators.py:158 db/models/fields/__init__.py:537
|
||||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||||
msgstr "Introdueixi un data/hora vàlida en format YYYY-MM-DD HH:MM."
|
msgstr "Introdueixi un data/hora vàlida en format YYYY-MM-DD HH:MM."
|
||||||
|
|
||||||
@ -2558,35 +2558,29 @@ msgstr "Si us plau, introdueixi un número decimal vàlid."
|
|||||||
#: core/validators.py:423
|
#: core/validators.py:423
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||||
msgid_plural ""
|
|
||||||
"Please enter a valid decimal number with at most %s total digits."
|
"Please enter a valid decimal number with at most %s total digits."
|
||||||
msgstr[0] ""
|
msgstr ""
|
||||||
"Si us plau, introdueixi un número decimal vàlid amb no més de %s digit."
|
"Si us plau, introdueixi un número decimal vàlid amb no més de %s digit."
|
||||||
msgstr[1] ""
|
|
||||||
"Si us plau, introdueixi un número decimal vàlid amb no més de %s digits."
|
"Si us plau, introdueixi un número decimal vàlid amb no més de %s digits."
|
||||||
|
|
||||||
#: core/validators.py:426
|
#: core/validators.py:426
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
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 digit."
|
||||||
msgid_plural ""
|
|
||||||
"Please enter a valid decimal number with a whole part of at most %s digits."
|
"Please enter a valid decimal number with a whole part of at most %s digits."
|
||||||
msgstr[0] ""
|
msgstr ""
|
||||||
"Si us plau, introdueixi un número decimal vàlid amb la part entera amb com a "
|
"Si us plau, introdueixi un número decimal vàlid amb la part entera amb com a "
|
||||||
"màxim %s dígit."
|
"màxim %s dígit."
|
||||||
msgstr[1] ""
|
|
||||||
"Si us plau, introdueixi un número decimal vàlid amb la part entera amb com a "
|
"Si us plau, introdueixi un número decimal vàlid amb la part entera amb com a "
|
||||||
"màxim %s dígits."
|
"màxim %s dígits."
|
||||||
|
|
||||||
#: core/validators.py:429
|
#: core/validators.py:429
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||||
msgid_plural ""
|
|
||||||
"Please enter a valid decimal number with at most %s decimal places."
|
"Please enter a valid decimal number with at most %s decimal places."
|
||||||
msgstr[0] ""
|
msgstr ""
|
||||||
"Si us plau, introdueixi un número decimal vàlid amb no més de %s dígit en la "
|
"Si us plau, introdueixi un número decimal vàlid amb no més de %s dígit en la "
|
||||||
"part decimal."
|
"part decimal."
|
||||||
msgstr[1] ""
|
|
||||||
"Si us plau, introdueixi un número decimal vàlid amb no més de %s dígits en "
|
"Si us plau, introdueixi un número decimal vàlid amb no més de %s dígits en "
|
||||||
"la part decimal."
|
"la part decimal."
|
||||||
|
|
||||||
@ -2983,52 +2977,51 @@ msgstr "Ja existeix un %(object)s del tipus %(type)s amb aquest %(field)s."
|
|||||||
msgid "%(optname)s with this %(fieldname)s already exists."
|
msgid "%(optname)s with this %(fieldname)s already exists."
|
||||||
msgstr "Ja existeix %(optname)s amb auqest %(fieldname)s."
|
msgstr "Ja existeix %(optname)s amb auqest %(fieldname)s."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:373
|
#: db/models/fields/__init__.py:378
|
||||||
msgid "This value must be an integer."
|
msgid "This value must be an integer."
|
||||||
msgstr "Aquest valor ha de ser un enter."
|
msgstr "Aquest valor ha de ser un enter."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:408
|
#: db/models/fields/__init__.py:413
|
||||||
msgid "This value must be either True or False."
|
msgid "This value must be either True or False."
|
||||||
msgstr "Aquest valor ha de ser True (Veritat) o False (Fals)"
|
msgstr "Aquest valor ha de ser True (Veritat) o False (Fals)"
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:429
|
#: db/models/fields/__init__.py:434
|
||||||
msgid "This field cannot be null."
|
msgid "This field cannot be null."
|
||||||
msgstr "Aquest camp no pot ser null (estar buit)."
|
msgstr "Aquest camp no pot ser null (estar buit)."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:592
|
#: db/models/fields/__init__.py:597
|
||||||
msgid "This value must be a decimal number."
|
msgid "This value must be a decimal number."
|
||||||
msgstr "Aquest valor ha de ser un número decimal."
|
msgstr "Aquest valor ha de ser un número decimal."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:695
|
#: db/models/fields/__init__.py:700
|
||||||
msgid "Enter a valid filename."
|
msgid "Enter a valid filename."
|
||||||
msgstr "Introdueixi un nom de fitxer vàlid."
|
msgstr "Introdueixi un nom de fitxer vàlid."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:818
|
#: db/models/fields/__init__.py:824
|
||||||
msgid "This value must be either None, True or False."
|
msgid "This value must be either None, True or False."
|
||||||
msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)"
|
msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)"
|
||||||
|
|
||||||
#: db/models/fields/related.py:53
|
#: db/models/fields/related.py:54
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please enter a valid %s."
|
msgid "Please enter a valid %s."
|
||||||
msgstr "Si us plau, introdueixi un %s vàlid."
|
msgstr "Si us plau, introdueixi un %s vàlid."
|
||||||
|
|
||||||
#: db/models/fields/related.py:642
|
#: db/models/fields/related.py:640
|
||||||
msgid "Separate multiple IDs with commas."
|
msgid "Separate multiple IDs with commas."
|
||||||
msgstr "Separi múltiples IDs amb comes."
|
msgstr "Separi múltiples IDs amb comes."
|
||||||
|
|
||||||
#: db/models/fields/related.py:644
|
#: db/models/fields/related.py:642
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||||
msgstr "Premi \"Control\" o \"Command\" en un Mac per escollir més d'un."
|
msgstr "Premi \"Control\" o \"Command\" en un Mac per escollir més d'un."
|
||||||
|
|
||||||
#: db/models/fields/related.py:691
|
#: db/models/fields/related.py:689
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
|
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."
|
"Please enter valid %(self)s IDs. The values %(value)r are invalid."
|
||||||
msgstr[0] ""
|
msgstr ""
|
||||||
"Si us plau, introdueixi IDs de %(self)s vàlids. El valor %(value)r és "
|
"Si us plau, introdueixi IDs de %(self)s vàlids. El valor %(value)r és "
|
||||||
"invàlid."
|
"invàlid."
|
||||||
msgstr[1] ""
|
|
||||||
"Si us plau, introdueixi IDs de %(self)s vàlids. Els valors %(value)r són "
|
"Si us plau, introdueixi IDs de %(self)s vàlids. Els valors %(value)r són "
|
||||||
"invàlids."
|
"invàlids."
|
||||||
|
|
||||||
|
Binary file not shown.
@ -1,15 +1,14 @@
|
|||||||
# translation of djangojs.po to
|
# translation of djangojs.po to
|
||||||
# Spanish translation for the django-admin JS files.
|
# Catalan translation for the django-admin JS files.
|
||||||
# Copyright (C)
|
# This file is distributed under the same license as the Django package.
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: djangojs\n"
|
"Project-Id-Version: djangojs\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2007-05-20 18:25+0200\n"
|
"POT-Creation-Date: 2007-05-20 18:25+0200\n"
|
||||||
"PO-Revision-Date: 2007-05-20 18:24+0200\n"
|
"PO-Revision-Date: 2007-06-25 17:47+0200\n"
|
||||||
"Last-Translator: Marc Fargas <marc@fargas.com>\n"
|
"Last-Translator: Marc Fargas <telenieko@telenieko.com>\n"
|
||||||
"Language-Team: <es@li.org>\n"
|
"Language-Team: <es@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
BIN
django/conf/locale/da/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/da/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
118
django/conf/locale/da/LC_MESSAGES/djangojs.po
Normal file
118
django/conf/locale/da/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2007-06-28 17:36+1000\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||||
|
#, perl-format
|
||||||
|
msgid "Available %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||||
|
msgid "Choose all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||||
|
msgid "Add"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||||
|
#, perl-format
|
||||||
|
msgid "Chosen %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||||
|
msgid "Select your choice(s) and click "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||||
|
msgid "Clear all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:32
|
||||||
|
#: contrib/admin/media/js/calendar.js:24
|
||||||
|
msgid ""
|
||||||
|
"January February March April May June July August September October November "
|
||||||
|
"December"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:33
|
||||||
|
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/calendar.js:25
|
||||||
|
msgid "S M T W T F S"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||||
|
msgid "Now"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||||
|
msgid "Clock"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||||
|
msgid "Choose a time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||||
|
msgid "Midnight"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||||
|
msgid "6 a.m."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||||
|
msgid "Noon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||||
|
msgid "Today"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||||
|
msgid "Calendar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||||
|
msgid "Yesterday"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||||
|
msgid "Tomorrow"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||||
|
msgid "Show"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||||
|
msgid "Hide"
|
||||||
|
msgstr ""
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -23,13 +23,13 @@ msgstr "id obiect"
|
|||||||
|
|
||||||
#: contrib/comments/models.py:68
|
#: contrib/comments/models.py:68
|
||||||
msgid "headline"
|
msgid "headline"
|
||||||
msgstr ""
|
msgstr "titlu"
|
||||||
|
|
||||||
#: contrib/comments/models.py:69 contrib/comments/models.py:90
|
#: contrib/comments/models.py:69 contrib/comments/models.py:90
|
||||||
#: contrib/comments/models.py:167
|
#: contrib/comments/models.py:167
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "comment"
|
msgid "comment"
|
||||||
msgstr "conţinut"
|
msgstr "comentariu"
|
||||||
|
|
||||||
#: contrib/comments/models.py:70
|
#: contrib/comments/models.py:70
|
||||||
msgid "rating #1"
|
msgid "rating #1"
|
||||||
@ -69,20 +69,19 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/comments/models.py:83 contrib/comments/models.py:169
|
#: contrib/comments/models.py:83 contrib/comments/models.py:169
|
||||||
msgid "date/time submitted"
|
msgid "date/time submitted"
|
||||||
msgstr ""
|
msgstr "data/ora crearii"
|
||||||
|
|
||||||
#: contrib/comments/models.py:84 contrib/comments/models.py:170
|
#: contrib/comments/models.py:84 contrib/comments/models.py:170
|
||||||
msgid "is public"
|
msgid "is public"
|
||||||
msgstr ""
|
msgstr "public"
|
||||||
|
|
||||||
#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
|
#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
|
||||||
#, fuzzy
|
|
||||||
msgid "IP address"
|
msgid "IP address"
|
||||||
msgstr "adresa email"
|
msgstr "adresa ip"
|
||||||
|
|
||||||
#: contrib/comments/models.py:86
|
#: contrib/comments/models.py:86
|
||||||
msgid "is removed"
|
msgid "is removed"
|
||||||
msgstr ""
|
msgstr "sters"
|
||||||
|
|
||||||
#: contrib/comments/models.py:86
|
#: contrib/comments/models.py:86
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -122,7 +121,7 @@ msgstr "adresa email"
|
|||||||
|
|
||||||
#: contrib/comments/models.py:173
|
#: contrib/comments/models.py:173
|
||||||
msgid "approved by staff"
|
msgid "approved by staff"
|
||||||
msgstr ""
|
msgstr "aprobat de echipa"
|
||||||
|
|
||||||
#: contrib/comments/models.py:176
|
#: contrib/comments/models.py:176
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -282,9 +281,8 @@ msgid "Password:"
|
|||||||
msgstr "Parola:"
|
msgstr "Parola:"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/form.html:6
|
#: contrib/comments/templates/comments/form.html:6
|
||||||
#, fuzzy
|
|
||||||
msgid "Forgotten your password?"
|
msgid "Forgotten your password?"
|
||||||
msgstr "Schimbă-mi parola"
|
msgstr "Ai uitat parola?"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/form.html:8
|
#: contrib/comments/templates/comments/form.html:8
|
||||||
#: contrib/admin/templates/admin/object_history.html:3
|
#: contrib/admin/templates/admin/object_history.html:3
|
||||||
@ -338,9 +336,8 @@ msgid "Preview comment"
|
|||||||
msgstr "permite comentarii"
|
msgstr "permite comentarii"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/freeform.html:4
|
#: contrib/comments/templates/comments/freeform.html:4
|
||||||
#, fuzzy
|
|
||||||
msgid "Your name:"
|
msgid "Your name:"
|
||||||
msgstr "nume utilizator"
|
msgstr "numele dumneavoastra"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:40
|
#: contrib/admin/filterspecs.py:40
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -352,41 +349,39 @@ msgstr ""
|
|||||||
#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
|
#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
|
||||||
#: contrib/admin/filterspecs.py:143
|
#: contrib/admin/filterspecs.py:143
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr "tot"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:109
|
#: contrib/admin/filterspecs.py:109
|
||||||
msgid "Any date"
|
msgid "Any date"
|
||||||
msgstr ""
|
msgstr "orice data"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:110
|
#: contrib/admin/filterspecs.py:110
|
||||||
#, fuzzy
|
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Luni"
|
msgstr "Astazi"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:113
|
#: contrib/admin/filterspecs.py:113
|
||||||
msgid "Past 7 days"
|
msgid "Past 7 days"
|
||||||
msgstr ""
|
msgstr "Ultimele 7 zile"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:115
|
#: contrib/admin/filterspecs.py:115
|
||||||
msgid "This month"
|
msgid "This month"
|
||||||
msgstr ""
|
msgstr "Luna aceasta"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:117
|
#: contrib/admin/filterspecs.py:117
|
||||||
msgid "This year"
|
msgid "This year"
|
||||||
msgstr ""
|
msgstr "Anul acesta"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:143
|
#: contrib/admin/filterspecs.py:143
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr ""
|
msgstr "Da"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:143
|
#: contrib/admin/filterspecs.py:143
|
||||||
#, fuzzy
|
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Noi."
|
msgstr "Nu"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:150
|
#: contrib/admin/filterspecs.py:150
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr ""
|
msgstr "Necunoscut"
|
||||||
|
|
||||||
#: contrib/admin/models.py:16
|
#: contrib/admin/models.py:16
|
||||||
msgid "action time"
|
msgid "action time"
|
||||||
@ -418,7 +413,7 @@ msgstr "intrări log"
|
|||||||
|
|
||||||
#: contrib/admin/templatetags/admin_list.py:228
|
#: contrib/admin/templatetags/admin_list.py:228
|
||||||
msgid "All dates"
|
msgid "All dates"
|
||||||
msgstr ""
|
msgstr "Toate datele"
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
|
#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
|
||||||
#: contrib/auth/forms.py:41
|
#: contrib/auth/forms.py:41
|
||||||
@ -426,6 +421,8 @@ msgid ""
|
|||||||
"Please enter a correct username and password. Note that both fields are case-"
|
"Please enter a correct username and password. Note that both fields are case-"
|
||||||
"sensitive."
|
"sensitive."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Va rugam sa introduceti username-ul si parola corecta. Aveti grija deoarece"
|
||||||
|
"casutele sunt case sensitive."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:23
|
#: contrib/admin/views/decorators.py:23
|
||||||
#: contrib/admin/templates/admin/login.html:25
|
#: contrib/admin/templates/admin/login.html:25
|
||||||
@ -437,16 +434,21 @@ msgid ""
|
|||||||
"Please log in again, because your session has expired. Don't worry: Your "
|
"Please log in again, because your session has expired. Don't worry: Your "
|
||||||
"submission has been saved."
|
"submission has been saved."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Va rugam sa va inregistrati din nou, deoarece sesiunea a expirat. Nu va "
|
||||||
|
"faceti griji datele au fost salvate."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:68
|
#: contrib/admin/views/decorators.py:68
|
||||||
msgid ""
|
msgid ""
|
||||||
"Looks like your browser isn't configured to accept cookies. Please enable "
|
"Looks like your browser isn't configured to accept cookies. Please enable "
|
||||||
"cookies, reload this page, and try again."
|
"cookies, reload this page, and try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Se pare ca browserul dumneavostra nu este configurat sa accepte cookies. Va "
|
||||||
|
"rugam sa va setati browserul sa accepte cookies, dati un reload la pagina si "
|
||||||
|
"incercati din nou."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:82
|
#: contrib/admin/views/decorators.py:82
|
||||||
msgid "Usernames cannot contain the '@' character."
|
msgid "Usernames cannot contain the '@' character."
|
||||||
msgstr ""
|
msgstr "Username-ul nu are voie sa contina caracterul '@'."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:84
|
#: contrib/admin/views/decorators.py:84
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -461,61 +463,62 @@ msgstr "Administrare Django"
|
|||||||
#: contrib/admin/views/main.py:260
|
#: contrib/admin/views/main.py:260
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The %(name)s \"%(obj)s\" was added successfully."
|
msgid "The %(name)s \"%(obj)s\" was added successfully."
|
||||||
msgstr ""
|
msgstr "%(name)s \"%(obj)s\" a fost inserat cu succes."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348
|
#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348
|
||||||
msgid "You may edit it again below."
|
msgid "You may edit it again below."
|
||||||
msgstr ""
|
msgstr "Va puteti edita datele din nou mai jos."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
|
#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You may add another %s below."
|
msgid "You may add another %s below."
|
||||||
msgstr ""
|
msgstr "Mai puteti adauga un alt %s mai jos."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:290
|
#: contrib/admin/views/main.py:290
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Add %s"
|
msgid "Add %s"
|
||||||
msgstr "Adaugă"
|
msgstr "Adaugă %s"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:336
|
#: contrib/admin/views/main.py:336
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Added %s."
|
msgid "Added %s."
|
||||||
msgstr ""
|
msgstr "Adaugat %s."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
|
#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
|
||||||
#: contrib/admin/views/main.py:340
|
#: contrib/admin/views/main.py:340
|
||||||
msgid "and"
|
msgid "and"
|
||||||
msgstr ""
|
msgstr "si"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:338
|
#: contrib/admin/views/main.py:338
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Changed %s."
|
msgid "Changed %s."
|
||||||
msgstr "Schimbă"
|
msgstr "Schimbă %s."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:340
|
#: contrib/admin/views/main.py:340
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Deleted %s."
|
msgid "Deleted %s."
|
||||||
msgstr ""
|
msgstr "Am sters %s."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:343
|
#: contrib/admin/views/main.py:343
|
||||||
msgid "No fields changed."
|
msgid "No fields changed."
|
||||||
msgstr ""
|
msgstr "Nu s-a facut nicio schimbare."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:346
|
#: contrib/admin/views/main.py:346
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The %(name)s \"%(obj)s\" was changed successfully."
|
msgid "The %(name)s \"%(obj)s\" was changed successfully."
|
||||||
msgstr ""
|
msgstr "%(name)s \"%(obj)s\" au fost modificate cu succes."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:354
|
#: contrib/admin/views/main.py:354
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
|
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"%(name)s \"%(obj)s\" au fost adaugate cu succes. Le puteti edita mai jos."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:392
|
#: contrib/admin/views/main.py:392
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Change %s"
|
msgid "Change %s"
|
||||||
msgstr "Schimbă"
|
msgstr "Schimbă %s"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:470
|
#: contrib/admin/views/main.py:470
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -530,16 +533,16 @@ msgstr ""
|
|||||||
#: contrib/admin/views/main.py:508
|
#: contrib/admin/views/main.py:508
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
|
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
|
||||||
msgstr ""
|
msgstr "%(name)s \"%(obj)s\" au fost sterse cu succes."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:511
|
#: contrib/admin/views/main.py:511
|
||||||
msgid "Are you sure?"
|
msgid "Are you sure?"
|
||||||
msgstr ""
|
msgstr "Sunteti sigur?"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:533
|
#: contrib/admin/views/main.py:533
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Change history: %s"
|
msgid "Change history: %s"
|
||||||
msgstr "Schimbă parola"
|
msgstr "Schimbari facute: %s"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:565
|
#: contrib/admin/views/main.py:565
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -549,13 +552,13 @@ msgstr ""
|
|||||||
#: contrib/admin/views/main.py:565
|
#: contrib/admin/views/main.py:565
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Select %s to change"
|
msgid "Select %s to change"
|
||||||
msgstr ""
|
msgstr "Selecteaza %s pentru schimbare"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:277 contrib/admin/views/doc.py:286
|
#: contrib/admin/views/doc.py:277 contrib/admin/views/doc.py:286
|
||||||
#: contrib/admin/views/doc.py:288 contrib/admin/views/doc.py:294
|
#: contrib/admin/views/doc.py:288 contrib/admin/views/doc.py:294
|
||||||
#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:297
|
#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:297
|
||||||
msgid "Integer"
|
msgid "Integer"
|
||||||
msgstr ""
|
msgstr "Intreg"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:278
|
#: contrib/admin/views/doc.py:278
|
||||||
msgid "Boolean (Either True or False)"
|
msgid "Boolean (Either True or False)"
|
||||||
@ -564,26 +567,23 @@ msgstr ""
|
|||||||
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
|
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "String (up to %(maxlength)s)"
|
msgid "String (up to %(maxlength)s)"
|
||||||
msgstr ""
|
msgstr "String (pana la %(maxlength)s caractere)"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:280
|
#: contrib/admin/views/doc.py:280
|
||||||
msgid "Comma-separated integers"
|
msgid "Comma-separated integers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:281
|
#: contrib/admin/views/doc.py:281
|
||||||
#, fuzzy
|
|
||||||
msgid "Date (without time)"
|
msgid "Date (without time)"
|
||||||
msgstr "timp acţiune"
|
msgstr "Data (fara ora)"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:282
|
#: contrib/admin/views/doc.py:282
|
||||||
#, fuzzy
|
|
||||||
msgid "Date (with time)"
|
msgid "Date (with time)"
|
||||||
msgstr "Dată/oră"
|
msgstr "Data (cu ora)"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:283
|
#: contrib/admin/views/doc.py:283
|
||||||
#, fuzzy
|
|
||||||
msgid "E-mail address"
|
msgid "E-mail address"
|
||||||
msgstr "Adresa email:"
|
msgstr "Adresa email"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
|
#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
|
||||||
msgid "File path"
|
msgid "File path"
|
||||||
@ -603,9 +603,8 @@ msgid "Relation to parent model"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:293
|
#: contrib/admin/views/doc.py:293
|
||||||
#, fuzzy
|
|
||||||
msgid "Phone number"
|
msgid "Phone number"
|
||||||
msgstr "Introduceţi un număr întreg."
|
msgstr "Numar de telefon"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:298
|
#: contrib/admin/views/doc.py:298
|
||||||
msgid "Text"
|
msgid "Text"
|
||||||
@ -613,7 +612,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/views/doc.py:299
|
#: contrib/admin/views/doc.py:299
|
||||||
msgid "Time"
|
msgid "Time"
|
||||||
msgstr ""
|
msgstr "Timp"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
|
#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
|
||||||
msgid "URL"
|
msgid "URL"
|
||||||
@ -636,7 +635,7 @@ msgstr ""
|
|||||||
#: contrib/admin/templates/registration/password_change_form.html:3
|
#: contrib/admin/templates/registration/password_change_form.html:3
|
||||||
#: contrib/admin/templates/admin_doc/bookmarklets.html:3
|
#: contrib/admin/templates/admin_doc/bookmarklets.html:3
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr ""
|
msgstr "Documentatie"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/object_history.html:3
|
#: contrib/admin/templates/admin/object_history.html:3
|
||||||
#: contrib/admin/templates/admin/change_list.html:5
|
#: contrib/admin/templates/admin/change_list.html:5
|
||||||
@ -770,9 +769,9 @@ msgid "None available"
|
|||||||
msgstr "Indisponibil"
|
msgstr "Indisponibil"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/change_list.html:11
|
#: contrib/admin/templates/admin/change_list.html:11
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Add %(name)s"
|
msgid "Add %(name)s"
|
||||||
msgstr "Adaugă"
|
msgstr "Adaugă %(name)s"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/login.html:22
|
#: contrib/admin/templates/admin/login.html:22
|
||||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||||
@ -785,7 +784,7 @@ msgstr "Bine ai venit,"
|
|||||||
#: contrib/admin/templates/admin/delete_confirmation.html:9
|
#: contrib/admin/templates/admin/delete_confirmation.html:9
|
||||||
#: contrib/admin/templates/admin/submit_line.html:3
|
#: contrib/admin/templates/admin/submit_line.html:3
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr "Sterge"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -814,7 +813,7 @@ msgstr "Da, sînt sigur"
|
|||||||
#: contrib/admin/templates/admin/filter.html:2
|
#: contrib/admin/templates/admin/filter.html:2
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid " By %(title)s "
|
msgid " By %(title)s "
|
||||||
msgstr ""
|
msgstr " Dupa %(title)s "
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/search_form.html:8
|
#: contrib/admin/templates/admin/search_form.html:8
|
||||||
msgid "Go"
|
msgid "Go"
|
||||||
@ -827,33 +826,32 @@ msgstr ""
|
|||||||
#: contrib/admin/templates/admin/change_form.html:30
|
#: contrib/admin/templates/admin/change_form.html:30
|
||||||
msgid "Please correct the error below."
|
msgid "Please correct the error below."
|
||||||
msgid_plural "Please correct the errors below."
|
msgid_plural "Please correct the errors below."
|
||||||
msgstr[0] ""
|
msgstr[0] "Va rugam sa corectati eroarea de mai jos"
|
||||||
msgstr[1] ""
|
msgstr[1] "Va rugam sa corectati erorile de mai jos"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/change_form.html:48
|
#: contrib/admin/templates/admin/change_form.html:48
|
||||||
msgid "Ordering"
|
msgid "Ordering"
|
||||||
msgstr ""
|
msgstr "Ordonate dupa"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/change_form.html:51
|
#: contrib/admin/templates/admin/change_form.html:51
|
||||||
msgid "Order:"
|
msgid "Order:"
|
||||||
msgstr ""
|
msgstr "Ordonare:"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/submit_line.html:4
|
#: contrib/admin/templates/admin/submit_line.html:4
|
||||||
msgid "Save as new"
|
msgid "Save as new"
|
||||||
msgstr ""
|
msgstr "Salvati ca nou"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/submit_line.html:5
|
#: contrib/admin/templates/admin/submit_line.html:5
|
||||||
msgid "Save and add another"
|
msgid "Save and add another"
|
||||||
msgstr ""
|
msgstr "Salvati si adaugati altul"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/submit_line.html:6
|
#: contrib/admin/templates/admin/submit_line.html:6
|
||||||
msgid "Save and continue editing"
|
msgid "Save and continue editing"
|
||||||
msgstr ""
|
msgstr "Salvati si continuati"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/submit_line.html:7
|
#: contrib/admin/templates/admin/submit_line.html:7
|
||||||
#, fuzzy
|
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "activ"
|
msgstr "Salveaza"
|
||||||
|
|
||||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||||
@ -1133,24 +1131,20 @@ msgid "codename"
|
|||||||
msgstr "nume cod"
|
msgstr "nume cod"
|
||||||
|
|
||||||
#: contrib/auth/models.py:17
|
#: contrib/auth/models.py:17
|
||||||
#, fuzzy
|
|
||||||
msgid "permission"
|
msgid "permission"
|
||||||
msgstr "Permisiune"
|
msgstr "permisiune"
|
||||||
|
|
||||||
#: contrib/auth/models.py:18 contrib/auth/models.py:27
|
#: contrib/auth/models.py:18 contrib/auth/models.py:27
|
||||||
#, fuzzy
|
|
||||||
msgid "permissions"
|
msgid "permissions"
|
||||||
msgstr "Permisiuni"
|
msgstr "permisiuni"
|
||||||
|
|
||||||
#: contrib/auth/models.py:29
|
#: contrib/auth/models.py:29
|
||||||
#, fuzzy
|
|
||||||
msgid "group"
|
msgid "group"
|
||||||
msgstr "Grup"
|
msgstr "grup"
|
||||||
|
|
||||||
#: contrib/auth/models.py:30 contrib/auth/models.py:65
|
#: contrib/auth/models.py:30 contrib/auth/models.py:65
|
||||||
#, fuzzy
|
|
||||||
msgid "groups"
|
msgid "groups"
|
||||||
msgstr "Grupuri"
|
msgstr "grupuri"
|
||||||
|
|
||||||
#: contrib/auth/models.py:55
|
#: contrib/auth/models.py:55
|
||||||
msgid "username"
|
msgid "username"
|
||||||
@ -1209,19 +1203,16 @@ msgstr ""
|
|||||||
"permisiunile alocate fiecărui grup din care el/ea face parte."
|
"permisiunile alocate fiecărui grup din care el/ea face parte."
|
||||||
|
|
||||||
#: contrib/auth/models.py:67
|
#: contrib/auth/models.py:67
|
||||||
#, fuzzy
|
|
||||||
msgid "user permissions"
|
msgid "user permissions"
|
||||||
msgstr "Permisiuni"
|
msgstr "permisiuni utilizator"
|
||||||
|
|
||||||
#: contrib/auth/models.py:70
|
#: contrib/auth/models.py:70
|
||||||
#, fuzzy
|
|
||||||
msgid "user"
|
msgid "user"
|
||||||
msgstr "Utilizator"
|
msgstr "utilizator"
|
||||||
|
|
||||||
#: contrib/auth/models.py:71
|
#: contrib/auth/models.py:71
|
||||||
#, fuzzy
|
|
||||||
msgid "users"
|
msgid "users"
|
||||||
msgstr "Utilizatori"
|
msgstr "utilizatori"
|
||||||
|
|
||||||
#: contrib/auth/models.py:76
|
#: contrib/auth/models.py:76
|
||||||
msgid "Personal info"
|
msgid "Personal info"
|
||||||
@ -1240,15 +1231,16 @@ msgid "Groups"
|
|||||||
msgstr "Grupuri"
|
msgstr "Grupuri"
|
||||||
|
|
||||||
#: contrib/auth/models.py:219
|
#: contrib/auth/models.py:219
|
||||||
#, fuzzy
|
|
||||||
msgid "message"
|
msgid "message"
|
||||||
msgstr "Mesaj"
|
msgstr "mesaj"
|
||||||
|
|
||||||
#: contrib/auth/forms.py:30
|
#: contrib/auth/forms.py:30
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your Web browser doesn't appear to have cookies enabled. Cookies are "
|
"Your Web browser doesn't appear to have cookies enabled. Cookies are "
|
||||||
"required for logging in."
|
"required for logging in."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Se pare ca browserul dumneavoastra nu suporta cookies. Aveti nevoie de un "
|
||||||
|
"browser care suporta cookies ca sa va logati."
|
||||||
|
|
||||||
#: contrib/contenttypes/models.py:25
|
#: contrib/contenttypes/models.py:25
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1277,7 +1269,7 @@ msgstr "data expirare"
|
|||||||
|
|
||||||
#: contrib/sessions/models.py:41
|
#: contrib/sessions/models.py:41
|
||||||
msgid "session"
|
msgid "session"
|
||||||
msgstr "seiune"
|
msgstr "sesiune"
|
||||||
|
|
||||||
#: contrib/sessions/models.py:42
|
#: contrib/sessions/models.py:42
|
||||||
msgid "sessions"
|
msgid "sessions"
|
||||||
@ -1389,7 +1381,7 @@ msgstr "Decembrie"
|
|||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
msgid "jan"
|
msgid "jan"
|
||||||
msgstr ""
|
msgstr "ian"
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
msgid "feb"
|
msgid "feb"
|
||||||
@ -1404,17 +1396,16 @@ msgid "apr"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
#, fuzzy
|
|
||||||
msgid "may"
|
msgid "may"
|
||||||
msgstr "Mai"
|
msgstr "mai"
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
msgid "jun"
|
msgid "jun"
|
||||||
msgstr ""
|
msgstr "iun"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "jul"
|
msgid "jul"
|
||||||
msgstr ""
|
msgstr "iul"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "aug"
|
msgid "aug"
|
||||||
@ -1430,7 +1421,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "nov"
|
msgid "nov"
|
||||||
msgstr ""
|
msgstr "noi"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "dec"
|
msgid "dec"
|
||||||
@ -1467,40 +1458,38 @@ msgstr "Dec."
|
|||||||
#: utils/timesince.py:12
|
#: utils/timesince.py:12
|
||||||
msgid "year"
|
msgid "year"
|
||||||
msgid_plural "years"
|
msgid_plural "years"
|
||||||
msgstr[0] ""
|
msgstr[0] "an"
|
||||||
msgstr[1] ""
|
msgstr[1] "ani"
|
||||||
|
|
||||||
#: utils/timesince.py:13
|
#: utils/timesince.py:13
|
||||||
msgid "month"
|
msgid "month"
|
||||||
msgid_plural "months"
|
msgid_plural "months"
|
||||||
msgstr[0] ""
|
msgstr[0] "luna"
|
||||||
msgstr[1] ""
|
msgstr[1] "luni"
|
||||||
|
|
||||||
#: utils/timesince.py:14
|
#: utils/timesince.py:14
|
||||||
msgid "week"
|
msgid "week"
|
||||||
msgid_plural "weeks"
|
msgid_plural "weeks"
|
||||||
msgstr[0] ""
|
msgstr[0] "saptamana"
|
||||||
msgstr[1] ""
|
msgstr[1] "saptamani"
|
||||||
|
|
||||||
#: utils/timesince.py:15
|
#: utils/timesince.py:15
|
||||||
#, fuzzy
|
|
||||||
msgid "day"
|
msgid "day"
|
||||||
msgid_plural "days"
|
msgid_plural "days"
|
||||||
msgstr[0] "Mai"
|
msgstr[0] "zi"
|
||||||
msgstr[1] "Mai"
|
msgstr[1] "zile"
|
||||||
|
|
||||||
#: utils/timesince.py:16
|
#: utils/timesince.py:16
|
||||||
msgid "hour"
|
msgid "hour"
|
||||||
msgid_plural "hours"
|
msgid_plural "hours"
|
||||||
msgstr[0] ""
|
msgstr[0] "ora"
|
||||||
msgstr[1] ""
|
msgstr[1] "ore"
|
||||||
|
|
||||||
#: utils/timesince.py:17
|
#: utils/timesince.py:17
|
||||||
#, fuzzy
|
|
||||||
msgid "minute"
|
msgid "minute"
|
||||||
msgid_plural "minutes"
|
msgid_plural "minutes"
|
||||||
msgstr[0] "sit"
|
msgstr[0] "minut"
|
||||||
msgstr[1] "sit"
|
msgstr[1] "minute"
|
||||||
|
|
||||||
#: conf/global_settings.py:37
|
#: conf/global_settings.py:37
|
||||||
msgid "Bengali"
|
msgid "Bengali"
|
||||||
@ -1545,7 +1534,7 @@ msgstr "Galiciană"
|
|||||||
|
|
||||||
#: conf/global_settings.py:47
|
#: conf/global_settings.py:47
|
||||||
msgid "Hungarian"
|
msgid "Hungarian"
|
||||||
msgstr ""
|
msgstr "Ungara"
|
||||||
|
|
||||||
#: conf/global_settings.py:48
|
#: conf/global_settings.py:48
|
||||||
msgid "Hebrew"
|
msgid "Hebrew"
|
||||||
@ -1577,7 +1566,7 @@ msgstr "Braziliană"
|
|||||||
|
|
||||||
#: conf/global_settings.py:55
|
#: conf/global_settings.py:55
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr ""
|
msgstr "Romana"
|
||||||
|
|
||||||
#: conf/global_settings.py:56
|
#: conf/global_settings.py:56
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
@ -1750,7 +1739,7 @@ msgstr[1] "Îngrijiţi-vă limbajul! Cuvintele %s nu sînt permise aici."
|
|||||||
#: core/validators.py:236
|
#: core/validators.py:236
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "This field must match the '%s' field."
|
msgid "This field must match the '%s' field."
|
||||||
msgstr ""
|
msgstr "Acest camp trebuie sa fie identic cu '%s'."
|
||||||
|
|
||||||
#: core/validators.py:255
|
#: core/validators.py:255
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1897,9 +1886,8 @@ msgstr ""
|
|||||||
#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
|
#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
|
||||||
#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
|
#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
|
||||||
#: forms/__init__.py:346
|
#: forms/__init__.py:346
|
||||||
#, fuzzy
|
|
||||||
msgid "This field is required."
|
msgid "This field is required."
|
||||||
msgstr "Cîmpul este invalid."
|
msgstr "Campul acesta trebuie completat obligatoriu."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:337
|
#: db/models/fields/__init__.py:337
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1917,14 +1905,13 @@ msgid "This field cannot be null."
|
|||||||
msgstr "Cîmpul este invalid."
|
msgstr "Cîmpul este invalid."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:562
|
#: db/models/fields/__init__.py:562
|
||||||
#, fuzzy
|
|
||||||
msgid "Enter a valid filename."
|
msgid "Enter a valid filename."
|
||||||
msgstr "Introduceţi o adresă de email validă."
|
msgstr "Introduceti un nume de fisier valid."
|
||||||
|
|
||||||
#: db/models/fields/related.py:43
|
#: db/models/fields/related.py:43
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Please enter a valid %s."
|
msgid "Please enter a valid %s."
|
||||||
msgstr "Introduceţi vă rog o adresă IP validă."
|
msgstr "Introduceti va rog un %s valid."
|
||||||
|
|
||||||
#: db/models/fields/related.py:579
|
#: db/models/fields/related.py:579
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1953,6 +1940,7 @@ msgid "Ensure your text is less than %s character."
|
|||||||
msgid_plural "Ensure your text is less than %s characters."
|
msgid_plural "Ensure your text is less than %s characters."
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
"Va rugam asigurati-va ca textul dumneavoastra are mai putin de %s caractere."
|
||||||
|
|
||||||
#: forms/__init__.py:385
|
#: forms/__init__.py:385
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1966,7 +1954,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: forms/__init__.py:645
|
#: forms/__init__.py:645
|
||||||
msgid "The submitted file is empty."
|
msgid "The submitted file is empty."
|
||||||
msgstr ""
|
msgstr "Fisierul uploadat este gol"
|
||||||
|
|
||||||
#: forms/__init__.py:699
|
#: forms/__init__.py:699
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1985,7 +1973,7 @@ msgstr "Introduceţi un număr întreg."
|
|||||||
|
|
||||||
#: template/defaultfilters.py:379
|
#: template/defaultfilters.py:379
|
||||||
msgid "yes,no,maybe"
|
msgid "yes,no,maybe"
|
||||||
msgstr ""
|
msgstr "da,nu,poate"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Comments"
|
#~ msgid "Comments"
|
||||||
|
BIN
django/conf/locale/ro/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/ro/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
118
django/conf/locale/ro/LC_MESSAGES/djangojs.po
Normal file
118
django/conf/locale/ro/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2007-06-28 17:36+1000\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||||
|
#, perl-format
|
||||||
|
msgid "Available %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||||
|
msgid "Choose all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||||
|
msgid "Add"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||||
|
#, perl-format
|
||||||
|
msgid "Chosen %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||||
|
msgid "Select your choice(s) and click "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||||
|
msgid "Clear all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:32
|
||||||
|
#: contrib/admin/media/js/calendar.js:24
|
||||||
|
msgid ""
|
||||||
|
"January February March April May June July August September October November "
|
||||||
|
"December"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:33
|
||||||
|
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/calendar.js:25
|
||||||
|
msgid "S M T W T F S"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||||
|
msgid "Now"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||||
|
msgid "Clock"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||||
|
msgid "Choose a time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||||
|
msgid "Midnight"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||||
|
msgid "6 a.m."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||||
|
msgid "Noon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||||
|
msgid "Today"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||||
|
msgid "Calendar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||||
|
msgid "Yesterday"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||||
|
msgid "Tomorrow"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||||
|
msgid "Show"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||||
|
msgid "Hide"
|
||||||
|
msgstr ""
|
BIN
django/conf/locale/uk/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/uk/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
118
django/conf/locale/uk/LC_MESSAGES/djangojs.po
Normal file
118
django/conf/locale/uk/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2007-06-28 17:36+1000\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||||
|
#, perl-format
|
||||||
|
msgid "Available %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||||
|
msgid "Choose all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||||
|
msgid "Add"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||||
|
#, perl-format
|
||||||
|
msgid "Chosen %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||||
|
msgid "Select your choice(s) and click "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||||
|
msgid "Clear all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:32
|
||||||
|
#: contrib/admin/media/js/calendar.js:24
|
||||||
|
msgid ""
|
||||||
|
"January February March April May June July August September October November "
|
||||||
|
"December"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:33
|
||||||
|
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/calendar.js:25
|
||||||
|
msgid "S M T W T F S"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||||
|
msgid "Now"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||||
|
msgid "Clock"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||||
|
msgid "Choose a time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||||
|
msgid "Midnight"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||||
|
msgid "6 a.m."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||||
|
msgid "Noon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||||
|
msgid "Today"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||||
|
msgid "Calendar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||||
|
msgid "Yesterday"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||||
|
msgid "Tomorrow"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||||
|
msgid "Show"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||||
|
msgid "Hide"
|
||||||
|
msgstr ""
|
BIN
django/conf/locale/zh_TW/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/zh_TW/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
118
django/conf/locale/zh_TW/LC_MESSAGES/djangojs.po
Normal file
118
django/conf/locale/zh_TW/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2007-06-28 17:36+1000\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||||
|
#, perl-format
|
||||||
|
msgid "Available %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||||
|
msgid "Choose all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||||
|
msgid "Add"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||||
|
#, perl-format
|
||||||
|
msgid "Chosen %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||||
|
msgid "Select your choice(s) and click "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||||
|
msgid "Clear all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:32
|
||||||
|
#: contrib/admin/media/js/calendar.js:24
|
||||||
|
msgid ""
|
||||||
|
"January February March April May June July August September October November "
|
||||||
|
"December"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:33
|
||||||
|
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/calendar.js:25
|
||||||
|
msgid "S M T W T F S"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||||
|
msgid "Now"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||||
|
msgid "Clock"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||||
|
msgid "Choose a time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||||
|
msgid "Midnight"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||||
|
msgid "6 a.m."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||||
|
msgid "Noon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||||
|
msgid "Today"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||||
|
msgid "Calendar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||||
|
msgid "Yesterday"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||||
|
msgid "Tomorrow"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||||
|
msgid "Show"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||||
|
msgid "Hide"
|
||||||
|
msgstr ""
|
@ -9,7 +9,7 @@ ADMINS = (
|
|||||||
|
|
||||||
MANAGERS = ADMINS
|
MANAGERS = ADMINS
|
||||||
|
|
||||||
DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
|
DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
|
||||||
DATABASE_NAME = '' # Or path to database file if using sqlite3.
|
DATABASE_NAME = '' # Or path to database file if using sqlite3.
|
||||||
DATABASE_USER = '' # Not used with sqlite3.
|
DATABASE_USER = '' # Not used with sqlite3.
|
||||||
DATABASE_PASSWORD = '' # Not used with sqlite3.
|
DATABASE_PASSWORD = '' # Not used with sqlite3.
|
||||||
|
@ -4,10 +4,13 @@ Tools for sending email.
|
|||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils.encoding import smart_str, force_unicode
|
from django.utils.encoding import smart_str, force_unicode
|
||||||
|
from email import Charset, Encoders
|
||||||
from email.MIMEText import MIMEText
|
from email.MIMEText import MIMEText
|
||||||
|
from email.MIMEMultipart import MIMEMultipart
|
||||||
|
from email.MIMEBase import MIMEBase
|
||||||
from email.Header import Header
|
from email.Header import Header
|
||||||
from email.Utils import formatdate, parseaddr, formataddr
|
from email.Utils import formatdate, parseaddr, formataddr
|
||||||
from email import Charset
|
import mimetypes
|
||||||
import os
|
import os
|
||||||
import smtplib
|
import smtplib
|
||||||
import socket
|
import socket
|
||||||
@ -18,6 +21,10 @@ import random
|
|||||||
# some spam filters.
|
# some spam filters.
|
||||||
Charset.add_charset('utf-8', Charset.SHORTEST, Charset.QP, 'utf-8')
|
Charset.add_charset('utf-8', Charset.SHORTEST, Charset.QP, 'utf-8')
|
||||||
|
|
||||||
|
# Default MIME type to use on attachments (if it is not explicitly given
|
||||||
|
# and cannot be guessed).
|
||||||
|
DEFAULT_ATTACHMENT_MIME_TYPE = 'application/octet-stream'
|
||||||
|
|
||||||
# Cache the hostname, but do it lazily: socket.getfqdn() can take a couple of
|
# Cache the hostname, but do it lazily: socket.getfqdn() can take a couple of
|
||||||
# seconds, which slows down the restart of the server.
|
# seconds, which slows down the restart of the server.
|
||||||
class CachedDnsName(object):
|
class CachedDnsName(object):
|
||||||
@ -56,7 +63,7 @@ def make_msgid(idstring=None):
|
|||||||
class BadHeaderError(ValueError):
|
class BadHeaderError(ValueError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class SafeMIMEText(MIMEText):
|
class SafeHeaderMixin(object):
|
||||||
def __setitem__(self, name, val):
|
def __setitem__(self, name, val):
|
||||||
"Forbids multi-line headers, to prevent header injection."
|
"Forbids multi-line headers, to prevent header injection."
|
||||||
if '\n' in val or '\r' in val:
|
if '\n' in val or '\r' in val:
|
||||||
@ -73,7 +80,15 @@ class SafeMIMEText(MIMEText):
|
|||||||
val = ', '.join(result)
|
val = ', '.join(result)
|
||||||
else:
|
else:
|
||||||
val = Header(force_unicode(val), settings.DEFAULT_CHARSET)
|
val = Header(force_unicode(val), settings.DEFAULT_CHARSET)
|
||||||
MIMEText.__setitem__(self, name, val)
|
# Note: using super() here is safe; any __setitem__ overrides must use
|
||||||
|
# the same argument signature.
|
||||||
|
super(SafeHeaderMixin, self).__setitem__(name, val)
|
||||||
|
|
||||||
|
class SafeMIMEText(MIMEText, SafeHeaderMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class SafeMIMEMultipart(MIMEMultipart, SafeHeaderMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
class SMTPConnection(object):
|
class SMTPConnection(object):
|
||||||
"""
|
"""
|
||||||
@ -165,7 +180,12 @@ class EmailMessage(object):
|
|||||||
"""
|
"""
|
||||||
A container for email information.
|
A container for email information.
|
||||||
"""
|
"""
|
||||||
def __init__(self, subject='', body='', from_email=None, to=None, bcc=None, connection=None):
|
content_subtype = 'plain'
|
||||||
|
multipart_subtype = 'mixed'
|
||||||
|
encoding = None # None => use settings default
|
||||||
|
|
||||||
|
def __init__(self, subject='', body='', from_email=None, to=None, bcc=None,
|
||||||
|
connection=None, attachments=None, headers=None):
|
||||||
"""
|
"""
|
||||||
Initialise a single email message (which can be sent to multiple
|
Initialise a single email message (which can be sent to multiple
|
||||||
recipients).
|
recipients).
|
||||||
@ -179,6 +199,8 @@ class EmailMessage(object):
|
|||||||
self.from_email = from_email or settings.DEFAULT_FROM_EMAIL
|
self.from_email = from_email or settings.DEFAULT_FROM_EMAIL
|
||||||
self.subject = subject
|
self.subject = subject
|
||||||
self.body = body
|
self.body = body
|
||||||
|
self.attachments = attachments or []
|
||||||
|
self.extra_headers = headers or {}
|
||||||
self.connection = connection
|
self.connection = connection
|
||||||
|
|
||||||
def get_connection(self, fail_silently=False):
|
def get_connection(self, fail_silently=False):
|
||||||
@ -187,7 +209,18 @@ class EmailMessage(object):
|
|||||||
return self.connection
|
return self.connection
|
||||||
|
|
||||||
def message(self):
|
def message(self):
|
||||||
msg = SafeMIMEText(smart_str(self.body, settings.DEFAULT_CHARSET), 'plain', settings.DEFAULT_CHARSET)
|
encoding = self.encoding or settings.DEFAULT_CHARSET
|
||||||
|
msg = SafeMIMEText(smart_str(self.body, settings.DEFAULT_CHARSET), self.content_subtype, encoding)
|
||||||
|
if self.attachments:
|
||||||
|
body_msg = msg
|
||||||
|
msg = SafeMIMEMultipart(_subtype=self.multipart_subtype)
|
||||||
|
if self.body:
|
||||||
|
msg.attach(body_msg)
|
||||||
|
for attachment in self.attachments:
|
||||||
|
if isinstance(attachment, MIMEBase):
|
||||||
|
msg.attach(attachment)
|
||||||
|
else:
|
||||||
|
msg.attach(self._create_attachment(*attachment))
|
||||||
msg['Subject'] = self.subject
|
msg['Subject'] = self.subject
|
||||||
msg['From'] = self.from_email
|
msg['From'] = self.from_email
|
||||||
msg['To'] = ', '.join(self.to)
|
msg['To'] = ', '.join(self.to)
|
||||||
@ -195,6 +228,8 @@ class EmailMessage(object):
|
|||||||
msg['Message-ID'] = make_msgid()
|
msg['Message-ID'] = make_msgid()
|
||||||
if self.bcc:
|
if self.bcc:
|
||||||
msg['Bcc'] = ', '.join(self.bcc)
|
msg['Bcc'] = ', '.join(self.bcc)
|
||||||
|
for name, value in self.extra_headers.items():
|
||||||
|
msg[name] = value
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
def recipients(self):
|
def recipients(self):
|
||||||
@ -208,6 +243,61 @@ class EmailMessage(object):
|
|||||||
"""Send the email message."""
|
"""Send the email message."""
|
||||||
return self.get_connection(fail_silently).send_messages([self])
|
return self.get_connection(fail_silently).send_messages([self])
|
||||||
|
|
||||||
|
def attach(self, filename=None, content=None, mimetype=None):
|
||||||
|
"""
|
||||||
|
Attaches a file with the given filename and content. The filename can
|
||||||
|
be omitted (useful for multipart/alternative messages) and the mimetype
|
||||||
|
is guessed, if not provided.
|
||||||
|
|
||||||
|
If the first parameter is a MIMEBase subclass it is inserted directly
|
||||||
|
into the resulting message attachments.
|
||||||
|
"""
|
||||||
|
if isinstance(filename, MIMEBase):
|
||||||
|
assert content == mimetype == None
|
||||||
|
self.attachements.append(filename)
|
||||||
|
else:
|
||||||
|
assert content is not None
|
||||||
|
self.attachments.append((filename, content, mimetype))
|
||||||
|
|
||||||
|
def attach_file(self, path, mimetype=None):
|
||||||
|
"""Attaches a file from the filesystem."""
|
||||||
|
filename = os.path.basename(path)
|
||||||
|
content = open(path, 'rb').read()
|
||||||
|
self.attach(filename, content, mimetype)
|
||||||
|
|
||||||
|
def _create_attachment(self, filename, content, mimetype=None):
|
||||||
|
"""
|
||||||
|
Convert the filename, content, mimetype triple into a MIME attachment
|
||||||
|
object.
|
||||||
|
"""
|
||||||
|
if mimetype is None:
|
||||||
|
mimetype, _ = mimetypes.guess_type(filename)
|
||||||
|
if mimetype is None:
|
||||||
|
mimetype = DEFAULT_ATTACHMENT_MIME_TYPE
|
||||||
|
basetype, subtype = mimetype.split('/', 1)
|
||||||
|
if basetype == 'text':
|
||||||
|
attachment = SafeMIMEText(content, subtype, settings.DEFAULT_CHARSET)
|
||||||
|
else:
|
||||||
|
# Encode non-text attachments with base64.
|
||||||
|
attachment = MIMEBase(basetype, subtype)
|
||||||
|
attachment.set_payload(content)
|
||||||
|
Encoders.encode_base64(attachment)
|
||||||
|
if filename:
|
||||||
|
attachment.add_header('Content-Disposition', 'attachment', filename=filename)
|
||||||
|
return attachment
|
||||||
|
|
||||||
|
class EmailMultiAlternatives(EmailMessage):
|
||||||
|
"""
|
||||||
|
A version of EmailMessage that makes it easy to send multipart/alternative
|
||||||
|
messages. For example, including text and HTML versions of the text is
|
||||||
|
made easier.
|
||||||
|
"""
|
||||||
|
multipart_subtype = 'alternative'
|
||||||
|
|
||||||
|
def attach_alternative(self, content, mimetype=None):
|
||||||
|
"""Attach an alternative content representation."""
|
||||||
|
self.attach(content=content, mimetype=mimetype)
|
||||||
|
|
||||||
def send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None):
|
def send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None):
|
||||||
"""
|
"""
|
||||||
Easy wrapper for sending a single message to a recipient list. All members
|
Easy wrapper for sending a single message to a recipient list. All members
|
||||||
|
@ -202,7 +202,7 @@ class RegexURLResolver(object):
|
|||||||
self._reverse_dict = {}
|
self._reverse_dict = {}
|
||||||
|
|
||||||
def _get_reverse_dict(self):
|
def _get_reverse_dict(self):
|
||||||
if not self._reverse_dict:
|
if not self._reverse_dict and hasattr(self.urlconf_module, 'urlpatterns'):
|
||||||
for pattern in reversed(self.urlconf_module.urlpatterns):
|
for pattern in reversed(self.urlconf_module.urlpatterns):
|
||||||
if isinstance(pattern, RegexURLResolver):
|
if isinstance(pattern, RegexURLResolver):
|
||||||
for key, value in pattern.reverse_dict.iteritems():
|
for key, value in pattern.reverse_dict.iteritems():
|
||||||
|
@ -41,11 +41,16 @@ dictfetchall = complain
|
|||||||
get_last_insert_id = complain
|
get_last_insert_id = complain
|
||||||
get_date_extract_sql = complain
|
get_date_extract_sql = complain
|
||||||
get_date_trunc_sql = complain
|
get_date_trunc_sql = complain
|
||||||
|
get_datetime_cast_sql = complain
|
||||||
get_limit_offset_sql = complain
|
get_limit_offset_sql = complain
|
||||||
get_random_function_sql = complain
|
get_random_function_sql = complain
|
||||||
get_deferrable_sql = complain
|
get_deferrable_sql = complain
|
||||||
get_fulltext_search_sql = complain
|
get_fulltext_search_sql = complain
|
||||||
get_drop_foreignkey_sql = complain
|
get_drop_foreignkey_sql = complain
|
||||||
|
get_pk_default_value = complain
|
||||||
|
get_max_name_length = ignore
|
||||||
|
get_start_transaction_sql = complain
|
||||||
|
get_autoinc_sql = complain
|
||||||
get_sql_flush = complain
|
get_sql_flush = complain
|
||||||
get_sql_sequence_reset = complain
|
get_sql_sequence_reset = complain
|
||||||
|
|
||||||
|
@ -247,6 +247,8 @@ OPERATOR_MAPPING = {
|
|||||||
'iexact': 'LIKE %s',
|
'iexact': 'LIKE %s',
|
||||||
'contains': 'LIKE BINARY %s',
|
'contains': 'LIKE BINARY %s',
|
||||||
'icontains': 'LIKE %s',
|
'icontains': 'LIKE %s',
|
||||||
|
'regex': 'REGEXP BINARY %s',
|
||||||
|
'iregex': 'REGEXP %s',
|
||||||
'gt': '> %s',
|
'gt': '> %s',
|
||||||
'gte': '>= %s',
|
'gte': '>= %s',
|
||||||
'lt': '< %s',
|
'lt': '< %s',
|
||||||
|
@ -250,6 +250,8 @@ OPERATOR_MAPPING = {
|
|||||||
'iexact': 'LIKE %s',
|
'iexact': 'LIKE %s',
|
||||||
'contains': 'LIKE BINARY %s',
|
'contains': 'LIKE BINARY %s',
|
||||||
'icontains': 'LIKE %s',
|
'icontains': 'LIKE %s',
|
||||||
|
'regex': 'REGEXP BINARY %s',
|
||||||
|
'iregex': 'REGEXP %s',
|
||||||
'gt': '> %s',
|
'gt': '> %s',
|
||||||
'gte': '>= %s',
|
'gte': '>= %s',
|
||||||
'lt': '< %s',
|
'lt': '< %s',
|
||||||
|
@ -300,6 +300,8 @@ OPERATOR_MAPPING = {
|
|||||||
'iexact': 'ILIKE %s',
|
'iexact': 'ILIKE %s',
|
||||||
'contains': 'LIKE %s',
|
'contains': 'LIKE %s',
|
||||||
'icontains': 'ILIKE %s',
|
'icontains': 'ILIKE %s',
|
||||||
|
'regex': '~ %s',
|
||||||
|
'iregex': '~* %s',
|
||||||
'gt': '> %s',
|
'gt': '> %s',
|
||||||
'gte': '>= %s',
|
'gte': '>= %s',
|
||||||
'lt': '< %s',
|
'lt': '< %s',
|
||||||
|
@ -229,6 +229,8 @@ OPERATOR_MAPPING = {
|
|||||||
'iexact': 'ILIKE %s',
|
'iexact': 'ILIKE %s',
|
||||||
'contains': 'LIKE %s',
|
'contains': 'LIKE %s',
|
||||||
'icontains': 'ILIKE %s',
|
'icontains': 'ILIKE %s',
|
||||||
|
'regex': '~ %s',
|
||||||
|
'iregex': '~* %s',
|
||||||
'gt': '> %s',
|
'gt': '> %s',
|
||||||
'gte': '>= %s',
|
'gte': '>= %s',
|
||||||
'lt': '< %s',
|
'lt': '< %s',
|
||||||
|
@ -56,9 +56,10 @@ class DatabaseWrapper(local):
|
|||||||
}
|
}
|
||||||
kwargs.update(self.options)
|
kwargs.update(self.options)
|
||||||
self.connection = Database.connect(**kwargs)
|
self.connection = Database.connect(**kwargs)
|
||||||
# Register extract and date_trunc functions.
|
# Register extract, date_trunc, and regexp functions.
|
||||||
self.connection.create_function("django_extract", 2, _sqlite_extract)
|
self.connection.create_function("django_extract", 2, _sqlite_extract)
|
||||||
self.connection.create_function("django_date_trunc", 2, _sqlite_date_trunc)
|
self.connection.create_function("django_date_trunc", 2, _sqlite_date_trunc)
|
||||||
|
self.connection.create_function("regexp", 2, _sqlite_regexp)
|
||||||
cursor = self.connection.cursor(factory=SQLiteCursorWrapper)
|
cursor = self.connection.cursor(factory=SQLiteCursorWrapper)
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
return util.CursorDebugWrapper(cursor, self)
|
return util.CursorDebugWrapper(cursor, self)
|
||||||
@ -206,6 +207,13 @@ def _sqlite_date_trunc(lookup_type, dt):
|
|||||||
elif lookup_type == 'day':
|
elif lookup_type == 'day':
|
||||||
return "%i-%02i-%02i 00:00:00" % (dt.year, dt.month, dt.day)
|
return "%i-%02i-%02i 00:00:00" % (dt.year, dt.month, dt.day)
|
||||||
|
|
||||||
|
def _sqlite_regexp(re_pattern, re_string):
|
||||||
|
import re
|
||||||
|
try:
|
||||||
|
return bool(re.search(re_pattern, re_string))
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
|
||||||
# SQLite requires LIKE statements to include an ESCAPE clause if the value
|
# SQLite requires LIKE statements to include an ESCAPE clause if the value
|
||||||
# being escaped has a percent or underscore in it.
|
# being escaped has a percent or underscore in it.
|
||||||
# See http://www.sqlite.org/lang_expr.html for an explanation.
|
# See http://www.sqlite.org/lang_expr.html for an explanation.
|
||||||
@ -214,6 +222,8 @@ OPERATOR_MAPPING = {
|
|||||||
'iexact': "LIKE %s ESCAPE '\\'",
|
'iexact': "LIKE %s ESCAPE '\\'",
|
||||||
'contains': "LIKE %s ESCAPE '\\'",
|
'contains': "LIKE %s ESCAPE '\\'",
|
||||||
'icontains': "LIKE %s ESCAPE '\\'",
|
'icontains': "LIKE %s ESCAPE '\\'",
|
||||||
|
'regex': 'REGEXP %s',
|
||||||
|
'iregex': "REGEXP '(?i)' || %s",
|
||||||
'gt': '> %s',
|
'gt': '> %s',
|
||||||
'gte': '>= %s',
|
'gte': '>= %s',
|
||||||
'lt': '< %s',
|
'lt': '< %s',
|
||||||
|
@ -175,7 +175,7 @@ class Field(object):
|
|||||||
|
|
||||||
def get_db_prep_lookup(self, lookup_type, value):
|
def get_db_prep_lookup(self, lookup_type, value):
|
||||||
"Returns field's value prepared for database lookup."
|
"Returns field's value prepared for database lookup."
|
||||||
if lookup_type in ('exact', 'gt', 'gte', 'lt', 'lte', 'month', 'day', 'search'):
|
if lookup_type in ('exact', 'regex', 'iregex', 'gt', 'gte', 'lt', 'lte', 'month', 'day', 'search'):
|
||||||
return [value]
|
return [value]
|
||||||
elif lookup_type in ('range', 'in'):
|
elif lookup_type in ('range', 'in'):
|
||||||
return value
|
return value
|
||||||
@ -801,6 +801,7 @@ class IntegerField(Field):
|
|||||||
return super(IntegerField, self).formfield(**defaults)
|
return super(IntegerField, self).formfield(**defaults)
|
||||||
|
|
||||||
class IPAddressField(Field):
|
class IPAddressField(Field):
|
||||||
|
empty_strings_allowed = False
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
kwargs['maxlength'] = 15
|
kwargs['maxlength'] = 15
|
||||||
Field.__init__(self, *args, **kwargs)
|
Field.__init__(self, *args, **kwargs)
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
from django.conf import settings
|
||||||
from django.db import backend, connection, transaction
|
from django.db import backend, connection, transaction
|
||||||
from django.db.models.fields import DateField, FieldDoesNotExist
|
from django.db.models.fields import DateField, FieldDoesNotExist
|
||||||
from django.db.models import signals, loading
|
from django.db.models import signals, loading
|
||||||
@ -23,6 +24,7 @@ QUERY_TERMS = (
|
|||||||
'gt', 'gte', 'lt', 'lte', 'in',
|
'gt', 'gte', 'lt', 'lte', 'in',
|
||||||
'startswith', 'istartswith', 'endswith', 'iendswith',
|
'startswith', 'istartswith', 'endswith', 'iendswith',
|
||||||
'range', 'year', 'month', 'day', 'isnull', 'search',
|
'range', 'year', 'month', 'day', 'isnull', 'search',
|
||||||
|
'regex', 'iregex',
|
||||||
)
|
)
|
||||||
|
|
||||||
# Size of each "chunk" for get_iterator calls.
|
# Size of each "chunk" for get_iterator calls.
|
||||||
@ -798,6 +800,15 @@ def get_where_clause(lookup_type, table_prefix, field_name, value):
|
|||||||
return "%s%s IS %sNULL" % (table_prefix, field_name, (not value and 'NOT ' or ''))
|
return "%s%s IS %sNULL" % (table_prefix, field_name, (not value and 'NOT ' or ''))
|
||||||
elif lookup_type == 'search':
|
elif lookup_type == 'search':
|
||||||
return backend.get_fulltext_search_sql(table_prefix + field_name)
|
return backend.get_fulltext_search_sql(table_prefix + field_name)
|
||||||
|
elif lookup_type in ('regex', 'iregex'):
|
||||||
|
if settings.DATABASE_ENGINE == 'oracle':
|
||||||
|
if lookup_type == 'regex':
|
||||||
|
match_option = 'c'
|
||||||
|
else:
|
||||||
|
match_option = 'i'
|
||||||
|
return "REGEXP_LIKE(%s%s, %s, '%s')" % (table_prefix, field_name, cast_sql, match_option)
|
||||||
|
else:
|
||||||
|
raise NotImplementedError
|
||||||
raise TypeError, "Got invalid lookup_type: %s" % repr(lookup_type)
|
raise TypeError, "Got invalid lookup_type: %s" % repr(lookup_type)
|
||||||
|
|
||||||
def get_cached_row(klass, row, index_start, max_depth=0, cur_depth=0):
|
def get_cached_row(klass, row, index_start, max_depth=0, cur_depth=0):
|
||||||
|
@ -214,7 +214,7 @@ class HttpResponse(object):
|
|||||||
|
|
||||||
status_code = 200
|
status_code = 200
|
||||||
|
|
||||||
def __init__(self, content='', mimetype=None):
|
def __init__(self, content='', mimetype=None, status=None):
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
self._charset = settings.DEFAULT_CHARSET
|
self._charset = settings.DEFAULT_CHARSET
|
||||||
if not mimetype:
|
if not mimetype:
|
||||||
@ -227,6 +227,8 @@ class HttpResponse(object):
|
|||||||
self._is_string = True
|
self._is_string = True
|
||||||
self.headers = {'Content-Type': mimetype}
|
self.headers = {'Content-Type': mimetype}
|
||||||
self.cookies = SimpleCookie()
|
self.cookies = SimpleCookie()
|
||||||
|
if status:
|
||||||
|
self.status_code = status
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
"Full HTTP message, including headers"
|
"Full HTTP message, including headers"
|
||||||
|
@ -482,17 +482,18 @@ class ComboField(Field):
|
|||||||
|
|
||||||
class MultiValueField(Field):
|
class MultiValueField(Field):
|
||||||
"""
|
"""
|
||||||
A Field that is composed of multiple Fields.
|
A Field that aggregates the logic of multiple Fields.
|
||||||
|
|
||||||
Its clean() method takes a "decompressed" list of values. Each value in
|
Its clean() method takes a "decompressed" list of values, which are then
|
||||||
|
cleaned into a single value according to self.fields. Each value in
|
||||||
this list is cleaned by the corresponding field -- the first value is
|
this list is cleaned by the corresponding field -- the first value is
|
||||||
cleaned by the first field, the second value is cleaned by the second
|
cleaned by the first field, the second value is cleaned by the second
|
||||||
field, etc. Once all fields are cleaned, the list of clean values is
|
field, etc. Once all fields are cleaned, the list of clean values is
|
||||||
"compressed" into a single value.
|
"compressed" into a single value.
|
||||||
|
|
||||||
Subclasses should implement compress(), which specifies how a list of
|
Subclasses should not have to implement clean(). Instead, they must
|
||||||
valid values should be converted to a single value. Subclasses should not
|
implement compress(), which takes a list of valid values and returns a
|
||||||
have to implement clean().
|
"compressed" version of those values -- a single value.
|
||||||
|
|
||||||
You'll probably want to use this with MultiWidget.
|
You'll probably want to use this with MultiWidget.
|
||||||
"""
|
"""
|
||||||
|
@ -304,19 +304,28 @@ class MultiWidget(Widget):
|
|||||||
"""
|
"""
|
||||||
A widget that is composed of multiple widgets.
|
A widget that is composed of multiple widgets.
|
||||||
|
|
||||||
Its render() method takes a "decompressed" list of values, not a single
|
Its render() method is different than other widgets', because it has to
|
||||||
value. Each value in this list is rendered in the corresponding widget --
|
figure out how to split a single value for display in multiple widgets.
|
||||||
the first value is rendered in the first widget, the second value is
|
The ``value`` argument can be one of two things:
|
||||||
rendered in the second widget, etc.
|
|
||||||
|
|
||||||
Subclasses should implement decompress(), which specifies how a single
|
* A list.
|
||||||
value should be converted to a list of values. Subclasses should not
|
* A normal value (e.g., a string) that has been "compressed" from
|
||||||
have to implement clean().
|
a list of values.
|
||||||
|
|
||||||
|
In the second case -- i.e., if the value is NOT a list -- render() will
|
||||||
|
first "decompress" the value into a list before rendering it. It does so by
|
||||||
|
calling the decompress() method, which MultiWidget subclasses must
|
||||||
|
implement. This method takes a single "compressed" value and returns a
|
||||||
|
list.
|
||||||
|
|
||||||
|
When render() does its HTML rendering, each value in the list is rendered
|
||||||
|
with the corresponding widget -- the first value is rendered in the first
|
||||||
|
widget, the second value is rendered in the second widget, etc.
|
||||||
|
|
||||||
Subclasses may implement format_output(), which takes the list of rendered
|
Subclasses may implement format_output(), which takes the list of rendered
|
||||||
widgets and returns HTML that formats them any way you'd like.
|
widgets and returns a string of HTML that formats them any way you'd like.
|
||||||
|
|
||||||
You'll probably want to use this with MultiValueField.
|
You'll probably want to use this class with MultiValueField.
|
||||||
"""
|
"""
|
||||||
def __init__(self, widgets, attrs=None):
|
def __init__(self, widgets, attrs=None):
|
||||||
self.widgets = [isinstance(w, type) and w() or w for w in widgets]
|
self.widgets = [isinstance(w, type) and w() or w for w in widgets]
|
||||||
@ -351,6 +360,13 @@ class MultiWidget(Widget):
|
|||||||
return [widget.value_from_datadict(data, name + '_%s' % i) for i, widget in enumerate(self.widgets)]
|
return [widget.value_from_datadict(data, name + '_%s' % i) for i, widget in enumerate(self.widgets)]
|
||||||
|
|
||||||
def format_output(self, rendered_widgets):
|
def format_output(self, rendered_widgets):
|
||||||
|
"""
|
||||||
|
Given a list of rendered widgets (as strings), returns a Unicode string
|
||||||
|
representing the HTML for the whole lot.
|
||||||
|
|
||||||
|
This hook allows you to format the HTML design of the widgets, if
|
||||||
|
needed.
|
||||||
|
"""
|
||||||
return u''.join(rendered_widgets)
|
return u''.join(rendered_widgets)
|
||||||
|
|
||||||
def decompress(self, value):
|
def decompress(self, value):
|
||||||
|
@ -325,7 +325,7 @@ Manually checking a user's password
|
|||||||
|
|
||||||
If you'd like to manually authenticate a user by comparing a
|
If you'd like to manually authenticate a user by comparing a
|
||||||
plain-text password to the hashed password in the database, use the
|
plain-text password to the hashed password in the database, use the
|
||||||
convenience function `django.contrib.auth.models.check_password`. It
|
convenience function ``django.contrib.auth.models.check_password``. It
|
||||||
takes two arguments: the plain-text password to check, and the full
|
takes two arguments: the plain-text password to check, and the full
|
||||||
value of a user's ``password`` field in the database to check against,
|
value of a user's ``password`` field in the database to check against,
|
||||||
and returns ``True`` if they match, ``False`` otherwise.
|
and returns ``True`` if they match, ``False`` otherwise.
|
||||||
@ -461,7 +461,7 @@ block::
|
|||||||
Other built-in views
|
Other built-in views
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
In addition to the `login` view, the authentication system includes a
|
In addition to the ``login`` view, the authentication system includes a
|
||||||
few other useful built-in views:
|
few other useful built-in views:
|
||||||
|
|
||||||
``django.contrib.auth.views.logout``
|
``django.contrib.auth.views.logout``
|
||||||
|
@ -383,6 +383,65 @@ Model style
|
|||||||
('F', 'Female'),
|
('F', 'Female'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Documentation style
|
||||||
|
===================
|
||||||
|
|
||||||
|
We place a high importance on consistency and readability of documentation.
|
||||||
|
(After all, Django was created in a journalism environment!)
|
||||||
|
|
||||||
|
Guidelines for ReST files
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
These guidelines regulate the format of our ReST documentation:
|
||||||
|
|
||||||
|
* In section titles, capitalize only initial words and proper nouns.
|
||||||
|
|
||||||
|
* Wrap the documentation at 80 characters wide, unless a code example
|
||||||
|
is significantly less readable when split over two lines, or for another
|
||||||
|
good reason.
|
||||||
|
|
||||||
|
Commonly used terms
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Here are some style guidelines on commonly used terms throughout the
|
||||||
|
documentation:
|
||||||
|
|
||||||
|
* **Django** -- when referring to the framework, capitalize Django. It is
|
||||||
|
lowercase only in Python code and in the djangoproject.com logo.
|
||||||
|
|
||||||
|
* **e-mail** -- it has a hyphen.
|
||||||
|
|
||||||
|
* **MySQL**
|
||||||
|
|
||||||
|
* **PostgreSQL**
|
||||||
|
|
||||||
|
* **Python** -- when referring to the language, capitalize Python.
|
||||||
|
|
||||||
|
* **realize**, **customize**, **initialize**, etc. -- use the American
|
||||||
|
"ize" suffix, not "ise."
|
||||||
|
|
||||||
|
* **SQLite**
|
||||||
|
|
||||||
|
* **subclass** -- it's a single word without a hyphen, both as a verb
|
||||||
|
("subclass that model") and as a noun ("create a subclass").
|
||||||
|
|
||||||
|
* **Web**, **World Wide Web**, **the Web** -- note Web is always
|
||||||
|
capitalized when referring to the World Wide Web.
|
||||||
|
|
||||||
|
* **Web site** -- use two words, with Web capitalized.
|
||||||
|
|
||||||
|
Django-specific terminology
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
* **model** -- it's not capitalized.
|
||||||
|
|
||||||
|
* **template** -- it's not capitalized.
|
||||||
|
|
||||||
|
* **URLconf** -- use three capitalized letters, with no space before
|
||||||
|
"conf."
|
||||||
|
|
||||||
|
* **view** -- it's not capitalized.
|
||||||
|
|
||||||
Committing code
|
Committing code
|
||||||
===============
|
===============
|
||||||
|
|
||||||
|
@ -1173,6 +1173,58 @@ like ``contains`` but is significantly faster due to full-text indexing.
|
|||||||
Note this is only available in MySQL and requires direct manipulation of the
|
Note this is only available in MySQL and requires direct manipulation of the
|
||||||
database to add the full-text index.
|
database to add the full-text index.
|
||||||
|
|
||||||
|
regex
|
||||||
|
~~~~~
|
||||||
|
|
||||||
|
**New in Django development version**
|
||||||
|
|
||||||
|
Case-sensitive regular expression match.
|
||||||
|
|
||||||
|
The regular expression syntax is that of the database backend in use. In the
|
||||||
|
case of SQLite, which doesn't natively support regular-expression lookups, the
|
||||||
|
syntax is that of Python's ``re`` module.
|
||||||
|
|
||||||
|
Example::
|
||||||
|
|
||||||
|
Entry.objects.get(title__regex=r'^(An?|The) +')
|
||||||
|
|
||||||
|
SQL equivalents::
|
||||||
|
|
||||||
|
SELECT ... WHERE title REGEXP BINARY '^(An?|The) +'; -- MySQL
|
||||||
|
|
||||||
|
SELECT ... WHERE REGEXP_LIKE(title, '^(an?|the) +', 'c'); -- Oracle
|
||||||
|
|
||||||
|
SELECT ... WHERE title ~ '^(An?|The) +'; -- PostgreSQL
|
||||||
|
|
||||||
|
SELECT ... WHERE title REGEXP '^(An?|The) +'; -- SQLite
|
||||||
|
|
||||||
|
Using raw strings (e.g., ``r'foo'`` instead of ``'foo'``) for passing in the
|
||||||
|
regular expression syntax is recommended.
|
||||||
|
|
||||||
|
Regular expression matching is not supported on the ``ado_mssql`` backend.
|
||||||
|
It will raise a ``NotImplementedError`` at runtime.
|
||||||
|
|
||||||
|
iregex
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
|
**New in Django development version**
|
||||||
|
|
||||||
|
Case-insensitive regular expression match.
|
||||||
|
|
||||||
|
Example::
|
||||||
|
|
||||||
|
Entry.objects.get(title__iregex=r'^(an?|the) +')
|
||||||
|
|
||||||
|
SQL equivalents::
|
||||||
|
|
||||||
|
SELECT ... WHERE title REGEXP '^(an?|the) +'; -- MySQL
|
||||||
|
|
||||||
|
SELECT ... WHERE REGEXP_LIKE(title, '^(an?|the) +', 'i'); -- Oracle
|
||||||
|
|
||||||
|
SELECT ... WHERE title ~* '^(an?|the) +'; -- PostgreSQL
|
||||||
|
|
||||||
|
SELECT ... WHERE title REGEXP '(?i)^(an?|the) +'; -- SQLite
|
||||||
|
|
||||||
Default lookups are exact
|
Default lookups are exact
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
@ -1779,7 +1831,7 @@ use the default manager, or if you want to search a list of related objects,
|
|||||||
you can provide ``get_object_or_404()`` with a manager object instead.
|
you can provide ``get_object_or_404()`` with a manager object instead.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
# Get the author of blog instance `e` with a name of 'Fred'
|
# Get the author of blog instance e with a name of 'Fred'
|
||||||
a = get_object_or_404(e.authors, name='Fred')
|
a = get_object_or_404(e.authors, name='Fred')
|
||||||
|
|
||||||
# Use a custom manager 'recent_entries' in the search for an
|
# Use a custom manager 'recent_entries' in the search for an
|
||||||
|
@ -513,7 +513,7 @@ Example usage::
|
|||||||
|
|
||||||
Verbosity determines the amount of notification and debug information that
|
Verbosity determines the amount of notification and debug information that
|
||||||
will be printed to the console. '0' is no output, '1' is normal output,
|
will be printed to the console. '0' is no output, '1' is normal output,
|
||||||
and `2` is verbose output.
|
and ``2`` is verbose output.
|
||||||
|
|
||||||
--adminmedia
|
--adminmedia
|
||||||
------------
|
------------
|
||||||
|
126
docs/email.txt
126
docs/email.txt
@ -28,9 +28,9 @@ settings, if set, are used to authenticate to the SMTP server, and the
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The character set of e-mail sent with ``django.core.mail`` will be set to
|
The character set of e-mail sent with ``django.core.mail`` will be set to
|
||||||
the value of your `DEFAULT_CHARSET setting`_.
|
the value of your `DEFAULT_CHARSET`_ setting.
|
||||||
|
|
||||||
.. _DEFAULT_CHARSET setting: ../settings/#default-charset
|
.. _DEFAULT_CHARSET: ../settings/#default-charset
|
||||||
.. _EMAIL_HOST: ../settings/#email-host
|
.. _EMAIL_HOST: ../settings/#email-host
|
||||||
.. _EMAIL_PORT: ../settings/#email-port
|
.. _EMAIL_PORT: ../settings/#email-port
|
||||||
.. _EMAIL_HOST_USER: ../settings/#email-host-user
|
.. _EMAIL_HOST_USER: ../settings/#email-host-user
|
||||||
@ -198,27 +198,58 @@ e-mail, you can subclass these two classes to suit your needs.
|
|||||||
.. note::
|
.. note::
|
||||||
Not all features of the ``EmailMessage`` class are available through the
|
Not all features of the ``EmailMessage`` class are available through the
|
||||||
``send_mail()`` and related wrapper functions. If you wish to use advanced
|
``send_mail()`` and related wrapper functions. If you wish to use advanced
|
||||||
features, such as BCC'ed recipients or multi-part e-mail, you'll need to
|
features, such as BCC'ed recipients, file attachments, or multi-part
|
||||||
create ``EmailMessage`` instances directly.
|
e-mail, you'll need to create ``EmailMessage`` instances directly.
|
||||||
|
|
||||||
|
This is a design feature. ``send_mail()`` and related functions were
|
||||||
|
originally the only interface Django provided. However, the list of
|
||||||
|
parameters they accepted was slowly growing over time. It made sense to
|
||||||
|
move to a more object-oriented design for e-mail messages and retain the
|
||||||
|
original functions only for backwards compatibility.
|
||||||
|
|
||||||
In general, ``EmailMessage`` is responsible for creating the e-mail message
|
In general, ``EmailMessage`` is responsible for creating the e-mail message
|
||||||
itself. ``SMTPConnection`` is responsible for the network connection side of
|
itself. ``SMTPConnection`` is responsible for the network connection side of
|
||||||
the operation. This means you can reuse the same connection (an
|
the operation. This means you can reuse the same connection (an
|
||||||
``SMTPConnection`` instance) for multiple messages.
|
``SMTPConnection`` instance) for multiple messages.
|
||||||
|
|
||||||
The ``EmailMessage`` class is initialized as follows::
|
E-mail messages
|
||||||
|
---------------
|
||||||
|
|
||||||
email = EmailMessage(subject, body, from_email, to, bcc, connection)
|
The ``EmailMessage`` class is initialized with the following parameters (in
|
||||||
|
the given order, if positional arguments are used). All parameters are
|
||||||
|
optional and can be set at any time prior to calling the ``send()`` method.
|
||||||
|
|
||||||
All of these parameters are optional. If ``from_email`` is omitted, the value
|
* ``subject``: The subject line of the e-mail.
|
||||||
from ``settings.DEFAULT_FROM_EMAIL`` is used. Both the ``to`` and ``bcc``
|
|
||||||
parameters are lists of addresses, as strings.
|
* ``body``: The body text. This should be a plain text message.
|
||||||
|
|
||||||
|
* ``from_email``: The sender's address. Both ``fred@example.com`` and
|
||||||
|
``Fred <fred@example.com>`` forms are legal. If omitted, the
|
||||||
|
``DEFAULT_FROM_EMAIL`` setting is used.
|
||||||
|
|
||||||
|
* ``to``: A list or tuple of recipient addresses.
|
||||||
|
|
||||||
|
* ``bcc``: A list or tuple of addresses used in the "Bcc" header when
|
||||||
|
sending the e-mail.
|
||||||
|
|
||||||
|
* ``connection``: An ``SMTPConnection`` instance. Use this parameter if
|
||||||
|
you want to use the same conneciton for multiple messages. If omitted, a
|
||||||
|
new connection is created when ``send()`` is called.
|
||||||
|
|
||||||
|
* ``attachments``: A list of attachments to put on the message. These can
|
||||||
|
be either ``email.MIMEBase.MIMEBase`` instances, or ``(filename,
|
||||||
|
content, mimetype)`` triples.
|
||||||
|
|
||||||
|
* ``headers``: A dictionary of extra headers to put on the message. The
|
||||||
|
keys are the header name, values are the header values. It's up to the
|
||||||
|
caller to ensure header names and values are in the correct format for
|
||||||
|
an e-mail message.
|
||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
email = EmailMessage('Hello', 'Body goes here', 'from@example.com',
|
email = EmailMessage('Hello', 'Body goes here', 'from@example.com',
|
||||||
['to1@example.com', 'to2@example.com'],
|
['to1@example.com', 'to2@example.com'], ['bcc@example.com'],
|
||||||
['bcc@example.com'])
|
headers = {'Reply-To': 'another@example.com'})
|
||||||
|
|
||||||
The class has the following methods:
|
The class has the following methods:
|
||||||
|
|
||||||
@ -227,18 +258,83 @@ The class has the following methods:
|
|||||||
if none already exists.
|
if none already exists.
|
||||||
|
|
||||||
* ``message()`` constructs a ``django.core.mail.SafeMIMEText`` object (a
|
* ``message()`` constructs a ``django.core.mail.SafeMIMEText`` object (a
|
||||||
sub-class of Python's ``email.MIMEText.MIMEText`` class) holding the
|
subclass of Python's ``email.MIMEText.MIMEText`` class) or a
|
||||||
message to be sent. If you ever need to extend the `EmailMessage` class,
|
``django.core.mail.SafeMIMEMultipart`` object holding the
|
||||||
you'll probably want to override this method to put the content you wish
|
message to be sent. If you ever need to extend the ``EmailMessage`` class,
|
||||||
|
you'll probably want to override this method to put the content you want
|
||||||
into the MIME object.
|
into the MIME object.
|
||||||
|
|
||||||
* ``recipients()`` returns a list of all the recipients of the message,
|
* ``recipients()`` returns a list of all the recipients of the message,
|
||||||
whether they're recorded in the ``to`` or ``bcc`` attributes. This is
|
whether they're recorded in the ``to`` or ``bcc`` attributes. This is
|
||||||
another method you might need to override when sub-classing, because the
|
another method you might need to override when subclassing, because the
|
||||||
SMTP server needs to be told the full list of recipients when the message
|
SMTP server needs to be told the full list of recipients when the message
|
||||||
is sent. If you add another way to specify recipients in your class, they
|
is sent. If you add another way to specify recipients in your class, they
|
||||||
need to be returned from this method as well.
|
need to be returned from this method as well.
|
||||||
|
|
||||||
|
* ``attach()`` creates a new file attachment and adds it to the message.
|
||||||
|
There are two ways to call ``attach()``:
|
||||||
|
|
||||||
|
* You can pass it a single argument that is an
|
||||||
|
``email.MIMBase.MIMEBase`` instance. This will be inserted directly
|
||||||
|
into the resulting message.
|
||||||
|
|
||||||
|
* Alternatively, you can pass ``attach()`` three arguments:
|
||||||
|
``filename``, ``content`` and ``mimetype``. ``filename`` is the name
|
||||||
|
of the file attachment as it will appear in the e-mail, ``content`` is
|
||||||
|
the data that will be contained inside the attachment and
|
||||||
|
``mimetype`` is the optional MIME type for the attachment. If you
|
||||||
|
omit ``mimetype``, the MIME content type will be guessed from the
|
||||||
|
filename of the attachment.
|
||||||
|
|
||||||
|
For example::
|
||||||
|
|
||||||
|
message.attach('design.png', img_data, 'image/png')
|
||||||
|
|
||||||
|
* ``attach_file()`` creates a new attachment using a file from your
|
||||||
|
filesystem. Call it with the path of the file to attach and, optionally,
|
||||||
|
the MIME type to use for the attachment. If the MIME type is omitted, it
|
||||||
|
will be guessed from the filename. The simplest use would be::
|
||||||
|
|
||||||
|
message.attach_file('/images/weather_map.png')
|
||||||
|
|
||||||
|
Sending alternative content types
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
It can be useful to include multiple versions of the content in an e-mail;
|
||||||
|
the classic example is to send both text and HTML versions of a message. With
|
||||||
|
Django's e-mail library, you can do this using the ``EmailMultiAlternatives``
|
||||||
|
class. This subclass of ``EmailMessage`` has an ``attach_alternative()`` method
|
||||||
|
for including extra versions of the message body in the e-mail. All the other
|
||||||
|
methods (including the class initialization) are inherited directly from
|
||||||
|
``EmailMessage``.
|
||||||
|
|
||||||
|
To send a text and HTML combination, you could write::
|
||||||
|
|
||||||
|
from django.core.mail import EmailMultiAlternatives
|
||||||
|
|
||||||
|
subject, from_email, to = 'hello', 'from@example.com', 'to@example.com'
|
||||||
|
text_content = 'This is an important message.'
|
||||||
|
html_content = '<p>This is an <strong>important</strong> message.'
|
||||||
|
msg = EmailMultiAlternatives(subject, text_content, from_email, to)
|
||||||
|
msg.attach_alternative(html_content, "text/html")
|
||||||
|
msg.send()
|
||||||
|
|
||||||
|
By default, the MIME type of the ``body`` parameter in an ``EmailMessage`` is
|
||||||
|
``"text/plain"``. It is good practice to leave this alone, because it
|
||||||
|
guarantees that any recipient will be able to read the e-mail, regardless of
|
||||||
|
their mail client. However, if you are confident that your recipients can
|
||||||
|
handle an alternative content type, you can use the ``content_subtype``
|
||||||
|
attribute on the ``EmailMessage`` class to change the main content type. The
|
||||||
|
major type will always be ``"text"``, but you can change it to the subtype. For
|
||||||
|
example::
|
||||||
|
|
||||||
|
msg = EmailMessage(subject, html_content, from_email, to)
|
||||||
|
msg.content_subtype = "html" # Main content is now text/html
|
||||||
|
msg.send()
|
||||||
|
|
||||||
|
SMTP network connections
|
||||||
|
------------------------
|
||||||
|
|
||||||
The ``SMTPConnection`` class is initialized with the host, port, username and
|
The ``SMTPConnection`` class is initialized with the host, port, username and
|
||||||
password for the SMTP server. If you don't specify one or more of those
|
password for the SMTP server. If you don't specify one or more of those
|
||||||
options, they are read from your settings file.
|
options, they are read from your settings file.
|
||||||
|
@ -104,7 +104,7 @@ Lawrence, Kansas, USA.
|
|||||||
|
|
||||||
`Wilson Miner`_
|
`Wilson Miner`_
|
||||||
Wilson's design-fu makes us all look like rock stars. By day, he's an
|
Wilson's design-fu makes us all look like rock stars. By day, he's an
|
||||||
interactive designer for `Apple`. Don't ask him what he's working on, or
|
interactive designer for `Apple`_. Don't ask him what he's working on, or
|
||||||
he'll have to kill you. He lives in San Francisco.
|
he'll have to kill you. He lives in San Francisco.
|
||||||
|
|
||||||
On IRC, Wilson goes by ``wilsonian``.
|
On IRC, Wilson goes by ``wilsonian``.
|
||||||
|
@ -754,10 +754,10 @@ If the results are paginated, the context will contain these extra variables:
|
|||||||
|
|
||||||
* ``previous``: The previous page number, as an integer. This is 1-based.
|
* ``previous``: The previous page number, as an integer. This is 1-based.
|
||||||
|
|
||||||
* `last_on_page`: The number of the
|
* ``last_on_page``: The number of the
|
||||||
last result on the current page. This is 1-based.
|
last result on the current page. This is 1-based.
|
||||||
|
|
||||||
* `first_on_page`: The number of the
|
* ``first_on_page``: The number of the
|
||||||
first result on the current page. This is 1-based.
|
first result on the current page. This is 1-based.
|
||||||
|
|
||||||
* ``pages``: The total number of pages, as an integer.
|
* ``pages``: The total number of pages, as an integer.
|
||||||
|
@ -48,7 +48,8 @@ Get your database running
|
|||||||
|
|
||||||
If you plan to use Django's database API functionality, you'll need to
|
If you plan to use Django's database API functionality, you'll need to
|
||||||
make sure a database server is running. Django works with PostgreSQL_,
|
make sure a database server is running. Django works with PostgreSQL_,
|
||||||
MySQL_ and SQLite_.
|
MySQL_, Oracle_ and SQLite_ (the latter doesn't require a separate server to
|
||||||
|
be running).
|
||||||
|
|
||||||
Additionally, you'll need to make sure your Python database bindings are
|
Additionally, you'll need to make sure your Python database bindings are
|
||||||
installed.
|
installed.
|
||||||
@ -76,6 +77,7 @@ installed.
|
|||||||
.. _pysqlite: http://initd.org/tracker/pysqlite
|
.. _pysqlite: http://initd.org/tracker/pysqlite
|
||||||
.. _MySQL backend: ../databases/
|
.. _MySQL backend: ../databases/
|
||||||
.. _cx_Oracle: http://www.python.net/crew/atuining/cx_Oracle/
|
.. _cx_Oracle: http://www.python.net/crew/atuining/cx_Oracle/
|
||||||
|
.. _Oracle: http://www.oracle.com/
|
||||||
|
|
||||||
Remove any old versions of Django
|
Remove any old versions of Django
|
||||||
=================================
|
=================================
|
||||||
|
@ -18,7 +18,7 @@ You'll need to tell Django what your database connection parameters are, and
|
|||||||
what the name of the database is. Do that by editing these settings in your
|
what the name of the database is. Do that by editing these settings in your
|
||||||
`settings file`_:
|
`settings file`_:
|
||||||
|
|
||||||
* `DATABASE_NAME`
|
* `DATABASE_NAME`_
|
||||||
* `DATABASE_ENGINE`_
|
* `DATABASE_ENGINE`_
|
||||||
* `DATABASE_USER`_
|
* `DATABASE_USER`_
|
||||||
* `DATABASE_PASSWORD`_
|
* `DATABASE_PASSWORD`_
|
||||||
|
@ -493,9 +493,9 @@ possible values for "no data;" Django convention is to use the empty
|
|||||||
string, not ``NULL``.
|
string, not ``NULL``.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Due to database limitations, when using the Oracle backend the
|
When using the Oracle database backend, the ``null=True`` option will
|
||||||
``null=True`` option will be coerced for string-based fields that can
|
be coerced for string-based fields that can blank, and the value
|
||||||
blank, and the value ``NULL`` will be stored to denote the empty string.
|
``NULL`` will be stored to denote the empty string.
|
||||||
|
|
||||||
``blank``
|
``blank``
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
@ -594,9 +594,12 @@ statement for this field.
|
|||||||
``db_tablespace``
|
``db_tablespace``
|
||||||
~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
If this field is indexed, the name of the database tablespace to use for the
|
**New in Django development version**
|
||||||
index. The default is the ``db_tablespace`` of the model, if any. If the
|
|
||||||
backend doesn't support tablespaces, this option is ignored.
|
The name of the database tablespace to use for this field's index, if
|
||||||
|
indeed this field is indexed. The default is the ``db_tablespace`` of
|
||||||
|
the model, if any. If the backend doesn't support tablespaces, this
|
||||||
|
option is ignored.
|
||||||
|
|
||||||
``default``
|
``default``
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
@ -1011,6 +1014,8 @@ that's OK. Django quotes column and table names behind the scenes.
|
|||||||
``db_tablespace``
|
``db_tablespace``
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
**New in Django development version**
|
||||||
|
|
||||||
The name of the database tablespace to use for the model. If the backend
|
The name of the database tablespace to use for the model. If the backend
|
||||||
doesn't support tablespaces, this option is ignored.
|
doesn't support tablespaces, this option is ignored.
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ The following changes may require you to update your code when you switch from
|
|||||||
|
|
||||||
Due to a bug in older versions of the ``MySQLdb`` Python module (which
|
Due to a bug in older versions of the ``MySQLdb`` Python module (which
|
||||||
Django uses to connect to MySQL databases), Django's MySQL backend now
|
Django uses to connect to MySQL databases), Django's MySQL backend now
|
||||||
requires version 1.2.1p2 or higher of `MySQLdb`, and will raise
|
requires version 1.2.1p2 or higher of ``MySQLdb``, and will raise
|
||||||
exceptions if you attempt to use an older version.
|
exceptions if you attempt to use an older version.
|
||||||
|
|
||||||
If you're currently unable to upgrade your copy of ``MySQLdb`` to meet
|
If you're currently unable to upgrade your copy of ``MySQLdb`` to meet
|
||||||
|
@ -48,12 +48,12 @@ Subset of fields
|
|||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
If you only want a subset of fields to be serialized, you can
|
If you only want a subset of fields to be serialized, you can
|
||||||
specify a `fields` argument to the serializer::
|
specify a ``fields`` argument to the serializer::
|
||||||
|
|
||||||
from django.core import serializers
|
from django.core import serializers
|
||||||
data = serializers.serialize('xml', SomeModel.objects.all(), fields=('name','size'))
|
data = serializers.serialize('xml', SomeModel.objects.all(), fields=('name','size'))
|
||||||
|
|
||||||
In this example, only the `name` and `size` attributes of each model will
|
In this example, only the ``name`` and ``size`` attributes of each model will
|
||||||
be serialized.
|
be serialized.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
@ -342,7 +342,7 @@ If ``TEMPLATE_CONTEXT_PROCESSORS`` contains this processor, every
|
|||||||
|
|
||||||
* ``user`` -- An ``auth.User`` instance representing the currently
|
* ``user`` -- An ``auth.User`` instance representing the currently
|
||||||
logged-in user (or an ``AnonymousUser`` instance, if the client isn't
|
logged-in user (or an ``AnonymousUser`` instance, if the client isn't
|
||||||
logged in). See the `user authentication docs`.
|
logged in). See the `user authentication docs`_.
|
||||||
|
|
||||||
* ``messages`` -- A list of messages (as strings) for the currently
|
* ``messages`` -- A list of messages (as strings) for the currently
|
||||||
logged-in user. Behind the scenes, this calls
|
logged-in user. Behind the scenes, this calls
|
||||||
|
@ -253,8 +253,8 @@ can be invoked on the ``Client`` instance.
|
|||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
will result in the evaluation of a POST request on ``/customers/wishes/``,
|
will result in the evaluation of a POST request on ``/customers/wishes/``,
|
||||||
with a POST dictionary that contains `name`, `attachment` (containing the
|
with a POST dictionary that contains ``name``, ``attachment`` (containing the
|
||||||
file name), and `attachment_file` (containing the file data). Note that you
|
file name), and ``attachment_file`` (containing the file data). Note that you
|
||||||
need to manually close the file after it has been provided to the POST.
|
need to manually close the file after it has been provided to the POST.
|
||||||
|
|
||||||
``login(**credentials)``
|
``login(**credentials)``
|
||||||
@ -660,8 +660,8 @@ arguments:
|
|||||||
tested. This is the same format returned by ``django.db.models.get_apps()``
|
tested. This is the same format returned by ``django.db.models.get_apps()``
|
||||||
|
|
||||||
Verbosity determines the amount of notification and debug information that
|
Verbosity determines the amount of notification and debug information that
|
||||||
will be printed to the console; `0` is no output, `1` is normal output,
|
will be printed to the console; ``0`` is no output, ``1`` is normal output,
|
||||||
and `2` is verbose output.
|
and ``2`` is verbose output.
|
||||||
|
|
||||||
This method should return the number of tests that failed.
|
This method should return the number of tests that failed.
|
||||||
|
|
||||||
|
@ -360,7 +360,7 @@ Note the following:
|
|||||||
quotes. The author of this tutorial runs PostgreSQL, so the example
|
quotes. The author of this tutorial runs PostgreSQL, so the example
|
||||||
output is in PostgreSQL syntax.
|
output is in PostgreSQL syntax.
|
||||||
|
|
||||||
* The `sql` command doesn't actually run the SQL in your database - it just
|
* The ``sql`` command doesn't actually run the SQL in your database - it just
|
||||||
prints it to the screen so that you can see what SQL Django thinks is required.
|
prints it to the screen so that you can see what SQL Django thinks is required.
|
||||||
If you wanted to, you could copy and paste this SQL into your database prompt.
|
If you wanted to, you could copy and paste this SQL into your database prompt.
|
||||||
However, as we will see shortly, Django provides an easier way of committing
|
However, as we will see shortly, Django provides an easier way of committing
|
||||||
|
@ -5,6 +5,7 @@ This demonstrates features of the database API.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
class Article(models.Model):
|
class Article(models.Model):
|
||||||
headline = models.CharField(maxlength=100)
|
headline = models.CharField(maxlength=100)
|
||||||
@ -251,4 +252,100 @@ Traceback (most recent call last):
|
|||||||
...
|
...
|
||||||
TypeError: Cannot resolve keyword 'headline__starts' into field. Choices are: id, headline, pub_date
|
TypeError: Cannot resolve keyword 'headline__starts' into field. Choices are: id, headline, pub_date
|
||||||
|
|
||||||
|
# Create some articles with a bit more interesting headlines for testing field lookups:
|
||||||
|
>>> now = datetime.now()
|
||||||
|
>>> for a in Article.objects.all():
|
||||||
|
... a.delete()
|
||||||
|
>>> a1 = Article(pub_date=now, headline='f')
|
||||||
|
>>> a1.save()
|
||||||
|
>>> a2 = Article(pub_date=now, headline='fo')
|
||||||
|
>>> a2.save()
|
||||||
|
>>> a3 = Article(pub_date=now, headline='foo')
|
||||||
|
>>> a3.save()
|
||||||
|
>>> a4 = Article(pub_date=now, headline='fooo')
|
||||||
|
>>> a4.save()
|
||||||
|
>>> a5 = Article(pub_date=now, headline='hey-Foo')
|
||||||
|
>>> a5.save()
|
||||||
|
|
||||||
|
# zero-or-more
|
||||||
|
>>> Article.objects.filter(headline__regex=r'fo*')
|
||||||
|
[<Article: f>, <Article: fo>, <Article: foo>, <Article: fooo>]
|
||||||
|
>>> Article.objects.filter(headline__iregex=r'fo*')
|
||||||
|
[<Article: f>, <Article: fo>, <Article: foo>, <Article: fooo>, <Article: hey-Foo>]
|
||||||
|
|
||||||
|
# one-or-more
|
||||||
|
>>> Article.objects.filter(headline__regex=r'fo+')
|
||||||
|
[<Article: fo>, <Article: foo>, <Article: fooo>]
|
||||||
|
|
||||||
|
# wildcard
|
||||||
|
>>> Article.objects.filter(headline__regex=r'fooo?')
|
||||||
|
[<Article: foo>, <Article: fooo>]
|
||||||
|
|
||||||
|
# and some more:
|
||||||
|
>>> a6 = Article(pub_date=now, headline='bar')
|
||||||
|
>>> a6.save()
|
||||||
|
>>> a7 = Article(pub_date=now, headline='AbBa')
|
||||||
|
>>> a7.save()
|
||||||
|
>>> a8 = Article(pub_date=now, headline='baz')
|
||||||
|
>>> a8.save()
|
||||||
|
>>> a9 = Article(pub_date=now, headline='baxZ')
|
||||||
|
>>> a9.save()
|
||||||
|
|
||||||
|
# leading anchor
|
||||||
|
>>> Article.objects.filter(headline__regex=r'^b')
|
||||||
|
[<Article: bar>, <Article: baxZ>, <Article: baz>]
|
||||||
|
>>> Article.objects.filter(headline__iregex=r'^a')
|
||||||
|
[<Article: AbBa>]
|
||||||
|
|
||||||
|
# trailing anchor
|
||||||
|
>>> Article.objects.filter(headline__regex=r'z$')
|
||||||
|
[<Article: baz>]
|
||||||
|
>>> Article.objects.filter(headline__iregex=r'z$')
|
||||||
|
[<Article: baxZ>, <Article: baz>]
|
||||||
|
|
||||||
|
# character sets
|
||||||
|
>>> Article.objects.filter(headline__regex=r'ba[rz]')
|
||||||
|
[<Article: bar>, <Article: baz>]
|
||||||
|
>>> Article.objects.filter(headline__regex=r'ba.[RxZ]')
|
||||||
|
[<Article: baxZ>]
|
||||||
|
>>> Article.objects.filter(headline__iregex=r'ba[RxZ]')
|
||||||
|
[<Article: bar>, <Article: baxZ>, <Article: baz>]
|
||||||
|
|
||||||
|
# and yet more:
|
||||||
|
>>> a10 = Article(pub_date=now, headline='foobar')
|
||||||
|
>>> a10.save()
|
||||||
|
>>> a11 = Article(pub_date=now, headline='foobaz')
|
||||||
|
>>> a11.save()
|
||||||
|
>>> a12 = Article(pub_date=now, headline='ooF')
|
||||||
|
>>> a12.save()
|
||||||
|
>>> a13 = Article(pub_date=now, headline='foobarbaz')
|
||||||
|
>>> a13.save()
|
||||||
|
>>> a14 = Article(pub_date=now, headline='zoocarfaz')
|
||||||
|
>>> a14.save()
|
||||||
|
>>> a15 = Article(pub_date=now, headline='barfoobaz')
|
||||||
|
>>> a15.save()
|
||||||
|
>>> a16 = Article(pub_date=now, headline='bazbaRFOO')
|
||||||
|
>>> a16.save()
|
||||||
|
|
||||||
|
# alternation
|
||||||
|
>>> Article.objects.filter(headline__regex=r'oo(f|b)')
|
||||||
|
[<Article: barfoobaz>, <Article: foobar>, <Article: foobarbaz>, <Article: foobaz>]
|
||||||
|
>>> Article.objects.filter(headline__iregex=r'oo(f|b)')
|
||||||
|
[<Article: barfoobaz>, <Article: foobar>, <Article: foobarbaz>, <Article: foobaz>, <Article: ooF>]
|
||||||
|
>>> Article.objects.filter(headline__regex=r'^foo(f|b)')
|
||||||
|
[<Article: foobar>, <Article: foobarbaz>, <Article: foobaz>]
|
||||||
|
|
||||||
|
# greedy matching
|
||||||
|
>>> Article.objects.filter(headline__regex=r'b.*az')
|
||||||
|
[<Article: barfoobaz>, <Article: baz>, <Article: bazbaRFOO>, <Article: foobarbaz>, <Article: foobaz>]
|
||||||
|
>>> Article.objects.filter(headline__iregex=r'b.*ar')
|
||||||
|
[<Article: bar>, <Article: barfoobaz>, <Article: bazbaRFOO>, <Article: foobar>, <Article: foobarbaz>]
|
||||||
"""}
|
"""}
|
||||||
|
|
||||||
|
|
||||||
|
if settings.DATABASE_ENGINE not in ('mysql', 'mysql_old'):
|
||||||
|
__test__['API_TESTS'] += r"""
|
||||||
|
# grouping and backreferences
|
||||||
|
>>> Article.objects.filter(headline__regex=r'b(.).*b\1')
|
||||||
|
[<Article: barfoobaz>, <Article: bazbaRFOO>, <Article: foobarbaz>]
|
||||||
|
"""
|
||||||
|
@ -225,6 +225,9 @@ class Templates(unittest.TestCase):
|
|||||||
# in the final output.
|
# in the final output.
|
||||||
'filter-syntax18': (r'{{ var }}', {'var': UTF8Class()}, u'\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111'),
|
'filter-syntax18': (r'{{ var }}', {'var': UTF8Class()}, u'\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111'),
|
||||||
|
|
||||||
|
# Numbers as filter arguments should work
|
||||||
|
'filter-syntax19': ('{{ var|truncatewords:1 }}', {"var": "hello world"}, "hello ..."),
|
||||||
|
|
||||||
### COMMENT SYNTAX ########################################################
|
### COMMENT SYNTAX ########################################################
|
||||||
'comment-syntax01': ("{# this is hidden #}hello", {}, "hello"),
|
'comment-syntax01': ("{# this is hidden #}hello", {}, "hello"),
|
||||||
'comment-syntax02': ("{# this is hidden #}hello{# foo #}", {}, "hello"),
|
'comment-syntax02': ("{# this is hidden #}hello{# foo #}", {}, "hello"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user