Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

[per-object-permissions] Merged to trunk [3809]

  • Loading branch information...
commit 5ea24f0c141a90f1e9a61ca7a8397cc28566623f 1 parent 13d039d
Christopher Long authored
Showing with 3,354 additions and 810 deletions.
  1. +8 −0 AUTHORS
  2. +2 −2 README
  3. +5 −0 django/conf/global_settings.py
  4. BIN  django/conf/locale/es_AR/LC_MESSAGES/django.mo
  5. +342 −206 django/conf/locale/es_AR/LC_MESSAGES/django.po
  6. BIN  django/conf/locale/fi/LC_MESSAGES/django.mo
  7. +2,031 −0 django/conf/locale/fi/LC_MESSAGES/django.po
  8. BIN  django/conf/locale/fi/LC_MESSAGES/djangojs.mo
  9. +110 −0 django/conf/locale/fi/LC_MESSAGES/djangojs.po
  10. BIN  django/conf/locale/no/LC_MESSAGES/django.mo
  11. +122 −151 django/conf/locale/no/LC_MESSAGES/django.po
  12. BIN  django/conf/locale/no/LC_MESSAGES/djangojs.mo
  13. +10 −1 django/conf/locale/no/LC_MESSAGES/djangojs.po
  14. BIN  django/conf/locale/pl/LC_MESSAGES/django.mo
  15. +47 −49 django/conf/locale/pl/LC_MESSAGES/django.po
  16. BIN  django/conf/locale/ru/LC_MESSAGES/django.mo
  17. +274 −232 django/conf/locale/ru/LC_MESSAGES/django.po
  18. +0 −1  django/contrib/admin/media/js/admin/DateTimeShortcuts.js
  19. +3 −1 django/contrib/admin/templatetags/admin_modify.py
  20. +0 −1  django/contrib/admin/templatetags/row_level_permission.py
  21. +4 −0 django/contrib/admin/views/auth.py
  22. +2 −0  django/contrib/admin/views/main.py
  23. +8 −0 django/contrib/auth/decorators.py
  24. +18 −13 django/contrib/auth/handlers/modpython.py
  25. +3 −6 django/contrib/auth/middleware.py
  26. +12 −12 django/contrib/auth/templatetags/auth.py
  27. +5 −1 django/core/context_processors.py
  28. +5 −2 django/core/handlers/modpython.py
  29. +26 −2 django/core/handlers/wsgi.py
  30. +34 −25 django/core/management.py
  31. +1 −1  django/core/serializers/json.py
  32. +2 −1  django/core/servers/fastcgi.py
  33. +5 −4 django/core/validators.py
  34. +3 −2 django/core/xheaders.py
  35. +2 −1  django/db/backends/mysql/introspection.py
  36. +4 −2 django/db/backends/util.py
  37. +3 −0  django/db/models/related.py
  38. +17 −10 django/forms/__init__.py
  39. +18 −13 django/http/__init__.py
  40. +2 −1  django/middleware/common.py
  41. +5 −4 django/middleware/doc.py
  42. +1 −1  django/template/defaultfilters.py
  43. +9 −3 django/template/defaulttags.py
  44. +17 −4 django/test/simple.py
  45. +3 −0  django/utils/datastructures.py
  46. +2 −2 django/utils/functional.py
  47. +5 −1 django/utils/text.py
  48. +31 −9 docs/authentication.txt
  49. +22 −13 docs/contributing.txt
  50. +1 −1  docs/db-api.txt
  51. +6 −0 docs/django-admin.txt
  52. +2 −2 docs/fastcgi.txt
  53. +35 −8 docs/forms.txt
  54. +3 −1 docs/model-api.txt
  55. +15 −0 docs/serialization.txt
  56. +6 −0 docs/settings.txt
  57. +11 −6 docs/templates_python.txt
  58. +12 −10 docs/testing.txt
  59. +32 −5 tests/modeltests/invalid_models/models.py
  60. +3 −0  tests/regressiontests/defaultfilters/tests.py
  61. +5 −0 tests/regressiontests/templates/tests.py
View
8 AUTHORS
@@ -44,6 +44,7 @@ answer newbie questions, and generally made Django that much better:
akaihola
Andreas
+ ant9000@netwise.it
David Ascher <http://ascher.ca/>
Arthur <avandorp@gmail.com>
Jiri Barton
@@ -67,15 +68,19 @@ answer newbie questions, and generally made Django that much better:
Alex Dedul
deric@monowerks.com
dne@mayonnaise.net
+ Maximillian Dornseif <md@hudora.de>
+ dummy@habmalnefrage.de
Jeremy Dunck <http://dunck.us/>
Andy Dustman <farcepest@gmail.com>
Clint Ecker
+ favo@exoweb.net
gandalf@owca.info
Baishampayan Ghose
martin.glueck@gmail.com
Simon Greenhill <dev@simon.net.nz>
Espen Grindhaug <http://grindhaug.org/>
Brant Harris
+ heckj@mac.com
hipertracker@gmail.com
Ian Holsman <http://feh.holsman.net/>
Kieran Holland <http://www.kieranholland.com>
@@ -95,6 +100,7 @@ answer newbie questions, and generally made Django that much better:
lakin.wecker@gmail.com
Stuart Langridge <http://www.kryogenix.org/>
Eugene Lazutkin <http://lazutkin.com/blog/>
+ Jeong-Min Lee
Christopher Lenz <http://www.cmlenz.net/>
limodou
Martin Maney <http://www.chipy.org/Martin_Maney>
@@ -121,11 +127,13 @@ answer newbie questions, and generally made Django that much better:
Daniel Poelzleithner <http://poelzi.org/>
J. Rademaker
Michael Radziej <mir@noris.de>
+ ramiro
Brian Ray <http://brianray.chipy.org/>
rhettg@gmail.com
Oliver Rutherfurd <http://rutherfurd.net/>
Ivan Sagalaev (Maniac) <http://www.softwaremaniacs.org/>
David Schein
+ serbaut@gmail.com
Pete Shinners <pete@shinners.org>
SmileyChris <smileychris@gmail.com>
sopel
View
4 README
@@ -25,10 +25,10 @@ http://code.djangoproject.com/newticket
To get more help:
* Join the #django channel on irc.freenode.net. Lots of helpful people
- hang out there. Read the archives at http://loglibrary.com/179 .
+ hang out there. Read the archives at http://simon.bofh.ms/logger/django/ .
* Join the django-users mailing list, or read the archives, at
- http://groups-beta.google.com/group/django-users.
+ http://groups.google.com/group/django-users.
To contribute to Django:
View
5 django/conf/global_settings.py
@@ -46,6 +46,7 @@
('en', gettext_noop('English')),
('es', gettext_noop('Spanish')),
('es_AR', gettext_noop('Argentinean Spanish')),
+ ('fi', gettext_noop('Finnish')),
('fr', gettext_noop('French')),
('gl', gettext_noop('Galician')),
('hu', gettext_noop('Hungarian')),
@@ -271,6 +272,10 @@
COMMENTS_ALLOW_PROFANITIES = False
+# The profanities that will trigger a validation error in the
+# 'hasNoProfanities' validator. All of these should be in lower-case.
+PROFANITIES_LIST = ['asshat', 'asshead', 'asshole', 'cunt', 'fuck', 'gook', 'nigger', 'shit']
+
# The group ID that designates which users are banned.
# Set to None if you're not using it.
COMMENTS_BANNED_USERS_GROUP = None
View
BIN  django/conf/locale/es_AR/LC_MESSAGES/django.mo
Binary file not shown
View
548 django/conf/locale/es_AR/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-06-19 11:19-0300\n"
-"PO-Revision-Date: 2006-05-16 10:05-0300\n"
+"POT-Creation-Date: 2006-08-18 18:57-0300\n"
+"PO-Revision-Date: 2006-08-21 18:06-0300\n"
"Last-Translator: Ramiro Morales <rm0@gmx.net>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
@@ -17,15 +17,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: contrib/contenttypes/models.py:25
+#: contrib/contenttypes/models.py:20
msgid "python model class name"
msgstr "nombre de la clase python del modelo"
-#: contrib/contenttypes/models.py:28
+#: contrib/contenttypes/models.py:23
msgid "content type"
msgstr "tipo de contenido"
-#: contrib/contenttypes/models.py:29
+#: contrib/contenttypes/models.py:24
msgid "content types"
msgstr "tipos de contenido"
@@ -33,79 +33,103 @@ msgstr "tipos de contenido"
msgid "Logged out"
msgstr "Sesión cerrada"
-#: contrib/auth/models.py:13 contrib/auth/models.py:26
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
msgid "name"
msgstr "nombre"
-#: contrib/auth/models.py:15
+#: contrib/auth/models.py:40
msgid "codename"
msgstr "nombre en código"
-#: contrib/auth/models.py:17
+#: contrib/auth/models.py:42
msgid "permission"
msgstr "permiso"
-#: contrib/auth/models.py:18 contrib/auth/models.py:27
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
msgid "permissions"
msgstr "permisos"
-#: contrib/auth/models.py:29
+#: contrib/auth/models.py:60
msgid "group"
msgstr "grupo"
-#: contrib/auth/models.py:30 contrib/auth/models.py:65
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
msgid "groups"
msgstr "grupos"
-#: contrib/auth/models.py:55
+#: contrib/auth/models.py:90
msgid "username"
msgstr "nombre de usuario"
-#: contrib/auth/models.py:56
+#: contrib/auth/models.py:90
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Requerido. Longitud máxima 30 caracteres alfanuméricos (letras, dígitos y "
+"guiones bajos)."
+
+#: contrib/auth/models.py:91
msgid "first name"
msgstr "nombre"
-#: contrib/auth/models.py:57
+#: contrib/auth/models.py:92
msgid "last name"
msgstr "apellido"
-#: contrib/auth/models.py:58
+#: contrib/auth/models.py:93
msgid "e-mail address"
msgstr "dirección de correo"
-#: contrib/auth/models.py:59
+#: contrib/auth/models.py:94
msgid "password"
msgstr "contraseña"
-#: contrib/auth/models.py:59
+#: contrib/auth/models.py:94
msgid "Use '[algo]$[salt]$[hexdigest]'"
msgstr "Use '[algoritmo]$[salt]$[hexdigest]'"
-#: contrib/auth/models.py:60
+#: contrib/auth/models.py:95
msgid "staff status"
msgstr "es staff"
-#: contrib/auth/models.py:60
+#: contrib/auth/models.py:95
msgid "Designates whether the user can log into this admin site."
msgstr "Indica si el usuario puede ingresar a este sitio de administración."
-#: contrib/auth/models.py:61
+#: contrib/auth/models.py:96
msgid "active"
msgstr "activo"
-#: contrib/auth/models.py:62
+#: contrib/auth/models.py:96
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Indica si el usuario puede ingresar al sitio de administración Django."
+"Desactive este campo en lugar de eliminar usuarios."
+
+#: contrib/auth/models.py:97
msgid "superuser status"
msgstr "es superusuario"
-#: contrib/auth/models.py:63
+#: contrib/auth/models.py:97
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Indica que este usuario posee todos los permisos, sin asignarle los mismos "
+"explícitamente."
+
+#: contrib/auth/models.py:98
msgid "last login"
msgstr "último registro"
-#: contrib/auth/models.py:64
+#: contrib/auth/models.py:99
msgid "date joined"
msgstr "fecha de creación"
-#: contrib/auth/models.py:66
+#: contrib/auth/models.py:101
msgid ""
"In addition to the permissions manually assigned, this user will also get "
"all permissions granted to each group he/she is in."
@@ -113,39 +137,39 @@ msgstr ""
"Además de los permisos asignados manualmente, este usuario también poseerá "
"todos los permisos de los grupos a los que pertenezca."
-#: contrib/auth/models.py:67
+#: contrib/auth/models.py:102
msgid "user permissions"
msgstr "permisos de usuario"
-#: contrib/auth/models.py:70
+#: contrib/auth/models.py:105
msgid "user"
msgstr "usuario"
-#: contrib/auth/models.py:71
+#: contrib/auth/models.py:106
msgid "users"
msgstr "usuarios"
-#: contrib/auth/models.py:76
+#: contrib/auth/models.py:111
msgid "Personal info"
msgstr "Información personal"
-#: contrib/auth/models.py:77
+#: contrib/auth/models.py:112
msgid "Permissions"
msgstr "Permisos"
-#: contrib/auth/models.py:78
+#: contrib/auth/models.py:113
msgid "Important dates"
msgstr "Fechas importantes"
-#: contrib/auth/models.py:79
+#: contrib/auth/models.py:114
msgid "Groups"
msgstr "Grupos"
-#: contrib/auth/models.py:219
+#: contrib/auth/models.py:256
msgid "message"
msgstr "mensaje"
-#: contrib/auth/forms.py:30
+#: contrib/auth/forms.py:52
msgid ""
"Your Web browser doesn't appear to have cookies enabled. Cookies are "
"required for logging in."
@@ -153,8 +177,7 @@ msgstr ""
"Su navegador Web aparenta no tener cookies activas. Las cookies son un "
"requerimiento para poder ingresar."
-#: contrib/auth/forms.py:36 contrib/auth/forms.py:43
-#: contrib/admin/views/decorators.py:9
+#: contrib/auth/forms.py:59 contrib/admin/views/decorators.py:10
msgid ""
"Please enter a correct username and password. Note that both fields are case-"
"sensitive."
@@ -162,7 +185,7 @@ msgstr ""
"Por favor ingrese un nombre de usuario y una contraseña correctos. Note que "
"ambos campos son sensibles a mayúsculas/minúsculas."
-#: contrib/auth/forms.py:45
+#: contrib/auth/forms.py:61
msgid "This account is inactive."
msgstr "Esta cuenta está inactiva"
@@ -255,7 +278,7 @@ msgstr "fecha/hora de env
msgid "is public"
msgstr "es público"
-#: contrib/comments/models.py:85 contrib/admin/views/doc.py:292
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
msgid "IP address"
msgstr "Dirección IP"
@@ -392,12 +415,12 @@ msgstr "ID de comentario no v
msgid "No voting for yourself"
msgstr "No puedes votarte tú mismo"
-#: contrib/comments/views/comments.py:28
+#: contrib/comments/views/comments.py:27
msgid ""
"This rating is required because you've entered at least one other rating."
msgstr "Se precisa esta puntuación porque ha introducido al menos otra más."
-#: contrib/comments/views/comments.py:112
+#: contrib/comments/views/comments.py:111
#, python-format
msgid ""
"This comment was posted by a user who has posted fewer than %(count)s "
@@ -420,7 +443,7 @@ msgstr[1] ""
"\n"
"%(text)s"
-#: contrib/comments/views/comments.py:117
+#: contrib/comments/views/comments.py:116
#, fuzzy, python-format
msgid ""
"This comment was posted by a sketchy user:\n"
@@ -431,24 +454,24 @@ msgstr ""
"\n"
"%(text)s"
-#: contrib/comments/views/comments.py:189
+#: contrib/comments/views/comments.py:188
#: contrib/comments/views/comments.py:280
msgid "Only POSTs are allowed"
msgstr "Sólo se admiten POSTs"
-#: contrib/comments/views/comments.py:193
+#: contrib/comments/views/comments.py:192
#: contrib/comments/views/comments.py:284
msgid "One or more of the required fields wasn't submitted"
msgstr "No se proporcionó uno o más de los siguientes campos requeridos"
-#: contrib/comments/views/comments.py:197
+#: contrib/comments/views/comments.py:196
#: contrib/comments/views/comments.py:286
msgid "Somebody tampered with the comment form (security violation)"
msgstr ""
"Alguien está jugando con el formulario de comentarios (violación de "
"seguridad)"
-#: contrib/comments/views/comments.py:207
+#: contrib/comments/views/comments.py:206
#: contrib/comments/views/comments.py:292
msgid ""
"The comment form had an invalid 'target' parameter -- the object ID was "
@@ -467,12 +490,12 @@ msgid "Your name:"
msgstr "Su nombre:"
#: contrib/comments/templates/comments/freeform.html:5
-#: contrib/comments/templates/comments/form.html:27
+#: contrib/comments/templates/comments/form.html:28
msgid "Comment:"
msgstr "Comentario:"
-#: contrib/comments/templates/comments/freeform.html:9
-#: contrib/comments/templates/comments/form.html:32
+#: contrib/comments/templates/comments/freeform.html:10
+#: contrib/comments/templates/comments/form.html:35
msgid "Preview comment"
msgstr "Previsualizar comentario"
@@ -483,19 +506,10 @@ msgid "Username:"
msgstr "Usuario:"
#: contrib/comments/templates/comments/form.html:6
-#: contrib/admin/templates/admin/login.html:20
-msgid "Password:"
-msgstr "Contraseña:"
-
-#: contrib/comments/templates/comments/form.html:6
-msgid "Forgotten your password?"
-msgstr "Olvidó su contraseña?"
-
-#: contrib/comments/templates/comments/form.html:8
#: contrib/admin/templates/admin/object_history.html:3
#: contrib/admin/templates/admin/change_list.html:5
#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/base.html:24
+#: contrib/admin/templates/admin/base.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:3
#: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3
@@ -512,6 +526,15 @@ msgstr "Olvid
msgid "Log out"
msgstr "Cerrar sesión"
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Contraseña:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Olvidó su contraseña?"
+
#: contrib/comments/templates/comments/form.html:12
msgid "Ratings"
msgstr "Calificaciones"
@@ -530,7 +553,7 @@ msgstr "Opcional"
msgid "Post a photo"
msgstr "Enviar una foto"
-#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:303
+#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:315
msgid "URL"
msgstr "URL"
@@ -559,11 +582,11 @@ msgstr "nombre de plantilla"
#: contrib/flatpages/models.py:13
msgid ""
-"Example: 'flatpages/contact_page'. If this isn't provided, the system will "
-"use 'flatpages/default'."
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
msgstr ""
-"Ejemplo: 'flatpages/contact_page'. Si no lo proporciona, el sistema usará "
-"'flatpages/default'."
+"Ejemplo: 'flatpages/contact_page.html'. Si no lo proporciona, el sistema "
+"usará 'flatpages/default.html'."
#: contrib/flatpages/models.py:14
msgid "registration required"
@@ -581,23 +604,23 @@ msgstr "p
msgid "flat pages"
msgstr "páginas estáticas"
-#: contrib/sessions/models.py:35
+#: contrib/sessions/models.py:51
msgid "session key"
msgstr "clave de sesión"
-#: contrib/sessions/models.py:36
+#: contrib/sessions/models.py:52
msgid "session data"
msgstr "datos de sesión"
-#: contrib/sessions/models.py:37
+#: contrib/sessions/models.py:53
msgid "expire date"
msgstr "fecha de caducidad"
-#: contrib/sessions/models.py:41
+#: contrib/sessions/models.py:57
msgid "session"
msgstr "sesión"
-#: contrib/sessions/models.py:42
+#: contrib/sessions/models.py:58
msgid "sessions"
msgstr "sesiones"
@@ -695,12 +718,12 @@ msgstr "entradas de registro"
msgid "All dates"
msgstr "Todas las fechas"
-#: contrib/admin/views/decorators.py:23
+#: contrib/admin/views/decorators.py:24
#: contrib/admin/templates/admin/login.html:25
msgid "Log in"
msgstr "Identificarse"
-#: contrib/admin/views/decorators.py:61
+#: contrib/admin/views/decorators.py:62
msgid ""
"Please log in again, because your session has expired. Don't worry: Your "
"submission has been saved."
@@ -708,7 +731,7 @@ msgstr ""
"Por favor, identifíquese de nuevo porque su sesión ha caducado. No se "
"preocupe: se ha guardado su envío."
-#: contrib/admin/views/decorators.py:68
+#: contrib/admin/views/decorators.py:69
msgid ""
"Looks like your browser isn't configured to accept cookies. Please enable "
"cookies, reload this page, and try again."
@@ -716,187 +739,253 @@ msgstr ""
"Parece que su navegador no está configurado para aceptar cookies. Actívelas "
"por favor, recargue esta página, e inténtelo de nuevo."
-#: contrib/admin/views/decorators.py:82
+#: contrib/admin/views/decorators.py:83
msgid "Usernames cannot contain the '@' character."
msgstr "Los nombres de usuario no pueden contener el carácter '@'."
-#: contrib/admin/views/decorators.py:84
+#: contrib/admin/views/decorators.py:85
#, python-format
msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr ""
"Su dirección de correo no es su nombre de usuario. Pruebe con '%s' en su "
"lugar."
-#: contrib/admin/views/main.py:226
+#: contrib/admin/views/main.py:223
msgid "Site administration"
msgstr "Sitio administrativo"
-#: contrib/admin/views/main.py:260
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:14
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
-msgstr "Se añadió con éxito el %(name)s \"%(obj)s\"."
+msgstr "Se agregó con éxito el %(name)s \"%(obj)s\"."
-#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348
+#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:19
msgid "You may edit it again below."
-msgstr "Puede editarlo de nuevo abajo."
+msgstr "Puede modificarlo nuevamente abajo."
-#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
#, python-format
msgid "You may add another %s below."
msgstr "Puede agregar otro %s abajo."
-#: contrib/admin/views/main.py:290
+#: contrib/admin/views/main.py:289
#, python-format
msgid "Add %s"
msgstr "Agregar %s"
-#: contrib/admin/views/main.py:336
+#: contrib/admin/views/main.py:335
#, python-format
msgid "Added %s."
msgstr "Agregado %s."
-#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
-#: contrib/admin/views/main.py:340
+#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339
msgid "and"
msgstr "y"
-#: contrib/admin/views/main.py:338
+#: contrib/admin/views/main.py:337
#, python-format
msgid "Changed %s."
msgstr "Modifica %s."
-#: contrib/admin/views/main.py:340
+#: contrib/admin/views/main.py:339
#, python-format
msgid "Deleted %s."
msgstr "Elimina %s."
-#: contrib/admin/views/main.py:343
+#: contrib/admin/views/main.py:342
msgid "No fields changed."
-msgstr "No ha cambiado ningún campo."
+msgstr "No ha modificado ningún campo."
-#: contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:345
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "Se modificó con éxito el %(name)s \"%(obj)s."
-#: contrib/admin/views/main.py:354
+#: contrib/admin/views/main.py:353
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
-"Se agregó con éxito el %(name)s \"%(obj)s. Puede editarlo de nuevo abajo."
+"Se agregó con éxito el %(name)s \"%(obj)s. Puede modificarlo nuevamente "
+"abajo."
-#: contrib/admin/views/main.py:392
+#: contrib/admin/views/main.py:391
#, python-format
msgid "Change %s"
msgstr "Modificar %s"
-#: contrib/admin/views/main.py:470
+#: contrib/admin/views/main.py:473
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr "Uno o más %(fieldname)s en %(name)s: %(obj)s"
-#: contrib/admin/views/main.py:475
+#: contrib/admin/views/main.py:478
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr "Uno o más %(fieldname)s en %(name)s:"
-#: contrib/admin/views/main.py:508
+#: contrib/admin/views/main.py:511
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "Se eliminó con éxito el %(name)s \"%(obj)s\"."
-#: contrib/admin/views/main.py:511
+#: contrib/admin/views/main.py:514
msgid "Are you sure?"
msgstr "¿Está seguro?"
-#: contrib/admin/views/main.py:533
+#: contrib/admin/views/main.py:536
#, python-format
msgid "Change history: %s"
msgstr "Historia de modificaciones: %s"
-#: contrib/admin/views/main.py:567
+#: contrib/admin/views/main.py:570
#, python-format
msgid "Select %s"
msgstr "Seleccione %s"
-#: contrib/admin/views/main.py:567
+#: contrib/admin/views/main.py:570
#, python-format
msgid "Select %s to change"
msgstr "Seleccione %s a modificar"
-#: contrib/admin/views/main.py:743
+#: contrib/admin/views/main.py:756
msgid "Database error"
msgstr "Error de base de datos"
-#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:289
-#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:297
-#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:300
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "etiqueta:"
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "Filtrar:"
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "ver:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "App %r no encontrada"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %r not found in app %r"
+msgstr "Modelo %r no encontrado en app %r"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%s.%s` object"
+msgstr "El objeto relacionado `%s.%s`"
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid "model:"
+msgstr "modelo:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%s.%s` objects"
+msgstr "objetos relacionados `%s.%s`"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "todos %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "número de %s"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Capos en %s objetos"
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
msgid "Integer"
msgstr "Entero"
-#: contrib/admin/views/doc.py:280
+#: contrib/admin/views/doc.py:292
msgid "Boolean (Either True or False)"
msgstr "Booleano (Verdadero o Falso)"
-#: contrib/admin/views/doc.py:281 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
#, python-format
msgid "String (up to %(maxlength)s)"
msgstr "Cadena (máximo %(maxlength)s)"
-#: contrib/admin/views/doc.py:282
+#: contrib/admin/views/doc.py:294
msgid "Comma-separated integers"
msgstr "Enteros separados por comas"
-#: contrib/admin/views/doc.py:283
+#: contrib/admin/views/doc.py:295
msgid "Date (without time)"
msgstr "Fecha (sin hora)"
-#: contrib/admin/views/doc.py:284
+#: contrib/admin/views/doc.py:296
msgid "Date (with time)"
msgstr "Fecha (con hora)"
-#: contrib/admin/views/doc.py:285
+#: contrib/admin/views/doc.py:297
msgid "E-mail address"
msgstr "Dirección de correo electrónico"
-#: contrib/admin/views/doc.py:286 contrib/admin/views/doc.py:287
-#: contrib/admin/views/doc.py:290
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
msgid "File path"
msgstr "Ruta de archivo"
-#: contrib/admin/views/doc.py:288
+#: contrib/admin/views/doc.py:300
msgid "Decimal number"
msgstr "Número decimal"
-#: contrib/admin/views/doc.py:294
+#: contrib/admin/views/doc.py:306
msgid "Boolean (Either True, False or None)"
msgstr "Booleano (Verdadero, Falso o Nulo)"
-#: contrib/admin/views/doc.py:295
+#: contrib/admin/views/doc.py:307
msgid "Relation to parent model"
msgstr "Relación con el modelo padre"
-#: contrib/admin/views/doc.py:296
+#: contrib/admin/views/doc.py:308
msgid "Phone number"
msgstr "Número de teléfono"
-#: contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:313
msgid "Text"
msgstr "Texto"
-#: contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:314
msgid "Time"
msgstr "Hora"
-#: contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:316
msgid "U.S. state (two uppercase letters)"
msgstr "Estado de los EEUU (dos letras mayúsculas)"
-#: contrib/admin/views/doc.py:305
+#: contrib/admin/views/doc.py:317
msgid "XML text"
msgstr "Texto XML"
+#: contrib/admin/views/doc.py:339
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s no parece ser un objeto urlpattern"
+
+#: contrib/admin/views/auth.py:25
+msgid "Add user"
+msgstr "Agregar usuario"
+
#: contrib/admin/templates/widget/file.html:2
msgid "Currently:"
msgstr "Actualmente"
@@ -916,7 +1005,7 @@ msgstr "Hora:"
#: contrib/admin/templates/admin/object_history.html:3
#: contrib/admin/templates/admin/change_list.html:5
#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/base.html:24
+#: contrib/admin/templates/admin/base.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:3
#: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3
@@ -927,7 +1016,7 @@ msgstr "Documentaci
#: contrib/admin/templates/admin/object_history.html:3
#: contrib/admin/templates/admin/change_list.html:5
#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/base.html:24
+#: contrib/admin/templates/admin/base.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:3
#: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3
@@ -948,7 +1037,7 @@ msgstr "Cambiar contrase
#: contrib/admin/templates/admin/change_list.html:6
#: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/change_form.html:13
-#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/base.html:30
#: contrib/admin/templates/admin/delete_confirmation.html:6
#: contrib/admin/templates/admin/invalid_setup.html:4
#: contrib/admin/templates/registration/password_change_done.html:4
@@ -996,8 +1085,8 @@ msgstr "Agregar %(name)s"
#: contrib/admin/templates/admin/filter.html:2
#, python-format
-msgid " By %(title)s "
-msgstr " Por %(title)s "
+msgid " By %(filter_title)s "
+msgstr " Por %(filter_title)s "
#: contrib/admin/templates/admin/500.html:4
msgid "Server error"
@@ -1053,6 +1142,11 @@ msgstr "Administraci
msgid "Models available in the %(name)s application."
msgstr "Modelos disponibles en la aplicación %(name)s."
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
#: contrib/admin/templates/admin/index.html:28
#: contrib/admin/templates/admin/change_form.html:15
msgid "Add"
@@ -1113,7 +1207,7 @@ msgstr "Ordenaci
msgid "Order:"
msgstr "Orden:"
-#: contrib/admin/templates/admin/base.html:24
+#: contrib/admin/templates/admin/base.html:25
msgid "Welcome,"
msgstr "Bienvenido,"
@@ -1125,22 +1219,22 @@ msgstr "Eliminar"
#: contrib/admin/templates/admin/delete_confirmation.html:14
#, python-format
msgid ""
-"Deleting the %(object_name)s '%(object)s' would result in deleting related "
-"objects, but your account doesn't have permission to delete the following "
-"types of objects:"
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
msgstr ""
-"Eliminar el %(object_name)s '%(object)s' provocaría la eliminación de "
-"objetos relacionados, pero su cuenta no tiene permiso para eliminar los "
+"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación "
+"de objetos relacionados, pero su cuenta no tiene permiso para eliminar los "
"siguientes tipos de objetos:"
#: contrib/admin/templates/admin/delete_confirmation.html:21
#, python-format
msgid ""
-"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
-"the following related items will be deleted:"
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
msgstr ""
-"¿Está seguro de que quiere eliminar los %(object_name)s \"%(object)s\"? Se "
-"eliminarán los siguientes objetos relacionados:"
+"¿Está seguro de que quiere eliminar los %(object_name)s \"%(escaped_object)s"
+"\"? Se eliminarán los siguientes objetos relacionados:"
#: contrib/admin/templates/admin/delete_confirmation.html:26
msgid "Yes, I'm sure"
@@ -1172,6 +1266,30 @@ msgstr ""
"tablas de la misma hayan sido creadas, y asegúrese de que el usuario "
"apropiado tenga permisos de escritura en la base de datos."
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Primero, ingrese un nombre de usuario y una contraseña. Luego podrá "
+"configurar opciones adicionales."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Nombre de usuario:"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "Contraseña:"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "Contraseña (de nuevo)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "Para verificación, ingrese la misma contraseña que ingresó arriba."
+
#: contrib/admin/templates/registration/password_change_done.html:4
#: contrib/admin/templates/registration/password_change_form.html:4
#: contrib/admin/templates/registration/password_change_form.html:6
@@ -1359,26 +1477,6 @@ msgid "As above, but opens the admin page in a new window."
msgstr ""
"Como antes, pero abre la página de administración en una nueva ventana."
-#: utils/translation.py:363
-msgid "DATE_FORMAT"
-msgstr "j N Y"
-
-#: utils/translation.py:364
-msgid "DATETIME_FORMAT"
-msgstr "j N Y P"
-
-#: utils/translation.py:365
-msgid "TIME_FORMAT"
-msgstr "P"
-
-#: utils/translation.py:381
-msgid "YEAR_MONTH_FORMAT"
-msgstr "F Y"
-
-#: utils/translation.py:382
-msgid "MONTH_DAY_FORMAT"
-msgstr "j \\de F"
-
#: utils/dates.py:6
msgid "Monday"
msgstr "Lunes"
@@ -1567,115 +1665,143 @@ msgid_plural "minutes"
msgstr[0] "minuto"
msgstr[1] "minutos"
-#: conf/global_settings.py:37
+#: utils/translation/trans_real.py:362
+msgid "DATE_FORMAT"
+msgstr "j N Y"
+
+#: utils/translation/trans_real.py:363
+msgid "DATETIME_FORMAT"
+msgstr "j N Y P"
+
+#: utils/translation/trans_real.py:364
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:380
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:381
+msgid "MONTH_DAY_FORMAT"
+msgstr "j \\de F"
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Árabe"
+
+#: conf/global_settings.py:40
msgid "Bengali"
msgstr "Bengalí"
-#: conf/global_settings.py:38
+#: conf/global_settings.py:41
msgid "Czech"
msgstr "Checo"
-#: conf/global_settings.py:39
+#: conf/global_settings.py:42
msgid "Welsh"
msgstr "Galés"
-#: conf/global_settings.py:40
+#: conf/global_settings.py:43
msgid "Danish"
msgstr "Danés"
-#: conf/global_settings.py:41
+#: conf/global_settings.py:44
msgid "German"
msgstr "Alemán"
-#: conf/global_settings.py:42
+#: conf/global_settings.py:45
msgid "Greek"
msgstr "Griego"
-#: conf/global_settings.py:43
+#: conf/global_settings.py:46
msgid "English"
msgstr "Inglés"
-#: conf/global_settings.py:44
+#: conf/global_settings.py:47
msgid "Spanish"
msgstr "Español"
-#: conf/global_settings.py:45
+#: conf/global_settings.py:48
msgid "Argentinean Spanish"
msgstr "Español Argentino"
-#: conf/global_settings.py:46
+#: conf/global_settings.py:49
msgid "French"
msgstr "Francés"
-#: conf/global_settings.py:47
+#: conf/global_settings.py:50
msgid "Galician"
msgstr "Gallego"
-#: conf/global_settings.py:48
+#: conf/global_settings.py:51
msgid "Hungarian"
msgstr "Húngaro"
-#: conf/global_settings.py:49
+#: conf/global_settings.py:52
msgid "Hebrew"
msgstr "Hebreo"
-#: conf/global_settings.py:50
+#: conf/global_settings.py:53
msgid "Icelandic"
msgstr "Islandés"
-#: conf/global_settings.py:51
+#: conf/global_settings.py:54
msgid "Italian"
msgstr "Italiano"
-#: conf/global_settings.py:52
+#: conf/global_settings.py:55
msgid "Japanese"
msgstr "Japonés"
-#: conf/global_settings.py:53
+#: conf/global_settings.py:56
msgid "Dutch"
msgstr "Holandés"
-#: conf/global_settings.py:54
+#: conf/global_settings.py:57
msgid "Norwegian"
msgstr "Noruego"
-#: conf/global_settings.py:55
+#: conf/global_settings.py:58
msgid "Brazilian"
msgstr "Brasileño"
-#: conf/global_settings.py:56
+#: conf/global_settings.py:59
msgid "Romanian"
msgstr "Rumano"
-#: conf/global_settings.py:57
+#: conf/global_settings.py:60
msgid "Russian"
msgstr "Ruso"
-#: conf/global_settings.py:58
+#: conf/global_settings.py:61
msgid "Slovak"
msgstr "Eslovaco"
-#: conf/global_settings.py:59
+#: conf/global_settings.py:62
msgid "Slovenian"
msgstr "Esloveno"
-#: conf/global_settings.py:60
+#: conf/global_settings.py:63
msgid "Serbian"
msgstr "Serbio"
-#: conf/global_settings.py:61
+#: conf/global_settings.py:64
msgid "Swedish"
msgstr "Sueco"
-#: conf/global_settings.py:62
+#: conf/global_settings.py:65
+msgid "Tamil"
+msgstr "Tamil"
+
+#: conf/global_settings.py:66
msgid "Ukrainian"
msgstr "Ucraniano"
-#: conf/global_settings.py:63
+#: conf/global_settings.py:67
msgid "Simplified Chinese"
msgstr "Chino simplificado"
-#: conf/global_settings.py:64
+#: conf/global_settings.py:68
msgid "Traditional Chinese"
msgstr "Chino tradicional"
@@ -1691,47 +1817,51 @@ msgid "%(optname)s with this %(fieldname)s already exists."
msgstr "Ya existe %(optname)s con este %(fieldname)s."
#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
-#: db/models/fields/__init__.py:545 db/models/fields/__init__.py:556
+#: db/models/fields/__init__.py:551 db/models/fields/__init__.py:562
#: forms/__init__.py:346
msgid "This field is required."
msgstr "Este campo es obligatorio."
-#: db/models/fields/__init__.py:337
+#: db/models/fields/__init__.py:340
msgid "This value must be an integer."
msgstr "Este valor debe ser un número entero."
-#: db/models/fields/__init__.py:369
+#: db/models/fields/__init__.py:372
msgid "This value must be either True or False."
msgstr "Este valor debe ser True o False."
-#: db/models/fields/__init__.py:385
+#: db/models/fields/__init__.py:388
msgid "This field cannot be null."
msgstr "Este campo no puede ser nulo."
-#: db/models/fields/__init__.py:471 core/validators.py:135
+#: db/models/fields/__init__.py:415 core/validators.py:127
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Introduzca una fecha válida en formato AAAA-MM-DD."
+
+#: db/models/fields/__init__.py:477 core/validators.py:135
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "Introduzca una fecha/hora válida en formato YYYY-MM-DD HH:MM."
-#: db/models/fields/__init__.py:565
+#: db/models/fields/__init__.py:571
msgid "Enter a valid filename."
msgstr "Introduzca un nombre de achivo válido"
-#: db/models/fields/related.py:43
+#: db/models/fields/related.py:51
#, python-format
msgid "Please enter a valid %s."
msgstr "Por favor, introduzca un %s válido."
-#: db/models/fields/related.py:579
+#: db/models/fields/related.py:618
msgid "Separate multiple IDs with commas."
msgstr " Separe múltiples IDs con comas."
-#: db/models/fields/related.py:581
+#: db/models/fields/related.py:620
msgid ""
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr ""
"Pulse \"Control\", o \"Command\" en un Mac, para seleccionar más de uno."
-#: db/models/fields/related.py:625
+#: db/models/fields/related.py:664
#, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural ""
@@ -1754,29 +1884,29 @@ msgstr[1] "Aseg
msgid "Line breaks are not allowed here."
msgstr "No se permiten saltos de línea."
-#: forms/__init__.py:485 forms/__init__.py:558 forms/__init__.py:597
+#: forms/__init__.py:487 forms/__init__.py:560 forms/__init__.py:599
#, python-format
msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
msgstr "Seleccione una opción válida; '%(data)s' no está en %(choices)s."
-#: forms/__init__.py:659 core/validators.py:151 core/validators.py:379
+#: forms/__init__.py:661 core/validators.py:151 core/validators.py:379
msgid "No file was submitted. Check the encoding type on the form."
msgstr ""
"No se envió un archivo. Verifique el tipo de codificación en el formulario."
-#: forms/__init__.py:661
+#: forms/__init__.py:663
msgid "The submitted file is empty."
msgstr "El archivo enviado está vacío."
-#: forms/__init__.py:717
+#: forms/__init__.py:719
msgid "Enter a whole number between -32,768 and 32,767."
msgstr "Introduzca un número entero entre -32,768 y 32,767."
-#: forms/__init__.py:727
+#: forms/__init__.py:729
msgid "Enter a positive number."
msgstr "Introduzca un número positivo."
-#: forms/__init__.py:737
+#: forms/__init__.py:739
msgid "Enter a whole number between 0 and 32,767."
msgstr "Introduzca un número entero entre 0 y 32,767."
@@ -1832,10 +1962,6 @@ msgstr "Introduzca un n
msgid "Only alphabetical characters are allowed here."
msgstr "Sólo se admiten caracteres alfabéticos."
-#: core/validators.py:127
-msgid "Enter a valid date in YYYY-MM-DD format."
-msgstr "Introduzca una fecha válida en formato AAAA-MM-DD."
-
#: core/validators.py:131
msgid "Enter a valid time in HH:MM format."
msgstr "Introduzca una hora válida en formato HH:MM."
@@ -2066,18 +2192,28 @@ msgstr ""
"El atributo \"%(attr)s\" de la línea %(line)s tiene un valor que no es "
"válido. (La línea empieza por \"%(start)s\".)"
-#: template/defaultfilters.py:389
+#: template/defaultfilters.py:401
msgid "yes,no,maybe"
msgstr "si,no,tal vez"
-#, fuzzy
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "Se creó con éxito el %(verbose_name)."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "Se actualizó con éxito el %(verbose_name)s."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "Se eliminó el %(verbose_name)s."
+
#~ msgid "%(content_type_name)s"
#~ msgstr "tipos de contenido"
-#, fuzzy
-#~ msgid "%(myname)s"
-#~ msgstr "Agregar %(name)s"
-
#~ msgid "%(result_count)s result"
#~ msgid_plural "%(counter)s results"
#~ msgstr[0] "un resultado"
View
BIN  django/conf/locale/fi/LC_MESSAGES/django.mo
Binary file not shown
View
2,031 django/conf/locale/fi/LC_MESSAGES/django.po
@@ -0,0 +1,2031 @@
+# 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.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-08-05 14:41+0300\n"
+"PO-Revision-Date: 2006-08-12 23:41+0300\n"
+"Last-Translator: Antti Kaihola <antti.kaihola@ambitone.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: db/models/manipulators.py:302
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+
+#: db/models/fields/related.py:51
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Syöttämäsi %s ei kelpaa."
+
+#: db/models/fields/related.py:618
+msgid "Separate multiple IDs with commas."
+msgstr "Erottele tunnisteet pilkuilla."
+
+#: db/models/fields/related.py:620
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+" Pidä \"Ctrl\"-näppäin (tai Macin \"Command\") pohjassa valitaksesi useita "
+"vaihtoehtoja."
+
+#: db/models/fields/related.py:664
+#, 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] "Syöttämäsi %(self)s-tunniste %(value)r ei kelpaa."
+msgstr[1] "Syöttämäsi %(self)s-tunnisteet %(value)r eivät kelpaa."
+
+#: db/models/fields/__init__.py:40
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s, jolla on tämä %(fieldname)s, on jo olemassa."
+
+#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:551 db/models/fields/__init__.py:562
+#: forms/__init__.py:346
+msgid "This field is required."
+msgstr "Tämä kenttä vaaditaan."
+
+#: db/models/fields/__init__.py:340
+msgid "This value must be an integer."
+msgstr "Tarvitaan kokonaisluku."
+
+#: db/models/fields/__init__.py:372
+msgid "This value must be either True or False."
+msgstr "Tarvitaan tosi (True) tai epätosi (False)."
+
+#: db/models/fields/__init__.py:388
+msgid "This field cannot be null."
+msgstr "Tämän kentän arvo ei voi olla \"null\"."
+
+#: db/models/fields/__init__.py:415 core/validators.py:127
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Päivämäärän pitää olla muodossa VVVV-KK-PP."
+
+#: db/models/fields/__init__.py:477 core/validators.py:135
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Ajankohdan pitää olla muodossa VVVV-KK-PP TT:MM."
+
+#: db/models/fields/__init__.py:571
+msgid "Enter a valid filename."
+msgstr "Tiedostonimi ei kelpaa."
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "arabia"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "bengali"
+
+#: conf/global_settings.py:41
+msgid "Czech"
+msgstr "tšekki"
+
+#: conf/global_settings.py:42
+msgid "Welsh"
+msgstr ""
+
+#: conf/global_settings.py:43
+msgid "Danish"
+msgstr "tanska"
+
+#: conf/global_settings.py:44
+msgid "German"
+msgstr "saksa"
+
+#: conf/global_settings.py:45
+msgid "Greek"
+msgstr "kreikka"
+
+#: conf/global_settings.py:46
+msgid "English"
+msgstr "englanti"
+
+#: conf/global_settings.py:47
+msgid "Spanish"
+msgstr "espanja"
+
+#: conf/global_settings.py:48
+msgid "Argentinean Spanish"
+msgstr "Argentiinan espanja"
+
+#: conf/global_settings.py:49
+msgid "French"
+msgstr "ranska"
+
+#: conf/global_settings.py:50
+msgid "Galician"
+msgstr ""
+
+#: conf/global_settings.py:51
+msgid "Hungarian"
+msgstr "unkari"
+
+#: conf/global_settings.py:52
+msgid "Hebrew"
+msgstr "heprea"
+
+#: conf/global_settings.py:53
+msgid "Icelandic"
+msgstr "islanti"
+
+#: conf/global_settings.py:54
+msgid "Italian"
+msgstr "italia"
+
+#: conf/global_settings.py:55
+msgid "Japanese"
+msgstr "japani"
+
+#: conf/global_settings.py:56
+msgid "Dutch"
+msgstr "hollanti"
+
+#: conf/global_settings.py:57
+msgid "Norwegian"
+msgstr "norja"
+
+#: conf/global_settings.py:58
+msgid "Brazilian"
+msgstr ""
+
+#: conf/global_settings.py:59
+msgid "Romanian"
+msgstr "romania"
+
+#: conf/global_settings.py:60
+msgid "Russian"
+msgstr "venäjä"
+
+#: conf/global_settings.py:61
+msgid "Slovak"
+msgstr ""
+
+#: conf/global_settings.py:62
+msgid "Slovenian"
+msgstr ""
+
+#: conf/global_settings.py:63
+msgid "Serbian"
+msgstr ""
+
+#: conf/global_settings.py:64
+msgid "Swedish"
+msgstr "ruotsi"
+
+#: conf/global_settings.py:65
+msgid "Tamil"
+msgstr ""
+
+#: conf/global_settings.py:66
+msgid "Ukrainian"
+msgstr ""
+
+#: conf/global_settings.py:67
+msgid "Simplified Chinese"
+msgstr ""
+
+#: conf/global_settings.py:68
+msgid "Traditional Chinese"
+msgstr ""
+
+#: core/validators.py:63
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) ja alaviivoja (_)."
+
+#: core/validators.py:67
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr "Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) sekä ala-, tavu- ja kauttaviivoja (_ - /)."
+
+#: core/validators.py:75
+msgid "Uppercase letters are not allowed here."
+msgstr "Versaalit (ABC) eivät kelpaa tässä."
+
+#: core/validators.py:79
+msgid "Lowercase letters are not allowed here."
+msgstr "Pienet kirjaimet (abc) eivät kelpaa tässä."
+
+#: core/validators.py:86
+msgid "Enter only digits separated by commas."
+msgstr "Vain pilkulla erotetut luvut kelpaavat tässä."
+
+#: core/validators.py:98
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Syötä sähköpostiosoitteita pilkuilla erotettuina."
+
+#: core/validators.py:102
+msgid "Please enter a valid IP address."
+msgstr "IP-osoite ei kelpaa."
+
+#: core/validators.py:106
+msgid "Empty values are not allowed here."
+msgstr "Tätä kohtaa ei voi jättää tyhjäksi."
+
+#: core/validators.py:110
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Vain numerot (0-9) kelpaavat tässä."
+
+#: core/validators.py:114
+msgid "This value can't be comprised solely of digits."
+msgstr "Tarvitaan vähintään yksi merkki, joka ei ole numero (0-9)."
+
+#: core/validators.py:119
+msgid "Enter a whole number."
+msgstr "Syötä kokonaisluku."
+
+#: core/validators.py:123
+msgid "Only alphabetical characters are allowed here."
+msgstr "Vain kirjaimet kelpaavat tässä."
+
+#: core/validators.py:131
+msgid "Enter a valid time in HH:MM format."
+msgstr "Ajan täytyy olla muodossa TT:MM."
+
+#: core/validators.py:139
+msgid "Enter a valid e-mail address."
+msgstr "Syötä kelvollinen sähköpostiosoite."
+
+#: core/validators.py:151 core/validators.py:379 forms/__init__.py:661
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Tiedostoa ei lähetetty. Tarkista lomakkeen koodaus (encoding)."
+
+#: core/validators.py:155
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "Kuva ei kelpaa. Lähettämäsi tiedosto ei ole kuva, tai tiedosto on vioittunut."
+
+#: core/validators.py:162
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "Osoittessa %s ei ole kelpaavaa kuvaa."
+
+#: core/validators.py:166
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Puhelinnumeron tulee olla muodossa XXX-XXX-XXXX. \"%s\" ei kelpaa."
+
+#: core/validators.py:174
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "Osoitteessa %s ei ole kelpaavaa QuickTime-videota."
+
+#: core/validators.py:178
+msgid "A valid URL is required."
+msgstr "URL-osoite ei kelpaa."
+
+#: core/validators.py:192
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"HTML-koodi ei kelpaa. Virheilmoitus on:\n"
+"%s"
+
+#: core/validators.py:199
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Vääränmuotoinen XML: %s"
+
+#: core/validators.py:209
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL-osoite %s ei kelpaa."
+
+#: core/validators.py:213 core/validators.py:215
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "Osoite %s on katkennut linkki."
+
+#: core/validators.py:221
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Syötä USA:n osavaltion lyhenne."
+
+#: core/validators.py:236
+#, 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] "Sanaa \"%s\" ei saa käyttää tässä."
+msgstr[1] "Sanoja \"%s\" ei saa käyttää tässä."
+
+#: core/validators.py:243
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr ""
+
+#: core/validators.py:262
+msgid "Please enter something for at least one field."
+msgstr "Täytä ainakin yksi kenttä."
+
+#: core/validators.py:271 core/validators.py:282
+msgid "Please enter both fields or leave them both empty."
+msgstr "Täytä tai jätä tyhjäksi kummatkin kentät."
+
+#: core/validators.py:289
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Tämä kenttä pitää täyttää, jos %(field)s on %(value)s."
+
+#: core/validators.py:301
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Tämä kenttä pitää täyttää, jos %(field)s ei ole %(value)s."
+
+#: core/validators.py:320
+msgid "Duplicate values are not allowed."
+msgstr "Samaa arvoa ei voi käyttää kahdesti."
+
+#: core/validators.py:343
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Tämän luvun on oltava %s:n potenssi."
+
+#: core/validators.py:354
+msgid "Please enter a valid decimal number."
+msgstr "Desimaaliluku ei kelpaa."
+
+#: core/validators.py:356
+#, 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] "Desimaaliluvussa saa tässä olla yhteensä vain %s merkitsevä numero. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)."
+msgstr[1] "Desimaaliluvussa saa tässä olla yhteensä vain %s merkitsevää numeroa. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)."
+
+#: core/validators.py:359
+#, 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] "Desimaaliluvun kokonaisosassa saa tässä olla vain %s numero. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)."
+msgstr[1] "Desimaaliluvun kokonaisosassa saa tässä olla vain %s numeroa. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)."
+
+#: core/validators.py:362
+#, 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] "Tässä saa olla vain %s desimaali. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)."
+msgstr[1] "Tässä saa olla vain %s desimaalia. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)."
+
+#: core/validators.py:372
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Lähetä vähintään %s tavun kokoinen tiedosto."
+
+#: core/validators.py:373
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Lähetä enintään %s tavun kokoinen tiedosto."
+
+#: core/validators.py:390
+msgid "The format for this field is wrong."
+msgstr "Muoto ei kelpaa."
+
+#: core/validators.py:405
+msgid "This field is invalid."
+msgstr "Tämä arvo ei kelpaa."
+
+#: core/validators.py:441
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr ""
+
+#: core/validators.py:444
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "Osoitteesta %(url)s saatiin virheellinen Content-Type '%(contenttype)s'."
+
+#: core/validators.py:477
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr "Rivillä %(line)s oleva tagi %(tag)s pitää sulkea. (Rivi alkaa \"%(start)s\")"
+
+#: core/validators.py:481
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr "Rivillä %(line)s on tekstiä, joka ei kelpaa tässä yhteydessä. (Rivi alkaa \"%(start)s\")"
+
+#: core/validators.py:486
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr "Rivillä %(line)s attribuutti %(attr)s ei kelpaa. (Rivi alkaa \"%(start)s\")"
+
+#: core/validators.py:491
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr "Rivillä %(line)s tagi \"<%(tag)s>\" ei kelpaa. (Rivi alkaa \"%(start)s\")"
+
+#: core/validators.py:495
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr "Rivillä %(line)s yhdestä tagista puuttuu yksi tai useampi attribuutti. (Rivi alkaa \"%(start)s\")"
+
+#: core/validators.py:500
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr "Rivillä %(line)s attribuutin %(attr)s arvo ei kelpaa. (Rivi alkaa \"%(start)s\")"
+
+#: contrib/auth/forms.py:52
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr "Selaimesi ei salli evästeitä. Sisäänkirjautuminen vaatii evästeen."
+
+#: contrib/auth/forms.py:59 contrib/admin/views/decorators.py:10
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr "Käyttäjätunnus tai salasana ei kelpaa. Huomaa, että isot ja pienet kirjaimet ovat merkitseviä."
+
+#: contrib/auth/forms.py:61
+msgid "This account is inactive."
+msgstr "Tämä käyttäjätili ei ole voimassa."
+
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
+msgid "name"
+msgstr "nimi"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "koodinimi"
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "oikeus"
+
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
+msgid "permissions"
+msgstr "oikeudet"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "ryhmä"
+
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
+msgid "groups"
+msgstr "ryhmät"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "tunnus"
+
+#: contrib/auth/models.py:90
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr " Vaaditaan. Enintään 30 kirjanta (a-z), numeroa (0-9) tai alaviivaa (_)."
+
+#: contrib/auth/models.py:91
+msgid "first name"
+msgstr "etunimi"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "sukunimi"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "sähköposti"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "salasana"
+
+#: contrib/auth/models.py:94
+msgid "Use '[algo]$[salt]$[hexdigest]'"
+msgstr "(Salasanaa ei näytetä selväkielisenä)"
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "ylläpitäjä"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr "Ylläpitäjillä on pääsy tähän sivuston ylläpito-osioon."
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "voimassa"
+
+#: contrib/auth/models.py:96
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr "Määrää, voiko käyttäjä kirjautua sisään. Tällä voi estää käyttäjätilin käytön poistamatta sitä."
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr "pääkäyttäjä"
+
+#: contrib/auth/models.py:97
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "Antaa käyttäjälle kaikki oikeudet ilman, että niitä täytyy erikseen luetella."
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "viimeksi kirjautunut"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "liittynyt"
+
+#: contrib/auth/models.py:101
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Tässä valittujen oikeuksien lisäksi käyttäjä saa myös kaikki niiden ryhmien "
+"oikeudet, joiden jäsen hän on."
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "käyttäjän oikeudet"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "käyttäjä"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "käyttäjät"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "Henkilökohtaiset tiedot"
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "Oikeudet"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "Tärkeät päivämäärät"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "Ryhmät"
+
+#: contrib/auth/models.py:256
+msgid "message"
+msgstr "viesti"
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "Kirjautunut ulos"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "tapahtumahetki"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "kohteen tunniste"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "kohteen tiedot"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "tapahtumatyyppi"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "selitys"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "lokimerkintä"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "lokimerkinnät"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Yksi %s:</h3>\n"
+"<ul>\n"
+
+#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "Kaikki"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "Mikä tahansa päivä"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Tänään"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "Viimeiset 7 päivää"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "Tässä kuussa"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "Tänä vuonna"
+
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "Kyllä"
+
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "Ei"
+
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr "Tuntematon"
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Kirjaudu sisään"
+
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr "Kirjaudu uudelleen sisään, koska istuntosi on mennyt umpeen. Muutoksesi ovat silti tallessa."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr "Selaimesi ei salli evästeitä. Muuta asetukset sallimaan evästeet, lataa tämä sivu uudelleen ja yritä toistamiseen."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Käyttäjätunnuksessa ei saa olla '@'-merkkiä."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Käyttäjätunnus ei ole sama kuin sähköpostiosoite. Kokeile '%s'."
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "Sivuston ylläpito"
+
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:14
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" on nyt lisätty."
+
+#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:345
+#: contrib/admin/views/auth.py:19
+msgid "You may edit it again below."
+msgstr "Voit muokata sitä uudelleen alla."
+
+#: contrib/admin/views/main.py:269 contrib/admin/views/main.py:354
+#, python-format
+msgid "You may add another %s below."
+msgstr "Uusi %s on lisättävissä alla."
+
+#: contrib/admin/views/main.py:287
+#, python-format
+msgid "Add %s"
+msgstr "Uusi %s"
+
+#: contrib/admin/views/main.py:333
+#, python-format
+msgid "Added %s."
+msgstr "Lisätty %s."
+
+#: contrib/admin/views/main.py:333 contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337
+msgid "and"
+msgstr "ja"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Changed %s."
+msgstr "Muokattu: %s."
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Deleted %s."
+msgstr "Poistettu %s."
+
+#: contrib/admin/views/main.py:340
+msgid "No fields changed."
+msgstr "Ei muutoksia kenttiin."
+
+#: contrib/admin/views/main.py:343
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" on nyt muutettu."
+
+#: contrib/admin/views/main.py:351
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" on nyt lisätty. Voit muokata sitä uudelleen alla."
+
+#: contrib/admin/views/main.py:389
+#, python-format
+msgid "Change %s"
+msgstr "Muokkaa: %s"
+
+#: contrib/admin/views/main.py:471
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:476
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s:"
+
+#: contrib/admin/views/main.py:509
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" on poistettu."
+
+#: contrib/admin/views/main.py:512
+msgid "Are you sure?"
+msgstr "Oletko varma?"
+
+#: contrib/admin/views/main.py:534
+#, python-format
+msgid "Change history: %s"
+msgstr "Muokkaushistoria: %s"
+
+#: contrib/admin/views/main.py:568
+#, python-format
+msgid "Select %s"
+msgstr "Valitse %s"
+
+#: contrib/admin/views/main.py:568
+#, python-format
+msgid "Select %s to change"
+msgstr "Valitse muokattava %s"
+
+#: contrib/admin/views/main.py:744
+msgid "Database error"
+msgstr "Tietokantavirhe"
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
+msgid "Integer"
+msgstr "Kokonaisluku"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Totuusarvo: joko tosi (True) tai epätosi (False)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Merkkijono (enintään %(maxlength)s merkkiä)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Pilkulla erotetut kokonaisluvut"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Päivämäärä"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Päivämäärä ja kellonaika"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "Sähköpostios."
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "Tiedostopolku"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "Desimaaliluku"
+
+#: contrib/admin/views/doc.py:304 contrib/comments/models.py:85
+msgid "IP address"
+msgstr "IP-osoite"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Totuusarvo: joko tosi (True), epätosi (False) tai ei mikään (None)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "Relaatio emomalliin"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "Puhelinnumero"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "Tekstiä"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "Kellonaika"
+
+#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL-osoite"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "USA:n osavaltio (kaksikirjaiminen versaalein)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "XML-teksti"
+
+#: contrib/admin/views/auth.py:25
+msgid "Add user"
+msgstr "Uusi käyttäjä"
+
+#: contrib/admin/templatetags/admin_list.py:230
+msgid "All dates"
+msgstr "Kaikki päivät"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Näytä kaikki"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/base.html:24
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Documentation"
+msgstr "Ohjeita"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/base.html:24
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Change password"
+msgstr "Vaihda salasana"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/base.html:24
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_detail.html:3