summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
Diffstat (limited to 'django')
-rw-r--r--django/conf/locale/bn/LC_MESSAGES/djangojs.mobin0 -> 367 bytes
-rw-r--r--django/conf/locale/bn/LC_MESSAGES/djangojs.po118
-rw-r--r--django/conf/locale/ca/LC_MESSAGES/django.mobin49408 -> 49503 bytes
-rw-r--r--django/conf/locale/ca/LC_MESSAGES/django.po257
-rw-r--r--django/conf/locale/ca/LC_MESSAGES/djangojs.mobin1646 -> 1654 bytes
-rw-r--r--django/conf/locale/ca/LC_MESSAGES/djangojs.po9
-rw-r--r--django/conf/locale/da/LC_MESSAGES/djangojs.mobin0 -> 367 bytes
-rw-r--r--django/conf/locale/da/LC_MESSAGES/djangojs.po118
-rw-r--r--django/conf/locale/ja/LC_MESSAGES/django.mobin47042 -> 53143 bytes
-rw-r--r--django/conf/locale/ja/LC_MESSAGES/django.po760
-rw-r--r--django/conf/locale/ro/LC_MESSAGES/django.mobin16327 -> 21716 bytes
-rw-r--r--django/conf/locale/ro/LC_MESSAGES/django.po222
-rw-r--r--django/conf/locale/ro/LC_MESSAGES/djangojs.mobin0 -> 367 bytes
-rw-r--r--django/conf/locale/ro/LC_MESSAGES/djangojs.po118
-rw-r--r--django/conf/locale/uk/LC_MESSAGES/djangojs.mobin0 -> 367 bytes
-rw-r--r--django/conf/locale/uk/LC_MESSAGES/djangojs.po118
-rw-r--r--django/conf/locale/zh_TW/LC_MESSAGES/djangojs.mobin0 -> 367 bytes
-rw-r--r--django/conf/locale/zh_TW/LC_MESSAGES/djangojs.po118
-rw-r--r--django/conf/project_template/settings.py2
-rw-r--r--django/core/mail.py100
-rw-r--r--django/core/urlresolvers.py2
-rw-r--r--django/db/backends/dummy/base.py5
-rw-r--r--django/db/backends/mysql/base.py2
-rw-r--r--django/db/backends/mysql_old/base.py2
-rw-r--r--django/db/backends/postgresql/base.py2
-rw-r--r--django/db/backends/postgresql_psycopg2/base.py2
-rw-r--r--django/db/backends/sqlite3/base.py12
-rw-r--r--django/db/models/fields/__init__.py3
-rw-r--r--django/db/models/query.py11
-rw-r--r--django/http/__init__.py4
-rw-r--r--django/newforms/fields.py13
-rw-r--r--django/newforms/widgets.py34
32 files changed, 1544 insertions, 488 deletions
diff --git a/django/conf/locale/bn/LC_MESSAGES/djangojs.mo b/django/conf/locale/bn/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000000..1db40df910
--- /dev/null
+++ b/django/conf/locale/bn/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/django/conf/locale/bn/LC_MESSAGES/djangojs.po b/django/conf/locale/bn/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000..4084313848
--- /dev/null
+++ b/django/conf/locale/bn/LC_MESSAGES/djangojs.po
@@ -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 ""
diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo
index 665d7d41a9..f308c7589a 100644
--- a/django/conf/locale/ca/LC_MESSAGES/django.mo
+++ b/django/conf/locale/ca/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/ca/LC_MESSAGES/django.po b/django/conf/locale/ca/LC_MESSAGES/django.po
index 30a8797a91..b8450ad1b9 100644
--- a/django/conf/locale/ca/LC_MESSAGES/django.po
+++ b/django/conf/locale/ca/LC_MESSAGES/django.po
@@ -1,20 +1,18 @@
# translation of django.po to
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# This file is distributed under the same license as the Django package.
#
msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-05-25 13:04+0200\n"
-"PO-Revision-Date: 2007-05-25 13:04+0200\n"
-"Last-Translator: Marc Fargas <marc@fargas.com>\n"
+"POT-Creation-Date: 2007-06-25 17:31+0200\n"
+"PO-Revision-Date: 2007-06-25 17:47+0200\n"
+"Last-Translator: Marc Fargas <telenieko@telenieko.com>\n"
"Language-Team: <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: VIM 7.0\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);"
#: template/defaultfilters.py:491
msgid "yes,no,maybe"
@@ -42,38 +40,38 @@ msgstr "%.1f MB"
msgid "%.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."
msgstr ""
"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/fields.py:520 newforms/fields.py:531 oldforms/__init__.py:357
-#: db/models/fields/__init__.py:121 db/models/fields/__init__.py:278
-#: db/models/fields/__init__.py:675 db/models/fields/__init__.py:686
+#: newforms/models.py:185 newforms/fields.py:87 newforms/fields.py:444
+#: newforms/fields.py:522 newforms/fields.py:533 oldforms/__init__.py:357
+#: db/models/fields/__init__.py:126 db/models/fields/__init__.py:283
+#: db/models/fields/__init__.py:680 db/models/fields/__init__.py:691
msgid "This field is required."
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."
msgstr "Introdueixi una llista de valors."
-#: newforms/models.py:196 newforms/fields.py:457
+#: newforms/models.py:195 newforms/fields.py:457
#, python-format
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."
-#: newforms/widgets.py:182 contrib/admin/filterspecs.py:150
+#: newforms/widgets.py:181 contrib/admin/filterspecs.py:150
#: oldforms/__init__.py:577
msgid "Unknown"
msgstr "Desconegut"
-#: newforms/widgets.py:182 contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:181 contrib/admin/filterspecs.py:143
#: oldforms/__init__.py:577
msgid "Yes"
msgstr "Si"
-#: newforms/widgets.py:182 contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:181 contrib/admin/filterspecs.py:143
#: oldforms/__init__.py:577
msgid "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."
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."
msgstr "Introdueixi una data vàlida."
-#: newforms/fields.py:260
+#: newforms/fields.py:260 newforms/fields.py:568
msgid "Enter a valid time."
msgstr "Introdueixi una hora vàlida."
@@ -198,118 +196,122 @@ msgid "Argentinean Spanish"
msgstr "Castellà Argentí"
#: conf/global_settings.py:51
+msgid "Persian"
+msgstr "Persa"
+
+#: conf/global_settings.py:52
msgid "Finnish"
msgstr "Finlandès"
-#: conf/global_settings.py:52
+#: conf/global_settings.py:53
msgid "French"
msgstr "Francès"
-#: conf/global_settings.py:53
+#: conf/global_settings.py:54
msgid "Galician"
msgstr "Galleg"
-#: conf/global_settings.py:54
+#: conf/global_settings.py:55
msgid "Hungarian"
msgstr "Húngar"
-#: conf/global_settings.py:55
+#: conf/global_settings.py:56
msgid "Hebrew"
msgstr "Hebreu"
-#: conf/global_settings.py:56
+#: conf/global_settings.py:57
msgid "Icelandic"
msgstr "Islandès"
-#: conf/global_settings.py:57
+#: conf/global_settings.py:58
msgid "Italian"
msgstr "Italià"
-#: conf/global_settings.py:58
+#: conf/global_settings.py:59
msgid "Japanese"
msgstr "Japonès"
-#: conf/global_settings.py:59
+#: conf/global_settings.py:60
msgid "Korean"
msgstr "Coreà"
-#: conf/global_settings.py:60
+#: conf/global_settings.py:61
msgid "Kannada"
msgstr ""
-#: conf/global_settings.py:61
+#: conf/global_settings.py:62
msgid "Latvian"
-msgstr ""
+msgstr "Letó"
-#: conf/global_settings.py:62
+#: conf/global_settings.py:63
msgid "Macedonian"
msgstr "Macedoni"
-#: conf/global_settings.py:63
+#: conf/global_settings.py:64
msgid "Dutch"
msgstr "Holandès"
-#: conf/global_settings.py:64
+#: conf/global_settings.py:65
msgid "Norwegian"
msgstr "Norueg"
-#: conf/global_settings.py:65
+#: conf/global_settings.py:66
msgid "Polish"
msgstr "Polac"
-#: conf/global_settings.py:66
+#: conf/global_settings.py:67
msgid "Portugese"
msgstr "Portuguès"
-#: conf/global_settings.py:67
+#: conf/global_settings.py:68
msgid "Brazilian"
msgstr "Brasileny"
-#: conf/global_settings.py:68
+#: conf/global_settings.py:69
msgid "Romanian"
msgstr "Rumanès"
-#: conf/global_settings.py:69
+#: conf/global_settings.py:70
msgid "Russian"
msgstr "Rús"
-#: conf/global_settings.py:70
+#: conf/global_settings.py:71
msgid "Slovak"
msgstr "Eslovac"
-#: conf/global_settings.py:71
+#: conf/global_settings.py:72
msgid "Slovenian"
msgstr "Esloveni"
-#: conf/global_settings.py:72
+#: conf/global_settings.py:73
msgid "Serbian"
msgstr "Serbi"
-#: conf/global_settings.py:73
+#: conf/global_settings.py:74
msgid "Swedish"
msgstr "Suec"
-#: conf/global_settings.py:74
+#: conf/global_settings.py:75
msgid "Tamil"
-msgstr ""
+msgstr "Tàmil"
-#: conf/global_settings.py:75
+#: conf/global_settings.py:76
msgid "Telugu"
-msgstr ""
+msgstr "Telugu"
-#: conf/global_settings.py:76
+#: conf/global_settings.py:77
msgid "Turkish"
msgstr "Turc"
-#: conf/global_settings.py:77
+#: conf/global_settings.py:78
msgid "Ukrainian"
msgstr "Ucranià"
-#: conf/global_settings.py:78
+#: conf/global_settings.py:79
msgid "Simplified Chinese"
msgstr "Xinés simplificat"
-#: conf/global_settings.py:79
+#: conf/global_settings.py:80
msgid "Traditional Chinese"
msgstr "Xinés tradicional"
@@ -576,17 +578,15 @@ msgid ""
"comment:\n"
"\n"
"%(text)s"
-msgid_plural ""
"This comment was posted by a user who has posted fewer than %(count)s "
"comments:\n"
"\n"
"%(text)s"
-msgstr[0] ""
+msgstr ""
"Aquest comentari el va enviar un usuari que ha enviat menys de %(count)s "
"comentari:\n"
"\n"
"%(text)s"
-msgstr[1] ""
"Aquest comentari el va enviar un usuari que ha enviat menys de %(count)s "
"comentaris:\n"
"\n"
@@ -1218,13 +1218,13 @@ msgstr "Editar aquest objecte (nova finestra)"
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."
-#: 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
msgid "The %(name)s \"%(obj)s\" was added successfully."
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/main.py:347
+#: contrib/admin/views/auth.py:24 contrib/admin/views/main.py:266
+#: contrib/admin/views/main.py:352
msgid "You may edit it again below."
msgstr "Pot editar-lo de nou abaix."
@@ -1241,96 +1241,96 @@ msgstr "Canvi de clau exitós"
msgid "Change password: %s"
msgstr "Canviar clau: %s"
-#: contrib/admin/views/main.py:223
+#: contrib/admin/views/main.py:228
msgid "Site administration"
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
msgid "You may add another %s below."
msgstr "Pot agregar un altre %s abaix."
-#: contrib/admin/views/main.py:289
+#: contrib/admin/views/main.py:294
#, python-format
msgid "Add %s"
msgstr "Agregar %s"
-#: contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:340
#, python-format
msgid "Added %s."
msgstr "Agregat %s."
-#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337
-#: contrib/admin/views/main.py:339 db/models/manipulators.py:308
+#: contrib/admin/views/main.py:340 contrib/admin/views/main.py:342
+#: contrib/admin/views/main.py:344 db/models/manipulators.py:308
msgid "and"
msgstr "i"
-#: contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:342
#, python-format
msgid "Changed %s."
msgstr "Modificat %s."
-#: contrib/admin/views/main.py:339
+#: contrib/admin/views/main.py:344
#, python-format
msgid "Deleted %s."
msgstr "Eliminat %s."
-#: contrib/admin/views/main.py:342
+#: contrib/admin/views/main.py:347
msgid "No fields changed."
msgstr "Cap camp canviat."
-#: contrib/admin/views/main.py:345
+#: contrib/admin/views/main.py:350
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
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
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
"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
msgid "Change %s"
msgstr "Modificar %s"
-#: contrib/admin/views/main.py:476
+#: contrib/admin/views/main.py:481
#, python-format
msgid "One or more %(fieldname)s in %(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
msgid "One or more %(fieldname)s in %(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
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
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?"
msgstr "Està segur?"
-#: contrib/admin/views/main.py:539
+#: contrib/admin/views/main.py:543
#, python-format
msgid "Change history: %s"
msgstr "Modificar històric: %s"
-#: contrib/admin/views/main.py:573
+#: contrib/admin/views/main.py:577
#, python-format
msgid "Select %s"
msgstr "Seleccioni %s"
-#: contrib/admin/views/main.py:573
+#: contrib/admin/views/main.py:577
#, python-format
msgid "Select %s to change"
msgstr "Seleccioni %s per modificar"
-#: contrib/admin/views/main.py:768
+#: contrib/admin/views/main.py:772
msgid "Database error"
msgstr "Error de/en la base de dades"
@@ -1697,35 +1697,35 @@ msgstr "llocs"
msgid "Logged out"
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"
msgstr "nom"
-#: contrib/auth/models.py:46
+#: contrib/auth/models.py:51
msgid "codename"
msgstr "nom en clau"
-#: contrib/auth/models.py:49
+#: contrib/auth/models.py:54
msgid "permission"
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"
msgstr "permissos"
-#: contrib/auth/models.py:68
+#: contrib/auth/models.py:73
msgid "group"
msgstr "grup"
-#: contrib/auth/models.py:69 contrib/auth/models.py:109
+#: contrib/auth/models.py:74 contrib/auth/models.py:114
msgid "groups"
msgstr "grups"
-#: contrib/auth/models.py:99
+#: contrib/auth/models.py:104
msgid "username"
msgstr "nom d'usuari"
-#: contrib/auth/models.py:99
+#: contrib/auth/models.py:104
msgid ""
"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
"digits and underscores)."
@@ -1733,23 +1733,23 @@ msgstr ""
"Requerit. 30 o menys caracters. Només caracters alfanumèrics (lletres, "
"dígits i guions baixos)."
-#: contrib/auth/models.py:100
+#: contrib/auth/models.py:105
msgid "first name"
msgstr "nom propi"
-#: contrib/auth/models.py:101
+#: contrib/auth/models.py:106
msgid "last name"
msgstr "cognoms"
-#: contrib/auth/models.py:102
+#: contrib/auth/models.py:107
msgid "e-mail address"
msgstr "adreça de correu electrònic"
-#: contrib/auth/models.py:103
+#: contrib/auth/models.py:108
msgid "password"
msgstr "contrasenya"
-#: contrib/auth/models.py:103
+#: contrib/auth/models.py:108
msgid ""
"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
"password form</a>."
@@ -1757,19 +1757,19 @@ msgstr ""
"Utilitzi '[algo]$[salt]$[hexdigest]' o el <a href=\"password/\">formulari de "
"canvi de contrasenya</a>."
-#: contrib/auth/models.py:104
+#: contrib/auth/models.py:109
msgid "staff status"
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."
msgstr "Indica si l'usuari pot entrar en el lloc administratiu."
-#: contrib/auth/models.py:105
+#: contrib/auth/models.py:110
msgid "active"
msgstr "actiu"
-#: contrib/auth/models.py:105
+#: contrib/auth/models.py:110
msgid ""
"Designates whether this user can log into the Django admin. Unselect this "
"instead of deleting accounts."
@@ -1777,11 +1777,11 @@ msgstr ""
"Designa si aquest usuari pot iniciar sessió a la interfície administrativa "
"Djano. Deselecciona-ho enlloc de esborrar comptes d'usuari."
-#: contrib/auth/models.py:106
+#: contrib/auth/models.py:111
msgid "superuser status"
msgstr "estat de superusuari"
-#: contrib/auth/models.py:106
+#: contrib/auth/models.py:111
msgid ""
"Designates that this user has all permissions without explicitly assigning "
"them."
@@ -1789,15 +1789,15 @@ msgstr ""
"Designa que aquest usuari té tots els permisos sense assignar-los "
"explícitament."
-#: contrib/auth/models.py:107
+#: contrib/auth/models.py:112
msgid "last login"
msgstr "últim inici de sessió"
-#: contrib/auth/models.py:108
+#: contrib/auth/models.py:113
msgid "date joined"
msgstr "data de creació"
-#: contrib/auth/models.py:110
+#: contrib/auth/models.py:115
msgid ""
"In addition to the permissions manually assigned, this user will also get "
"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 "
"permissos dels grups dels que sigui membre."
-#: contrib/auth/models.py:111
+#: contrib/auth/models.py:116
msgid "user permissions"
msgstr "permissos de l'usuari"
-#: contrib/auth/models.py:115
+#: contrib/auth/models.py:120
msgid "user"
msgstr "usuari"
-#: contrib/auth/models.py:116
+#: contrib/auth/models.py:121
msgid "users"
msgstr "usuaris"
-#: contrib/auth/models.py:122
+#: contrib/auth/models.py:127
msgid "Personal info"
msgstr "Informaciò personal"
-#: contrib/auth/models.py:123
+#: contrib/auth/models.py:128
msgid "Permissions"
msgstr "permissos"
-#: contrib/auth/models.py:124
+#: contrib/auth/models.py:129
msgid "Important dates"
msgstr "Dates importants"
-#: contrib/auth/models.py:125
+#: contrib/auth/models.py:130
msgid "Groups"
msgstr "Grups"
-#: contrib/auth/models.py:269
+#: contrib/auth/models.py:273
msgid "message"
msgstr "missatge"
-#: contrib/auth/models.py:282
+#: contrib/auth/models.py:286
msgid "AnonymousUser"
msgstr "AnonymousUser"
@@ -1861,7 +1861,7 @@ msgstr ""
msgid "This account is inactive."
msgstr "Aquest compte està inactiu"
-#: contrib/auth/forms.py:85
+#: contrib/auth/forms.py:84
msgid ""
"That e-mail address doesn't have an associated user account. Are you sure "
"you've registered?"
@@ -2423,7 +2423,7 @@ msgstr "L'any ha de ser posterior al 1900"
msgid "Invalid date: %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."
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."
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."
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
#, python-format
msgid "Please enter a valid decimal number with at most %s total digit."
-msgid_plural ""
"Please enter a valid decimal number with at most %s total digits."
-msgstr[0] ""
+msgstr ""
"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."
#: core/validators.py:426
#, python-format
msgid ""
"Please enter a valid decimal number with a whole part of at most %s digit."
-msgid_plural ""
"Please enter a valid decimal number with a whole part of at most %s digits."
-msgstr[0] ""
+msgstr ""
"Si us plau, introdueixi un número decimal vàlid amb la part entera amb com a "
"màxim %s dígit."
-msgstr[1] ""
"Si us plau, introdueixi un número decimal vàlid amb la part entera amb com a "
"màxim %s dígits."
#: core/validators.py:429
#, python-format
msgid "Please enter a valid decimal number with at most %s decimal place."
-msgid_plural ""
"Please enter a valid decimal number with at most %s decimal places."
-msgstr[0] ""
+msgstr ""
"Si us plau, introdueixi un número decimal vàlid amb no més de %s dígit en la "
"part decimal."
-msgstr[1] ""
"Si us plau, introdueixi un número decimal vàlid amb no més de %s dígits en "
"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."
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."
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."
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."
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."
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."
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."
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
msgid "Please enter a valid %s."
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."
msgstr "Separi múltiples IDs amb comes."
-#: db/models/fields/related.py:644
+#: db/models/fields/related.py:642
msgid ""
"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."
-#: db/models/fields/related.py:691
+#: db/models/fields/related.py:689
#, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
-msgid_plural ""
"Please enter valid %(self)s IDs. The values %(value)r are invalid."
-msgstr[0] ""
+msgstr ""
"Si us plau, introdueixi IDs de %(self)s vàlids. El valor %(value)r és "
"invàlid."
-msgstr[1] ""
"Si us plau, introdueixi IDs de %(self)s vàlids. Els valors %(value)r són "
"invàlids."
+
diff --git a/django/conf/locale/ca/LC_MESSAGES/djangojs.mo b/django/conf/locale/ca/LC_MESSAGES/djangojs.mo
index a5b908df1f..581b176be4 100644
--- a/django/conf/locale/ca/LC_MESSAGES/djangojs.mo
+++ b/django/conf/locale/ca/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/django/conf/locale/ca/LC_MESSAGES/djangojs.po b/django/conf/locale/ca/LC_MESSAGES/djangojs.po
index 8167253005..3ae0e9bad8 100644
--- a/django/conf/locale/ca/LC_MESSAGES/djangojs.po
+++ b/django/conf/locale/ca/LC_MESSAGES/djangojs.po
@@ -1,15 +1,14 @@
# translation of djangojs.po to
-# Spanish translation for the django-admin JS files.
-# Copyright (C)
-# This file is distributed under the same license as the PACKAGE package.
+# Catalan translation for the django-admin JS files.
+# This file is distributed under the same license as the Django package.
#
msgid ""
msgstr ""
"Project-Id-Version: djangojs\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-05-20 18:25+0200\n"
-"PO-Revision-Date: 2007-05-20 18:24+0200\n"
-"Last-Translator: Marc Fargas <marc@fargas.com>\n"
+"PO-Revision-Date: 2007-06-25 17:47+0200\n"
+"Last-Translator: Marc Fargas <telenieko@telenieko.com>\n"
"Language-Team: <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
diff --git a/django/conf/locale/da/LC_MESSAGES/djangojs.mo b/django/conf/locale/da/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000000..1db40df910
--- /dev/null
+++ b/django/conf/locale/da/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/django/conf/locale/da/LC_MESSAGES/djangojs.po b/django/conf/locale/da/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000..4084313848
--- /dev/null
+++ b/django/conf/locale/da/LC_MESSAGES/djangojs.po
@@ -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 ""
diff --git a/django/conf/locale/ja/LC_MESSAGES/django.mo b/django/conf/locale/ja/LC_MESSAGES/django.mo
index 07d3994755..20eb7dbcd3 100644
--- a/django/conf/locale/ja/LC_MESSAGES/django.mo
+++ b/django/conf/locale/ja/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/ja/LC_MESSAGES/django.po b/django/conf/locale/ja/LC_MESSAGES/django.po
index ab761254ae..56f1bf99da 100644
--- a/django/conf/locale/ja/LC_MESSAGES/django.po
+++ b/django/conf/locale/ja/LC_MESSAGES/django.po
@@ -1,13 +1,12 @@
# Translation of django.po to japanese.
# Copyright (C) 2005,2006,2007 makoto tsuyuki
# This file is distributed under the same license as the PACKAGE package.
-# makoto tsuyuki <mtsuyuki@gmail.com>, 2005,2006,2007.
-#
+#
msgid ""
msgstr ""
"Project-Id-Version: Django 1.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-03-26 22:51+0900\n"
+"POT-Creation-Date: 2007-06-26 11:33+0900\n"
"PO-Revision-Date: 2006-05-18 00:28+0900\n"
"Last-Translator: makoto tsuyuki <mtsuyuki@gmail.com>\n"
"Language-Team: Japanese <django-ja@googlegroups.com>\n"
@@ -24,150 +23,162 @@ msgid "Bengali"
msgstr "ベンガル語"
#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "ブルガリア語"
+
+#: conf/global_settings.py:42
msgid "Catalan"
msgstr "カタロニア語"
-#: conf/global_settings.py:42
+#: conf/global_settings.py:43
msgid "Czech"
msgstr "チェコ語"
-#: conf/global_settings.py:43
+#: conf/global_settings.py:44
msgid "Welsh"
msgstr "ウェールズ語"
-#: conf/global_settings.py:44
+#: conf/global_settings.py:45
msgid "Danish"
msgstr "デンマーク語"
-#: conf/global_settings.py:45
+#: conf/global_settings.py:46
msgid "German"
msgstr "ドイツ語"
-#: conf/global_settings.py:46
+#: conf/global_settings.py:47
msgid "Greek"
msgstr "ギリシャ語"
-#: conf/global_settings.py:47
+#: conf/global_settings.py:48
msgid "English"
msgstr "英語"
-#: conf/global_settings.py:48
+#: conf/global_settings.py:49
msgid "Spanish"
msgstr "スペイン語"
-#: conf/global_settings.py:49
+#: conf/global_settings.py:50
msgid "Argentinean Spanish"
msgstr "アルゼンチンスペイン語"
-#: conf/global_settings.py:50
+#: conf/global_settings.py:51
+msgid "Persian"
+msgstr "ペルシア語"
+
+#: conf/global_settings.py:52
msgid "Finnish"
msgstr "フィンランド語"
-#: conf/global_settings.py:51
+#: conf/global_settings.py:53
msgid "French"
msgstr "フランス語"
-#: conf/global_settings.py:52
+#: conf/global_settings.py:54
msgid "Galician"
msgstr "ガリシア語"
-#: conf/global_settings.py:53
+#: conf/global_settings.py:55
msgid "Hungarian"
msgstr "ハンガリー語"
-#: conf/global_settings.py:54
+#: conf/global_settings.py:56
msgid "Hebrew"
msgstr "ヘブライ語"
-#: conf/global_settings.py:55
+#: conf/global_settings.py:57
msgid "Icelandic"
msgstr "アイスランド語"
-#: conf/global_settings.py:56
+#: conf/global_settings.py:58
msgid "Italian"
msgstr "イタリア語"
-#: conf/global_settings.py:57
+#: conf/global_settings.py:59
msgid "Japanese"
msgstr "日本語"
-#: conf/global_settings.py:58
+#: conf/global_settings.py:60
+msgid "Korean"
+msgstr "韓国語"
+
+#: conf/global_settings.py:61
msgid "Kannada"
msgstr "カンナダ語"
-#: conf/global_settings.py:59
+#: conf/global_settings.py:62
msgid "Latvian"
msgstr "ラトビア語"
-#: conf/global_settings.py:60
+#: conf/global_settings.py:63
msgid "Macedonian"
msgstr "マケドニア語"
-#: conf/global_settings.py:61
+#: conf/global_settings.py:64
msgid "Dutch"
msgstr "オランダ語"
-#: conf/global_settings.py:62
+#: conf/global_settings.py:65
msgid "Norwegian"
msgstr "ノルウェー語"
-#: conf/global_settings.py:63
+#: conf/global_settings.py:66
msgid "Polish"
msgstr "ポーランド語"
-#: conf/global_settings.py:64
+#: conf/global_settings.py:67
msgid "Portugese"
msgstr "ポルトガル語"
-#: conf/global_settings.py:65
+#: conf/global_settings.py:68
msgid "Brazilian"
msgstr "ブラジル語"
-#: conf/global_settings.py:66
+#: conf/global_settings.py:69
msgid "Romanian"
msgstr "ルーマニア語"
-#: conf/global_settings.py:67
+#: conf/global_settings.py:70
msgid "Russian"
msgstr "ロシア語"
-#: conf/global_settings.py:68
+#: conf/global_settings.py:71
msgid "Slovak"
msgstr "スロバキア語"
-#: conf/global_settings.py:69
+#: conf/global_settings.py:72
msgid "Slovenian"
msgstr "スロヴェニア語"
-#: conf/global_settings.py:70
+#: conf/global_settings.py:73
msgid "Serbian"
msgstr "セルビア語"
-#: conf/global_settings.py:71
+#: conf/global_settings.py:74
msgid "Swedish"
msgstr "スウェーデン語"
-#: conf/global_settings.py:72
+#: conf/global_settings.py:75
msgid "Tamil"
msgstr "タミル語"
-#: conf/global_settings.py:73
+#: conf/global_settings.py:76
msgid "Telugu"
msgstr "テルグ語"
-#: conf/global_settings.py:74
+#: conf/global_settings.py:77
msgid "Turkish"
msgstr "トルコ語"
-#: conf/global_settings.py:75
+#: conf/global_settings.py:78
msgid "Ukrainian"
msgstr "ウクライナ語"
-#: conf/global_settings.py:76
+#: conf/global_settings.py:79
msgid "Simplified Chinese"
msgstr "簡体字中国語"
-#: conf/global_settings.py:77
+#: conf/global_settings.py:80
msgid "Traditional Chinese"
msgstr "繁体字中国語"
@@ -205,17 +216,17 @@ msgstr "今月"
msgid "This year"
msgstr "今年"
-#: contrib/admin/filterspecs.py:143 newforms/widgets.py:170
+#: contrib/admin/filterspecs.py:143 newforms/widgets.py:181
#: oldforms/__init__.py:577
msgid "Yes"
msgstr "はい"
-#: contrib/admin/filterspecs.py:143 newforms/widgets.py:170
+#: contrib/admin/filterspecs.py:143 newforms/widgets.py:181
#: oldforms/__init__.py:577
msgid "No"
msgstr "いいえ"
-#: contrib/admin/filterspecs.py:150 newforms/widgets.py:170
+#: contrib/admin/filterspecs.py:150 newforms/widgets.py:181
#: oldforms/__init__.py:577
msgid "Unknown"
msgstr "不明"
@@ -781,17 +792,17 @@ msgstr "現在:"
msgid "Change:"
msgstr "変更:"
-#: contrib/admin/templatetags/admin_list.py:247
+#: contrib/admin/templatetags/admin_list.py:249
msgid "All dates"
msgstr "いつでも"
-#: 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
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)s \"%(obj)s\" を追加しました。"
-#: contrib/admin/views/auth.py:24 contrib/admin/views/main.py:261
-#: contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:24 contrib/admin/views/main.py:266
+#: contrib/admin/views/main.py:352
msgid "You may edit it again below."
msgstr "続けて編集できます。"
@@ -895,9 +906,9 @@ msgstr "%s の数"
msgid "Fields on %s objects"
msgstr "%s のフィールド"
-#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
-#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
-#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:304 contrib/admin/views/doc.py:310
+#: contrib/admin/views/doc.py:311 contrib/admin/views/doc.py:313
msgid "Integer"
msgstr "整数"
@@ -905,7 +916,7 @@ msgstr "整数"
msgid "Boolean (Either True or False)"
msgstr "ブール値 (真: True または偽: False)"
-#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:312
#, python-format
msgid "String (up to %(maxlength)s)"
msgstr "文字列 ( %(maxlength)s 字まで )"
@@ -923,148 +934,152 @@ msgid "Date (with time)"
msgstr "日時"
#: contrib/admin/views/doc.py:297
+msgid "Decimal number"
+msgstr "10 進数 (小数可)"
+
+#: contrib/admin/views/doc.py:298
msgid "E-mail address"
msgstr "メールアドレス"
-#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
-#: contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:299 contrib/admin/views/doc.py:300
+#: contrib/admin/views/doc.py:303
msgid "File path"
msgstr "ファイルの場所"
-#: contrib/admin/views/doc.py:300
-msgid "Decimal number"
-msgstr "10 進数 (小数可)"
+#: contrib/admin/views/doc.py:301
+msgid "Floating point number"
+msgstr "浮動小数点"
-#: contrib/admin/views/doc.py:304 contrib/comments/models.py:85
+#: contrib/admin/views/doc.py:305 contrib/comments/models.py:85
msgid "IP address"
msgstr "IP アドレス"
-#: contrib/admin/views/doc.py:306
+#: contrib/admin/views/doc.py:307
msgid "Boolean (Either True, False or None)"
msgstr "ブール値 (真: True 、偽: False または None)"
-#: contrib/admin/views/doc.py:307
+#: contrib/admin/views/doc.py:308
msgid "Relation to parent model"
msgstr "親モデルへのリレーション"
-#: contrib/admin/views/doc.py:308
+#: contrib/admin/views/doc.py:309
msgid "Phone number"
msgstr "電話番号"
-#: contrib/admin/views/doc.py:313
+#: contrib/admin/views/doc.py:314
msgid "Text"
msgstr "テキスト"
-#: contrib/admin/views/doc.py:314
+#: contrib/admin/views/doc.py:315
msgid "Time"
msgstr "時刻"
-#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7
+#: contrib/admin/views/doc.py:316 contrib/flatpages/models.py:7
msgid "URL"
msgstr "URL"
-#: contrib/admin/views/doc.py:316
+#: contrib/admin/views/doc.py:317
msgid "U.S. state (two uppercase letters)"
msgstr "アメリカの州 (大文字二文字で)"
-#: contrib/admin/views/doc.py:317
+#: contrib/admin/views/doc.py:318
msgid "XML text"
msgstr "XMLテキスト"
-#: contrib/admin/views/doc.py:343
+#: contrib/admin/views/doc.py:344
#, python-format
msgid "%s does not appear to be a urlpattern object"
msgstr "%s はurlpatternオブジェクトでは無いようです"
-#: contrib/admin/views/main.py:223
+#: contrib/admin/views/main.py:228
msgid "Site administration"
msgstr "サイト管理"
-#: 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
msgid "You may add another %s below."
msgstr "続けて別の %s を追加できます。"
-#: contrib/admin/views/main.py:289
+#: contrib/admin/views/main.py:294
#, python-format
msgid "Add %s"
msgstr "%s を追加"
-#: contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:340
#, python-format
msgid "Added %s."
msgstr "%s を追加しました。"
-#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337
-#: contrib/admin/views/main.py:339 db/models/manipulators.py:308
+#: contrib/admin/views/main.py:340 contrib/admin/views/main.py:342
+#: contrib/admin/views/main.py:344 db/models/manipulators.py:308
msgid "and"
msgstr "と"
-#: contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:342
#, python-format
msgid "Changed %s."
msgstr "%s を変更しました。"
-#: contrib/admin/views/main.py:339
+#: contrib/admin/views/main.py:344
#, python-format
msgid "Deleted %s."
msgstr "%s を削除しました。"
-#: contrib/admin/views/main.py:342
+#: contrib/admin/views/main.py:347
msgid "No fields changed."
msgstr "変更はありませんでした。"
-#: contrib/admin/views/main.py:345
+#: contrib/admin/views/main.py:350
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "%(name)s \"%(obj)s\" を変更しました。"
-#: contrib/admin/views/main.py:353
+#: contrib/admin/views/main.py:358
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr "%(name)s \"%(obj)s\" を追加しました。続けて編集できます。"
-#: contrib/admin/views/main.py:391
+#: contrib/admin/views/main.py:396
#, python-format
msgid "Change %s"
msgstr "%s を変更"
-#: contrib/admin/views/main.py:476
+#: contrib/admin/views/main.py:481
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr "%(name)s に %(fieldname)s が一つ以上あります: %(obj)s"
-#: contrib/admin/views/main.py:481
+#: contrib/admin/views/main.py:486
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr "%(name)s に %(fieldname)s が一つ以上あります:"
-#: contrib/admin/views/main.py:514
+#: contrib/admin/views/main.py:518
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "%(name)s \"%(obj)s\" を削除しました。"
-#: contrib/admin/views/main.py:517
+#: contrib/admin/views/main.py:521
msgid "Are you sure?"
msgstr "よろしいですか?"
-#: contrib/admin/views/main.py:539
+#: contrib/admin/views/main.py:543
#, python-format
msgid "Change history: %s"
msgstr "変更履歴: %s"
-#: contrib/admin/views/main.py:573
+#: contrib/admin/views/main.py:577
#, python-format
msgid "Select %s"
msgstr "%s を選択"
-#: contrib/admin/views/main.py:573
+#: contrib/admin/views/main.py:577
#, python-format
msgid "Select %s to change"
msgstr "変更する %s を選択"
-#: contrib/admin/views/main.py:768
+#: contrib/admin/views/main.py:772
msgid "Database error"
msgstr "データベースエラー"
@@ -1088,7 +1103,7 @@ msgstr ""
msgid "This account is inactive."
msgstr "アカウントが無効です。"
-#: contrib/auth/forms.py:85
+#: contrib/auth/forms.py:84
msgid ""
"That e-mail address doesn't have an associated user account. Are you sure "
"you've registered?"
@@ -1102,35 +1117,35 @@ msgstr "新しいパスワード(確認用)が一致しません。"
msgid "Your old password was entered incorrectly. Please enter it again."
msgstr "元のパスワードが間違っています。もう一度入力してください。"
-#: contrib/auth/models.py:38 contrib/auth/models.py:57
+#: contrib/auth/models.py:49 contrib/auth/models.py:69
msgid "name"
msgstr "名前"
-#: contrib/auth/models.py:40
+#: contrib/auth/models.py:51
msgid "codename"
msgstr "コード名"
-#: contrib/auth/models.py:42
+#: contrib/auth/models.py:54
msgid "permission"
msgstr "パーミッション"
-#: contrib/auth/models.py:43 contrib/auth/models.py:58
+#: contrib/auth/models.py:55 contrib/auth/models.py:70
msgid "permissions"
msgstr "パーミッション"
-#: contrib/auth/models.py:60
+#: contrib/auth/models.py:73
msgid "group"
msgstr "グループ"
-#: contrib/auth/models.py:61 contrib/auth/models.py:100
+#: contrib/auth/models.py:74 contrib/auth/models.py:114
msgid "groups"
msgstr "グループ"
-#: contrib/auth/models.py:90
+#: contrib/auth/models.py:104
msgid "username"
msgstr "ユーザ名"
-#: contrib/auth/models.py:90
+#: contrib/auth/models.py:104
msgid ""
"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
"digits and underscores)."
@@ -1138,23 +1153,23 @@ msgstr ""
"この項目は必須です。半角アルファベット、半角数字、半角アンダーバーで30文字以"
"下にしてください。"
-#: contrib/auth/models.py:91
+#: contrib/auth/models.py:105
msgid "first name"
msgstr "名"
-#: contrib/auth/models.py:92
+#: contrib/auth/models.py:106
msgid "last name"
msgstr "姓"
-#: contrib/auth/models.py:93
+#: contrib/auth/models.py:107
msgid "e-mail address"
msgstr "メールアドレス"
-#: contrib/auth/models.py:94
+#: contrib/auth/models.py:108
msgid "password"
msgstr "パスワード"
-#: contrib/auth/models.py:94
+#: contrib/auth/models.py:108
msgid ""
"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
"password form</a>."
@@ -1162,43 +1177,43 @@ msgstr ""
"'[algo]$[salt]$[hexdigest]'形式か、<a href=\"password/\">パスワード変更フォー"
"ム</a>を使ってください。"
-#: contrib/auth/models.py:95
+#: contrib/auth/models.py:109
msgid "staff status"
msgstr "スタッフ権限"
-#: contrib/auth/models.py:95
+#: contrib/auth/models.py:109
msgid "Designates whether the user can log into this admin site."
msgstr "ユーザが管理サイトにログイン可能かどうかを示します。"
-#: contrib/auth/models.py:96
+#: contrib/auth/models.py:110
msgid "active"
msgstr "有効"
-#: contrib/auth/models.py:96
+#: contrib/auth/models.py:110
msgid ""
"Designates whether this user can log into the Django admin. Unselect this "
"instead of deleting accounts."
msgstr "ユーザが管理サイトにログイン可能かどうかを示します。"
-#: contrib/auth/models.py:97
+#: contrib/auth/models.py:111
msgid "superuser status"
msgstr "スーパーユーザ権限"
-#: contrib/auth/models.py:97
+#: contrib/auth/models.py:111
msgid ""
"Designates that this user has all permissions without explicitly assigning "
"them."
msgstr "全ての権限を持っているとみなされます。"
-#: contrib/auth/models.py:98
+#: contrib/auth/models.py:112
msgid "last login"
msgstr "最終ログイン"
-#: contrib/auth/models.py:99
+#: contrib/auth/models.py:113
msgid "date joined"
msgstr "登録日"
-#: contrib/auth/models.py:101
+#: contrib/auth/models.py:115
msgid ""
"In addition to the permissions manually assigned, this user will also get "
"all permissions granted to each group he/she is in."
@@ -1206,39 +1221,43 @@ msgstr ""
"手動で付与したパーミッションに加え、所属しているグループに付与された全ての"
"パーミッションを獲得します。"
-#: contrib/auth/models.py:102
+#: contrib/auth/models.py:116
msgid "user permissions"
msgstr "ユーザパーミッション"
-#: contrib/auth/models.py:105
+#: contrib/auth/models.py:120
msgid "user"
msgstr "ユーザ"
-#: contrib/auth/models.py:106
+#: contrib/auth/models.py:121
msgid "users"
msgstr "ユーザ"
-#: contrib/auth/models.py:111
+#: contrib/auth/models.py:127
msgid "Personal info"
msgstr "個人情報"
-#: contrib/auth/models.py:112
+#: contrib/auth/models.py:128
msgid "Permissions"
msgstr "パーミッション"
-#: contrib/auth/models.py:113
+#: contrib/auth/models.py:129
msgid "Important dates"
msgstr "重要な日程"
-#: contrib/auth/models.py:114
+#: contrib/auth/models.py:130
msgid "Groups"
msgstr "グループ"
-#: contrib/auth/models.py:258
+#: contrib/auth/models.py:272
msgid "message"
msgstr "メッセージ"
-#: contrib/auth/views.py:39
+#: contrib/auth/models.py:285
+msgid "AnonymousUser"
+msgstr "非認証ユーザ"
+
+#: contrib/auth/views.py:40
msgid "Logged out"
msgstr "ログアウト"
@@ -1660,11 +1679,260 @@ msgstr "8"
msgid "nine"
msgstr "9"
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr "4桁でポストコードを入力してください。"
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "XXXXX-XXXの形式でZipコードを入力してください。"
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "電話番号は XX-XXXX-XXXX 形式で入力してください。"
+
+#: contrib/localflavor/br/forms.py:72
+msgid "This field requires only numbers."
+msgstr "このフィールドは必須です(数値のみ)。"
+
+#: contrib/localflavor/br/forms.py:74
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "11桁の数字か14文字で入力してください。"
+
+#: contrib/localflavor/br/forms.py:84
+msgid "Invalid CPF number."
+msgstr "ブラジル納税者番号が無効です。"
+
+#: contrib/localflavor/br/forms.py:106
+msgid "This field requires at least 14 digits"
+msgstr "14桁以上で入力して下さい。"
+
+#: contrib/localflavor/br/forms.py:116
+msgid "Invalid CNPJ number."
+msgstr "納税登録番号が正しくありません。"
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Geneva"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:15
+msgid "Enter a zip code in the format XXXX."
+msgstr "XXXXの形式でZipコードを入力してください。"
+
+#: contrib/localflavor/ch/forms.py:90
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr "スイス アイデンティティかパスポート番号を X1234567<0 か 1234567890 の形式で入力して下さい。"
+
+#: contrib/localflavor/cl/forms.py:21
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "XX.XXX.XXX-Xの形式でチリ納税者番号を入力してください。"
+
+#: contrib/localflavor/cl/forms.py:26
+msgid "Enter valid a Chilean RUT"
+msgstr "正しいチリ納税者番号を入力してください。"
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Wuerttemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bavaria"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Western Pomerania"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Lower Saxony"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "North Rhine-Westphalia"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rhineland-Palatinate"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saxony"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saxony-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thuringia"
+
+#: contrib/localflavor/de/forms.py:16 contrib/localflavor/fi/forms.py:14
#: contrib/localflavor/fr/forms.py:17
-#, fuzzy
msgid "Enter a zip code in the format XXXXX."
msgstr "XXXXXの形式でZipコードを入力してください。"
+#: contrib/localflavor/de/forms.py:60
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr "XXXXXXXXXXX-XXXXXXX-XXXXXXX-X の形式でドイツIDカード番号を入力して下さい。"
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
+msgid "Enter a valid Finnish social security number."
+msgstr "フィンランド社会保証番号を正しく入力してください。"
+
+#: contrib/localflavor/is_/forms.py:16
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "XXXXXか、XXXXX-XXXXの形式でアイスランド納税者番号を入力してください。"
+
+#: contrib/localflavor/is_/forms.py:30
+msgid "The Icelandic identification number is not valid."
+msgstr "アイスランド納税者番号を正しく入力して下さい。"
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr "Zipコードを正しく入力してください。"
+
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
+msgstr "社会保障番号番号を正しく入力してください。"
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "VAT番号を正しく入力してください。"
+
#: contrib/localflavor/jp/forms.py:21
msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
msgstr "XXXXXか、XXXXX-XXXXの形式で郵便番号を入力してください。"
@@ -1857,14 +2125,24 @@ msgstr "鹿児島県"
msgid "Okinawa"
msgstr "沖縄県"
+#: contrib/localflavor/no/forms.py:36
+msgid "Enter a valid Norwegian social security number."
+msgstr "ノルウェー社会保障番号を正しく入力してください。"
+
#: contrib/localflavor/uk/forms.py:18
msgid "Enter a postcode. A space is required between the two postcode parts."
-msgstr "ポスタルコードを入力してください。コードとコードの間は半角のスペースで区切ってください。"
+msgstr ""
+"ポスタルコードを入力してください。コードとコードの間は半角のスペースで区切っ"
+"てください。"
-#: contrib/localflavor/usa/forms.py:17
+#: contrib/localflavor/us/forms.py:18
msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
msgstr "XXXXXか、XXXXX-XXXXの形式で郵便番号を入力してください。"
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "XXX-XX-XXXX の形式で、米国社会保障番号を入力して下さい。"
+
#: contrib/redirects/models.py:7
msgid "redirect from"
msgstr "リダイレクト元"
@@ -1929,92 +2207,92 @@ msgstr "サイト"
msgid "sites"
msgstr "サイト"
-#: core/validators.py:64
+#: core/validators.py:65
msgid "This value must contain only letters, numbers and underscores."
msgstr "半角の英数字およびアンダースコア以外は使用できません。"
-#: core/validators.py:68
+#: core/validators.py:69
msgid ""
"This value must contain only letters, numbers, underscores, dashes or "
"slashes."
msgstr ""
"半角の英数字、アンダースコア、ダッシュ、スラッシュ以外は使用できません。"
-#: core/validators.py:72
+#: core/validators.py:73
msgid "This value must contain only letters, numbers, underscores or hyphens."
msgstr "半角の英数字、アンダースコア、ハイフン以外は使用できません。"
-#: core/validators.py:76
+#: core/validators.py:77
msgid "Uppercase letters are not allowed here."
msgstr "大文字はここでは使用できません。"
-#: core/validators.py:80
+#: core/validators.py:81
msgid "Lowercase letters are not allowed here."
msgstr "小文字はここでは使用できません。"
-#: core/validators.py:87
+#: core/validators.py:88
msgid "Enter only digits separated by commas."
msgstr "カンマ区切りの数字だけを入力してください。"
-#: core/validators.py:99
+#: core/validators.py:100
msgid "Enter valid e-mail addresses separated by commas."
msgstr "カンマ区切りの有効なメールアドレスを入力してください。"
-#: core/validators.py:103
+#: core/validators.py:104
msgid "Please enter a valid IP address."
msgstr "有効な IP アドレスを入力してください。"
-#: core/validators.py:107
+#: core/validators.py:108
msgid "Empty values are not allowed here."
msgstr "入力は必須です。"
-#: core/validators.py:111
+#: core/validators.py:112
msgid "Non-numeric characters aren't allowed here."
msgstr "数値以外は使用できません。"
-#: core/validators.py:115
+#: core/validators.py:116
msgid "This value can't be comprised solely of digits."
msgstr "数値だけの値にはできません。"
-#: core/validators.py:120 newforms/fields.py:126
+#: core/validators.py:121 newforms/fields.py:135
msgid "Enter a whole number."
msgstr "整数を入力してください。"
-#: core/validators.py:124
+#: core/validators.py:125
msgid "Only alphabetical characters are allowed here."
msgstr "半角アルファベット以外使用できません。"
-#: core/validators.py:139
+#: core/validators.py:140
msgid "Year must be 1900 or later."
msgstr "1900年以降を指定してください。"
-#: core/validators.py:143
+#: core/validators.py:144
#, python-format
msgid "Invalid date: %s"
msgstr "無効な日付: %s"
-#: core/validators.py:148 db/models/fields/__init__.py:457
+#: core/validators.py:149 db/models/fields/__init__.py:468
msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "YYYY-MM-DD形式で日付を入力してください。"
-#: core/validators.py:153
+#: core/validators.py:154
msgid "Enter a valid time in HH:MM format."
msgstr "HH:MM形式で時刻を入力してください。"
-#: core/validators.py:157 db/models/fields/__init__.py:526
+#: core/validators.py:158 db/models/fields/__init__.py:537
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "YYYY-MM-DD HH:MM形式で日時を入力してください。"
-#: core/validators.py:162 newforms/fields.py:269
+#: core/validators.py:163 newforms/fields.py:339
msgid "Enter a valid e-mail address."
msgstr "有効なメールアドレスを入力してください。"
-#: core/validators.py:174 core/validators.py:445 oldforms/__init__.py:672
+#: core/validators.py:175 core/validators.py:453 oldforms/__init__.py:672
msgid "No file was submitted. Check the encoding type on the form."
msgstr ""
"ファイルが取得できませんでした。formのencoding typeを確認してください。"
-#: core/validators.py:178
+#: core/validators.py:179
msgid ""
"Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image."
@@ -2022,26 +2300,26 @@ msgstr ""
"画像をアップロードしてください。アップロードした画像は画像でないか、または壊"
"れています。"
-#: core/validators.py:185
+#: core/validators.py:186
#, python-format
msgid "The URL %s does not point to a valid image."
msgstr "URL ( %s ) は画像ではありません。"
-#: core/validators.py:189
+#: core/validators.py:190
#, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "電話番号は XXX-XXX-XXXX 形式で入力してください。\"%s\" は無効です。"
-#: core/validators.py:197
+#: core/validators.py:198
#, python-format
msgid "The URL %s does not point to a valid QuickTime video."
msgstr "URL ( %s ) は QuickTime ビデオではありません。"
-#: core/validators.py:201
+#: core/validators.py:202
msgid "A valid URL is required."
msgstr "正しい URL を入力してください。"
-#: core/validators.py:215
+#: core/validators.py:216
#, python-format
msgid ""
"Valid HTML is required. Specific errors are:\n"
@@ -2050,86 +2328,86 @@ msgstr ""
"有効な HTML を入力してください。エラー:\n"
"%s"
-#: core/validators.py:222
+#: core/validators.py:223
#, python-format
msgid "Badly formed XML: %s"
msgstr "不正な XML です: %s"
-#: core/validators.py:239
+#: core/validators.py:240
#, python-format
msgid "Invalid URL: %s"
msgstr "無効なURL: %s"
-#: core/validators.py:244 core/validators.py:246
+#: core/validators.py:245 core/validators.py:247
#, python-format
msgid "The URL %s is a broken link."
msgstr "URL ( %s ) はリンクが壊れています。"
-#: core/validators.py:252
+#: core/validators.py:253
msgid "Enter a valid U.S. state abbreviation."
msgstr "正しい米州略称を入力してください。"
-#: core/validators.py:266
+#: core/validators.py:267
#, python-format
msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here."
msgstr[0] "言葉使いに気を付けて! %s という言葉は使えません。"
msgstr[1] "言葉使いに気を付けて! %s という言葉は使えません。"
-#: core/validators.py:273
+#: core/validators.py:274
#, python-format
msgid "This field must match the '%s' field."
msgstr "このフィールドは '%s' フィールドと一致せねばなりません。"
-#: core/validators.py:292
+#: core/validators.py:293
msgid "Please enter something for at least one field."
msgstr "少なくとも一つのフィールドに何か入力してください。"
-#: core/validators.py:301 core/validators.py:312
+#: core/validators.py:302 core/validators.py:313
msgid "Please enter both fields or leave them both empty."
msgstr "両方のフィールドに入力するか、両方とも未入力にしてください。"
-#: core/validators.py:320
+#: core/validators.py:321
#, python-format
msgid "This field must be given if %(field)s is %(value)s"
msgstr ""
"%(field)s を %(value)s にするのなら、このフィールドに必ず入力してください。"
-#: core/validators.py:333
+#: core/validators.py:334
#, python-format
msgid "This field must be given if %(field)s is not %(value)s"
msgstr ""
"%(field)s を %(value)s にしないのなら、このフィールドに必ず入力してください。"
-#: core/validators.py:352
+#: core/validators.py:353
msgid "Duplicate values are not allowed."
msgstr "重複する値は認められません。"
-#: core/validators.py:367
+#: core/validators.py:368
#, python-format
msgid "This value must be between %(lower)s and %(upper)s."
msgstr "この値は %(lower)s から %(upper)s の間でなければなりません。"
-#: core/validators.py:369
+#: core/validators.py:370
#, python-format
msgid "This value must be at least %s."
msgstr "この値は %s 以上でなければなりません。"
-#: core/validators.py:371
+#: core/validators.py:372
#, python-format
msgid "This value must be no more than %s."
msgstr "この値は %s より小さくなければなりません。"
-#: core/validators.py:407
+#: core/validators.py:408
#, python-format
msgid "This value must be a power of %s."
msgstr "この値は %s の累乗でなければなりません。"
-#: core/validators.py:418
+#: core/validators.py:417
msgid "Please enter a valid decimal number."
msgstr "有効な 10 進数を入力してください。"
-#: core/validators.py:422
+#: core/validators.py:423
#, python-format
msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural ""
@@ -2137,7 +2415,7 @@ msgid_plural ""
msgstr[0] "全体で %s 文字以下の数字を入力してください。"
msgstr[1] "全体で %s 文字以下の数字を入力してください。"
-#: core/validators.py:425
+#: core/validators.py:426
#, python-format
msgid ""
"Please enter a valid decimal number with a whole part of at most %s digit."
@@ -2146,7 +2424,7 @@ msgid_plural ""
msgstr[0] "整数部は %s 文字以下の数字を入力してください。"
msgstr[1] "整数部は %s 文字以下の数字を入力してください。"
-#: core/validators.py:428
+#: core/validators.py:429
#, python-format
msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural ""
@@ -2154,37 +2432,41 @@ msgid_plural ""
msgstr[0] "小数部は %s 文字以下の数字を入力してください。"
msgstr[1] "小数部は %s 文字以下の数字を入力してください。"
-#: core/validators.py:438
+#: core/validators.py:437
+msgid "Please enter a valid floating point number."
+msgstr "有効な 小数 を入力してください。"
+
+#: core/validators.py:446
#, python-format
msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "アップロードするファイルの大きさは %s バイト以上にしてください。"
-#: core/validators.py:439
+#: core/validators.py:447
#, python-format
msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "アップロードするファイルの大きさは %s 最大バイトまでです。"
-#: core/validators.py:456
+#: core/validators.py:464
msgid "The format for this field is wrong."
msgstr "フィールドの形式が正しくありません。"
-#: core/validators.py:471
+#: core/validators.py:479
msgid "This field is invalid."
msgstr "このフィールドは無効です。"
-#: core/validators.py:507
+#: core/validators.py:515
#, python-format
msgid "Could not retrieve anything from %s."
msgstr "%s から何も検索できませんでした。"
-#: core/validators.py:510
+#: core/validators.py:518
#, python-format
msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
msgstr ""
"URL %(url)s は無効なコンテンツタイプヘッダ '%(contenttype)s' を返しました。"
-#: core/validators.py:543
+#: core/validators.py:551
#, python-format
msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
@@ -2193,7 +2475,7 @@ msgstr ""
"%(line)s 行目から始まる %(tag)s タグを閉じてください (\"%(start)s\" で始まる"
"行です)。"
-#: core/validators.py:547
+#: core/validators.py:555
#, python-format
msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line "
@@ -2202,7 +2484,7 @@ msgstr ""
"%(line)s 行目から始まるテキストはこのコンテキストでは使えません。 (\"%(start)"
"s\" で始まる行です)。"
-#: core/validators.py:552
+#: core/validators.py:560
#, python-format
msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
@@ -2211,7 +2493,7 @@ msgstr ""
"%(line)s 行目の \"%(attr)s\" は無効なアトリビュートです (\"%(start)s\" で始ま"
"る行です)。"
-#: core/validators.py:557
+#: core/validators.py:565
#, python-format
msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
@@ -2220,7 +2502,7 @@ msgstr ""
"%(line)s 行目の \"<%(tag)s>\" は無効なタグです( \"%(start)s\" で始まる行で"
"す)。"
-#: core/validators.py:561
+#: core/validators.py:569
#, python-format
msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line "
@@ -2229,7 +2511,7 @@ msgstr ""
"%(line)s 行目のタグは必須アトリビュートが未入力です( \"%(start)s\" で始まる行"
"です)。"
-#: core/validators.py:566
+#: core/validators.py:574
#, python-format
msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
@@ -2244,55 +2526,59 @@ msgid "%(object)s with this %(type)s already exists for the given %(field)s."
msgstr ""
"%(field)s に入力されたものは、この %(type)s の %(object)s に既に存在します。"
-#: db/models/fields/__init__.py:42
+#: db/models/fields/__init__.py:46
#, python-format
msgid "%(optname)s with this %(fieldname)s already exists."
msgstr "%(fieldname)s に %(optname)s は既に存在します。"
-#: db/models/fields/__init__.py:117 db/models/fields/__init__.py:274
-#: db/models/fields/__init__.py:610 db/models/fields/__init__.py:621
-#: newforms/fields.py:78 newforms/fields.py:374 newforms/fields.py:450
-#: newforms/fields.py:461 newforms/models.py:177 oldforms/__init__.py:357
+#: db/models/fields/__init__.py:126 db/models/fields/__init__.py:283
+#: db/models/fields/__init__.py:680 db/models/fields/__init__.py:691
+#: newforms/fields.py:87 newforms/fields.py:444 newforms/fields.py:522
+#: newforms/fields.py:533 newforms/models.py:185 oldforms/__init__.py:357
msgid "This field is required."
msgstr "このフィールドは必須です。"
-#: db/models/fields/__init__.py:367
+#: db/models/fields/__init__.py:378
msgid "This value must be an integer."
msgstr "値は整数でなければなりません。"
-#: db/models/fields/__init__.py:402
+#: db/models/fields/__init__.py:413
msgid "This value must be either True or False."
msgstr "値は真: True または偽: False でなければなりません。"
-#: db/models/fields/__init__.py:423
+#: db/models/fields/__init__.py:434
msgid "This field cannot be null."
msgstr "このフィールドには NULL を指定できません。"
-#: db/models/fields/__init__.py:630
+#: db/models/fields/__init__.py:597
+msgid "This value must be a decimal number."
+msgstr "値は整数でなければなりません。"
+
+#: db/models/fields/__init__.py:700
msgid "Enter a valid filename."
msgstr "正しいファイル名を入力してください。"
-#: db/models/fields/__init__.py:751
+#: db/models/fields/__init__.py:824
msgid "This value must be either None, True or False."
msgstr "値は、空: None、真: True または偽: False でなければなりません。"
-#: db/models/fields/related.py:53
+#: db/models/fields/related.py:54
#, python-format
msgid "Please enter a valid %s."
msgstr "正しい %s を入力してください。"
-#: db/models/fields/related.py:642
+#: db/models/fields/related.py:640
msgid "Separate multiple IDs with commas."
msgstr "複数の ID はカンマで区切ってください。"
-#: db/models/fields/related.py:644
+#: db/models/fields/related.py:642
msgid ""
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr ""
"複数選択するときには Control キーを押したまま選択してください。Mac は "
"Command キーを使ってください"
-#: db/models/fields/related.py:691
+#: db/models/fields/related.py:689
#, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural ""
@@ -2300,59 +2586,78 @@ msgid_plural ""
msgstr[0] "正しい %(self)s IDを入力してください。 %(value)r は無効です。"
msgstr[1] "正しい %(self)s IDを入力してください。 %(value)r は無効です。"
-#: newforms/fields.py:101 newforms/fields.py:254
+#: newforms/fields.py:110 newforms/fields.py:324
#, python-format
msgid "Ensure this value has at most %d characters."
msgstr "%d 字以下で入力してください。"
-#: newforms/fields.py:103 newforms/fields.py:256
+#: newforms/fields.py:112 newforms/fields.py:326
#, python-format
msgid "Ensure this value has at least %d characters."
msgstr "%d 字以上で入力してください。"
-#: newforms/fields.py:128
+#: newforms/fields.py:137 newforms/fields.py:160 newforms/fields.py:192
#, python-format
msgid "Ensure this value is less than or equal to %s."
msgstr "この値は %s 以下でなければなりません。"
-#: newforms/fields.py:130
+#: newforms/fields.py:139 newforms/fields.py:162 newforms/fields.py:194
#, python-format
msgid "Ensure this value is greater than or equal to %s."
msgstr "この値は %s 以上でなければなりません。"
-#: newforms/fields.py:163
+#: newforms/fields.py:158 newforms/fields.py:186
+msgid "Enter a number."
+msgstr "整数を入力してください。"
+
+#: newforms/fields.py:196
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "整数部と少数部を併せて %s 桁までで入力して下さい。"
+
+#: newforms/fields.py:198
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "少数部は %s 桁までで入力して下さい。"
+
+#: newforms/fields.py:200
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "整数部は %s 桁までで入力して下さい。"
+
+#: newforms/fields.py:233 newforms/fields.py:566
msgid "Enter a valid date."
msgstr "日付を正しく入力してください。"
-#: newforms/fields.py:190
+#: newforms/fields.py:260 newforms/fields.py:568
msgid "Enter a valid time."
msgstr "時間を正しく入力してください。"
-#: newforms/fields.py:226
+#: newforms/fields.py:296
msgid "Enter a valid date/time."
msgstr "日付/時間を正しく入力してください。"
-#: newforms/fields.py:240
+#: newforms/fields.py:310
msgid "Enter a valid value."
msgstr "値を正しく入力してください。"
-#: newforms/fields.py:287 newforms/fields.py:309
+#: newforms/fields.py:357 newforms/fields.py:379
msgid "Enter a valid URL."
msgstr "URLを正しく入力してください。"
-#: newforms/fields.py:311
+#: newforms/fields.py:381
msgid "This URL appears to be a broken link."
msgstr "このURLはリンクが壊れています。"
-#: newforms/fields.py:360 newforms/models.py:164
+#: newforms/fields.py:432 newforms/models.py:172
msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "正しく選択してください。選択したものは候補にありません。"
-#: newforms/fields.py:378 newforms/fields.py:454 newforms/models.py:181
+#: newforms/fields.py:448 newforms/fields.py:526 newforms/models.py:189
msgid "Enter a list of values."
msgstr "リストを入力してください。"
-#: newforms/fields.py:387 newforms/models.py:187
+#: newforms/fields.py:457 newforms/models.py:195
#, python-format
msgid "Select a valid choice. %s is not one of the available choices."
msgstr "正しく選択してください。 %s は候補にありません。"
@@ -2393,6 +2698,28 @@ msgstr "0 から 32,767 までの整数を入力してください。"
msgid "yes,no,maybe"
msgstr "はい,いいえ,たぶん"
+#: template/defaultfilters.py:520
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#: template/defaultfilters.py:522
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:524
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:525
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
#: utils/dateformat.py:40
msgid "p.m."
msgstr "p.m."
@@ -2605,23 +2932,38 @@ msgid_plural "minutes"
msgstr[0] "分"
msgstr[1] "分"
-#: utils/translation/trans_real.py:362
+#: utils/timesince.py:40
+#, python-format
+msgid "%d milliseconds"
+msgstr "%d ミリ秒"
+
+#: utils/timesince.py:41
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:47
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:358
msgid "DATE_FORMAT"
msgstr "Y/m/d"
-#: utils/translation/trans_real.py:363
+#: utils/translation/trans_real.py:359
msgid "DATETIME_FORMAT"
msgstr "Y/m/d H:i"
-#: utils/translation/trans_real.py:364
+#: utils/translation/trans_real.py:360
msgid "TIME_FORMAT"
msgstr "H:i"
-#: utils/translation/trans_real.py:380
+#: utils/translation/trans_real.py:376
msgid "YEAR_MONTH_FORMAT"
msgstr "Y/m/d"
-#: utils/translation/trans_real.py:381
+#: utils/translation/trans_real.py:377
msgid "MONTH_DAY_FORMAT"
msgstr "m/d"
diff --git a/django/conf/locale/ro/LC_MESSAGES/django.mo b/django/conf/locale/ro/LC_MESSAGES/django.mo
index ffac5d5f9e..9b46b6c6d6 100644
--- a/django/conf/locale/ro/LC_MESSAGES/django.mo
+++ b/django/conf/locale/ro/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/ro/LC_MESSAGES/django.po b/django/conf/locale/ro/LC_MESSAGES/django.po
index 293e428c71..09494d7b4e 100644
--- a/django/conf/locale/ro/LC_MESSAGES/django.po
+++ b/django/conf/locale/ro/LC_MESSAGES/django.po
@@ -23,13 +23,13 @@ msgstr "id obiect"
#: contrib/comments/models.py:68
msgid "headline"
-msgstr ""
+msgstr "titlu"
#: contrib/comments/models.py:69 contrib/comments/models.py:90
#: contrib/comments/models.py:167
#, fuzzy
msgid "comment"
-msgstr "conţinut"
+msgstr "comentariu"
#: contrib/comments/models.py:70
msgid "rating #1"
@@ -69,20 +69,19 @@ msgstr ""
#: contrib/comments/models.py:83 contrib/comments/models.py:169
msgid "date/time submitted"
-msgstr ""
+msgstr "data/ora crearii"
#: contrib/comments/models.py:84 contrib/comments/models.py:170
msgid "is public"
-msgstr ""
+msgstr "public"
#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
-#, fuzzy
msgid "IP address"
-msgstr "adresa email"
+msgstr "adresa ip"
#: contrib/comments/models.py:86
msgid "is removed"
-msgstr ""
+msgstr "sters"
#: contrib/comments/models.py:86
msgid ""
@@ -122,7 +121,7 @@ msgstr "adresa email"
#: contrib/comments/models.py:173
msgid "approved by staff"
-msgstr ""
+msgstr "aprobat de echipa"
#: contrib/comments/models.py:176
#, fuzzy
@@ -282,9 +281,8 @@ msgid "Password:"
msgstr "Parola:"
#: contrib/comments/templates/comments/form.html:6
-#, fuzzy
msgid "Forgotten your password?"
-msgstr "Schimbă-mi parola"
+msgstr "Ai uitat parola?"
#: contrib/comments/templates/comments/form.html:8
#: contrib/admin/templates/admin/object_history.html:3
@@ -338,9 +336,8 @@ msgid "Preview comment"
msgstr "permite comentarii"
#: contrib/comments/templates/comments/freeform.html:4
-#, fuzzy
msgid "Your name:"
-msgstr "nume utilizator"
+msgstr "numele dumneavoastra"
#: contrib/admin/filterspecs.py:40
#, python-format
@@ -352,41 +349,39 @@ msgstr ""
#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
#: contrib/admin/filterspecs.py:143
msgid "All"
-msgstr ""
+msgstr "tot"
#: contrib/admin/filterspecs.py:109
msgid "Any date"
-msgstr ""
+msgstr "orice data"
#: contrib/admin/filterspecs.py:110
-#, fuzzy
msgid "Today"
-msgstr "Luni"
+msgstr "Astazi"
#: contrib/admin/filterspecs.py:113
msgid "Past 7 days"
-msgstr ""
+msgstr "Ultimele 7 zile"
#: contrib/admin/filterspecs.py:115
msgid "This month"
-msgstr ""
+msgstr "Luna aceasta"
#: contrib/admin/filterspecs.py:117
msgid "This year"
-msgstr ""
+msgstr "Anul acesta"
#: contrib/admin/filterspecs.py:143
msgid "Yes"
-msgstr ""
+msgstr "Da"
#: contrib/admin/filterspecs.py:143
-#, fuzzy
msgid "No"
-msgstr "Noi."
+msgstr "Nu"
#: contrib/admin/filterspecs.py:150
msgid "Unknown"
-msgstr ""
+msgstr "Necunoscut"
#: contrib/admin/models.py:16
msgid "action time"
@@ -418,7 +413,7 @@ msgstr "intrări log"
#: contrib/admin/templatetags/admin_list.py:228
msgid "All dates"
-msgstr ""
+msgstr "Toate datele"
#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
#: contrib/auth/forms.py:41
@@ -426,6 +421,8 @@ msgid ""
"Please enter a correct username and password. Note that both fields are case-"
"sensitive."
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/templates/admin/login.html:25
@@ -437,16 +434,21 @@ msgid ""
"Please log in again, because your session has expired. Don't worry: Your "
"submission has been saved."
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
msgid ""
"Looks like your browser isn't configured to accept cookies. Please enable "
"cookies, reload this page, and try again."
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
msgid "Usernames cannot contain the '@' character."
-msgstr ""
+msgstr "Username-ul nu are voie sa contina caracterul '@'."
#: contrib/admin/views/decorators.py:84
#, python-format
@@ -461,61 +463,62 @@ msgstr "Administrare Django"
#: contrib/admin/views/main.py:260
#, python-format
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
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
#, python-format
msgid "You may add another %s below."
-msgstr ""
+msgstr "Mai puteti adauga un alt %s mai jos."
#: contrib/admin/views/main.py:290
-#, fuzzy, python-format
+#, python-format
msgid "Add %s"
-msgstr "Adaugă"
+msgstr "Adaugă %s"
#: contrib/admin/views/main.py:336
#, python-format
msgid "Added %s."
-msgstr ""
+msgstr "Adaugat %s."
#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
#: contrib/admin/views/main.py:340
msgid "and"
-msgstr ""
+msgstr "si"
#: contrib/admin/views/main.py:338
-#, fuzzy, python-format
+#, python-format
msgid "Changed %s."
-msgstr "Schimbă"
+msgstr "Schimbă %s."
#: contrib/admin/views/main.py:340
#, python-format
msgid "Deleted %s."
-msgstr ""
+msgstr "Am sters %s."
#: contrib/admin/views/main.py:343
msgid "No fields changed."
-msgstr ""
+msgstr "Nu s-a facut nicio schimbare."
#: contrib/admin/views/main.py:346
#, python-format
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
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
+"%(name)s \"%(obj)s\" au fost adaugate cu succes. Le puteti edita mai jos."
#: contrib/admin/views/main.py:392
-#, fuzzy, python-format
+#, python-format
msgid "Change %s"
-msgstr "Schimbă"
+msgstr "Schimbă %s"
#: contrib/admin/views/main.py:470
#, python-format
@@ -530,16 +533,16 @@ msgstr ""
#: contrib/admin/views/main.py:508
#, python-format
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
msgid "Are you sure?"
-msgstr ""
+msgstr "Sunteti sigur?"
#: contrib/admin/views/main.py:533
-#, fuzzy, python-format
+#, python-format
msgid "Change history: %s"
-msgstr "Schimbă parola"
+msgstr "Schimbari facute: %s"
#: contrib/admin/views/main.py:565
#, python-format
@@ -549,13 +552,13 @@ msgstr ""
#: contrib/admin/views/main.py:565
#, python-format
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:288 contrib/admin/views/doc.py:294
#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:297
msgid "Integer"
-msgstr ""
+msgstr "Intreg"
#: contrib/admin/views/doc.py:278
msgid "Boolean (Either True or False)"
@@ -564,26 +567,23 @@ msgstr ""
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
#, python-format
msgid "String (up to %(maxlength)s)"
-msgstr ""
+msgstr "String (pana la %(maxlength)s caractere)"
#: contrib/admin/views/doc.py:280
msgid "Comma-separated integers"
msgstr ""
#: contrib/admin/views/doc.py:281
-#, fuzzy
msgid "Date (without time)"
-msgstr "timp acţiune"
+msgstr "Data (fara ora)"
#: contrib/admin/views/doc.py:282
-#, fuzzy
msgid "Date (with time)"
-msgstr "Dată/oră"
+msgstr "Data (cu ora)"
#: contrib/admin/views/doc.py:283
-#, fuzzy
msgid "E-mail address"
-msgstr "Adresa email:"
+msgstr "Adresa email"
#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
msgid "File path"
@@ -603,9 +603,8 @@ msgid "Relation to parent model"
msgstr ""
#: contrib/admin/views/doc.py:293
-#, fuzzy
msgid "Phone number"
-msgstr "Introduceţi un număr întreg."
+msgstr "Numar de telefon"
#: contrib/admin/views/doc.py:298
msgid "Text"
@@ -613,7 +612,7 @@ msgstr ""
#: contrib/admin/views/doc.py:299
msgid "Time"
-msgstr ""
+msgstr "Timp"
#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
msgid "URL"
@@ -636,7 +635,7 @@ msgstr ""
#: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admin/templates/admin_doc/bookmarklets.html:3
msgid "Documentation"
-msgstr ""
+msgstr "Documentatie"
#: contrib/admin/templates/admin/object_history.html:3
#: contrib/admin/templates/admin/change_list.html:5
@@ -770,9 +769,9 @@ msgid "None available"
msgstr "Indisponibil"
#: contrib/admin/templates/admin/change_list.html:11
-#, fuzzy, python-format
+#, python-format
msgid "Add %(name)s"
-msgstr "Adaugă"
+msgstr "Adaugă %(name)s"
#: contrib/admin/templates/admin/login.html:22
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/submit_line.html:3
msgid "Delete"
-msgstr ""
+msgstr "Sterge"
#: contrib/admin/templates/admin/delete_confirmation.html:14
#, python-format
@@ -814,7 +813,7 @@ msgstr "Da, sînt sigur"
#: contrib/admin/templates/admin/filter.html:2
#, python-format
msgid " By %(title)s "
-msgstr ""
+msgstr " Dupa %(title)s "
#: contrib/admin/templates/admin/search_form.html:8
msgid "Go"
@@ -827,33 +826,32 @@ msgstr ""
#: contrib/admin/templates/admin/change_form.html:30
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Va rugam sa corectati eroarea de mai jos"
+msgstr[1] "Va rugam sa corectati erorile de mai jos"
#: contrib/admin/templates/admin/change_form.html:48
msgid "Ordering"
-msgstr ""
+msgstr "Ordonate dupa"
#: contrib/admin/templates/admin/change_form.html:51
msgid "Order:"
-msgstr ""
+msgstr "Ordonare:"
#: contrib/admin/templates/admin/submit_line.html:4
msgid "Save as new"
-msgstr ""
+msgstr "Salvati ca nou"
#: contrib/admin/templates/admin/submit_line.html:5
msgid "Save and add another"
-msgstr ""
+msgstr "Salvati si adaugati altul"
#: contrib/admin/templates/admin/submit_line.html:6
msgid "Save and continue editing"
-msgstr ""
+msgstr "Salvati si continuati"
#: contrib/admin/templates/admin/submit_line.html:7
-#, fuzzy
msgid "Save"
-msgstr "activ"
+msgstr "Salveaza"
#: contrib/admin/templates/registration/password_change_done.html:4
#: contrib/admin/templates/registration/password_change_form.html:4
@@ -1133,24 +1131,20 @@ msgid "codename"
msgstr "nume cod"
#: contrib/auth/models.py:17
-#, fuzzy
msgid "permission"
-msgstr "Permisiune"
+msgstr "permisiune"
#: contrib/auth/models.py:18 contrib/auth/models.py:27
-#, fuzzy
msgid "permissions"
-msgstr "Permisiuni"
+msgstr "permisiuni"
#: contrib/auth/models.py:29
-#, fuzzy
msgid "group"
-msgstr "Grup"
+msgstr "grup"
#: contrib/auth/models.py:30 contrib/auth/models.py:65
-#, fuzzy
msgid "groups"
-msgstr "Grupuri"
+msgstr "grupuri"
#: contrib/auth/models.py:55
msgid "username"
@@ -1209,19 +1203,16 @@ msgstr ""
"permisiunile alocate fiecărui grup din care el/ea face parte."
#: contrib/auth/models.py:67
-#, fuzzy
msgid "user permissions"
-msgstr "Permisiuni"
+msgstr "permisiuni utilizator"
#: contrib/auth/models.py:70
-#, fuzzy
msgid "user"
-msgstr "Utilizator"
+msgstr "utilizator"
#: contrib/auth/models.py:71
-#, fuzzy
msgid "users"
-msgstr "Utilizatori"
+msgstr "utilizatori"
#: contrib/auth/models.py:76
msgid "Personal info"
@@ -1240,15 +1231,16 @@ msgid "Groups"
msgstr "Grupuri"
#: contrib/auth/models.py:219
-#, fuzzy
msgid "message"
-msgstr "Mesaj"
+msgstr "mesaj"
#: contrib/auth/forms.py:30
msgid ""
"Your Web browser doesn't appear to have cookies enabled. Cookies are "
"required for logging in."
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
#, fuzzy
@@ -1277,7 +1269,7 @@ msgstr "data expirare"
#: contrib/sessions/models.py:41
msgid "session"
-msgstr "seiune"
+msgstr "sesiune"
#: contrib/sessions/models.py:42
msgid "sessions"
@@ -1389,7 +1381,7 @@ msgstr "Decembrie"
#: utils/dates.py:19
msgid "jan"
-msgstr ""
+msgstr "ian"
#: utils/dates.py:19
msgid "feb"
@@ -1404,17 +1396,16 @@ msgid "apr"
msgstr ""
#: utils/dates.py:19
-#, fuzzy
msgid "may"
-msgstr "Mai"
+msgstr "mai"
#: utils/dates.py:19
msgid "jun"
-msgstr ""
+msgstr "iun"
#: utils/dates.py:20
msgid "jul"
-msgstr ""
+msgstr "iul"
#: utils/dates.py:20
msgid "aug"
@@ -1430,7 +1421,7 @@ msgstr ""
#: utils/dates.py:20
msgid "nov"
-msgstr ""
+msgstr "noi"
#: utils/dates.py:20
msgid "dec"
@@ -1467,40 +1458,38 @@ msgstr "Dec."
#: utils/timesince.py:12
msgid "year"
msgid_plural "years"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "an"
+msgstr[1] "ani"
#: utils/timesince.py:13
msgid "month"
msgid_plural "months"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "luna"
+msgstr[1] "luni"
#: utils/timesince.py:14
msgid "week"
msgid_plural "weeks"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "saptamana"
+msgstr[1] "saptamani"
#: utils/timesince.py:15
-#, fuzzy
msgid "day"
msgid_plural "days"
-msgstr[0] "Mai"
-msgstr[1] "Mai"
+msgstr[0] "zi"
+msgstr[1] "zile"
#: utils/timesince.py:16
msgid "hour"
msgid_plural "hours"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "ora"
+msgstr[1] "ore"
#: utils/timesince.py:17
-#, fuzzy
msgid "minute"
msgid_plural "minutes"
-msgstr[0] "sit"
-msgstr[1] "sit"
+msgstr[0] "minut"
+msgstr[1] "minute"
#: conf/global_settings.py:37
msgid "Bengali"
@@ -1545,7 +1534,7 @@ msgstr "Galiciană"
#: conf/global_settings.py:47
msgid "Hungarian"
-msgstr ""
+msgstr "Ungara"
#: conf/global_settings.py:48
msgid "Hebrew"
@@ -1577,7 +1566,7 @@ msgstr "Braziliană"
#: conf/global_settings.py:55
msgid "Romanian"
-msgstr ""
+msgstr "Romana"
#: conf/global_settings.py:56
msgid "Russian"
@@ -1750,7 +1739,7 @@ msgstr[1] "Îngrijiţi-vă limbajul! Cuvintele %s nu sînt permise aici."
#: core/validators.py:236
#, python-format
msgid "This field must match the '%s' field."
-msgstr ""
+msgstr "Acest camp trebuie sa fie identic cu '%s'."
#: core/validators.py:255
#, fuzzy
@@ -1897,9 +1886,8 @@ msgstr ""
#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
#: forms/__init__.py:346
-#, fuzzy
msgid "This field is required."
-msgstr "Cîmpul este invalid."
+msgstr "Campul acesta trebuie completat obligatoriu."
#: db/models/fields/__init__.py:337
#, fuzzy
@@ -1917,14 +1905,13 @@ msgid "This field cannot be null."
msgstr "Cîmpul este invalid."
#: db/models/fields/__init__.py:562
-#, fuzzy
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
-#, fuzzy, python-format
+#, python-format
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
#, fuzzy
@@ -1953,6 +1940,7 @@ msgid "Ensure your text is less than %s character."
msgid_plural "Ensure your text is less than %s characters."
msgstr[0] ""
msgstr[1] ""
+"Va rugam asigurati-va ca textul dumneavoastra are mai putin de %s caractere."
#: forms/__init__.py:385
#, fuzzy
@@ -1966,7 +1954,7 @@ msgstr ""
#: forms/__init__.py:645
msgid "The submitted file is empty."
-msgstr ""
+msgstr "Fisierul uploadat este gol"
#: forms/__init__.py:699
#, fuzzy
@@ -1985,7 +1973,7 @@ msgstr "Introduceţi un număr întreg."
#: template/defaultfilters.py:379
msgid "yes,no,maybe"
-msgstr ""
+msgstr "da,nu,poate"
#, fuzzy
#~ msgid "Comments"
diff --git a/django/conf/locale/ro/LC_MESSAGES/djangojs.mo b/django/conf/locale/ro/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000000..1db40df910
--- /dev/null
+++ b/django/conf/locale/ro/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/django/conf/locale/ro/LC_MESSAGES/djangojs.po b/django/conf/locale/ro/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000..4084313848
--- /dev/null
+++ b/django/conf/locale/ro/LC_MESSAGES/djangojs.po
@@ -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 ""
diff --git a/django/conf/locale/uk/LC_MESSAGES/djangojs.mo b/django/conf/locale/uk/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000000..1db40df910
--- /dev/null
+++ b/django/conf/locale/uk/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/django/conf/locale/uk/LC_MESSAGES/djangojs.po b/django/conf/locale/uk/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000..4084313848
--- /dev/null
+++ b/django/conf/locale/uk/LC_MESSAGES/djangojs.po
@@ -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 ""
diff --git a/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.mo b/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000000..1db40df910
--- /dev/null
+++ b/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.po b/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000..4084313848
--- /dev/null
+++ b/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.po
@@ -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 ""
diff --git a/django/conf/project_template/settings.py b/django/conf/project_template/settings.py
index 36039d7e98..8b3617d4b6 100644
--- a/django/conf/project_template/settings.py
+++ b/django/conf/project_template/settings.py
@@ -9,7 +9,7 @@ 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_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
diff --git a/django/core/mail.py b/django/core/mail.py
index 9190a55989..4cfb5f37cb 100644
--- a/django/core/mail.py
+++ b/django/core/mail.py
@@ -4,10 +4,13 @@ Tools for sending email.
from django.conf import settings
from django.utils.encoding import smart_str, force_unicode
+from email import Charset, Encoders
from email.MIMEText import MIMEText
+from email.MIMEMultipart import MIMEMultipart
+from email.MIMEBase import MIMEBase
from email.Header import Header
from email.Utils import formatdate, parseaddr, formataddr
-from email import Charset
+import mimetypes
import os
import smtplib
import socket
@@ -18,6 +21,10 @@ import random
# some spam filters.
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
# seconds, which slows down the restart of the server.
class CachedDnsName(object):
@@ -56,7 +63,7 @@ def make_msgid(idstring=None):
class BadHeaderError(ValueError):
pass
-class SafeMIMEText(MIMEText):
+class SafeHeaderMixin(object):
def __setitem__(self, name, val):
"Forbids multi-line headers, to prevent header injection."
if '\n' in val or '\r' in val:
@@ -73,7 +80,15 @@ class SafeMIMEText(MIMEText):
val = ', '.join(result)
else:
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):
"""
@@ -165,7 +180,12 @@ class EmailMessage(object):
"""
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
recipients).
@@ -179,6 +199,8 @@ class EmailMessage(object):
self.from_email = from_email or settings.DEFAULT_FROM_EMAIL
self.subject = subject
self.body = body
+ self.attachments = attachments or []
+ self.extra_headers = headers or {}
self.connection = connection
def get_connection(self, fail_silently=False):
@@ -187,7 +209,18 @@ class EmailMessage(object):
return self.connection
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['From'] = self.from_email
msg['To'] = ', '.join(self.to)
@@ -195,6 +228,8 @@ class EmailMessage(object):
msg['Message-ID'] = make_msgid()
if self.bcc:
msg['Bcc'] = ', '.join(self.bcc)
+ for name, value in self.extra_headers.items():
+ msg[name] = value
return msg
def recipients(self):
@@ -208,6 +243,61 @@ class EmailMessage(object):
"""Send the email message."""
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):
"""
Easy wrapper for sending a single message to a recipient list. All members
diff --git a/django/core/urlresolvers.py b/django/core/urlresolvers.py
index b2cc86708d..7de840d578 100644
--- a/django/core/urlresolvers.py
+++ b/django/core/urlresolvers.py
@@ -202,7 +202,7 @@ class RegexURLResolver(object):
self._reverse_dict = {}
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):
if isinstance(pattern, RegexURLResolver):
for key, value in pattern.reverse_dict.iteritems():
diff --git a/django/db/backends/dummy/base.py b/django/db/backends/dummy/base.py
index 6a190cf59c..f47cbdf3d4 100644
--- a/django/db/backends/dummy/base.py
+++ b/django/db/backends/dummy/base.py
@@ -41,11 +41,16 @@ dictfetchall = complain
get_last_insert_id = complain
get_date_extract_sql = complain
get_date_trunc_sql = complain
+get_datetime_cast_sql = complain
get_limit_offset_sql = complain
get_random_function_sql = complain
get_deferrable_sql = complain
get_fulltext_search_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_sequence_reset = complain
diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py
index a6d56406d6..25ae2fa84f 100644
--- a/django/db/backends/mysql/base.py
+++ b/django/db/backends/mysql/base.py
@@ -247,6 +247,8 @@ OPERATOR_MAPPING = {
'iexact': 'LIKE %s',
'contains': 'LIKE BINARY %s',
'icontains': 'LIKE %s',
+ 'regex': 'REGEXP BINARY %s',
+ 'iregex': 'REGEXP %s',
'gt': '> %s',
'gte': '>= %s',
'lt': '< %s',
diff --git a/django/db/backends/mysql_old/base.py b/django/db/backends/mysql_old/base.py
index 4a14fa822a..0a5c127e81 100644
--- a/django/db/backends/mysql_old/base.py
+++ b/django/db/backends/mysql_old/base.py
@@ -250,6 +250,8 @@ OPERATOR_MAPPING = {
'iexact': 'LIKE %s',
'contains': 'LIKE BINARY %s',
'icontains': 'LIKE %s',
+ 'regex': 'REGEXP BINARY %s',
+ 'iregex': 'REGEXP %s',
'gt': '> %s',
'gte': '>= %s',
'lt': '< %s',
diff --git a/django/db/backends/postgresql/base.py b/django/db/backends/postgresql/base.py
index e2051beaa2..d90f0cc225 100644
--- a/django/db/backends/postgresql/base.py
+++ b/django/db/backends/postgresql/base.py
@@ -300,6 +300,8 @@ OPERATOR_MAPPING = {
'iexact': 'ILIKE %s',
'contains': 'LIKE %s',
'icontains': 'ILIKE %s',
+ 'regex': '~ %s',
+ 'iregex': '~* %s',
'gt': '> %s',
'gte': '>= %s',
'lt': '< %s',
diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py
index 4a9a44b3f9..c0ecbf80e9 100644
--- a/django/db/backends/postgresql_psycopg2/base.py
+++ b/django/db/backends/postgresql_psycopg2/base.py
@@ -229,6 +229,8 @@ OPERATOR_MAPPING = {
'iexact': 'ILIKE %s',
'contains': 'LIKE %s',
'icontains': 'ILIKE %s',
+ 'regex': '~ %s',
+ 'iregex': '~* %s',
'gt': '> %s',
'gte': '>= %s',
'lt': '< %s',
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py
index d31d11fea6..a0b1341b53 100644
--- a/django/db/backends/sqlite3/base.py
+++ b/django/db/backends/sqlite3/base.py
@@ -56,9 +56,10 @@ class DatabaseWrapper(local):
}
kwargs.update(self.options)
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_date_trunc", 2, _sqlite_date_trunc)
+ self.connection.create_function("regexp", 2, _sqlite_regexp)
cursor = self.connection.cursor(factory=SQLiteCursorWrapper)
if settings.DEBUG:
return util.CursorDebugWrapper(cursor, self)
@@ -206,6 +207,13 @@ def _sqlite_date_trunc(lookup_type, dt):
elif lookup_type == '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
# being escaped has a percent or underscore in it.
# See http://www.sqlite.org/lang_expr.html for an explanation.
@@ -214,6 +222,8 @@ OPERATOR_MAPPING = {
'iexact': "LIKE %s ESCAPE '\\'",
'contains': "LIKE %s ESCAPE '\\'",
'icontains': "LIKE %s ESCAPE '\\'",
+ 'regex': 'REGEXP %s',
+ 'iregex': "REGEXP '(?i)' || %s",
'gt': '> %s',
'gte': '>= %s',
'lt': '< %s',
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 167155fdbb..7ef532eab6 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -175,7 +175,7 @@ class Field(object):
def get_db_prep_lookup(self, lookup_type, value):
"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]
elif lookup_type in ('range', 'in'):
return value
@@ -801,6 +801,7 @@ class IntegerField(Field):
return super(IntegerField, self).formfield(**defaults)
class IPAddressField(Field):
+ empty_strings_allowed = False
def __init__(self, *args, **kwargs):
kwargs['maxlength'] = 15
Field.__init__(self, *args, **kwargs)
diff --git a/django/db/models/query.py b/django/db/models/query.py
index 076fa15fae..5771f3d7d9 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -1,3 +1,4 @@
+from django.conf import settings
from django.db import backend, connection, transaction
from django.db.models.fields import DateField, FieldDoesNotExist
from django.db.models import signals, loading
@@ -23,6 +24,7 @@ QUERY_TERMS = (
'gt', 'gte', 'lt', 'lte', 'in',
'startswith', 'istartswith', 'endswith', 'iendswith',
'range', 'year', 'month', 'day', 'isnull', 'search',
+ 'regex', 'iregex',
)
# 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 ''))
elif lookup_type == 'search':
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)
def get_cached_row(klass, row, index_start, max_depth=0, cur_depth=0):
diff --git a/django/http/__init__.py b/django/http/__init__.py
index b5af9b6e6a..76f9246ca6 100644
--- a/django/http/__init__.py
+++ b/django/http/__init__.py
@@ -214,7 +214,7 @@ class HttpResponse(object):
status_code = 200
- def __init__(self, content='', mimetype=None):
+ def __init__(self, content='', mimetype=None, status=None):
from django.conf import settings
self._charset = settings.DEFAULT_CHARSET
if not mimetype:
@@ -227,6 +227,8 @@ class HttpResponse(object):
self._is_string = True
self.headers = {'Content-Type': mimetype}
self.cookies = SimpleCookie()
+ if status:
+ self.status_code = status
def __str__(self):
"Full HTTP message, including headers"
diff --git a/django/newforms/fields.py b/django/newforms/fields.py
index a91e5af450..b6abea6400 100644
--- a/django/newforms/fields.py
+++ b/django/newforms/fields.py
@@ -482,17 +482,18 @@ class ComboField(Field):
class MultiValueField(Field):
"""
- A Field that is composed of multiple Fields.
-
- Its clean() method takes a "decompressed" list of values. Each value in
+ A Field that aggregates the logic of multiple Fields.
+
+ 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
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
"compressed" into a single value.
- Subclasses should implement compress(), which specifies how a list of
- valid values should be converted to a single value. Subclasses should not
- have to implement clean().
+ Subclasses should not have to implement clean(). Instead, they must
+ implement compress(), which takes a list of valid values and returns a
+ "compressed" version of those values -- a single value.
You'll probably want to use this with MultiWidget.
"""
diff --git a/django/newforms/widgets.py b/django/newforms/widgets.py
index 50de37074a..b90e6df9cd 100644
--- a/django/newforms/widgets.py
+++ b/django/newforms/widgets.py
@@ -304,19 +304,28 @@ class MultiWidget(Widget):
"""
A widget that is composed of multiple widgets.
- Its render() method takes a "decompressed" list of values, not a single
- value. Each value in this list is rendered in the corresponding widget --
- the first value is rendered in the first widget, the second value is
- rendered in the second widget, etc.
+ Its render() method is different than other widgets', because it has to
+ figure out how to split a single value for display in multiple widgets.
+ The ``value`` argument can be one of two things:
- Subclasses should implement decompress(), which specifies how a single
- value should be converted to a list of values. Subclasses should not
- have to implement clean().
+ * A list.
+ * A normal value (e.g., a string) that has been "compressed" from
+ 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
- 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):
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)]
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)
def decompress(self, value):