To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site. Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").
\n"
+msgstr ""
+"\n"
+"
Per a instalar 'bookmarklets', arrosegui l'enllaç a la "
+"seva barra de\n"
+"marcadors, o faci click amb el botò dret en l'enllaç i afegeixi'l als "
+"marcadors.\n"
+"Ara pot escollir el 'bookmarklet' desde cualsevol pàgina del lloc.\n"
+"Observi que alguns d'aquests 'bookmarklets' precisen que estigui veient\n"
+"el lloc desde un ordinador senyalat com a \"intern\" (parli\n"
+"amb el seu administrador de sistemes si no està segur de la condició del "
+"seu).
\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Documentació d'aquesta pàgina"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"El porta desde cualsevol pàgina de la documentació a la vista que la genera."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Mostra el ID de l'objecte"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"Mostra el 'content-type' (tipus de contingut) i el ID inequívoc de les "
+"pàgines que representen un únic objecte."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Editar aquest objecte (finestra actual)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"El porta a la pàgina d'administració de pàgines que representen un únic "
+"objecte."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Editar aquest objecte (nova finestra)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+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/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+msgid "Delete"
+msgstr "Eliminar"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Desar com a nou"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Desar i afegir-ne un de nou"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Desar i continuar editant"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Desar"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Error del servidor"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Error del servidor (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error (500)"
+msgstr "Error del servidor (500)"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Hi ha hagut un error. S'ha informat als administradors del lloc per correu "
+"electrònic y hauria d'arreglar-se en breu. Gràcies per la seva paciència."
+
+#: contrib/admin/templates/admin/filter.html:2
+#, fuzzy, python-format
+msgid " By %(filter_title)s "
+msgstr "Per %(title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr ""
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Cercar"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "Històric"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Data/hora"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Usuari"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Acció"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "F j, Y, H:i "
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Aquest objecte no te historial de canvis. Probablement no va ser afegit "
+"utilitzant aquest lloc administratiu."
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, fuzzy, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Eliminar el/la %(object_name)s '%(object)s' provocaria l'eliminació "
+"d'objectes relacionats, però el seu compte no te permisos per a esborrar els "
+"tipus d'objecte següents:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, fuzzy, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Està segur voler esborrar els/les %(object_name)s \"%(object)s\"? "
+"S'esborraran els següents elements relacionats:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Si, estic segur"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Afegir %(name)s"
+
+#: contrib/admin/templates/admin/change_form.html:15
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Afegir"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "Veure en el lloc"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Si us plau, corregeixi l'error mostrat abaix."
+msgstr[1] "Si us plau, corregeixi els errors mostrats abaix."
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "Ordre"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "Ordre:"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Benvingut,"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "No s'ha pogut trobar la pàgina"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Ho sentim, però no s'ha pogut trobar la pàgina solicitada"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:24
+msgid "Log in"
+msgstr "Iniciar sessió"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Models disponibles en la aplicació %(name)s."
+
+#: contrib/admin/templates/admin/index.html:18
+#, fuzzy, python-format
+msgid "%(name)s"
+msgstr "Afegir %(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Modificar"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "No té permís per editar res."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Accions recents"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Les meves accions"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Cap disponible"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Lloc administratiu de Django"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Adminsitració de Django"
+
+#: 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 ""
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+#, fuzzy
+msgid "Username"
+msgstr "Usuari:"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+#, fuzzy
+msgid "Password"
+msgstr "Contrasenya:"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#, fuzzy
+msgid "Password (again)"
+msgstr "Canvi de clau"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user %(username)s."
+msgstr ""
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Actualment:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Modificar:"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Data:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Hora:"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Gràcies per emprar algun temps de cualitat amb el lloc web avui."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Iniciar sessió de nou"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+"Està rebent aquest missatge degut a que va solicitar un restabliment de "
+"contrasenya."
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "del seu compte d'usuari a %(site_name)s."
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "La seva nova contrasenya és: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Sentis lliure de canviar-la en aquesta pàgina:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "El seu nom d'usuari, en cas d'haver-lo oblidat:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Gràcies per fer us del nostre lloc!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "L'equip de %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Restablir contrasenya"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Contrasenya restaber-ta amb èxit"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Li hem enviat una contrasenya nova a l'adreça de correu electrònic que ens "
+"ha indicat. L'hauria de rebre en breu."
+
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:4
+msgid "Password change"
+msgstr "Canvi de clau"
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Si us plau, introdueixi la seva contrasenya antiga, per seguretat, i tot "
+"seguit introdueixi la seva nova contrasenya dues vegades per verificar que "
+"l'ha escrit correctament."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Contrasenya antiga:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Contrasenya nova:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Confirmar contrasenya:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Canviar la meva clau:"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Canvi de clau exitò"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "La seva clau ha estat canviada."
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Ha oblidat la seva contrasenya? Introdueixi la seva adreça de correu "
+"electrònic i crearem una nova que li enviarem per correu."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Adreça de correu electrònic:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Restablir la meva contrasenya"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "Lloc administratiu"
+
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:19
+#, 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/main.py:261 contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:24
+msgid "You may edit it again below."
+msgstr "Pot editar-lo de nou abaix."
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "Pot agregar un altre %s abaix."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "Agregar %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "Agregat %s."
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "Modificat %s."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "Eliminat %s."
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "Cap camp canviat."
+
+#: contrib/admin/views/main.py:345
+#, 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
+#, 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
+#, python-format
+msgid "Change %s"
+msgstr "Modificar %s"
+
+#: contrib/admin/views/main.py:473
+#, 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:478
+#, 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:511
+#, 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:514
+msgid "Are you sure?"
+msgstr "Està segur?"
+
+#: contrib/admin/views/main.py:536
+#, python-format
+msgid "Change history: %s"
+msgstr "Modificar històric: %s"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s"
+msgstr "Seleccioni %s"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s to change"
+msgstr "Seleccioni %s per modificar"
+
+#: contrib/admin/views/main.py:758
+msgid "Database error"
+msgstr ""
+
+#: 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 ""
+"Si us plau, identifiquis de nou doncs la seva sessió ha expirat. No es "
+"preocupi, el seu enviament està emmagatzemat."
+
+#: 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 ""
+"Sembla ser que el seu navegador no està configurat per acceptar "
+"'cookies' (galetes). Si us plau, habiliti les 'cookies', recarregui aquesta "
+"pàgina i provi-ho de nou. "
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Els noms d'usuari no poden contenir el caracter '@'."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"La seva adreça de correu no és el seu nom d'usuari. Provi '%s' en tot cas."
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:164
+#, fuzzy, python-format
+msgid "App %r not found"
+msgstr "No s'ha pogut trobar la pàgina"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %r not found in app %r"
+msgstr ""
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%s.%s` object"
+msgstr ""
+
+#: 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 ""
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%s.%s` objects"
+msgstr ""
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr ""
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr ""
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr ""
+
+#: 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 "Enter"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Booleà (Verdader o Fals)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Cadena (fins a %(maxlength)s)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Enters separats per comes"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Data (sense hora)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Data (amb hora)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "Adreça de correu electrònic"
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "Ruta del fitxer"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleà (Verdader, Fals o 'None' (cap))"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "Relació amb el model pare"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "Número de telèfon"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "Texte"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "Hora"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "Estat dels E.U.A. (dos lletres majúscules)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "Texte XML"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr ""
+
+#: contrib/admin/views/auth.py:30
+#, fuzzy
+msgid "Add user"
+msgstr "Agregar %s"
+
+#: contrib/admin/views/auth.py:57
+#, fuzzy
+msgid "Password changed successfully."
+msgstr "Canvi de clau exitò"
+
+#: contrib/admin/views/auth.py:64
+#, fuzzy, python-format
+msgid "Change password: %s"
+msgstr "Canviar clau"
+
+#: newforms/fields.py:101 newforms/fields.py:254
+#, fuzzy, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "Aseguris de que el seu texte té menys de %s caracter."
+
+#: newforms/fields.py:103 newforms/fields.py:256
+#, fuzzy, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "Aseguris de que el seu texte té menys de %s caracter."
+
+#: newforms/fields.py:126 core/validators.py:120
+msgid "Enter a whole number."
+msgstr "Introdueixi un número senser."
+
+#: newforms/fields.py:128
+#, fuzzy, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Aquest valor ha de ser una potència de %s."
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr ""
+
+#: newforms/fields.py:163
+#, fuzzy
+msgid "Enter a valid date."
+msgstr "Introdueixi un nom de fitxer vàlid."
+
+#: newforms/fields.py:190
+#, fuzzy
+msgid "Enter a valid time."
+msgstr "Introdueixi un nom de fitxer vàlid."
+
+#: newforms/fields.py:226
+#, fuzzy
+msgid "Enter a valid date/time."
+msgstr "Introdueixi un nom de fitxer vàlid."
+
+#: newforms/fields.py:240
+#, fuzzy
+msgid "Enter a valid value."
+msgstr "Introdueixi un nom de fitxer vàlid."
+
+#: newforms/fields.py:269 core/validators.py:161
+msgid "Enter a valid e-mail address."
+msgstr "Introdueixi una adreça de correu vàlida."
+
+#: newforms/fields.py:287 newforms/fields.py:309
+#, fuzzy
+msgid "Enter a valid URL."
+msgstr "Introdueixi un nom de fitxer vàlid."
+
+#: newforms/fields.py:311
+#, fuzzy
+msgid "This URL appears to be a broken link."
+msgstr "La URL %sés un enllaç trencat."
+
+#: newforms/fields.py:359
+#, fuzzy
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Esculli una opció vàlida; %(data)s' no està dintre de %(choices)s."
+
+#: newforms/fields.py:377 newforms/fields.py:453
+#, fuzzy
+msgid "Enter a list of values."
+msgstr "Introdueixi un nom de fitxer vàlid."
+
+#: newforms/fields.py:386
+#, fuzzy, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Esculli una opció vàlida; %(data)s' no està dintre de %(choices)s."
+
+#: template/defaultfilters.py:436
+msgid "yes,no,maybe"
+msgstr "si,no,potser"
+
+#: views/generic/create_update.py:43
+#, fuzzy, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "S'ha modificat amb èxist el/la %(name)s \"%(obj)s."
+
+#: views/generic/create_update.py:117
+#, fuzzy, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "El/la %(name)s \"%(obj)s\".ha estat eliminat amb èxit."
+
+#: views/generic/create_update.py:184
+#, fuzzy, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "L'equip de %(site_name)s"
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Aquest valor ha de contenir només números, guions, i guions baixos."
+
+#: core/validators.py:68
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Aquest valor ha de contenir només lletres, números, guions, guions baixos, i "
+"barres (/)."
+
+#: core/validators.py:72
+#, fuzzy
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Aquest valor ha de contenir només lletres, números, guions, guions baixos, i "
+"barres (/)."
+
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "No es permeten majúscules aquí."
+
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "No es permeten minúscules aquí."
+
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "Introdueixi només dígits separats per comes."
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Introdueixi adreces de correu electrònic vàlides separades per comes."
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "Per favor introdueixi una adreça IP vàlida."
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "No s'admeten valor buits."
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "No s'admeten caracters no numèrics."
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "Aquest valor no pot contenir només dígits."
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "Només s'admeted caracters alfabètics aquí."
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr ""
+
+#: core/validators.py:143
+#, fuzzy, python-format
+msgid "Invalid date: %s."
+msgstr "URL invalida: %s"
+
+#: core/validators.py:152
+msgid "Enter a valid time in HH:MM format."
+msgstr "Introdueixi una hora vàlida en el format HH:MM."
+
+#: core/validators.py:177
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Envii una imatge vàilda. El fitxer que ha enviat no era una imatge o estaba "
+"corrupte."
+
+#: core/validators.py:184
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "La URL %s no apunta una imatge vàlida."
+
+#: core/validators.py:188
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"El números de telèfon han de guardar-se en el format XXX-XXX-XXXX. \"%s\" no "
+"és vàlid."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "La URL %s no apunta a un video QuickTime vàlid."
+
+#: core/validators.py:200
+msgid "A valid URL is required."
+msgstr "Es precisa d'una URL vàlida."
+
+#: core/validators.py:214
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Es precisa HTML vàlid. Els errors específics sòn:\n"
+"%s"
+
+#: core/validators.py:221
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML incorrectament formatejat: %s"
+
+#: core/validators.py:238
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL invalida: %s"
+
+#: core/validators.py:243 core/validators.py:245
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "La URL %sés un enllaç trencat."
+
+#: core/validators.py:251
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Introdueixi una abreviatura vàlida d'estat d'els E.U.A.."
+
+#: core/validators.py:265
+#, 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] "Vigili la seva boca! Aquí no admetem la paraula: %s."
+msgstr[1] "Vigili la seva boca! Aquí no admetem les paraules: %s."
+
+#: core/validators.py:272
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Aquest camp ha de concordar amb el camp '%s'."
+
+#: core/validators.py:291
+msgid "Please enter something for at least one field."
+msgstr "Si us plau, introdueixi alguna cosa alemnys en un camp."
+
+#: core/validators.py:300 core/validators.py:311
+msgid "Please enter both fields or leave them both empty."
+msgstr "Si us plau, ompli els dos camps o deixi'ls tots dos en blanc."
+
+#: core/validators.py:318
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "S'ha de proporcionar aquest camps si %(field)s és %(value)s"
+
+#: core/validators.py:330
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "S'ha de proporcionar aquest camps si %(field)s no és %(value)s"
+
+#: core/validators.py:349
+msgid "Duplicate values are not allowed."
+msgstr "No s'admeten valors duplicats."
+
+#: core/validators.py:364
+#, fuzzy, python-format
+msgid "This value must be between %s and %s."
+msgstr "Aquest valor ha de ser una potència de %s."
+
+#: core/validators.py:366
+#, fuzzy, python-format
+msgid "This value must be at least %s."
+msgstr "Aquest valor ha de ser una potència de %s."
+
+#: core/validators.py:368
+#, fuzzy, python-format
+msgid "This value must be no more than %s."
+msgstr "Aquest valor ha de ser una potència de %s."
+
+#: core/validators.py:404
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Aquest valor ha de ser una potència de %s."
+
+#: core/validators.py:415
+msgid "Please enter a valid decimal number."
+msgstr "Si us plau, introdueixi un número decimal vàlid."
+
+#: core/validators.py:419
+#, 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] ""
+"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:422
+#, fuzzy, 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] ""
+"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:425
+#, 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] ""
+"Si us plau, introdueixi un número decimal vàlid amb no més de %s digit "
+"decimal."
+msgstr[1] ""
+"Si us plau, introdueixi un número decimal vàlid amb no més de %s digits "
+"decimals."
+
+#: core/validators.py:435
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Asseguris de que el fitxer que ha enviat té, com a mínim, %s bytes."
+
+#: core/validators.py:436
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Asseguris de que el fitxer que ha enviat té, com a màxim %s bytes."
+
+#: core/validators.py:453
+msgid "The format for this field is wrong."
+msgstr "El format per aquest camp és incorrecte."
+
+#: core/validators.py:468
+msgid "This field is invalid."
+msgstr "El camp no és vàlid."
+
+#: core/validators.py:504
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "No s'ha pogut obtenir res de %s."
+
+#: core/validators.py:507
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr ""
+"La URL %(url)s ha va tornar la capcelera Content-Type '%(contenttype)s', que "
+"no és vàlida."
+
+#: core/validators.py:540
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Si us plau, tanqui l'etiqueta %(tag)s desde la linea %(line)s. (La linea "
+"comença amb \"%(start)s\".)"
+
+#: core/validators.py:544
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Part del text que comença en la linea %(line)s no està permés en aquest "
+"contexte. (La linea comença per \"%(start)s\".)"
+
+#: core/validators.py:549
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"El \"%(attr)s\" de la linea %(line)s no és un atribut vàlido. (La linea "
+"comença per \"%(start)s\".)"
+
+#: core/validators.py:554
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"La \"<%(tag)s>\" de la linea %(line)s no és una etiqueta vàlida. (La línea "
+"comença per \"%(start)s\".)"
+
+#: core/validators.py:558
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"A una etiqueta de la linea %(line)s li falta un o més atributs requerits.(La "
+"linea comença per \"%(start)s\".)"
+
+#: core/validators.py:563
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"L'atribut \"%(attr)s\" de la linena %(line)s té un valor que no és vàlid. "
+"(La linea comença per \"%(start)s\".)"
+
+#~ msgid "Have you forgotten your password?"
+#~ msgstr "Ha oblidat la seva clau?"
+
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "Utilitzi '[algo]$[salt]$[hexdigest]'"
diff --git a/django/conf/locale/ca/LC_MESSAGES/djangojs.mo b/django/conf/locale/ca/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000000..412c2eb876
Binary files /dev/null and b/django/conf/locale/ca/LC_MESSAGES/djangojs.mo differ
diff --git a/django/conf/locale/ca/LC_MESSAGES/djangojs.po b/django/conf/locale/ca/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000..8903957b86
--- /dev/null
+++ b/django/conf/locale/ca/LC_MESSAGES/djangojs.po
@@ -0,0 +1,121 @@
+# 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.
+#
+# Jorge Gajon , 2005.
+# Marc Fargas , 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: djangojs\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-02-15 11:05+1100\n"
+"PO-Revision-Date: 2007-01-19 10:30+0100\n"
+"Last-Translator: Marc Fargas \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "%s Disponibles"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Seleccionar tots"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Afegir"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Eliminar"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "%s Escollits"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Faci les seves seleccions i faci click a"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Deseleccionar tots"
+
+#: 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 ""
+"Febrer Març Abril Maig Juny Juliol Agost Setembre Octubre Novembre Desembre"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Diumenge Dilluns Dimarts Dimecres Dijous Divendres Dissabte"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "D L M X J V S"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Ara"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Rellotje"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Esculli una hora"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Mitja nit"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Migdia"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Cancel·lar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Avui"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Calendari"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Ahir"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Demà"
+
+#: 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/de/LC_MESSAGES/django.mo b/django/conf/locale/de/LC_MESSAGES/django.mo
index 0dd2b26dff..c5d66e6e52 100644
Binary files a/django/conf/locale/de/LC_MESSAGES/django.mo and b/django/conf/locale/de/LC_MESSAGES/django.mo differ
diff --git a/django/conf/locale/de/LC_MESSAGES/django.po b/django/conf/locale/de/LC_MESSAGES/django.po
index c5e3f4282a..d02bfcf5ee 100644
--- a/django/conf/locale/de/LC_MESSAGES/django.po
+++ b/django/conf/locale/de/LC_MESSAGES/django.po
@@ -1,4 +1,3 @@
-# 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 , YEAR.
@@ -7,95 +6,1245 @@ msgid ""
msgstr ""
"Project-Id-Version: Django 1.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-11-15 18:35+0100\n"
-"PO-Revision-Date: 2005-10-08 00:03+0200\n"
-"Last-Translator: Georg Bauer \n"
+"POT-Creation-Date: 2007-02-05 02:56+0100\n"
+"PO-Revision-Date: 2007-02-05 03:19+0100\n"
+"Last-Translator: Benjamin Schulz \n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language-Team: \n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: contrib/comments/models.py:67 contrib/comments/models.py:166
-msgid "object ID"
+#: .\conf\global_settings.py:39
+msgid "Arabic"
+msgstr "Arabisch"
+
+#: .\conf\global_settings.py:40
+msgid "Bengali"
+msgstr "Bengali"
+
+#: .\conf\global_settings.py:41
+msgid "Czech"
+msgstr "Tschechisch"
+
+#: .\conf\global_settings.py:42
+msgid "Welsh"
+msgstr "Walisisch"
+
+#: .\conf\global_settings.py:43
+msgid "Danish"
+msgstr "Dänisch"
+
+#: .\conf\global_settings.py:44
+msgid "German"
+msgstr "Deutsch"
+
+#: .\conf\global_settings.py:45
+msgid "Greek"
+msgstr "Griechisch"
+
+#: .\conf\global_settings.py:46
+msgid "English"
+msgstr "Englisch"
+
+#: .\conf\global_settings.py:47
+msgid "Spanish"
+msgstr "Spanisch"
+
+#: .\conf\global_settings.py:48
+msgid "Argentinean Spanish"
+msgstr "Argentinisches Spanisch"
+
+#: .\conf\global_settings.py:49
+msgid "Finnish"
+msgstr "Finnisch"
+
+#: .\conf\global_settings.py:50
+msgid "French"
+msgstr "Französisch"
+
+#: .\conf\global_settings.py:51
+msgid "Galician"
+msgstr "Galicisch"
+
+#: .\conf\global_settings.py:52
+msgid "Hungarian"
+msgstr "Ungarisch"
+
+#: .\conf\global_settings.py:53
+msgid "Hebrew"
+msgstr "Hebräisch"
+
+#: .\conf\global_settings.py:54
+msgid "Icelandic"
+msgstr "Isländisch"
+
+#: .\conf\global_settings.py:55
+msgid "Italian"
+msgstr "Italienisch"
+
+#: .\conf\global_settings.py:56
+msgid "Japanese"
+msgstr "Japanisch"
+
+#: .\conf\global_settings.py:57
+msgid "Dutch"
+msgstr "Holländisch"
+
+#: .\conf\global_settings.py:58
+msgid "Norwegian"
+msgstr "Norwegisch"
+
+#: .\conf\global_settings.py:59
+msgid "Polish"
+msgstr "Polnisch"
+
+#: .\conf\global_settings.py:60
+msgid "Brazilian"
+msgstr "Brasilianisch"
+
+#: .\conf\global_settings.py:61
+msgid "Romanian"
+msgstr "Rumänisch"
+
+#: .\conf\global_settings.py:62
+msgid "Russian"
+msgstr "Russisch"
+
+#: .\conf\global_settings.py:63
+msgid "Slovak"
+msgstr "Slowakisch"
+
+#: .\conf\global_settings.py:64
+msgid "Slovenian"
+msgstr "Slowenisch"
+
+#: .\conf\global_settings.py:65
+msgid "Serbian"
+msgstr "Serbisch"
+
+#: .\conf\global_settings.py:66
+msgid "Swedish"
+msgstr "Schwedisch"
+
+#: .\conf\global_settings.py:67
+msgid "Tamil"
+msgstr "Tamilisch"
+
+#: .\conf\global_settings.py:68
+msgid "Turkish"
+msgstr "Türkisch"
+
+#: .\conf\global_settings.py:69
+msgid "Ukrainian"
+msgstr "Ukrainisch"
+
+#: .\conf\global_settings.py:70
+msgid "Simplified Chinese"
+msgstr "Vereinfachtes Chinesisch"
+
+#: .\conf\global_settings.py:71
+msgid "Traditional Chinese"
+msgstr "Traditionelles Chinesisch"
+
+#: .\contrib\admin\filterspecs.py:40
+#, python-format
+msgid ""
+"
By %s:
\n"
+"
\n"
+msgstr ""
+"
Nach %s:
\n"
+"
\n"
+
+#: .\contrib\admin\filterspecs.py:70
+#: .\contrib\admin\filterspecs.py:88
+#: .\contrib\admin\filterspecs.py:143
+#: .\contrib\admin\filterspecs.py:169
+msgid "All"
+msgstr "Alle"
+
+#: .\contrib\admin\filterspecs.py:109
+msgid "Any date"
+msgstr "Alle Daten"
+
+#: .\contrib\admin\filterspecs.py:110
+msgid "Today"
+msgstr "Heute"
+
+#: .\contrib\admin\filterspecs.py:113
+msgid "Past 7 days"
+msgstr "Letzte 7 Tage"
+
+#: .\contrib\admin\filterspecs.py:115
+msgid "This month"
+msgstr "Diesen Monat"
+
+#: .\contrib\admin\filterspecs.py:117
+msgid "This year"
+msgstr "Dieses Jahr"
+
+#: .\contrib\admin\filterspecs.py:143
+#: .\newforms\widgets.py:162
+#: .\oldforms\__init__.py:572
+msgid "Yes"
+msgstr "Ja"
+
+#: .\contrib\admin\filterspecs.py:143
+#: .\newforms\widgets.py:162
+#: .\oldforms\__init__.py:572
+msgid "No"
+msgstr "Nein"
+
+#: .\contrib\admin\filterspecs.py:150
+#: .\newforms\widgets.py:162
+#: .\oldforms\__init__.py:572
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: .\contrib\admin\models.py:16
+msgid "action time"
+msgstr "Zeit der Aktion"
+
+#: .\contrib\admin\models.py:19
+msgid "object id"
msgstr "Objekt ID"
-#: contrib/comments/models.py:68
-msgid "headline"
-msgstr "Überschrift"
+#: .\contrib\admin\models.py:20
+msgid "object repr"
+msgstr "Objekt Darst."
-#: contrib/comments/models.py:69 contrib/comments/models.py:90
-#: contrib/comments/models.py:167
-msgid "comment"
-msgstr "Kommentar"
+#: .\contrib\admin\models.py:21
+msgid "action flag"
+msgstr "Aktionskennzeichen"
-#: contrib/comments/models.py:70
-msgid "rating #1"
-msgstr "Bewertung #1"
+#: .\contrib\admin\models.py:22
+msgid "change message"
+msgstr "Änderungsmeldung"
-#: contrib/comments/models.py:71
-msgid "rating #2"
-msgstr "Bewertung #2"
+#: .\contrib\admin\models.py:25
+msgid "log entry"
+msgstr "Logeintrag"
-#: contrib/comments/models.py:72
-msgid "rating #3"
-msgstr "Bewertung #3"
+#: .\contrib\admin\models.py:26
+msgid "log entries"
+msgstr "Logeinträge"
-#: contrib/comments/models.py:73
-msgid "rating #4"
-msgstr "Bewertung #4"
+#: .\contrib\admin\templates\admin\404.html.py:4
+#: .\contrib\admin\templates\admin\404.html.py:8
+msgid "Page not found"
+msgstr "Seite nicht gefunden"
-#: contrib/comments/models.py:74
-msgid "rating #5"
-msgstr "Bewertung #5"
+#: .\contrib\admin\templates\admin\404.html.py:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Es tut uns leid, aber die angeforderte Seite kann nicht gefunden werden."
-#: contrib/comments/models.py:75
-msgid "rating #6"
-msgstr "Bewertung #6"
+#: .\contrib\admin\templates\admin\500.html.py:4
+#: .\contrib\admin\templates\admin\base.html.py:30
+#: .\contrib\admin\templates\admin\change_form.html.py:13
+#: .\contrib\admin\templates\admin\change_list.html.py:6
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:6
+#: .\contrib\admin\templates\admin\invalid_setup.html.py:4
+#: .\contrib\admin\templates\admin\object_history.html.py:5
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:12
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:3
+#: .\contrib\admin\templates\registration\logged_out.html.py:4
+#: .\contrib\admin\templates\registration\password_change_done.html.py:4
+#: .\contrib\admin\templates\registration\password_change_form.html.py:4
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:4
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:4
+msgid "Home"
+msgstr "Start"
-#: contrib/comments/models.py:76
-msgid "rating #7"
-msgstr "Bewertung #7"
+#: .\contrib\admin\templates\admin\500.html.py:4
+msgid "Server error"
+msgstr "Serverfehler"
-#: contrib/comments/models.py:77
-msgid "rating #8"
-msgstr "Bewertung #8"
+#: .\contrib\admin\templates\admin\500.html.py:6
+msgid "Server error (500)"
+msgstr "Serverfehler (500)"
-#: contrib/comments/models.py:82
-msgid "is valid rating"
-msgstr "ist eine Bewertung"
+#: .\contrib\admin\templates\admin\500.html.py:9
+msgid "Server Error (500)"
+msgstr "Serverfehler (500)"
-#: contrib/comments/models.py:83 contrib/comments/models.py:169
-msgid "date/time submitted"
-msgstr "Datum/Zeit Erstellung"
+#: .\contrib\admin\templates\admin\500.html.py:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "Es hat einen Fehler gegeben. Dieser Fehler wurde an die Serververwalter per eMail weitergegeben und sollte bald behoben sein. Vielen Dank für Ihr Verständnis."
-#: contrib/comments/models.py:84 contrib/comments/models.py:170
-msgid "is public"
-msgstr "ist öffentlich"
+#: .\contrib\admin\templates\admin\base.html.py:25
+msgid "Welcome,"
+msgstr "Willkommen,"
-#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
+#: .\contrib\admin\templates\admin\base.html.py:25
+#: .\contrib\admin\templates\admin\change_form.html.py:10
+#: .\contrib\admin\templates\admin\change_list.html.py:5
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:3
+#: .\contrib\admin\templates\admin\object_history.html.py:3
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:9
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:3
+#: .\contrib\admin\templates\registration\password_change_done.html.py:3
+#: .\contrib\admin\templates\registration\password_change_form.html.py:3
+msgid "Documentation"
+msgstr "Dokumentation"
+
+#: .\contrib\admin\templates\admin\base.html.py:25
+#: .\contrib\admin\templates\admin\change_form.html.py:10
+#: .\contrib\admin\templates\admin\change_list.html.py:5
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:3
+#: .\contrib\admin\templates\admin\object_history.html.py:3
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:9
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:15
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:46
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:4
+#: .\contrib\admin\templates\admin_doc\index.html.py:4
+#: .\contrib\admin\templates\admin_doc\missing_docutils.html.py:4
+#: .\contrib\admin\templates\admin_doc\model_detail.html.py:3
+#: .\contrib\admin\templates\admin_doc\model_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\template_detail.html.py:4
+#: .\contrib\admin\templates\admin_doc\template_filter_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\template_tag_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\view_detail.html.py:4
+#: .\contrib\admin\templates\admin_doc\view_index.html.py:5
+#: .\contrib\admin\templates\registration\password_change_done.html.py:3
+#: .\contrib\admin\templates\registration\password_change_form.html.py:3
+msgid "Change password"
+msgstr "Passwort ändern"
+
+#: .\contrib\admin\templates\admin\base.html.py:25
+#: .\contrib\admin\templates\admin\change_form.html.py:10
+#: .\contrib\admin\templates\admin\change_list.html.py:5
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:3
+#: .\contrib\admin\templates\admin\object_history.html.py:3
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:9
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:4
+#: .\contrib\admin\templates\admin_doc\index.html.py:4
+#: .\contrib\admin\templates\admin_doc\missing_docutils.html.py:4
+#: .\contrib\admin\templates\admin_doc\model_detail.html.py:3
+#: .\contrib\admin\templates\admin_doc\model_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\template_detail.html.py:4
+#: .\contrib\admin\templates\admin_doc\template_filter_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\template_tag_index.html.py:5
+#: .\contrib\admin\templates\admin_doc\view_detail.html.py:4
+#: .\contrib\admin\templates\admin_doc\view_index.html.py:5
+#: .\contrib\admin\templates\registration\password_change_done.html.py:3
+#: .\contrib\admin\templates\registration\password_change_form.html.py:3
+#: .\contrib\comments\templates\comments\form.html.py:6
+msgid "Log out"
+msgstr "Abmelden"
+
+#: .\contrib\admin\templates\admin\base_site.html.py:4
+msgid "Django site admin"
+msgstr "Django Systemverwaltung"
+
+#: .\contrib\admin\templates\admin\base_site.html.py:7
+msgid "Django administration"
+msgstr "Django Verwaltung"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:15
+#: .\contrib\admin\templates\admin\index.html.py:28
+msgid "Add"
+msgstr "Zufügen"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:21
+#: .\contrib\admin\templates\admin\object_history.html.py:5
+msgid "History"
+msgstr "Geschichte"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:22
+msgid "View on site"
+msgstr "Im Web Anzeigen"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:32
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Bitte den Fehler korrigieren."
+msgstr[1] "Bitte die Fehler korrigieren."
+
+#: .\contrib\admin\templates\admin\change_form.html.py:50
+msgid "Ordering"
+msgstr "Sortierung"
+
+#: .\contrib\admin\templates\admin\change_form.html.py:53
+msgid "Order:"
+msgstr "Reihenfolge:"
+
+#: .\contrib\admin\templates\admin\change_list.html.py:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "%(name)s zufügen"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:9
+#: .\contrib\admin\templates\admin\submit_line.html.py:3
+msgid "Delete"
+msgstr "Löschen"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:14
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "Die Löschung des %(object_name)s '%(escaped_object)s' hätte die Löschung von abhängigen Daten zur Folge, aber Sie haben nicht die nötigen Rechte um die folgenden abhängigen Daten zu löschen:"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:21
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "Sind Sie sicher, dass Sie %(object_name)s \"%(escaped_object)s\" löschen wollen? Es werden zusätzlich die folgenden abhängigen Daten mit gelöscht:"
+
+#: .\contrib\admin\templates\admin\delete_confirmation.html.py:26
+msgid "Yes, I'm sure"
+msgstr "Ja, ich bin sicher"
+
+#: .\contrib\admin\templates\admin\filter.html.py:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Nach %(filter_title)s "
+
+#: .\contrib\admin\templates\admin\filters.html.py:4
+msgid "Filter"
+msgstr "Filter"
+
+#: .\contrib\admin\templates\admin\index.html.py:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modelle, die in der Anwendung %(name)s vorhanden sind."
+
+#: .\contrib\admin\templates\admin\index.html.py:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: .\contrib\admin\templates\admin\index.html.py:34
+msgid "Change"
+msgstr "Ändern"
+
+#: .\contrib\admin\templates\admin\index.html.py:44
+msgid "You don't have permission to edit anything."
+msgstr "Sie haben keine Berechtigung irgendwas zu ändern."
+
+#: .\contrib\admin\templates\admin\index.html.py:52
+msgid "Recent Actions"
+msgstr "Kürzliche Aktionen"
+
+#: .\contrib\admin\templates\admin\index.html.py:53
+msgid "My Actions"
+msgstr "Meine Aktionen"
+
+#: .\contrib\admin\templates\admin\index.html.py:57
+msgid "None available"
+msgstr "Keine vorhanden"
+
+#: .\contrib\admin\templates\admin\invalid_setup.html.py:8
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "Irgendetwas ist falsch mit der Datenbankkonfiguration. Bitte sicherstellen, das die richtigen Datenbanktabellen angelegt wurden und bitte sicherstellen, das die Datenbank vom verwendeten Datenbankbenutzer auch lesbar ist."
+
+#: .\contrib\admin\templates\admin\login.html.py:17
+#: .\contrib\comments\templates\comments\form.html.py:6
+#: .\contrib\comments\templates\comments\form.html.py:8
+msgid "Username:"
+msgstr "Benutzername:"
+
+#: .\contrib\admin\templates\admin\login.html.py:20
+#: .\contrib\comments\templates\comments\form.html.py:8
+msgid "Password:"
+msgstr "Passwort:"
+
+#: .\contrib\admin\templates\admin\login.html.py:25
+#: .\contrib\admin\views\decorators.py:24
+msgid "Log in"
+msgstr "Anmelden"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:18
+msgid "Date/time"
+msgstr "Datum/Zeit"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:19
+msgid "User"
+msgstr "Benutzer"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:20
+msgid "Action"
+msgstr "Aktion"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j. N Y, H:i"
+
+#: .\contrib\admin\templates\admin\object_history.html.py:36
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Dieses Objekt hat keine Änderungsgeschichte. Es wurde möglicherweise nicht über diese Verwaltungsseiten angelegt."
+
+#: .\contrib\admin\templates\admin\pagination.html.py:10
+msgid "Show all"
+msgstr "Zeige alle"
+
+#: .\contrib\admin\templates\admin\search_form.html.py:8
+msgid "Go"
+msgstr "Los"
+
+#: .\contrib\admin\templates\admin\search_form.html.py:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] ""
+msgstr[1] ""
+
+#: .\contrib\admin\templates\admin\search_form.html.py:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s gesamt"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:4
+msgid "Save as new"
+msgstr "Als Neu sichern"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:5
+msgid "Save and add another"
+msgstr "Sichern und neu hinzufügen"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:6
+msgid "Save and continue editing"
+msgstr "Sichern und weiter bearbeiten"
+
+#: .\contrib\admin\templates\admin\submit_line.html.py:7
+msgid "Save"
+msgstr "Sichern"
+
+#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "Zuerst einen Benutzer und ein Passwort eingeben. Danach können weitere Optionen für den Benutzer geändert werden."
+
+#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:12
+msgid "Username"
+msgstr "Benutzername"
+
+#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:18
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:34
+msgid "Password"
+msgstr "Passwort"
+
+#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:23
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:39
+msgid "Password (again)"
+msgstr "Kennwort (wiederholen)"
+
+#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:24
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:40
+msgid "Enter the same password as above, for verification."
+msgstr "Bitte das gleiche Passwort zur Prüfung nochmal eingeben."
+
+#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:28
+#, python-format
+msgid "Enter a new password for the user %(username)s."
+msgstr "Bitte geben Sie ein neues Passwort für den Benutzer %(username)s ein."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:3
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:5
+msgid "Documentation bookmarklets"
+msgstr "Dokumentations-Bookmarklets"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:9
+msgid ""
+"\n"
+"
To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site. Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").
\n"
+msgstr ""
+"\n"
+"
Um Bookmarklets zu installieren müssen diese Links in die\n"
+"Browser-Werkzeugleiste gehzogen werden, oder mittels rechter Maustaste in die\n"
+"Bookmarks gespeichert werden. Danach können die Bookmarklets von jeder Seite\n"
+"aufgerufen werden. Einige Bookmarklets sind für den Zugriff von 'internen'\n"
+"Rechnern eingeschränkt. Falls nicht klar ist, ob ein Rechner als 'intern'\n"
+"bewertet wird, bitte den Administrator fragen.
\n"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:19
+msgid "Documentation for this page"
+msgstr "Dokumentation für diese Seite"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:20
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Springt von jeder Seite zu der Dokumentation für den View der diese Seite erzeugt."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:22
+msgid "Show object ID"
+msgstr "Objekt ID anzeigen"
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:23
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Zeigt den Content-Type und die eindeutige ID für Seiten die ein einzelnes Objekt repräsentieren."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:25
+msgid "Edit this object (current window)"
+msgstr "Dieses Objekt im aktuellen Fenster ändern."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Springt zu der Administrationsseite für dieses Objekt, wenn diese Seite ein Objekt repräsentiert."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:28
+msgid "Edit this object (new window)"
+msgstr "Dieses Objekt in einem neuen Fenster ändern."
+
+#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "Wie zuvor, aber öffnent die Administrationsseite in einem neuen Fenster."
+
+#: .\contrib\admin\templates\registration\logged_out.html.py:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Vielen Dank, daß Sie hier ein paar nette Minuten verbracht haben."
+
+#: .\contrib\admin\templates\registration\logged_out.html.py:10
+msgid "Log in again"
+msgstr "Erneut Anmelden"
+
+#: .\contrib\admin\templates\registration\password_change_done.html.py:4
+#: .\contrib\admin\templates\registration\password_change_form.html.py:4
+#: .\contrib\admin\templates\registration\password_change_form.html.py:6
+#: .\contrib\admin\templates\registration\password_change_form.html.py:10
+msgid "Password change"
+msgstr "Kennwort ändern"
+
+#: .\contrib\admin\templates\registration\password_change_done.html.py:6
+#: .\contrib\admin\templates\registration\password_change_done.html.py:10
+msgid "Password change successful"
+msgstr "Kennwortänderung erfolgreich"
+
+#: .\contrib\admin\templates\registration\password_change_done.html.py:12
+msgid "Your password was changed."
+msgstr "Ihr Kennwort wurde geändert."
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:12
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Bitte geben Sie aus Sicherheitsgründen erst Ihr altes Kennwort und darunter dann zweimal (um sicherzustellen, dass Sie es korrekt eingegeben haben) das neue Kennwort ein."
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:17
+msgid "Old password:"
+msgstr "altes Kennwort:"
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:19
+msgid "New password:"
+msgstr "neues Kennwort:"
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:21
+msgid "Confirm password:"
+msgstr "Kennwortwiederholung:"
+
+#: .\contrib\admin\templates\registration\password_change_form.html.py:23
+msgid "Change my password"
+msgstr "Mein Kennwort ändern"
+
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:4
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:4
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:6
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:10
+msgid "Password reset"
+msgstr "Kennwort zurücksetzen"
+
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:6
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:10
+msgid "Password reset successful"
+msgstr "Erfolgreich Kennwort zurückgesetzt"
+
+#: .\contrib\admin\templates\registration\password_reset_done.html.py:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Wir haben Ihnen ein neues Kennwort per eMail zugeschickt an die Adresse, die Sie uns gegeben haben. Es sollte in Kürze ankommen."
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Sie erhalten diese Mail, weil Sie ein neues Kennwort"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "für Ihren Benutzer bei %(site_name)s angefordert haben."
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Ihr neues Kennwort ist: %(new_password)s"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Sie können das Kennwort auf folgender Seite ändern:"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Ihr Benutzername, falls Sie ihn vergessen haben:"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:13
+msgid "Thanks for using our site!"
+msgstr "Vielen Dank, dass Sie unsere Seiten benutzen!"
+
+#: .\contrib\admin\templates\registration\password_reset_email.html.py:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Das Team von %(site_name)s"
+
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "Passwort vergessen? Einfach die E-Mail-Adresse eingeben und wir setzen das Passwort auf ein neues und senden das per E-Mail zu."
+
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:16
+msgid "E-mail address:"
+msgstr "E-Mail-Adresse:"
+
+#: .\contrib\admin\templates\registration\password_reset_form.html.py:16
+msgid "Reset my password"
+msgstr "Mein Kennwort zurücksetzen"
+
+#: .\contrib\admin\templates\widget\date_time.html.py:3
+msgid "Date:"
+msgstr "Datum:"
+
+#: .\contrib\admin\templates\widget\date_time.html.py:4
+msgid "Time:"
+msgstr "Zeit:"
+
+#: .\contrib\admin\templates\widget\file.html.py:2
+msgid "Currently:"
+msgstr "Derzeit:"
+
+#: .\contrib\admin\templates\widget\file.html.py:3
+msgid "Change:"
+msgstr "Ändern:"
+
+#: .\contrib\admin\templatetags\admin_list.py:238
+msgid "All dates"
+msgstr "Alle Tage"
+
+#: .\contrib\admin\views\auth.py:19
+#: .\contrib\admin\views\main.py:257
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt."
+
+#: .\contrib\admin\views\auth.py:24
+#: .\contrib\admin\views\main.py:261
+#: .\contrib\admin\views\main.py:347
+msgid "You may edit it again below."
+msgstr "Das Element kann jetzt weiter geändert werden."
+
+#: .\contrib\admin\views\auth.py:30
+msgid "Add user"
+msgstr "Benutzer zufügen"
+
+#: .\contrib\admin\views\auth.py:57
+#, fuzzy
+msgid "Password changed successfully."
+msgstr "Kennwortänderung erfolgreich"
+
+#: .\contrib\admin\views\auth.py:64
+#, fuzzy, python-format
+msgid "Change password: %s"
+msgstr "Passwort ändern"
+
+#: .\contrib\admin\views\decorators.py:10
+#: .\contrib\auth\forms.py:59
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Bitte einen Benutzernamen und ein Kennwort eingeben. Beide Felder berücksichtigen die Groß-/Kleinschreibung."
+
+#: .\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 "Bitte neu anmelden, da die Session ausgelaufen ist. Keine Angst: die Beiträge wurden gesichert."
+
+#: .\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 "Es sieht danach aus, dass der Browser keine Cookies akzeptiert. Bitte im Browser Cookies aktivieren und diese Seite neu laden."
+
+#: .\contrib\admin\views\decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Benutzernamen können das Zeichen '@' nicht enthalten."
+
+#: .\contrib\admin\views\decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Die eMail-Adresse ist nicht der Benutzername. Bitte '%s' stattdessen versuchen."
+
+#: .\contrib\admin\views\doc.py:46
+#: .\contrib\admin\views\doc.py:48
+#: .\contrib\admin\views\doc.py:50
+msgid "tag:"
+msgstr "Schlagwort:"
+
+#: .\contrib\admin\views\doc.py:77
+#: .\contrib\admin\views\doc.py:79
+#: .\contrib\admin\views\doc.py:81
+msgid "filter:"
+msgstr "Filter:"
+
+#: .\contrib\admin\views\doc.py:135
+#: .\contrib\admin\views\doc.py:137
+#: .\contrib\admin\views\doc.py:139
+msgid "view:"
+msgstr "Ansicht:"
+
+#: .\contrib\admin\views\doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "Anwendung %r nicht gefunden"
+
+#: .\contrib\admin\views\doc.py:171
+#, python-format
+msgid "Model %r not found in app %r"
+msgstr "Modell %r wurde nicht in Anwendung %r gefunden"
+
+#: .\contrib\admin\views\doc.py:183
+#, python-format
+msgid "the related `%s.%s` object"
+msgstr "Das verknüpfte `%s.%s` Objekt"
+
+#: .\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 "Modell:"
+
+#: .\contrib\admin\views\doc.py:214
+#, python-format
+msgid "related `%s.%s` objects"
+msgstr "verknüpftes `%s.%s` Objekt"
+
+#: .\contrib\admin\views\doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "Alle %s"
+
+#: .\contrib\admin\views\doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "Anzahl von %s"
+
+#: .\contrib\admin\views\doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Felder am %s Objekt"
+
+#: .\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 "Ganzzahl"
+
+#: .\contrib\admin\views\doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Wahrheitswert (Wahr oder Falsch)"
+
+#: .\contrib\admin\views\doc.py:293
+#: .\contrib\admin\views\doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Zeichenkette (bis zu %(maxlength)s Zeichen)"
+
+#: .\contrib\admin\views\doc.py:294
+msgid "Comma-separated integers"
+msgstr "Kommaseparierte Liste von Zahlen"
+
+#: .\contrib\admin\views\doc.py:295
+msgid "Date (without time)"
+msgstr "Datum (ohne Zeit)"
+
+#: .\contrib\admin\views\doc.py:296
+msgid "Date (with time)"
+msgstr "Datum (mit Zeit)"
+
+#: .\contrib\admin\views\doc.py:297
+msgid "E-mail address"
+msgstr "E-mail-Adresse"
+
+#: .\contrib\admin\views\doc.py:298
+#: .\contrib\admin\views\doc.py:299
+#: .\contrib\admin\views\doc.py:302
+msgid "File path"
+msgstr "Dateipfad"
+
+#: .\contrib\admin\views\doc.py:300
+msgid "Decimal number"
+msgstr "Dezimalzahl"
+
+#: .\contrib\admin\views\doc.py:304
+#: .\contrib\comments\models.py:85
msgid "IP address"
msgstr "IP-Adresse"
-#: contrib/comments/models.py:86
+#: .\contrib\admin\views\doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Wahrheitswert (Wahr, Falsch oder Nichts)"
+
+#: .\contrib\admin\views\doc.py:307
+msgid "Relation to parent model"
+msgstr "Beziehung zum Übermodell"
+
+#: .\contrib\admin\views\doc.py:308
+msgid "Phone number"
+msgstr "Telefonnummer"
+
+#: .\contrib\admin\views\doc.py:313
+msgid "Text"
+msgstr "Text"
+
+#: .\contrib\admin\views\doc.py:314
+msgid "Time"
+msgstr "Zeit"
+
+#: .\contrib\admin\views\doc.py:315
+#: .\contrib\flatpages\models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: .\contrib\admin\views\doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "U.S. Bundesstaat (zwei Grossbuchstaben)"
+
+#: .\contrib\admin\views\doc.py:317
+msgid "XML text"
+msgstr "XML Text"
+
+#: .\contrib\admin\views\doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ist scheinbar kein urlpattern Objekt"
+
+#: .\contrib\admin\views\main.py:223
+msgid "Site administration"
+msgstr "Website Verwaltung"
+
+#: .\contrib\admin\views\main.py:271
+#: .\contrib\admin\views\main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "Jetzt kann ein weiteres Element vom Typ %s angelegt werden."
+
+#: .\contrib\admin\views\main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "%s zufügen"
+
+#: .\contrib\admin\views\main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "%s hinzugefügt."
+
+#: .\contrib\admin\views\main.py:335
+#: .\contrib\admin\views\main.py:337
+#: .\contrib\admin\views\main.py:339
+#: .\db\models\manipulators.py:306
+msgid "and"
+msgstr "und"
+
+#: .\contrib\admin\views\main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "%s geändert"
+
+#: .\contrib\admin\views\main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "%s gelöscht."
+
+#: .\contrib\admin\views\main.py:342
+msgid "No fields changed."
+msgstr "Keine Felder geändert."
+
+#: .\contrib\admin\views\main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" wurde erfolgreich geändert."
+
+#: .\contrib\admin\views\main.py:353
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" wurde erfolgreich zugefügt. Das Element kann jetzt geändert werden."
+
+#: .\contrib\admin\views\main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "%s ändern"
+
+#: .\contrib\admin\views\main.py:473
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Ein oder mehrere %(fieldname)s in %(name)s: %(obj)s"
+
+#: .\contrib\admin\views\main.py:478
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Ein oder mehrere %(fieldname)s in %(name)s:"
+
+#: .\contrib\admin\views\main.py:511
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" wurde erfolgreich gelöscht."
+
+#: .\contrib\admin\views\main.py:514
+msgid "Are you sure?"
+msgstr "Sicher? Ganz sicher?"
+
+#: .\contrib\admin\views\main.py:536
+#, python-format
+msgid "Change history: %s"
+msgstr "Änderungsgeschichte: %s"
+
+#: .\contrib\admin\views\main.py:570
+#, python-format
+msgid "Select %s"
+msgstr "%s auswählen"
+
+#: .\contrib\admin\views\main.py:570
+#, python-format
+msgid "Select %s to change"
+msgstr "%s zur Änderung auswählen"
+
+#: .\contrib\admin\views\main.py:758
+msgid "Database error"
+msgstr "Datenbankfehler"
+
+#: .\contrib\auth\forms.py:16
+#: .\contrib\auth\forms.py:137
+msgid "The two password fields didn't match."
+msgstr "Die zwei Passwörter sind nicht gleich."
+
+#: .\contrib\auth\forms.py:24
+msgid "A user with that username already exists."
+msgstr "Ein Benutzer mit diesem Namen existiert bereits."
+
+#: .\contrib\auth\forms.py:52
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Der Webbrowser scheint keine Cookies aktiviert zu haben. Cookies sind für die Anmeldung zwingend notwendig."
+
+#: .\contrib\auth\forms.py:61
+msgid "This account is inactive."
+msgstr "Dieser Benutzer ist inaktiv."
+
+#: .\contrib\auth\forms.py:84
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "Die Email-Adresse hat keinen Benutzer zugeordnet. Sicher, dass die Adresse hier angemeldet ist?"
+
+#: .\contrib\auth\forms.py:116
+msgid "The two 'new password' fields didn't match."
+msgstr "Die zwei Passwörter sind nicht gleich."
+
+#: .\contrib\auth\forms.py:123
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Das alte Passwort war falsch. Bitte neu eingeben."
+
+#: .\contrib\auth\models.py:38
+#: .\contrib\auth\models.py:57
+msgid "name"
+msgstr "Name"
+
+#: .\contrib\auth\models.py:40
+msgid "codename"
+msgstr "Codename"
+
+#: .\contrib\auth\models.py:42
+msgid "permission"
+msgstr "Berechtigung"
+
+#: .\contrib\auth\models.py:43
+#: .\contrib\auth\models.py:58
+msgid "permissions"
+msgstr "Berechtigungen"
+
+#: .\contrib\auth\models.py:60
+msgid "group"
+msgstr "Gruppe"
+
+#: .\contrib\auth\models.py:61
+#: .\contrib\auth\models.py:100
+msgid "groups"
+msgstr "Gruppen"
+
+#: .\contrib\auth\models.py:90
+msgid "username"
+msgstr "Benutzername"
+
+#: .\contrib\auth\models.py:90
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Erforderlich. 30 Zeichen oder weniger. Alphanumerische Zeichen (Buchstaben, Ziffern und Unterstriche sind erlaubt)."
+
+#: .\contrib\auth\models.py:91
+msgid "first name"
+msgstr "Vorname"
+
+#: .\contrib\auth\models.py:92
+msgid "last name"
+msgstr "Nachname"
+
+#: .\contrib\auth\models.py:93
+msgid "e-mail address"
+msgstr "eMail-Adresse"
+
+#: .\contrib\auth\models.py:94
+msgid "password"
+msgstr "Kennwort"
+
+#: .\contrib\auth\models.py:94
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form."
+msgstr "Benutzen Sie die Form '[algo]$[salt]$[hexdigest]' oder das Passwort ändern Formular."
+
+#: .\contrib\auth\models.py:95
+msgid "staff status"
+msgstr "Administrator"
+
+#: .\contrib\auth\models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr "Gibt an, ob der Benutzer sich an der Administrationsseite anmelden kann."
+
+#: .\contrib\auth\models.py:96
+msgid "active"
+msgstr "Aktiv"
+
+#: .\contrib\auth\models.py:96
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "Gibt an, ob der Benutzer sich an der Administrationsseite anmelden kann. Anstelle Benutzer zu löschen, kann das hier auch einfach abgeschaltet werden."
+
+#: .\contrib\auth\models.py:97
+msgid "superuser status"
+msgstr "Hauptadmin."
+
+#: .\contrib\auth\models.py:97
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Bestimmt, dass dieser Benutzer alle Berechtigungen hat, ohne diese einzeln zuweisen zu müssen."
+
+#: .\contrib\auth\models.py:98
+msgid "last login"
+msgstr "letzte Anmeldung"
+
+#: .\contrib\auth\models.py:99
+msgid "date joined"
+msgstr "Mitglied seit"
+
+#: .\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 "Zusätzlich zu den manuell angelegten Rechten erhält dieser Benutzer auch alle Rechte, die seine zugewiesenen Gruppen haben."
+
+#: .\contrib\auth\models.py:102
+msgid "user permissions"
+msgstr "Berechtigungen"
+
+#: .\contrib\auth\models.py:105
+msgid "user"
+msgstr "Benutzer"
+
+#: .\contrib\auth\models.py:106
+msgid "users"
+msgstr "Benutzer"
+
+#: .\contrib\auth\models.py:111
+msgid "Personal info"
+msgstr "Persönliche Infos"
+
+#: .\contrib\auth\models.py:112
+msgid "Permissions"
+msgstr "Berechtigungen"
+
+#: .\contrib\auth\models.py:113
+msgid "Important dates"
+msgstr "Wichtige Daten"
+
+#: .\contrib\auth\models.py:114
+msgid "Groups"
+msgstr "Gruppen"
+
+#: .\contrib\auth\models.py:258
+msgid "message"
+msgstr "Mitteilung"
+
+#: .\contrib\auth\views.py:39
+msgid "Logged out"
+msgstr "Abgemeldet"
+
+#: .\contrib\comments\models.py:67
+#: .\contrib\comments\models.py:166
+msgid "object ID"
+msgstr "Objekt ID"
+
+#: .\contrib\comments\models.py:68
+msgid "headline"
+msgstr "Überschrift"
+
+#: .\contrib\comments\models.py:69
+#: .\contrib\comments\models.py:90
+#: .\contrib\comments\models.py:167
+msgid "comment"
+msgstr "Kommentar"
+
+#: .\contrib\comments\models.py:70
+msgid "rating #1"
+msgstr "Bewertung #1"
+
+#: .\contrib\comments\models.py:71
+msgid "rating #2"
+msgstr "Bewertung #2"
+
+#: .\contrib\comments\models.py:72
+msgid "rating #3"
+msgstr "Bewertung #3"
+
+#: .\contrib\comments\models.py:73
+msgid "rating #4"
+msgstr "Bewertung #4"
+
+#: .\contrib\comments\models.py:74
+msgid "rating #5"
+msgstr "Bewertung #5"
+
+#: .\contrib\comments\models.py:75
+msgid "rating #6"
+msgstr "Bewertung #6"
+
+#: .\contrib\comments\models.py:76
+msgid "rating #7"
+msgstr "Bewertung #7"
+
+#: .\contrib\comments\models.py:77
+msgid "rating #8"
+msgstr "Bewertung #8"
+
+#: .\contrib\comments\models.py:82
+msgid "is valid rating"
+msgstr "ist eine Bewertung"
+
+#: .\contrib\comments\models.py:83
+#: .\contrib\comments\models.py:169
+msgid "date/time submitted"
+msgstr "Datum/Zeit Erstellung"
+
+#: .\contrib\comments\models.py:84
+#: .\contrib\comments\models.py:170
+msgid "is public"
+msgstr "ist öffentlich"
+
+#: .\contrib\comments\models.py:86
msgid "is removed"
-msgstr "ist gelöscht"
+msgstr "ist gelöscht"
-#: contrib/comments/models.py:86
-msgid ""
-"Check this box if the comment is inappropriate. A \"This comment has been "
-"removed\" message will be displayed instead."
-msgstr ""
-"Hier einen Haken setzen, wenn der Kommentar unpassend ist. Es wird dann eine "
-"\"Dieser Kommentar wurde entfernt\" Meldung statt dessen angezeigt."
+#: .\contrib\comments\models.py:86
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "Hier einen Haken setzen, wenn der Kommentar unpassend ist. Es wird dann eine \"Dieser Kommentar wurde entfernt\" Meldung statt dessen angezeigt."
-#: contrib/comments/models.py:91
+#: .\contrib\comments\models.py:91
msgid "comments"
msgstr "Kommentare"
-#: contrib/comments/models.py:131 contrib/comments/models.py:207
+#: .\contrib\comments\models.py:131
+#: .\contrib\comments\models.py:207
msgid "Content object"
msgstr "Inhaltsobjekt"
-#: contrib/comments/models.py:159
+#: .\contrib\comments\models.py:159
#, python-format
msgid ""
"Posted by %(user)s at %(date)s\n"
@@ -110,48 +1259,48 @@ msgstr ""
"\n"
"http://%(domain)s%(url)s"
-#: contrib/comments/models.py:168
+#: .\contrib\comments\models.py:168
msgid "person's name"
msgstr "Autorname"
-#: contrib/comments/models.py:171
+#: .\contrib\comments\models.py:171
msgid "ip address"
msgstr "IP-Adresse"
-#: contrib/comments/models.py:173
+#: .\contrib\comments\models.py:173
msgid "approved by staff"
-msgstr "Bestätigt vom Betreiber"
+msgstr "Bestätigt vom Betreiber"
-#: contrib/comments/models.py:176
+#: .\contrib\comments\models.py:176
msgid "free comment"
msgstr "Freier Kommentar"
-#: contrib/comments/models.py:177
+#: .\contrib\comments\models.py:177
msgid "free comments"
msgstr "Freie Kommentare"
-#: contrib/comments/models.py:233
+#: .\contrib\comments\models.py:233
msgid "score"
msgstr "Bewertung"
-#: contrib/comments/models.py:234
+#: .\contrib\comments\models.py:234
msgid "score date"
msgstr "Bewertungsdatum"
-#: contrib/comments/models.py:237
+#: .\contrib\comments\models.py:237
msgid "karma score"
msgstr "Karma Bewertung"
-#: contrib/comments/models.py:238
+#: .\contrib\comments\models.py:238
msgid "karma scores"
msgstr "Karma Bewertungen"
-#: contrib/comments/models.py:242
+#: .\contrib\comments\models.py:242
#, python-format
msgid "%(score)d rating by %(user)s"
msgstr "%(score)d Bewertung von %(user)s"
-#: contrib/comments/models.py:258
+#: .\contrib\comments\models.py:258
#, python-format
msgid ""
"This comment was flagged by %(user)s:\n"
@@ -162,2106 +1311,925 @@ msgstr ""
"\n"
"%(text)s"
-#: contrib/comments/models.py:265
+#: .\contrib\comments\models.py:265
msgid "flag date"
msgstr "Kennzeichnungsdatum"
-#: contrib/comments/models.py:268
+#: .\contrib\comments\models.py:268
msgid "user flag"
msgstr "Benutzerkennzeichnung"
-#: contrib/comments/models.py:269
+#: .\contrib\comments\models.py:269
msgid "user flags"
msgstr "Benutzerkennzeichnungen"
-#: contrib/comments/models.py:273
+#: .\contrib\comments\models.py:273
#, python-format
msgid "Flag by %r"
msgstr "Gekennzeichnet von %r"
-#: contrib/comments/models.py:278
+#: .\contrib\comments\models.py:278
msgid "deletion date"
-msgstr "Löschdatum"
+msgstr "Löschdatum"
-#: contrib/comments/models.py:280
+#: .\contrib\comments\models.py:280
msgid "moderator deletion"
-msgstr "Löschung vom Moderator"
+msgstr "Löschung vom Moderator"
-#: contrib/comments/models.py:281
+#: .\contrib\comments\models.py:281
msgid "moderator deletions"
-msgstr "Löschungen vom Moderator"
+msgstr "Löschungen vom Moderator"
-#: contrib/comments/models.py:285
+#: .\contrib\comments\models.py:285
#, python-format
msgid "Moderator deletion by %r"
-msgstr "Vom Moderator %r gelöscht"
+msgstr "Vom Moderator %r gelöscht"
-#: contrib/comments/views/karma.py:19
-msgid "Anonymous users cannot vote"
-msgstr "Anonyme Benutzer können nicht abstimmen"
+#: .\contrib\comments\templates\comments\form.html.py:8
+msgid "Forgotten your password?"
+msgstr "Kennwort vergessen?"
-#: contrib/comments/views/karma.py:23
-msgid "Invalid comment ID"
-msgstr "Ungültige Kommentar-ID"
+#: .\contrib\comments\templates\comments\form.html.py:12
+msgid "Ratings"
+msgstr "Bewertungen"
-#: contrib/comments/views/karma.py:25
-msgid "No voting for yourself"
-msgstr "Keine Abstimmung bei Dir selber"
+#: .\contrib\comments\templates\comments\form.html.py:12
+#: .\contrib\comments\templates\comments\form.html.py:23
+msgid "Required"
+msgstr "Erforderlich"
-#: contrib/comments/views/comments.py:27
-msgid ""
-"This rating is required because you've entered at least one other rating."
-msgstr ""
-"Die Abstimmung ist zwangsweise, weil Du an mindestens einer anderen "
-"Abstimmung teilnimmst."
+#: .\contrib\comments\templates\comments\form.html.py:12
+#: .\contrib\comments\templates\comments\form.html.py:23
+msgid "Optional"
+msgstr "Optional"
-#: contrib/comments/views/comments.py:111
+#: .\contrib\comments\templates\comments\form.html.py:23
+msgid "Post a photo"
+msgstr "Ein Bild veröffentlichen"
+
+#: .\contrib\comments\templates\comments\form.html.py:28
+#: .\contrib\comments\templates\comments\freeform.html.py:5
+msgid "Comment:"
+msgstr "Kommentar:"
+
+#: .\contrib\comments\templates\comments\form.html.py:35
+#: .\contrib\comments\templates\comments\freeform.html.py:10
+msgid "Preview comment"
+msgstr "Kommentarvorschau"
+
+#: .\contrib\comments\templates\comments\freeform.html.py:4
+msgid "Your name:"
+msgstr "Ihr Name:"
+
+#: .\contrib\comments\views\comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Die Abstimmung ist zwangsweise, weil Du an mindestens einer anderen Abstimmung teilnimmst."
+
+#: .\contrib\comments\views\comments.py:111
#, python-format
msgid ""
-"This comment was posted by a user who has posted fewer than %(count)s "
-"comment:\n"
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
"\n"
"%(text)s"
msgid_plural ""
-"This comment was posted by a user who has posted fewer than %(count)s "
-"comments:\n"
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
"\n"
"%(text)s"
msgstr[0] ""
-"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s "
-"Kommentar:\n"
+"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s Kommentar:\n"
"\n"
"%(text)s"
msgstr[1] ""
-"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s "
-"Kommentaren:\n"
+"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s Kommentaren:\n"
"\n"
"%(text)s"
-#: contrib/comments/views/comments.py:116
+#: .\contrib\comments\views\comments.py:116
#, python-format
msgid ""
"This comment was posted by a sketchy user:\n"
"\n"
"%(text)s"
msgstr ""
-"Dieser Kommentar ist von einem nicht einschätzbaren Benutzer:\n"
+"Dieser Kommentar ist von einem nicht einschätzbaren Benutzer:\n"
"\n"
"%(text)s"
-#: contrib/comments/views/comments.py:188
-#: contrib/comments/views/comments.py:280
+#: .\contrib\comments\views\comments.py:188
+#: .\contrib\comments\views\comments.py:280
msgid "Only POSTs are allowed"
msgstr "Nur POST ist erlaubt"
-#: contrib/comments/views/comments.py:192
-#: contrib/comments/views/comments.py:284
+#: .\contrib\comments\views\comments.py:192
+#: .\contrib\comments\views\comments.py:284
msgid "One or more of the required fields wasn't submitted"
msgstr "Eines oder mehrere der erforderlichen Felder fehlt"
-#: contrib/comments/views/comments.py:196
-#: contrib/comments/views/comments.py:286
+#: .\contrib\comments\views\comments.py:196
+#: .\contrib\comments\views\comments.py:286
msgid "Somebody tampered with the comment form (security violation)"
-msgstr ""
-"Jemand hat mit dem Kommentarformular herumgespielt (Sicherheitsverletzung)"
+msgstr "Jemand hat mit dem Kommentarformular herumgespielt (Sicherheitsverletzung)"
-#: contrib/comments/views/comments.py:206
-#: contrib/comments/views/comments.py:292
-msgid ""
-"The comment form had an invalid 'target' parameter -- the object ID was "
-"invalid"
-msgstr ""
-"Das Kommentarformular hatte einen falschen 'target' Parameter -- die Objekt-"
-"ID ist ungültig."
+#: .\contrib\comments\views\comments.py:206
+#: .\contrib\comments\views\comments.py:292
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "Das Kommentarformular hatte einen falschen 'target' Parameter -- die Objekt-ID ist ungültig."
-#: contrib/comments/views/comments.py:257
-#: contrib/comments/views/comments.py:321
+#: .\contrib\comments\views\comments.py:257
+#: .\contrib\comments\views\comments.py:321
msgid "The comment form didn't provide either 'preview' or 'post'"
-msgstr ""
-"Das Kommentarformular wurde nicht mit 'preview' oder 'post' abgeschickt"
+msgstr "Das Kommentarformular wurde nicht mit 'preview' oder 'post' abgeschickt"
-#: contrib/comments/templates/comments/form.html:6
-#: contrib/comments/templates/comments/form.html:8
-#: contrib/admin/templates/admin/login.html:17
-msgid "Username:"
-msgstr "Benutzername:"
+#: .\contrib\comments\views\karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Anonyme Benutzer können nicht abstimmen"
-#: contrib/comments/templates/comments/form.html:6
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/admin_doc/template_tag_index.html:5
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/view_index.html:5
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/index.html:4
-#: contrib/admin/templates/admin_doc/model_index.html:5
-msgid "Log out"
-msgstr "Abmelden"
+#: .\contrib\comments\views\karma.py:23
+msgid "Invalid comment ID"
+msgstr "Ungültige Kommentar-ID"
-#: contrib/comments/templates/comments/form.html:8
-#: contrib/admin/templates/admin/login.html:20
-msgid "Password:"
-msgstr "Passwort:"
+#: .\contrib\comments\views\karma.py:25
+msgid "No voting for yourself"
+msgstr "Keine Abstimmung bei Dir selber"
-#: contrib/comments/templates/comments/form.html:8
-msgid "Forgotten your password?"
-msgstr "Kennwort vergessen?"
-
-#: contrib/comments/templates/comments/form.html:12
-msgid "Ratings"
-msgstr "Bewertungen"
-
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Required"
-msgstr "Erforderlich"
-
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Optional"
-msgstr "Optional"
-
-#: contrib/comments/templates/comments/form.html:23
-msgid "Post a photo"
-msgstr "Ein Bild veröffentlichen"
-
-#: contrib/comments/templates/comments/form.html:28
-#: contrib/comments/templates/comments/freeform.html:5
-msgid "Comment:"
-msgstr "Kommentar:"
-
-#: contrib/comments/templates/comments/form.html:35
-#: contrib/comments/templates/comments/freeform.html:10
-msgid "Preview comment"
-msgstr "Kommentarvorschau"
-
-#: contrib/comments/templates/comments/freeform.html:4
-msgid "Your name:"
-msgstr "Ihr Name:"
-
-#: contrib/admin/filterspecs.py:40
-#, python-format
-msgid ""
-"
By %s:
\n"
-"
\n"
-msgstr ""
-"
Nach %s:
\n"
-"
\n"
-
-#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
-#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
-msgid "All"
-msgstr "Alle"
-
-#: contrib/admin/filterspecs.py:109
-msgid "Any date"
-msgstr "Alle Daten"
-
-#: contrib/admin/filterspecs.py:110
-msgid "Today"
-msgstr "Heute"
-
-#: contrib/admin/filterspecs.py:113
-msgid "Past 7 days"
-msgstr "Letzte 7 Tage"
-
-#: contrib/admin/filterspecs.py:115
-msgid "This month"
-msgstr "Diesen Monat"
-
-#: contrib/admin/filterspecs.py:117
-msgid "This year"
-msgstr "Dieses Jahr"
-
-#: contrib/admin/filterspecs.py:143
-msgid "Yes"
-msgstr "Ja"
-
-#: contrib/admin/filterspecs.py:143
-msgid "No"
-msgstr "Nein"
-
-#: contrib/admin/filterspecs.py:150
-msgid "Unknown"
-msgstr "Unbekannt"
-
-#: contrib/admin/models.py:16
-msgid "action time"
-msgstr "Zeit der Aktion"
-
-#: contrib/admin/models.py:19
-msgid "object id"
-msgstr "Objekt ID"
-
-#: contrib/admin/models.py:20
-msgid "object repr"
-msgstr "Objekt Darst."
-
-#: contrib/admin/models.py:21
-msgid "action flag"
-msgstr "Aktionskennzeichen"
-
-#: contrib/admin/models.py:22
-msgid "change message"
-msgstr "Änderungsmeldung"
-
-#: contrib/admin/models.py:25
-msgid "log entry"
-msgstr "Logeintrag"
-
-#: contrib/admin/models.py:26
-msgid "log entries"
-msgstr "Logeinträge"
-
-#: contrib/admin/templatetags/admin_list.py:230
-msgid "All dates"
-msgstr "Alle Tage"
-
-#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:59
-msgid ""
-"Please enter a correct username and password. Note that both fields are case-"
-"sensitive."
-msgstr ""
-"Bitte einen Benutzernamen und ein Kennwort eingeben. Beide Felder "
-"berücksichtigen die Groß-/Kleinschreibung."
-
-#: contrib/admin/views/decorators.py:24
-#: contrib/admin/templates/admin/login.html:25
-msgid "Log in"
-msgstr "Anmelden"
-
-#: 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 ""
-"Bitte neu anmelden, da die Session ausgelaufen ist. Keine Angst: die "
-"Beiträge wurden gesichert."
-
-#: 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 ""
-"Es sieht danach aus, dass der Browser keine Cookies akzeptiert. Bitte im "
-"Browser Cookies aktivieren und diese Seite neu laden."
-
-#: contrib/admin/views/decorators.py:83
-msgid "Usernames cannot contain the '@' character."
-msgstr "Benutzernamen können das Zeichen '@' nicht enthalten."
-
-#: contrib/admin/views/decorators.py:85
-#, python-format
-msgid "Your e-mail address is not your username. Try '%s' instead."
-msgstr ""
-"Die eMail-Adresse ist nicht der Benutzername. Bitte '%s' stattdessen "
-"versuchen."
-
-#: contrib/admin/views/main.py:223
-msgid "Site administration"
-msgstr "Website Verwaltung"
-
-#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:18
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was added successfully."
-msgstr "%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt."
-
-#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
-#: contrib/admin/views/auth.py:23
-msgid "You may edit it again below."
-msgstr "Das Element kann jetzt weiter geändert werden."
-
-#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
-#, python-format
-msgid "You may add another %s below."
-msgstr "Jetzt kann ein weiteres Element vom Typ %s angelegt werden."
-
-#: contrib/admin/views/main.py:289
-#, python-format
-msgid "Add %s"
-msgstr "%s zufügen"
-
-#: contrib/admin/views/main.py:335
-#, python-format
-msgid "Added %s."
-msgstr "%s hinzugefügt."
-
-#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337
-#: contrib/admin/views/main.py:339 db/models/manipulators.py:306
-msgid "and"
-msgstr "und"
-
-#: contrib/admin/views/main.py:337
-#, python-format
-msgid "Changed %s."
-msgstr "%s geändert"
-
-#: contrib/admin/views/main.py:339
-#, python-format
-msgid "Deleted %s."
-msgstr "%s gelöscht."
-
-#: contrib/admin/views/main.py:342
-msgid "No fields changed."
-msgstr "Keine Felder geändert."
-
-#: contrib/admin/views/main.py:345
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was changed successfully."
-msgstr "%(name)s \"%(obj)s\" wurde erfolgreich geändert."
-
-#: contrib/admin/views/main.py:353
-#, python-format
-msgid ""
-"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
-msgstr ""
-"%(name)s \"%(obj)s\" wurde erfolgreich zugefügt. Das Element kann jetzt "
-"geändert werden."
-
-#: contrib/admin/views/main.py:391
-#, python-format
-msgid "Change %s"
-msgstr "%s ändern"
-
-#: contrib/admin/views/main.py:473
-#, python-format
-msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
-msgstr "Ein oder mehrere %(fieldname)s in %(name)s: %(obj)s"
-
-#: contrib/admin/views/main.py:478
-#, python-format
-msgid "One or more %(fieldname)s in %(name)s:"
-msgstr "Ein oder mehrere %(fieldname)s in %(name)s:"
-
-#: contrib/admin/views/main.py:511
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was deleted successfully."
-msgstr "%(name)s \"%(obj)s\" wurde erfolgreich gelöscht."
-
-#: contrib/admin/views/main.py:514
-msgid "Are you sure?"
-msgstr "Sicher? Ganz sicher?"
-
-#: contrib/admin/views/main.py:536
-#, python-format
-msgid "Change history: %s"
-msgstr "Änderungsgeschichte: %s"
-
-#: contrib/admin/views/main.py:570
-#, python-format
-msgid "Select %s"
-msgstr "%s auswählen"
-
-#: contrib/admin/views/main.py:570
-#, python-format
-msgid "Select %s to change"
-msgstr "%s zur Änderung auswählen"
-
-#: contrib/admin/views/main.py:758
-msgid "Database error"
-msgstr "Datenbankfehler"
-
-#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
-#: contrib/admin/views/doc.py:50
-msgid "tag:"
-msgstr "Schlagwort:"
-
-#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
-#: contrib/admin/views/doc.py:81
-msgid "filter:"
-msgstr "Filter:"
-
-#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
-#: contrib/admin/views/doc.py:139
-msgid "view:"
-msgstr "Ansicht:"
-
-#: contrib/admin/views/doc.py:164
-#, python-format
-msgid "App %r not found"
-msgstr "Anwendung %r nicht gefunden"
-
-#: contrib/admin/views/doc.py:171
-#, python-format
-msgid "Model %r not found in app %r"
-msgstr "Modell %r wurde nicht in Anwendung %r gefunden"
-
-#: contrib/admin/views/doc.py:183
-#, python-format
-msgid "the related `%s.%s` object"
-msgstr "Das verknüpfte `%s.%s` Objekt"
-
-#: 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 "Modell:"
-
-#: contrib/admin/views/doc.py:214
-#, python-format
-msgid "related `%s.%s` objects"
-msgstr "verknüpftes `%s.%s` Objekt"
-
-#: contrib/admin/views/doc.py:219
-#, python-format
-msgid "all %s"
-msgstr "Alle %s"
-
-#: contrib/admin/views/doc.py:224
-#, python-format
-msgid "number of %s"
-msgstr "Anzahl von %s"
-
-#: contrib/admin/views/doc.py:229
-#, python-format
-msgid "Fields on %s objects"
-msgstr "Felder am %s Objekt"
-
-#: 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 "Ganzzahl"
-
-#: contrib/admin/views/doc.py:292
-msgid "Boolean (Either True or False)"
-msgstr "Wahrheitswert (Wahr oder Falsch)"
-
-#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
-#, python-format
-msgid "String (up to %(maxlength)s)"
-msgstr "Zeichenkette (bis zu %(maxlength)s Zeichen)"
-
-#: contrib/admin/views/doc.py:294
-msgid "Comma-separated integers"
-msgstr "Kommaseparierte Liste von Zahlen"
-
-#: contrib/admin/views/doc.py:295
-msgid "Date (without time)"
-msgstr "Datum (ohne Zeit)"
-
-#: contrib/admin/views/doc.py:296
-msgid "Date (with time)"
-msgstr "Datum (mit Zeit)"
-
-#: contrib/admin/views/doc.py:297
-msgid "E-mail address"
-msgstr "E-mail-Adresse"
-
-#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
-#: contrib/admin/views/doc.py:302
-msgid "File path"
-msgstr "Dateipfad"
-
-#: contrib/admin/views/doc.py:300
-msgid "Decimal number"
-msgstr "Dezimalzahl"
-
-#: contrib/admin/views/doc.py:306
-msgid "Boolean (Either True, False or None)"
-msgstr "Wahrheitswert (Wahr, Falsch oder Nichts)"
-
-#: contrib/admin/views/doc.py:307
-msgid "Relation to parent model"
-msgstr "Beziehung zum Übermodell"
-
-#: contrib/admin/views/doc.py:308
-msgid "Phone number"
-msgstr "Telefonnummer"
-
-#: contrib/admin/views/doc.py:313
-msgid "Text"
-msgstr "Text"
-
-#: contrib/admin/views/doc.py:314
-msgid "Time"
-msgstr "Zeit"
-
-#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7
-msgid "URL"
-msgstr "URL"
-
-#: contrib/admin/views/doc.py:316
-msgid "U.S. state (two uppercase letters)"
-msgstr "U.S. Bundesstaat (zwei Grossbuchstaben)"
-
-#: contrib/admin/views/doc.py:317
-msgid "XML text"
-msgstr "XML Text"
-
-#: contrib/admin/views/doc.py:343
-#, python-format
-msgid "%s does not appear to be a urlpattern object"
-msgstr "%s ist scheinbar kein urlpattern Objekt"
-
-#: contrib/admin/views/auth.py:29
-msgid "Add user"
-msgstr "Benutzer zufügen"
-
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-msgid "Documentation"
-msgstr "Dokumentation"
-
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/admin_doc/template_tag_index.html:5
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/view_index.html:5
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/index.html:4
-#: contrib/admin/templates/admin_doc/model_index.html:5
-msgid "Change password"
-msgstr "Passwort ändern"
-
-#: contrib/admin/templates/admin/object_history.html:5
-#: contrib/admin/templates/admin/500.html:4
-#: contrib/admin/templates/admin/change_list.html:6
-#: contrib/admin/templates/admin/base.html:30
-#: contrib/admin/templates/admin/delete_confirmation.html:6
-#: contrib/admin/templates/admin/change_form.html:13
-#: contrib/admin/templates/admin/invalid_setup.html:4
-#: contrib/admin/templates/registration/password_change_done.html:4
-#: contrib/admin/templates/registration/password_reset_form.html:4
-#: contrib/admin/templates/registration/logged_out.html:4
-#: contrib/admin/templates/registration/password_reset_done.html:4
-#: contrib/admin/templates/registration/password_change_form.html:4
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-msgid "Home"
-msgstr "Start"
-
-#: contrib/admin/templates/admin/object_history.html:5
-#: contrib/admin/templates/admin/change_form.html:20
-msgid "History"
-msgstr "Geschichte"
-
-#: contrib/admin/templates/admin/object_history.html:18
-msgid "Date/time"
-msgstr "Datum/Zeit"
-
-#: contrib/admin/templates/admin/object_history.html:19
-msgid "User"
-msgstr "Benutzer"
-
-#: contrib/admin/templates/admin/object_history.html:20
-msgid "Action"
-msgstr "Aktion"
-
-#: contrib/admin/templates/admin/object_history.html:26
-msgid "DATE_WITH_TIME_FULL"
-msgstr "j. N Y, H:i"
-
-#: contrib/admin/templates/admin/object_history.html:36
-msgid ""
-"This object doesn't have a change history. It probably wasn't added via this "
-"admin site."
-msgstr ""
-"Dieses Objekt hat keine Änderungsgeschichte. Es wurde möglicherweise nicht "
-"über diese Verwaltungsseiten angelegt."
-
-#: contrib/admin/templates/admin/base_site.html:4
-msgid "Django site admin"
-msgstr "Django Systemverwaltung"
-
-#: contrib/admin/templates/admin/base_site.html:7
-msgid "Django administration"
-msgstr "Django Verwaltung"
-
-#: contrib/admin/templates/admin/500.html:4
-msgid "Server error"
-msgstr "Serverfehler"
-
-#: contrib/admin/templates/admin/500.html:6
-msgid "Server error (500)"
-msgstr "Serverfehler (500)"
-
-#: contrib/admin/templates/admin/500.html:9
-msgid "Server Error (500)"
-msgstr "Serverfehler (500)"
-
-#: contrib/admin/templates/admin/500.html:10
-msgid ""
-"There's been an error. It's been reported to the site administrators via e-"
-"mail and should be fixed shortly. Thanks for your patience."
-msgstr ""
-"Es hat einen Fehler gegeben. Dieser Fehler wurde an die Serververwalter per "
-"eMail weitergegeben und sollte bald behoben sein. Vielen Dank für Ihr "
-"Verständnis."
-
-#: contrib/admin/templates/admin/404.html:4
-#: contrib/admin/templates/admin/404.html:8
-msgid "Page not found"
-msgstr "Seite nicht gefunden"
-
-#: contrib/admin/templates/admin/404.html:10
-msgid "We're sorry, but the requested page could not be found."
-msgstr ""
-"Es tut uns leid, aber die angeforderte Seite kann nicht gefunden werden."
-
-#: contrib/admin/templates/admin/index.html:17
-#, python-format
-msgid "Models available in the %(name)s application."
-msgstr "Modelle, die in der Anwendung %(name)s vorhanden sind."
-
-#: contrib/admin/templates/admin/index.html:18
-#, python-format
-msgid "%(name)s"
-msgstr "%(name)s"
-
-#: contrib/admin/templates/admin/index.html:28
-#: contrib/admin/templates/admin/change_form.html:15
-msgid "Add"
-msgstr "Zufügen"
-
-#: contrib/admin/templates/admin/index.html:34
-msgid "Change"
-msgstr "Ändern"
-
-#: contrib/admin/templates/admin/index.html:44
-msgid "You don't have permission to edit anything."
-msgstr "Sie haben keine Berechtigung irgendwas zu ändern."
-
-#: contrib/admin/templates/admin/index.html:52
-msgid "Recent Actions"
-msgstr "Kürzliche Aktionen"
-
-#: contrib/admin/templates/admin/index.html:53
-msgid "My Actions"
-msgstr "Meine Aktionen"
-
-#: contrib/admin/templates/admin/index.html:57
-msgid "None available"
-msgstr "Keine vorhanden"
-
-#: contrib/admin/templates/admin/change_list.html:11
-#, python-format
-msgid "Add %(name)s"
-msgstr "%(name)s zufügen"
-
-#: contrib/admin/templates/admin/base.html:25
-msgid "Welcome,"
-msgstr "Willkommen,"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:9
-#: contrib/admin/templates/admin/submit_line.html:3
-msgid "Delete"
-msgstr "Löschen"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:14
-#, python-format
-msgid ""
-"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
-"related objects, but your account doesn't have permission to delete the "
-"following types of objects:"
-msgstr ""
-"Die Löschung des %(object_name)s '%(escaped_object)s' hätte die Löschung von "
-"abhängigen Daten zur Folge, aber Sie haben nicht die nötigen Rechte um die "
-"folgenden abhängigen Daten zu löschen:"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:21
-#, python-format
-msgid ""
-"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
-"All of the following related items will be deleted:"
-msgstr ""
-"Sind Sie sicher, dass Sie %(object_name)s \"%(escaped_object)s\" löschen "
-"wollen? Es werden zusätzlich die folgenden abhängigen Daten mit gelöscht:"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:26
-msgid "Yes, I'm sure"
-msgstr "Ja, ich bin sicher"
-
-#: contrib/admin/templates/admin/filter.html:2
-#, python-format
-msgid " By %(filter_title)s "
-msgstr " Nach %(filter_title)s "
-
-#: contrib/admin/templates/admin/search_form.html:8
-msgid "Go"
-msgstr "Los"
-
-#: contrib/admin/templates/admin/search_form.html:10
-#, python-format
-msgid "1 result"
-msgid_plural "%(counter)s results"
-msgstr[0] ""
-msgstr[1] ""
-
-#: contrib/admin/templates/admin/search_form.html:10
-#, python-format
-msgid "%(full_result_count)s total"
-msgstr "%(full_result_count)s gesamt"
-
-#: contrib/admin/templates/admin/pagination.html:10
-msgid "Show all"
-msgstr "Zeige alle"
-
-#: contrib/admin/templates/admin/filters.html:4
-msgid "Filter"
-msgstr "Filter"
-
-#: contrib/admin/templates/admin/change_form.html:21
-msgid "View on site"
-msgstr "Im Web Anzeigen"
-
-#: contrib/admin/templates/admin/change_form.html:30
-msgid "Please correct the error below."
-msgid_plural "Please correct the errors below."
-msgstr[0] "Bitte den Fehler korrigieren."
-msgstr[1] "Bitte die Fehler korrigieren."
-
-#: contrib/admin/templates/admin/change_form.html:48
-msgid "Ordering"
-msgstr "Sortierung"
-
-#: contrib/admin/templates/admin/change_form.html:51
-msgid "Order:"
-msgstr "Reihenfolge:"
-
-#: contrib/admin/templates/admin/submit_line.html:4
-msgid "Save as new"
-msgstr "Als Neu sichern"
-
-#: contrib/admin/templates/admin/submit_line.html:5
-msgid "Save and add another"
-msgstr "Sichern und neu hinzufügen"
-
-#: contrib/admin/templates/admin/submit_line.html:6
-msgid "Save and continue editing"
-msgstr "Sichern und weiter bearbeiten"
-
-#: contrib/admin/templates/admin/submit_line.html:7
-msgid "Save"
-msgstr "Sichern"
-
-#: contrib/admin/templates/admin/invalid_setup.html:8
-msgid ""
-"Something's wrong with your database installation. Make sure the appropriate "
-"database tables have been created, and make sure the database is readable by "
-"the appropriate user."
-msgstr ""
-"Irgendetwas ist falsch mit der Datenbankkonfiguration. Bitte sicherstellen, "
-"das die richtigen Datenbanktabellen angelegt wurden und bitte sicherstellen, "
-"das die Datenbank vom verwendeten Datenbankbenutzer auch lesbar ist."
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:6
-msgid ""
-"First, enter a username and password. Then, you'll be able to edit more user "
-"options."
-msgstr ""
-"Zuerst einen Benutzer und ein Passwort eingeben. Danach können weitere "
-"Optionen für den Benutzer geändert werden."
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:12
-msgid "Username"
-msgstr "Benutzername"
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:18
-msgid "Password"
-msgstr "Passwort"
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:23
-msgid "Password (again)"
-msgstr "Kennwort (wiederholen)"
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:24
-msgid "Enter the same password as above, for verification."
-msgstr "Bitte das gleiche Passwort zur Prüfung nochmal eingeben."
-
-#: contrib/admin/templates/registration/password_change_done.html:4
-#: contrib/admin/templates/registration/password_change_form.html:4
-#: contrib/admin/templates/registration/password_change_form.html:6
-#: contrib/admin/templates/registration/password_change_form.html:10
-msgid "Password change"
-msgstr "Kennwort ändern"
-
-#: contrib/admin/templates/registration/password_change_done.html:6
-#: contrib/admin/templates/registration/password_change_done.html:10
-msgid "Password change successful"
-msgstr "Kennwortänderung erfolgreich"
-
-#: contrib/admin/templates/registration/password_change_done.html:12
-msgid "Your password was changed."
-msgstr "Ihr Kennwort wurde geändert."
-
-#: contrib/admin/templates/registration/password_reset_form.html:4
-#: contrib/admin/templates/registration/password_reset_form.html:6
-#: contrib/admin/templates/registration/password_reset_form.html:10
-#: contrib/admin/templates/registration/password_reset_done.html:4
-msgid "Password reset"
-msgstr "Kennwort zurücksetzen"
-
-#: contrib/admin/templates/registration/password_reset_form.html:12
-msgid ""
-"Forgotten your password? Enter your e-mail address below, and we'll reset "
-"your password and e-mail the new one to you."
-msgstr ""
-"Passwort vergessen? Einfach die E-Mail-Adresse eingeben und wir setzen das "
-"Passwort auf ein neues und senden das per E-Mail zu."
-
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "E-mail address:"
-msgstr "E-Mail-Adresse:"
-
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "Reset my password"
-msgstr "Mein Kennwort zurücksetzen"
-
-#: contrib/admin/templates/registration/logged_out.html:8
-msgid "Thanks for spending some quality time with the Web site today."
-msgstr "Vielen Dank, daß Sie hier ein paar nette Minuten verbracht haben."
-
-#: contrib/admin/templates/registration/logged_out.html:10
-msgid "Log in again"
-msgstr "Erneut Anmelden"
-
-#: contrib/admin/templates/registration/password_reset_done.html:6
-#: contrib/admin/templates/registration/password_reset_done.html:10
-msgid "Password reset successful"
-msgstr "Erfolgreich Kennwort zurückgesetzt"
-
-#: contrib/admin/templates/registration/password_reset_done.html:12
-msgid ""
-"We've e-mailed a new password to the e-mail address you submitted. You "
-"should be receiving it shortly."
-msgstr ""
-"Wir haben Ihnen ein neues Kennwort per eMail zugeschickt an die Adresse, die "
-"Sie uns gegeben haben. Es sollte in Kürze ankommen."
-
-#: contrib/admin/templates/registration/password_change_form.html:12
-msgid ""
-"Please enter your old password, for security's sake, and then enter your new "
-"password twice so we can verify you typed it in correctly."
-msgstr ""
-"Bitte geben Sie aus Sicherheitsgründen erst Ihr altes Kennwort und darunter "
-"dann zweimal (um sicherzustellen, dass Sie es korrekt eingegeben haben) das "
-"neue Kennwort ein."
-
-#: contrib/admin/templates/registration/password_change_form.html:17
-msgid "Old password:"
-msgstr "altes Kennwort:"
-
-#: contrib/admin/templates/registration/password_change_form.html:19
-msgid "New password:"
-msgstr "neues Kennwort:"
-
-#: contrib/admin/templates/registration/password_change_form.html:21
-msgid "Confirm password:"
-msgstr "Kennwortwiederholung:"
-
-#: contrib/admin/templates/registration/password_change_form.html:23
-msgid "Change my password"
-msgstr "Mein Kennwort ändern"
-
-#: contrib/admin/templates/registration/password_reset_email.html:2
-msgid "You're receiving this e-mail because you requested a password reset"
-msgstr "Sie erhalten diese Mail, weil Sie ein neues Kennwort"
-
-#: contrib/admin/templates/registration/password_reset_email.html:3
-#, python-format
-msgid "for your user account at %(site_name)s"
-msgstr "für Ihren Benutzer bei %(site_name)s angefordert haben."
-
-#: contrib/admin/templates/registration/password_reset_email.html:5
-#, python-format
-msgid "Your new password is: %(new_password)s"
-msgstr "Ihr neues Kennwort ist: %(new_password)s"
-
-#: contrib/admin/templates/registration/password_reset_email.html:7
-msgid "Feel free to change this password by going to this page:"
-msgstr "Sie können das Kennwort auf folgender Seite ändern:"
-
-#: contrib/admin/templates/registration/password_reset_email.html:11
-msgid "Your username, in case you've forgotten:"
-msgstr "Ihr Benutzername, falls Sie ihn vergessen haben:"
-
-#: contrib/admin/templates/registration/password_reset_email.html:13
-msgid "Thanks for using our site!"
-msgstr "Vielen Dank, dass Sie unsere Seiten benutzen!"
-
-#: contrib/admin/templates/registration/password_reset_email.html:15
-#, python-format
-msgid "The %(site_name)s team"
-msgstr "Das Team von %(site_name)s"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-msgid "Bookmarklets"
-msgstr "Bookmarklets"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:5
-msgid "Documentation bookmarklets"
-msgstr "Dokumentations-Bookmarklets"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:9
-msgid ""
-"\n"
-"
To install bookmarklets, drag the link to your bookmarks\n"
-"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
-"select the bookmarklet from any page in the site. Note that some of these\n"
-"bookmarklets require you to be viewing the site from a computer designated\n"
-"as \"internal\" (talk to your system administrator if you aren't sure if\n"
-"your computer is \"internal\").
\n"
-msgstr ""
-"\n"
-"
Um Bookmarklets zu installieren müssen diese Links in die\n"
-"Browser-Werkzeugleiste gehzogen werden, oder mittels rechter Maustaste in "
-"die\n"
-"Bookmarks gespeichert werden. Danach können die Bookmarklets von jeder "
-"Seite\n"
-"aufgerufen werden. Einige Bookmarklets sind für den Zugriff von 'internen'\n"
-"Rechnern eingeschränkt. Falls nicht klar ist, ob ein Rechner als 'intern'\n"
-"bewertet wird, bitte den Administrator fragen.
To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site. Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").
\n"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "DokumentÄcija Å¡ai lapai"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+"PÄrvieto jÅ«s no jebkuras lapas dokumentÄcijÄ uz skatu, kas Ä£enerÄ“ Å¡o lapu."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "ParÄdÄ«t objekta ID"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+"ParÄda content-type un unikÄlo ID lapÄm, kas atspoguļo vientuļu objektu."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Labot Å¡o objektu (patreizÄ“jÄ logÄ)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"PÄriet uz admininstrÄcijas lapu tÄm lapÄm, kas atspoguļo vientuļu objektu."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Labot Å¡o lapu (jaunÄ logÄ)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "TÄpat kÄ iepriekÅ¡, tikai atver administrÄcijas lapu jaunÄ logÄ."
+
+#: contrib/admin/templates/admin/submit_line.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+msgid "Delete"
+msgstr "Dzēst"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "SaglabÄt kÄ jaunu"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "SaglabÄt un pievienot vÄ“l vienu"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "SaglabÄt un turpinÄt laboÅ¡anu"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "SaglabÄt"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Servera kļūda"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Servera kļūda (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error (500)"
+msgstr "Servera kļūda (500)"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"Ir notikusi kļūda. Tas ir paziņots saita administratoriem ar e-pasta "
+"starpniecÄ«bu un visdrÄ«zÄkajÄ laikÄ tiks izlabots. Paldies par sapratni."
+
+#: contrib/admin/templates/admin/filter.html:2
+#, fuzzy, python-format
+msgid " By %(filter_title)s "
+msgstr "Pēc %(title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr ""
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Aiziet!"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr ""
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "Vēsture"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Datums/laiks"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "LietotÄjs"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "darbība"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j. N Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Å im objektam nav izmaiņu vÄ“sture. Tas visdrÄ«zÄk nav pievienots izmantojot "
+"administrÄcijas saitu."
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, fuzzy, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Izdzēšot objektu %(object_name)s '%(object)s' tiks dzēsti visi saistītie "
+"objekti , bet Jums nav tiesību dzēst sekojošus objektu tipus:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, fuzzy, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Vai esat pÄrliecinÄts, ka vÄ“laties dzÄ“st %(object_name)s \"%(object)s\"? "
+"Tiks dzēsti sekojoši objekti:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "JÄ, es esmu pÄrliecinÄts"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr ""
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Pievienot %(name)s"
+
+#: contrib/admin/templates/admin/change_form.html:15
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Pievienot"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "ApskatÄ«t saitÄ"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "LÅ«dzu izlabojiet kļūdu zemÄk"
+msgstr[1] "LÅ«dzu izlabojiet kļūdas zemÄk"
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "SakÄrtoÅ¡ana"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "SakÄrtojums:"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "SveicinÄti,"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Lapa nav atrasta"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "MÄ“s atvainojamies, bet pieprasÄ«tÄ lapa nevar tikt atrasta."
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:24
+msgid "Log in"
+msgstr "Pieslēdzieties"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modeļi, kas pieejami %(name)s aplikÄcijÄ."
+
+#: contrib/admin/templates/admin/index.html:18
+#, fuzzy, python-format
+msgid "%(name)s"
+msgstr "Pievienot %(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Izmainīt"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Jums nav tiesības jebko labot."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "NesenÄs darbÄ«bas"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Manas darbības"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Nav pieejams"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django saita administrÄcija"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administrēšana"
+
+#: 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 ""
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+#, fuzzy
+msgid "Username"
+msgstr "LietotÄja vÄrds:"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+#, fuzzy
+msgid "Password"
+msgstr "Parole:"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#, fuzzy
+msgid "Password (again)"
+msgstr "Paroles maiņa"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+msgid "Enter the same password as above, for verification."
+msgstr ""
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user %(username)s."
+msgstr ""
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Patreiz:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Nomainīt:"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Datums:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Laiks:"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Paldies par pavadÄ«to laiku mÄja lapÄ."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Pieslēgties vēlreiz"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr ""
+"JÅ«s esat saņēmuÅ¡i Å¡o e-pastu sakarÄ ar JÅ«su pieprasÄ«to paroles pÄrstatīšanu"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "JÅ«su lietotÄja kontam %(site_name)s saitÄ"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Jūsu jaunais parole ir: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Jūs vienmēr varat nomainīt šo paroli aizejot uz šo lapu:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "JÅ«su lietotÄjvÄrds, ja gadÄ«jumÄ JÅ«s esat to aizmirsis:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Paldies par mūsu saita lietošanu!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s komanda"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Paroles pÄrstatīšana(reset)"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Paroles pÄrstatīšana sekmÄ«ga"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"MÄ“s aizsÅ«tÄ«jÄm pa e-pastu jaunu paroli, ko JÅ«s esat apstiprinÄjis. JÅ«s to "
+"drÄ«zumÄ saņemsiet."
+
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:4
+msgid "Password change"
+msgstr "Paroles maiņa"
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Drošības nolūkos ievadiet veco paroli un pēc tam ievadiet Jūsu jauno paroli "
+"divreiz lai mÄ“s varÄ“tu pÄrbaudÄ«t, vai tÄ ir uzrakstÄ«ta pareizi."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "VecÄ parole:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "JaunÄ parole:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "ApstiprinÄt paroli:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Nomainīt manu paroli"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Paroles nomaiņa sekmīga"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Jūsu parole ir nomainīta."
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Esat aizmirsuÅ¡i savu paroli? Ievadiet e-pasta adresi zemÄk un mÄ“s "
+"pÄrstatÄ«sim JÅ«su paroli un aizsÅ«tÄ«sim jaunu pa e-pastu."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-pasta adrese:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Paroles pÄrstatīšana"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "Saita administrÄcija"
+
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:19
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" pievienots sekmīgi."
+
+#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:24
+msgid "You may edit it again below."
+msgstr "JÅ«s varat labot to atkal zemÄk."
+
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "JÅ«s varat pievienot vÄ“l vienu %s zemÄk."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "Pievienot %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "Pievienots %s."
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "Izmainīts %s."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "Izdzēsts %s"
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "Neviens lauks nav izmainīts"
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" nomainīts sekmīgi."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" pievienots sekmÄ«gi. JÅ«s to varat regiģēt zemÄk."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "Izmainīt %s"
+
+#: contrib/admin/views/main.py:473
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr ""
+
+#: contrib/admin/views/main.py:478
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr ""
+
+#: contrib/admin/views/main.py:511
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" sekmīgi izdzēsts."
+
+#: contrib/admin/views/main.py:514
+msgid "Are you sure?"
+msgstr "Vai esat pÄrliecinÄts?"
+
+#: contrib/admin/views/main.py:536
+#, python-format
+msgid "Change history: %s"
+msgstr "Izmainīt vēsturi: %s"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s"
+msgstr "Izvēlēties %s"
+
+#: contrib/admin/views/main.py:570
+#, python-format
+msgid "Select %s to change"
+msgstr "Izvēlēties %s lai izmainītu"
+
+#: contrib/admin/views/main.py:758
+msgid "Database error"
+msgstr ""
+
+#: 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 ""
+"Lūdzu pieslēdzieties vēlreiz, jo jūsu sesija ir novecojusi. Neuztraucieties: "
+"JÅ«su ievadÄ«tie dati ir saglabÄti."
+
+#: 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 ""
+"IzskatÄs, ka JÅ«su pÄrlÅ«ks neatbalsta sÄ«kdatnes (cookies). LÅ«dzu ieslÄ“dziet "
+"sÄ«kdatņu atbalstu, pÄrlÄdÄ“jiet lapu un mēģiniet vÄ“lreiz."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "LietotÄjvÄrdi nevar saturÄ“t simbolu '@'."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "JÅ«su e-pasta adrese nav jÅ«su lietotÄjvÄrds. Lietojiet '%s' tÄ vietÄ."
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr ""
+
+#: contrib/admin/views/doc.py:164
+#, fuzzy, python-format
+msgid "App %r not found"
+msgstr "Lapa nav atrasta"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %r not found in app %r"
+msgstr ""
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%s.%s` object"
+msgstr ""
+
+#: 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 ""
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%s.%s` objects"
+msgstr ""
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr ""
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr ""
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr ""
+
+#: 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 "Vesels skaitlis"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (Pareizs vai Nepareizs)"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Virkne (līdz pat %(maxlength)s)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Ar komatu atdalīti veselie skaitļi"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Datums (bez laika)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Datums (ar laiku)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "E-pasta adrese"
+
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "Faila ceļš"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "DecimÄls skaitlis"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Loģiskais (Pareizs vai Nepareizs)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "RelÄcija uz vecÄka modeli"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "Telefona numurs"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "Teksts"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "Laiks"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "ASV Å¡tats (divi augšējÄ reÄ£istra burti)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "XML teksts"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr ""
+
+#: contrib/admin/views/auth.py:30
+#, fuzzy
+msgid "Add user"
+msgstr "Pievienot %s"
+
+#: contrib/admin/views/auth.py:57
+#, fuzzy
+msgid "Password changed successfully."
+msgstr "Paroles nomaiņa sekmīga"
+
+#: contrib/admin/views/auth.py:64
+#, fuzzy, python-format
+msgid "Change password: %s"
+msgstr "Paroles maiņa"
+
+#: newforms/fields.py:101 newforms/fields.py:254
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr ""
+
+#: newforms/fields.py:103 newforms/fields.py:256
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr ""
+
+#: newforms/fields.py:126 core/validators.py:120
+msgid "Enter a whole number."
+msgstr "Ievadiet veselus skaitļus."
+
+#: newforms/fields.py:128
+#, fuzzy, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Å ai vÄ“rtÄ«bai jÄbÅ«t %s pakÄpei."
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr ""
+
+#: newforms/fields.py:163
+#, fuzzy
+msgid "Enter a valid date."
+msgstr "Ievadiet korektu faila vÄrdu."
+
+#: newforms/fields.py:190
+#, fuzzy
+msgid "Enter a valid time."
+msgstr "Ievadiet korektu faila vÄrdu."
+
+#: newforms/fields.py:226
+#, fuzzy
+msgid "Enter a valid date/time."
+msgstr "Ievadiet korektu faila vÄrdu."
+
+#: newforms/fields.py:240
+#, fuzzy
+msgid "Enter a valid value."
+msgstr "Ievadiet korektu faila vÄrdu."
+
+#: newforms/fields.py:269 core/validators.py:161
+msgid "Enter a valid e-mail address."
+msgstr "Ievadiet korektu e-pasta adresi."
+
+#: newforms/fields.py:287 newforms/fields.py:309
+#, fuzzy
+msgid "Enter a valid URL."
+msgstr "Ievadiet korektu faila vÄrdu."
+
+#: newforms/fields.py:311
+#, fuzzy
+msgid "This URL appears to be a broken link."
+msgstr "URL %s ir salauzta saite."
+
+#: newforms/fields.py:359
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+
+#: newforms/fields.py:377 newforms/fields.py:453
+#, fuzzy
+msgid "Enter a list of values."
+msgstr "Ievadiet korektu faila vÄrdu."
+
+#: newforms/fields.py:386
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr ""
+
+#: template/defaultfilters.py:436
+msgid "yes,no,maybe"
+msgstr "jÄ,nÄ“,varbÅ«t"
+
+#: views/generic/create_update.py:43
+#, fuzzy, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(name)s \"%(obj)s\" nomainīts sekmīgi."
+
+#: views/generic/create_update.py:117
+#, fuzzy, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(name)s \"%(obj)s\" sekmīgi izdzēsts."
+
+#: views/generic/create_update.py:184
+#, fuzzy, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(site_name)s komanda"
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Šī vērtība var saturēt tikai burtus, numurus un apakšsvītras."
+
+#: core/validators.py:68
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"Šī vērtība var saturēt tikai burtus, numurus un apakšsvītras, svītras vai "
+"šķērssvītras."
+
+#: core/validators.py:72
+#, fuzzy
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"Šī vērtība var saturēt tikai burtus, numurus un apakšsvītras, svītras vai "
+"šķērssvītras."
+
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "AugšējÄ reÄ£istra burti nav atļauti."
+
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "ApakšējÄ reÄ£istra burti nav atļauti."
+
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "Ievadiet tikai numurus, kas atdalīti ar komatiem."
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Ievadiet korektas e-pasta adreses, kas atdalītas ar komatiem."
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "Lūdzu ievadiet korektu IP adresi."
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "Tukšas vērtības nav atļautas."
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Ne ciparu simboli nav atļauti."
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "Šī vērtība nevar saturēt tikai ciparus."
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "Atļauti tikai alfabētiskie simboli."
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr ""
+
+#: core/validators.py:143
+#, fuzzy, python-format
+msgid "Invalid date: %s."
+msgstr "Nekorekts URL: %s"
+
+#: core/validators.py:152
+msgid "Enter a valid time in HH:MM format."
+msgstr "Ievadiet korektu laiku HH:MM formÄtÄ"
+
+#: core/validators.py:177
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"AugÅ¡upielÄdÄ“jiet korektu attÄ“lu. Fails, ko JÅ«s augÅ¡upielÄdÄ“jÄt nav attÄ“ls "
+"vai arÄ« bojÄts attÄ“la fails."
+
+#: core/validators.py:184
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s nesatur korektu attēlu."
+
+#: core/validators.py:188
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefona numuriem jÄbÅ«t XXX-XXX-XXXX formÄtÄ. \"%s\" is nekorekts."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s nenorÄda uz korektu QuickTime video."
+
+#: core/validators.py:200
+msgid "A valid URL is required."
+msgstr "ReÄls URL obligÄts."
+
+#: core/validators.py:214
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Korekts HTML ir obligÄts. SpecifiskÄs kļūdas:\n"
+"%s"
+
+#: core/validators.py:221
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Slikti formēts XML: %s"
+
+#: core/validators.py:238
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Nekorekts URL: %s"
+
+#: core/validators.py:243 core/validators.py:245
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s ir salauzta saite."
+
+#: core/validators.py:251
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Ievadiet korektu ASV štata abriviatūru."
+
+#: core/validators.py:265
+#, 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] "Seko saviem vÄrdiem! VÄrds %s nav atļauts Å¡eit."
+msgstr[1] "Seko saviem vÄrdiem! VÄrdi %s nav atļauts Å¡eit."
+
+#: core/validators.py:272
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Laukam jÄsaskan ar %s lauku."
+
+#: core/validators.py:291
+msgid "Please enter something for at least one field."
+msgstr "LÅ«dzu ievadiet kaut ko vismaz vienÄ laukÄ."
+
+#: core/validators.py:300 core/validators.py:311
+msgid "Please enter both fields or leave them both empty."
+msgstr "LÅ«dzu ievadiet abus laukus vai atstÄjiet abus tukÅ¡us."
+
+#: core/validators.py:318
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Å is lauks ir jÄaizpilda, ja %(field)s ir vienÄds %(value)s"
+
+#: core/validators.py:330
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Å is lauks ir jÄaizpilda, ja %(field)s nav vienÄds %(value)s"
+
+#: core/validators.py:349
+msgid "Duplicate values are not allowed."
+msgstr "Duplicētas vērtības nav atļautas."
+
+#: core/validators.py:364
+#, fuzzy, python-format
+msgid "This value must be between %s and %s."
+msgstr "Å ai vÄ“rtÄ«bai jÄbÅ«t %s pakÄpei."
+
+#: core/validators.py:366
+#, fuzzy, python-format
+msgid "This value must be at least %s."
+msgstr "Å ai vÄ“rtÄ«bai jÄbÅ«t %s pakÄpei."
+
+#: core/validators.py:368
+#, fuzzy, python-format
+msgid "This value must be no more than %s."
+msgstr "Å ai vÄ“rtÄ«bai jÄbÅ«t %s pakÄpei."
+
+#: core/validators.py:404
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Å ai vÄ“rtÄ«bai jÄbÅ«t %s pakÄpei."
+
+#: core/validators.py:415
+msgid "Please enter a valid decimal number."
+msgstr "LÅ«dzu ievadiet korektu decimÄlu numuru."
+
+#: core/validators.py:419
+#, 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] ""
+"LÅ«dzu ievadiet korektu decimÄlu numuru ar maksimÄlu ciparu skaitu %s."
+msgstr[1] ""
+"LÅ«dzu ievadiet korektu decimÄlu numuru ar maksimÄlu ciparu skaitu %s."
+
+#: core/validators.py:422
+#, fuzzy, 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] ""
+"LÅ«dzu ievadiet korektu decimÄlu numuru ar maksimÄlu ciparu skaitu %s."
+msgstr[1] ""
+"LÅ«dzu ievadiet korektu decimÄlu numuru ar maksimÄlu ciparu skaitu %s."
+
+#: core/validators.py:425
+#, 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] ""
+"LÅ«dzu ievadiet korektu decimÄlu numuru ar maksimÄlu ciparu skaitu aiz komata "
+"%s."
+msgstr[1] ""
+"LÅ«dzu ievadiet korektu decimÄlu numuru ar maksimÄlu ciparu skaitu aiz komata "
+"%s."
+
+#: core/validators.py:435
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr ""
+"PÄrliecinieties, ka jÅ«su augÅ¡upielÄdÄ“tais fails ir vismaz %s baiti liels."
+
+#: core/validators.py:436
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr ""
+"PÄrliecinieties, ka jÅ«su augÅ¡upielÄdÄ“tais fails ir maksimums %s baiti liels."
+
+#: core/validators.py:453
+msgid "The format for this field is wrong."
+msgstr "Å Ä« faila formÄts ir nekorekts."
+
+#: core/validators.py:468
+msgid "This field is invalid."
+msgstr "Å is lauks ir nekorekts."
+
+#: core/validators.py:504
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Nevar neko no %s"
+
+#: core/validators.py:507
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s atgrieza nekorektu Content-Type headeri '%(contenttype)s'."
+
+#: core/validators.py:540
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Lūdzu aiztaisiet neaiztaisīto %(tag)s tagu no rindas nr %(line)s. (Rinda "
+"sÄkas ar \"%(start)s\".)"
+
+#: core/validators.py:544
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:549
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:554
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+
+#: core/validators.py:558
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#: core/validators.py:563
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+
+#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
+#~ msgstr "Lietojiet '[algo]$[salt]$[hexdigest]'"
+
+#~ msgid "Have you forgotten your password?"
+#~ msgstr "Vai esat aizmirsis paroli?"
diff --git a/django/conf/locale/lv/LC_MESSAGES/djangojs.mo b/django/conf/locale/lv/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000000..b81550aedb
Binary files /dev/null and b/django/conf/locale/lv/LC_MESSAGES/djangojs.mo differ
diff --git a/django/conf/locale/lv/LC_MESSAGES/djangojs.po b/django/conf/locale/lv/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000..534cffd8d0
--- /dev/null
+++ b/django/conf/locale/lv/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 , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-02-15 10:46+1100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \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/mk/LC_MESSAGES/django.mo b/django/conf/locale/mk/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..e9bffbb85b
Binary files /dev/null and b/django/conf/locale/mk/LC_MESSAGES/django.mo differ
diff --git a/django/conf/locale/mk/LC_MESSAGES/django.po b/django/conf/locale/mk/LC_MESSAGES/django.po
new file mode 100644
index 0000000000..171b8dc921
--- /dev/null
+++ b/django/conf/locale/mk/LC_MESSAGES/django.po
@@ -0,0 +1,2372 @@
+# translation of django.po to Macedonian
+#
+# Georgi Stanojevski , 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-02-15 10:53+1100\n"
+"PO-Revision-Date: 2006-12-04 15:58+0100\n"
+"Last-Translator: Georgi Stanojevski \n"
+"Language-Team: Macedonian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: db/models/manipulators.py:305
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s од овој тип %(type)s веќе поÑтои за даденото %(field)s."
+
+#: db/models/manipulators.py:306 contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339
+msgid "and"
+msgstr "и"
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Ве молам внеÑете правилно %s."
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "Одвој ги повеќето идентификациони броеви Ñо запирки."
+
+#: db/models/fields/related.py:644
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Држете го „Control“ или „Command“ на Мекинтош за да изберете повеќе од едно."
+
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] ""
+"Ве молам внеÑете правилен %(self)s идентификацион број. Оваа вредноÑÑ‚ %"
+"(value)r е неправилна. "
+msgstr[1] ""
+"Ве молам внеÑете правилен %(self)s идентификацион број. ВредноÑтите %(value)"
+"r Ñе неправилни."
+
+#: db/models/fields/__init__.py:42
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s Ñо ова %(fieldname)s веќе поÑтои."
+
+#: db/models/fields/__init__.py:116 db/models/fields/__init__.py:273
+#: db/models/fields/__init__.py:605 db/models/fields/__init__.py:616
+#: oldforms/__init__.py:352 newforms/fields.py:78 newforms/fields.py:373
+#: newforms/fields.py:449 newforms/fields.py:460
+msgid "This field is required."
+msgstr "Ова поле е задолжително."
+
+#: db/models/fields/__init__.py:366
+msgid "This value must be an integer."
+msgstr "Оваа вредноÑÑ‚ мора да биде цел број."
+
+#: db/models/fields/__init__.py:401
+msgid "This value must be either True or False."
+msgstr "Оваа вредноÑÑ‚ мора да биде или точно или неточно."
+
+#: db/models/fields/__init__.py:422
+msgid "This field cannot be null."
+msgstr "Оваа вредноÑÑ‚ неможе да биде null."
+
+#: db/models/fields/__init__.py:454 core/validators.py:147
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "ВнеÑете правилен датум во форматот ГГГГ-ММ-ДД."
+
+#: db/models/fields/__init__.py:521 core/validators.py:156
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "ВнеÑете правилен датум/време во форматот ГГГГ-ММ-ДД ЧЧ:ММ."
+
+#: db/models/fields/__init__.py:625
+msgid "Enter a valid filename."
+msgstr "ВнеÑите правилно име на датотека."
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "ÐрапÑки"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "БенгалÑки"
+
+#: conf/global_settings.py:41
+msgid "Czech"
+msgstr "Чешки"
+
+#: conf/global_settings.py:42
+msgid "Welsh"
+msgstr "Велшки"
+
+#: conf/global_settings.py:43
+msgid "Danish"
+msgstr "ДанÑки"
+
+#: conf/global_settings.py:44
+msgid "German"
+msgstr "ГерманÑки"
+
+#: conf/global_settings.py:45
+msgid "Greek"
+msgstr "Грчки"
+
+#: conf/global_settings.py:46
+msgid "English"
+msgstr "ÐнглиÑки"
+
+#: conf/global_settings.py:47
+msgid "Spanish"
+msgstr "ШпанÑки"
+
+#: conf/global_settings.py:48
+msgid "Argentinean Spanish"
+msgstr "ÐргентиÑко шпанÑки"
+
+#: conf/global_settings.py:49
+msgid "Finnish"
+msgstr "ФинÑки"
+
+#: conf/global_settings.py:50
+msgid "French"
+msgstr "ФранцуÑки"
+
+#: conf/global_settings.py:51
+msgid "Galician"
+msgstr "ГалÑки"
+
+#: conf/global_settings.py:52
+msgid "Hungarian"
+msgstr "УнгарÑки"
+
+#: conf/global_settings.py:53
+msgid "Hebrew"
+msgstr "ЕврејÑки"
+
+#: conf/global_settings.py:54
+msgid "Icelandic"
+msgstr "ИÑландÑки"
+
+#: conf/global_settings.py:55
+msgid "Italian"
+msgstr "ИталијанÑки"
+
+#: conf/global_settings.py:56
+msgid "Japanese"
+msgstr "ЈапонÑки"
+
+#: conf/global_settings.py:57
+msgid "Latvian"
+msgstr ""
+
+#: conf/global_settings.py:58
+msgid "Macedonian"
+msgstr ""
+
+#: conf/global_settings.py:59
+msgid "Dutch"
+msgstr "Холандија"
+
+#: conf/global_settings.py:60
+msgid "Norwegian"
+msgstr "Ðорвешки"
+
+#: conf/global_settings.py:61
+#, fuzzy
+msgid "Polish"
+msgstr "ÐнглиÑки"
+
+#: conf/global_settings.py:62
+msgid "Brazilian"
+msgstr "БразилÑки"
+
+#: conf/global_settings.py:63
+msgid "Romanian"
+msgstr "РоманÑки"
+
+#: conf/global_settings.py:64
+msgid "Russian"
+msgstr "РуÑки"
+
+#: conf/global_settings.py:65
+msgid "Slovak"
+msgstr "Словачки"
+
+#: conf/global_settings.py:66
+msgid "Slovenian"
+msgstr "Словенечки"
+
+#: conf/global_settings.py:67
+msgid "Serbian"
+msgstr "СрпÑки"
+
+#: conf/global_settings.py:68
+msgid "Swedish"
+msgstr "ШведÑки"
+
+#: conf/global_settings.py:69
+msgid "Tamil"
+msgstr "Тамил"
+
+#: conf/global_settings.py:70
+msgid "Turkish"
+msgstr "ТурÑки"
+
+#: conf/global_settings.py:71
+msgid "Ukrainian"
+msgstr "УкраинÑки"
+
+#: conf/global_settings.py:72
+msgid "Simplified Chinese"
+msgstr "УпроÑтен кинеÑки"
+
+#: conf/global_settings.py:73
+msgid "Traditional Chinese"
+msgstr "Традиционален кинеÑки"
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "година"
+msgstr[1] "години"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "меÑец"
+msgstr[1] "меÑеци"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "Ñедмица"
+msgstr[1] "Ñедмици"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "ден"
+msgstr[1] "денови"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "чаÑ"
+msgstr[1] "чаÑови"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "минута"
+msgstr[1] "минути"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "понеделник"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "вторник"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Ñреда"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "четврток"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "петок"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Ñабота"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "недела"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "јануари"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "февруари"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "март"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "април"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "мај"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "јуни"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "јули"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "авгуÑÑ‚"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "Ñептември"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "октомври"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "ноември"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "декември"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "јан"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "фев"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "мар"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "апр"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "мај"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "јун"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "јул"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "авг"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "Ñеп"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "окт"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "ное"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "дек"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "јан."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "фев."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "авг."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "Ñеп."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "окт."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "ное."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "дек."
+
+#: utils/translation/trans_real.py:362
+msgid "DATE_FORMAT"
+msgstr "N j, Y"
+
+#: utils/translation/trans_real.py:363
+msgid "DATETIME_FORMAT"
+msgstr "N j, 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 "F j"
+
+#: oldforms/__init__.py:387
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "ОÑигурајте Ñе дека вашиот текÑÑ‚ има помалку од %s знак."
+msgstr[1] "ОÑигурајте Ñе дека вашиот текÑÑ‚ има помалку од %s знаци."
+
+#: oldforms/__init__.py:392
+msgid "Line breaks are not allowed here."
+msgstr "Тука не Ñе дозволени прекини на линија."
+
+#: oldforms/__init__.py:493 oldforms/__init__.py:566 oldforms/__init__.py:605
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Изберете правилно, %(data)s' не е во %(choices)s."
+
+#: oldforms/__init__.py:572 contrib/admin/filterspecs.py:150
+#: newforms/widgets.py:162
+msgid "Unknown"
+msgstr "Ðепознато"
+
+#: oldforms/__init__.py:572 contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:162
+msgid "Yes"
+msgstr "Да"
+
+#: oldforms/__init__.py:572 contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:162
+msgid "No"
+msgstr "Ðе"
+
+#: oldforms/__init__.py:667 core/validators.py:173 core/validators.py:442
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ðе беше пратена датотека. Проверете го типот на енкодирање на формата."
+
+#: oldforms/__init__.py:669
+msgid "The submitted file is empty."
+msgstr "Пратената датотека е празна."
+
+#: oldforms/__init__.py:725
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "ВнеÑете цел број помеѓу -32,768 и 32,767."
+
+#: oldforms/__init__.py:735
+msgid "Enter a positive number."
+msgstr "ВнеÑете позитивен број."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "ВнеÑете цел број помеѓу 0 и 32,767."
+
+#: contrib/sessions/models.py:51
+msgid "session key"
+msgstr "клуч на ÑеÑијата"
+
+#: contrib/sessions/models.py:52
+msgid "session data"
+msgstr "податоци од ÑеÑијата"
+
+#: contrib/sessions/models.py:53
+msgid "expire date"
+msgstr "датум на иÑтекување"
+
+#: contrib/sessions/models.py:57
+msgid "session"
+msgstr "ÑеÑија"
+
+#: contrib/sessions/models.py:58
+msgid "sessions"
+msgstr "ÑеÑии"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr ""
+
+#: contrib/auth/forms.py:25
+#, fuzzy
+msgid "A user with that username already exists."
+msgstr "%(optname)s Ñо ова %(fieldname)s веќе поÑтои."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Ðе изгледа дека вашиот прелиÑтувач има овозможено колачиња. Колачињата Ñе "
+"потребни за да Ñе најавите."
+
+#: contrib/auth/forms.py:60 contrib/admin/views/decorators.py:10
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Ве молам внеÑете точно кориÑничко име и лозинка. Имајте на ум дека и во "
+"двете полиња Ñе битни големите и малите букви."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Оваа Ñметка е неактивна."
+
+#: contrib/auth/forms.py:85
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr ""
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr ""
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "Одјавен"
+
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
+msgid "name"
+msgstr "име"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "кодно име"
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "привилегија"
+
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
+msgid "permissions"
+msgstr "привилегии"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "група"
+
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
+msgid "groups"
+msgstr "групи"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "кориÑничко име"
+
+#: contrib/auth/models.py:90
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr ""
+"Дозволени Ñе најмногу 30 знаци. Дозволени Ñе Ñамо алфанумерички знаци "
+"(букви, цифри и долна црта)."
+
+#: contrib/auth/models.py:91
+msgid "first name"
+msgstr "име"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "презиме"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "е-пошта"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "лозинка"
+
+#: contrib/auth/models.py:94
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the change "
+"password form."
+msgstr ""
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° админиÑтраторите"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr ""
+"Означува дали кориÑникот може да Ñе логира во Ñајтот за админиÑтрација."
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "активен"
+
+#: contrib/auth/models.py:96
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Означува дали кориÑникот може да Ñе логира. Одштиклирајте го ова намеÑто да "
+"бришете кориÑници."
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr "ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° ÑуперкориÑник"
+
+#: contrib/auth/models.py:97
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Означува дека овој кориÑник ги има Ñите привилегии без екÑплицитно да Ñе "
+"доделуваат Ñите."
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "поÑледна најава"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "датум на зачленување"
+
+#: 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 ""
+"Како дополнување на рачно доделени привилегии, овој кориÑник ќе ги добие "
+"автоматÑки и Ñите привилегии за Ñекоја група во која тој/таа членува."
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "кориÑнички привилегии"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "кориÑник"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "кориÑници"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "Лични информации"
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "Привилегии"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "Важни датуми"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "Групи"
+
+#: contrib/auth/models.py:258
+msgid "message"
+msgstr "порака"
+
+#: contrib/contenttypes/models.py:26
+msgid "python model class name"
+msgstr "има на клаÑата на питон моделите"
+
+#: contrib/contenttypes/models.py:29
+msgid "content type"
+msgstr "content type"
+
+#: contrib/contenttypes/models.py:30
+msgid "content types"
+msgstr "content types"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "пренаÑочено од"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"Ова треба да биде апÑолутна патека без името на домејнот. Ðа пр. „/nastani/"
+"prebaraj/“."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "пренаÑочи кон"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"Ова може да биде или апÑолутна патека (како погоре) или цела адреÑа "
+"почувајќи Ñо „http://“."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "пренаÑочување"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "пренаÑочувања"
+
+#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:315
+msgid "URL"
+msgstr "URL"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Ðа пр. „/za/kontakt/“. ОÑигурајте Ñе да имате коÑа црта и на крајот и на "
+"почетокот."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "наÑлов"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "Ñодржина"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "овозможи коментари"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "име на шаблонот"
+
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Ðа пр. „flatpages/kontakt.html'. Ðко не го внеÑете ова, ÑиÑтемот ќе кориÑти "
+"„flatpages/default.html“."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "потребна е региÑтрација"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr ""
+"Ðко ова е штиклирано, Ñамо најавените кориÑници ќе можат да ја гледаат оваа "
+"Ñтраница."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "Ñтатична Ñтраница"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "Ñтатични Ñтраници"
+
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "object ID"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "наÑлов"
+
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "коментар"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "популарноÑÑ‚ #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "популарноÑÑ‚ #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "популарноÑÑ‚ #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "популарноÑÑ‚ #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "популарноÑÑ‚ #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "популарноÑÑ‚ #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "популарноÑÑ‚ #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "популарноÑÑ‚ #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "е валидна популарноÑÑ‚"
+
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "датум/време пријавен"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "е јавен"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "ИП адреÑа"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "е отÑтранет"
+
+#: contrib/comments/models.py:86
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Штиклирајте го ова поле ако коментарот не е пригоден. ÐамеÑто него пораката "
+"„Овој коментар беше отÑтранет“ ќе биде прикажана."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "коментари"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Content објект"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Ðапишан од %(user)s на %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "име на личноÑта"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "ип адреÑа"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "одобрено од админиÑтраторите"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "Ñлободен коментар"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "Ñлободни коментари"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "поени"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "датум поени"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "карма поен"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "карма поени"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d глаÑање за популарноÑÑ‚ од %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Овој коментар беше означен од %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "датум на означување"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "кориÑничка ознака"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "кориÑнички ознаки"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "Означено од %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "датум на бришење"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "бришење од модератор"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "бришења од модератор"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Бришење од модератор од %r"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "КориÑник:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Log out"
+msgstr "Одјава"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Лозинка:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Ја заборавите вашата лозинка?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "ПопуларноÑÑ‚"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Потребно"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "По желба"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Објави фотографија"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Коментар:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Прегледај"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Вашето име:"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Ðнонимните кориÑници неможе да глаÑаат"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "Ðевалидно ИД на коментарот"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Ðема глаÑање за Ñамиот Ñебе"
+
+#: contrib/comments/views/comments.py:27
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"Ова глаÑање за популарноÑÑ‚ е потребно бидејќи внеÑовте најмалку уште едно "
+"друго."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Овој коментар беше пратен од кориÑник кој пратил помалку од %(count)s "
+"коментар:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Овој коментар беше пратен од кориÑник кој пратил помалку од %(count)s "
+"коментари:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Овој коментар беше пратен од недоверлив кориÑник:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Дозволено е Ñамо POST"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Едно или повеќе од потребните полиња не беше пополнето"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Ðекој ја променил формата за коментари (ÑигурноÑен прекршок)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Формата за коментар имаше неправилен „target“ параметар - идентификациониот "
+"број на објектот беше неправилен."
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Формата за коментар не овозможи ниту „преглед“ ниту „праќање“"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "домејн"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "име кое Ñе прикажува"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "Ñајт"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "Ñајтови"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"
To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site. Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").
\n"
-#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:70
+#: contrib/admin/filterspecs.py:88
#: contrib/admin/filterspecs.py:143
msgid "All"
msgstr "Alla"
@@ -440,12 +416,11 @@ msgstr "loggposter"
msgid "All dates"
msgstr "Alla datum"
-#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
+#: contrib/admin/views/decorators.py:9
+#: contrib/auth/forms.py:36
#: contrib/auth/forms.py:41
-msgid ""
-"Please enter a correct username and password. Note that both fields are case-"
-"sensitive."
-msgstr ""
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "V.G. ange ett korrekt användarnamn och lösenord. Systemet skiljer på VERSALER och gemener."
#: contrib/admin/views/decorators.py:23
#: contrib/admin/templates/admin/login.html:25
@@ -453,20 +428,12 @@ msgid "Log in"
msgstr "Logga in"
#: contrib/admin/views/decorators.py:61
-msgid ""
-"Please log in again, because your session has expired. Don't worry: Your "
-"submission has been saved."
-msgstr ""
-"Du måste logga in igen, eftersom din session har tagit slut. Oroa dig inte: "
-"ditt bidrag har sparats."
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Du måste logga in igen, eftersom din session har tagit slut. Oroa dig inte: ditt bidrag har sparats."
#: 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 ""
-"Det ser ut som om din webbläsare inte är konfigurerad att acceptera kakor. "
-"Aktivera kakor, ladda om den här sidan, och försök igen."
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Det ser ut som om din webbläsare inte är konfigurerad att acceptera kakor. Aktivera kakor, ladda om den här sidan, och försök igen."
#: contrib/admin/views/decorators.py:82
msgid "Usernames cannot contain the '@' character."
@@ -479,18 +446,20 @@ msgstr "Din e-postadress är inte ditt användarnamn. Försök med '%s' iställe
#: contrib/admin/views/main.py:226
msgid "Site administration"
-msgstr "Hemsideadministration"
+msgstr "Administration"
#: contrib/admin/views/main.py:260
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)set \"%(obj)s\" lades till."
-#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348
+#: contrib/admin/views/main.py:264
+#: contrib/admin/views/main.py:348
msgid "You may edit it again below."
msgstr "Du kan ändra det igen här under."
-#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
+#: contrib/admin/views/main.py:272
+#: contrib/admin/views/main.py:357
#, python-format
msgid "You may add another %s below."
msgstr "Du kan lägga till en till %s här under"
@@ -505,7 +474,8 @@ msgstr "Lägg till %s"
msgid "Added %s."
msgstr "Lade till %s."
-#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
+#: contrib/admin/views/main.py:336
+#: contrib/admin/views/main.py:338
#: contrib/admin/views/main.py:340
msgid "and"
msgstr "och"
@@ -531,8 +501,7 @@ msgstr "%(name)set \"%(obj)s\" ändrades."
#: contrib/admin/views/main.py:354
#, python-format
-msgid ""
-"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr "%(name)set \"%(obj)s\" lades till. Du kan ändra det igen här under."
#: contrib/admin/views/main.py:392
@@ -572,11 +541,14 @@ msgstr "Välj %s"
#: contrib/admin/views/main.py:565
#, python-format
msgid "Select %s to change"
-msgstr "Välj vilken %s du vill ändra"
+msgstr "Välj %s att ändra"
-#: 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
+#: 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 "Heltal"
@@ -584,7 +556,8 @@ msgstr "Heltal"
msgid "Boolean (Either True or False)"
msgstr "Boolesk (antingen Sann eller Falsk)"
-#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
+#: contrib/admin/views/doc.py:279
+#: contrib/admin/views/doc.py:296
#, python-format
msgid "String (up to %(maxlength)s)"
msgstr "Sträng (upp till %(maxlength)s)"
@@ -605,7 +578,8 @@ msgstr "Datum (med tid)"
msgid "E-mail address"
msgstr "E-postadress:"
-#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
+#: contrib/admin/views/doc.py:284
+#: contrib/admin/views/doc.py:287
msgid "File path"
msgstr "Sökväg"
@@ -633,7 +607,8 @@ msgstr "Text"
msgid "Time"
msgstr "Tid"
-#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
+#: contrib/admin/views/doc.py:300
+#: contrib/flatpages/models.py:7
msgid "URL"
msgstr "URL"
@@ -713,12 +688,8 @@ msgid "DATE_WITH_TIME_FULL"
msgstr "D j F Y, H:i:s"
#: contrib/admin/templates/admin/object_history.html:36
-msgid ""
-"This object doesn't have a change history. It probably wasn't added via this "
-"admin site."
-msgstr ""
-"Det här objektet har ingen ändringshistorik. Det lades antagligen inte till "
-"i den här admin-sidan"
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Det här objektet har ingen ändringshistorik. Det lades antagligen inte till i den här admin-sidan"
#: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin"
@@ -741,12 +712,8 @@ msgid "Server Error (500)"
msgstr "Serverfel (500)"
#: contrib/admin/templates/admin/500.html:10
-msgid ""
-"There's been an error. It's been reported to the site administrators via e-"
-"mail and should be fixed shortly. Thanks for your patience."
-msgstr ""
-"Ett fel har uppstått. Sidadministratören har meddelats via e-post och felet "
-"bör åtgärdas snart. Tack för ditt tålamod."
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "Ett fel har uppstått. Sidadministratören har meddelats via e-post och felet bör åtgärdas snart. Tack för ditt tålamod."
#: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8
@@ -760,7 +727,7 @@ msgstr "Vi är ledsna, men den efterfrågade sidan kunde inte hittas."
#: contrib/admin/templates/admin/index.html:17
#, python-format
msgid "Models available in the %(name)s application."
-msgstr ""
+msgstr "Modeller tillgängliga i applikationen för %(name)s"
#: contrib/admin/templates/admin/index.html:28
#: contrib/admin/templates/admin/change_form.html:15
@@ -807,23 +774,13 @@ msgstr "Ta bort"
#: 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:"
-msgstr ""
-"Att ta bort %(object_name)s '%(object)s' skulle innebära att besläktade "
-"objekt togs bort, men ditt konto har inte rättigheter att ta bort följande "
-"objekttyper:"
+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:"
+msgstr "Att ta bort %(object_name)s '%(object)s' skulle innebära att besläktade objekt togs bort, men ditt konto har inte rättigheter att ta bort följande objekttyper:"
#: 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:"
-msgstr ""
-"Är du säker på att du vill ta bort %(object_name)s \"%(object)s\"? Följande "
-"besläktade föremål kommer att tas bort:"
+msgid "Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of the following related items will be deleted:"
+msgstr "Är du säker på att du vill ta bort %(object_name)s \"%(object)s\"? Följande besläktade föremål kommer att tas bort:"
#: contrib/admin/templates/admin/delete_confirmation.html:26
msgid "Yes, I'm sure"
@@ -896,12 +853,8 @@ msgid "Password reset"
msgstr "Nollställ lösenordet"
#: contrib/admin/templates/registration/password_reset_form.html:12
-msgid ""
-"Forgotten your password? Enter your e-mail address below, and we'll reset "
-"your password and e-mail the new one to you."
-msgstr ""
-"Har du glömt ditt lösenord? Fyll i din e-postadress nedan, så nollställer vi "
-"ditt lösenord och mailar det nya till dig."
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "Har du glömt ditt lösenord? Fyll i din e-postadress nedan, så nollställer vi ditt lösenord och mailar det nya till dig."
#: contrib/admin/templates/registration/password_reset_form.html:16
msgid "E-mail address:"
@@ -925,20 +878,12 @@ msgid "Password reset successful"
msgstr "Nollställning av lösenordet lyckades"
#: contrib/admin/templates/registration/password_reset_done.html:12
-msgid ""
-"We've e-mailed a new password to the e-mail address you submitted. You "
-"should be receiving it shortly."
-msgstr ""
-"Vi har skickat ett nytt lösenord till e-postadressen du fyllde i. Det bör "
-"anlända snarast."
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Vi har skickat ett nytt lösenord till e-postadressen du fyllde i. Det bör anlända snarast."
#: contrib/admin/templates/registration/password_change_form.html:12
-msgid ""
-"Please enter your old password, for security's sake, and then enter your new "
-"password twice so we can verify you typed it in correctly."
-msgstr ""
-"Var god fyll i ditt gamla lösenord, för säkerhets skull, och skriv sedan in "
-"det nya lösenordet två gånger så vi kan kontrollera att du skrev det rätt."
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Var god fyll i ditt gamla lösenord, för säkerhets skull, och skriv sedan in det nya lösenordet två gånger så vi kan kontrollera att du skrev det rätt."
#: contrib/admin/templates/registration/password_change_form.html:17
msgid "Old password:"
@@ -972,9 +917,7 @@ msgstr "Ditt nya lösenord är: %(new_password)s"
#: contrib/admin/templates/registration/password_reset_email.html:7
msgid "Feel free to change this password by going to this page:"
-msgstr ""
-"Känn dig välkommen att ändra det här lösenordet genom att gå till den här "
-"sidan:"
+msgstr "Känn dig välkommen att ändra det här lösenordet genom att gå till den här sidan:"
#: contrib/admin/templates/registration/password_reset_email.html:11
msgid "Your username, in case you've forgotten:"
@@ -1020,23 +963,16 @@ msgid "Documentation for this page"
msgstr "Dokumentation för den här sidan"
#: contrib/admin/templates/admin_doc/bookmarklets.html:20
-msgid ""
-"Jumps you from any page to the documentation for the view that generates "
-"that page."
-msgstr ""
-"Förflyttar dig från valfri sida till dokumentationen för vyn som genererar "
-"den sidan."
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Förflyttar dig från valfri sida till dokumentationen för vyn som genererar den sidan."
#: contrib/admin/templates/admin_doc/bookmarklets.html:22
msgid "Show object ID"
msgstr "Visa objektets id"
#: contrib/admin/templates/admin_doc/bookmarklets.html:23
-msgid ""
-"Shows the content-type and unique ID for pages that represent a single "
-"object."
-msgstr ""
-"Visa innehållstypen och ID:t för sidor som representerar ett enskillt objekt."
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Visa innehållstypen och ID:t för sidor som representerar ett enskillt objekt."
#: contrib/admin/templates/admin_doc/bookmarklets.html:25
msgid "Edit this object (current window)"
@@ -1044,9 +980,7 @@ msgstr "Redigera det här objektet (nuvarande fönster)"
#: contrib/admin/templates/admin_doc/bookmarklets.html:26
msgid "Jumps to the admin page for pages that represent a single object."
-msgstr ""
-"Hoppar till administrationssidan för sidor som representerar ett enskillt "
-"objekt."
+msgstr "Hoppar till administrationssidan för sidor som representerar ett enskillt objekt."
#: contrib/admin/templates/admin_doc/bookmarklets.html:28
msgid "Edit this object (new window)"
@@ -1066,36 +1000,27 @@ msgstr "Tid:"
#: contrib/admin/templates/widget/file.html:2
msgid "Currently:"
-msgstr ""
+msgstr "Nuvarande:"
#: contrib/admin/templates/widget/file.html:3
-#, fuzzy
msgid "Change:"
-msgstr "Ändra"
+msgstr "Ändra:"
#: contrib/redirects/models.py:7
msgid "redirect from"
msgstr "vidarebefodra från"
#: contrib/redirects/models.py:8
-msgid ""
-"This should be an absolute path, excluding the domain name. Example: '/"
-"events/search/'."
-msgstr ""
-"Det här bör vara en absolut sökväg, förutom domännamnet. Exempel: '/"
-"handelser/sok/'."
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Det här bör vara en absolut sökväg, förutom domännamnet. Exempel: '/handelser/sok/'."
#: contrib/redirects/models.py:9
msgid "redirect to"
msgstr "vidarebefodra till"
#: contrib/redirects/models.py:10
-msgid ""
-"This can be either an absolute path (as above) or a full URL starting with "
-"'http://'."
-msgstr ""
-"Det här kan vara antingen en absolut sökväg (som ovan), eller en komplett "
-"adress som börjar med 'http://'."
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Det här kan vara antingen en absolut sökväg (som ovan), eller en komplett adress som börjar med 'http://'."
#: contrib/redirects/models.py:12
msgid "redirect"
@@ -1106,10 +1031,8 @@ msgid "redirects"
msgstr "vidarebefodringar"
#: contrib/flatpages/models.py:8
-msgid ""
-"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
-msgstr ""
-"Exempel: '/om/kontakt/'. Se till att ha inledande och avslutande snedsträck."
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Exempel: '/om/kontakt/'. Se till att ha inledande och avslutande snedsträck."
#: contrib/flatpages/models.py:9
msgid "title"
@@ -1128,12 +1051,8 @@ msgid "template name"
msgstr "mallnamn"
#: contrib/flatpages/models.py:13
-msgid ""
-"Example: 'flatpages/contact_page'. If this isn't provided, the system will "
-"use 'flatpages/default'."
-msgstr ""
-"Exempel: 'flatpages/kontaktsida'. Om det här inte fylls i kommer systemet "
-"att använda 'flatpages/default'."
+msgid "Example: 'flatpages/contact_page'. If this isn't provided, the system will use 'flatpages/default'."
+msgstr "Exempel: 'flatpages/kontaktsida'. Om det här inte fylls i kommer systemet att använda 'flatpages/default'."
#: contrib/flatpages/models.py:14
msgid "registration required"
@@ -1141,8 +1060,7 @@ msgstr "registrering krävs"
#: contrib/flatpages/models.py:14
msgid "If this is checked, only logged-in users will be able to view the page."
-msgstr ""
-"Om det här bockas i kommer endast inloggade användare att kunna visa sidan"
+msgstr "Om det här bockas i kommer endast inloggade användare att kunna visa sidan"
#: contrib/flatpages/models.py:18
msgid "flat page"
@@ -1152,7 +1070,8 @@ msgstr "flatsida"
msgid "flat pages"
msgstr "flatsidor"
-#: contrib/auth/models.py:13 contrib/auth/models.py:26
+#: contrib/auth/models.py:13
+#: contrib/auth/models.py:26
msgid "name"
msgstr "namn"
@@ -1161,24 +1080,22 @@ msgid "codename"
msgstr "kodnamn"
#: contrib/auth/models.py:17
-#, fuzzy
msgid "permission"
-msgstr "Rättighet"
+msgstr "rättighet"
-#: contrib/auth/models.py:18 contrib/auth/models.py:27
-#, fuzzy
+#: contrib/auth/models.py:18
+#: contrib/auth/models.py:27
msgid "permissions"
-msgstr "Rättigheter"
+msgstr "rättigheter"
#: contrib/auth/models.py:29
-#, fuzzy
msgid "group"
-msgstr "Grupp"
+msgstr "grupp"
-#: contrib/auth/models.py:30 contrib/auth/models.py:65
-#, fuzzy
+#: contrib/auth/models.py:30
+#: contrib/auth/models.py:65
msgid "groups"
-msgstr "Grupper"
+msgstr "grupper"
#: contrib/auth/models.py:55
msgid "username"
@@ -1229,27 +1146,20 @@ msgid "date joined"
msgstr "registreringsdatum"
#: contrib/auth/models.py:66
-msgid ""
-"In addition to the permissions manually assigned, this user will also get "
-"all permissions granted to each group he/she is in."
-msgstr ""
-"Förutom de rättigheterna som utdelas manuellt så kommer användaren dessutom "
-"få samma rättigheter som de grupper där han/hon är medlem."
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Förutom de rättigheterna som utdelas manuellt så kommer användaren dessutom få samma rättigheter som de grupper där han/hon är medlem."
#: contrib/auth/models.py:67
-#, fuzzy
msgid "user permissions"
-msgstr "Rättigheter"
+msgstr "användarättigheter"
#: contrib/auth/models.py:70
-#, fuzzy
msgid "user"
-msgstr "Användare"
+msgstr "användare"
#: contrib/auth/models.py:71
-#, fuzzy
msgid "users"
-msgstr "Användare"
+msgstr "användare"
#: contrib/auth/models.py:76
msgid "Personal info"
@@ -1268,20 +1178,16 @@ msgid "Groups"
msgstr "Grupper"
#: contrib/auth/models.py:219
-#, fuzzy
msgid "message"
-msgstr "Meddelande"
+msgstr "meddelande"
#: contrib/auth/forms.py:30
-msgid ""
-"Your Web browser doesn't appear to have cookies enabled. Cookies are "
-"required for logging in."
-msgstr ""
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Din webläsare verkar inte stödja cookies. Cookie behövs för att kunna logga in."
#: contrib/contenttypes/models.py:25
-#, fuzzy
msgid "python model class name"
-msgstr "pythonmodulnamn"
+msgstr "python model class namn"
#: contrib/contenttypes/models.py:28
msgid "content type"
@@ -1375,23 +1281,28 @@ msgstr "januari"
msgid "February"
msgstr "februari"
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
msgid "March"
msgstr "mars"
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
msgid "April"
msgstr "april"
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
msgid "May"
msgstr "maj"
-#: utils/dates.py:14 utils/dates.py:27
+#: utils/dates.py:14
+#: utils/dates.py:27
msgid "June"
msgstr "juni"
-#: utils/dates.py:15 utils/dates.py:27
+#: utils/dates.py:15
+#: utils/dates.py:27
msgid "July"
msgstr "juli"
@@ -1416,54 +1327,52 @@ msgid "December"
msgstr "december"
#: utils/dates.py:19
-#, fuzzy
msgid "jan"
-msgstr "och"
+msgstr "jan"
#: utils/dates.py:19
msgid "feb"
-msgstr ""
+msgstr "feb"
#: utils/dates.py:19
msgid "mar"
-msgstr ""
+msgstr "mars"
#: utils/dates.py:19
msgid "apr"
-msgstr ""
+msgstr "apr"
#: utils/dates.py:19
-#, fuzzy
msgid "may"
-msgstr "dag"
+msgstr "maj"
#: utils/dates.py:19
msgid "jun"
-msgstr ""
+msgstr "juni"
#: utils/dates.py:20
msgid "jul"
-msgstr ""
+msgstr "juli"
#: utils/dates.py:20
msgid "aug"
-msgstr ""
+msgstr "aug"
#: utils/dates.py:20
msgid "sep"
-msgstr ""
+msgstr "sept"
#: utils/dates.py:20
msgid "oct"
-msgstr ""
+msgstr "okt"
#: utils/dates.py:20
msgid "nov"
-msgstr ""
+msgstr "nov"
#: utils/dates.py:20
msgid "dec"
-msgstr ""
+msgstr "dec"
#: utils/dates.py:27
msgid "Jan."
@@ -1507,9 +1416,7 @@ msgstr[1] "månader"
#: utils/timesince.py:14
msgid "week"
-msgid_plural "weeks"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "vecka"
#: utils/timesince.py:15
msgid "day"
@@ -1551,7 +1458,7 @@ msgstr "Tyska"
#: conf/global_settings.py:42
msgid "Greek"
-msgstr ""
+msgstr "Grekiska"
#: conf/global_settings.py:43
msgid "English"
@@ -1571,11 +1478,11 @@ msgstr "Galisiska"
#: conf/global_settings.py:47
msgid "Hungarian"
-msgstr ""
+msgstr "Ungerska"
#: conf/global_settings.py:48
msgid "Hebrew"
-msgstr ""
+msgstr "Hebreiska"
#: conf/global_settings.py:49
msgid "Icelandic"
@@ -1587,11 +1494,11 @@ msgstr "Italienska"
#: conf/global_settings.py:51
msgid "Japanese"
-msgstr ""
+msgstr "Japanska"
#: conf/global_settings.py:52
msgid "Dutch"
-msgstr ""
+msgstr "Holländska"
#: conf/global_settings.py:53
msgid "Norwegian"
@@ -1614,7 +1521,6 @@ msgid "Slovak"
msgstr "Slovakiska"
#: conf/global_settings.py:58
-#, fuzzy
msgid "Slovenian"
msgstr "Slovakiska"
@@ -1627,9 +1533,8 @@ msgid "Swedish"
msgstr "Svenska"
#: conf/global_settings.py:61
-#, fuzzy
msgid "Ukrainian"
-msgstr "Brasilianska"
+msgstr "Ukrainska"
#: conf/global_settings.py:62
msgid "Simplified Chinese"
@@ -1637,19 +1542,15 @@ msgstr "Förenklad kinesiska"
#: conf/global_settings.py:63
msgid "Traditional Chinese"
-msgstr ""
+msgstr "Traditionell Kinesiska"
#: core/validators.py:60
msgid "This value must contain only letters, numbers and underscores."
msgstr "Det här värdet får bara innehålla bokstäver, tal och understräck."
#: core/validators.py:64
-#, fuzzy
-msgid ""
-"This value must contain only letters, numbers, underscores, dashes or "
-"slashes."
-msgstr ""
-"Det här värdet får bara innehålla bokstäver, tal, understräck och snedsträck"
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Det här värdet får bara innehålla bokstäver, siffror, understräck, sträck och snedsträck"
#: core/validators.py:72
msgid "Uppercase letters are not allowed here."
@@ -1699,7 +1600,8 @@ msgstr "Fyll i ett giltigt datum i formatet Ã…Ã…Ã…Ã…-MM-DD."
msgid "Enter a valid time in HH:MM format."
msgstr "Fyll i en giltig tid i formatet TT:MM"
-#: core/validators.py:132 db/models/fields/__init__.py:468
+#: core/validators.py:132
+#: db/models/fields/__init__.py:468
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "Fyll i en giltig tidpunkt i formatet Ã…Ã…Ã…Ã…-MM-DD TT:MM"
@@ -1708,12 +1610,8 @@ msgid "Enter a valid e-mail address."
msgstr "Fyll i en giltig e-postadress."
#: core/validators.py:148
-msgid ""
-"Upload a valid image. The file you uploaded was either not an image or a "
-"corrupted image."
-msgstr ""
-"Ladda upp en giltig bild. Filen du laddade upp var antingen inte en bild, "
-"eller så var det en korrupt bild."
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Ladda upp en giltig bild. Filen du laddade upp var antingen inte en bild, eller så var det en korrupt bild."
#: core/validators.py:155
#, python-format
@@ -1723,9 +1621,7 @@ msgstr "Adressen %s pekar inte till en giltig bild."
#: core/validators.py:159
#, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
-msgstr ""
-"Telefonnummer måste vara i det amerikanska formatet XXX-XXX-XXXX. \"%s\" är "
-"ogiltigt."
+msgstr "Telefonnummer måste vara i det amerikanska formatet XXX-XXX-XXXX. \"%s\" är ogiltigt."
#: core/validators.py:167
#, python-format
@@ -1755,7 +1651,8 @@ msgstr "Missformad XML: %s"
msgid "Invalid URL: %s"
msgstr "Felaktig URL: %s"
-#: core/validators.py:206 core/validators.py:208
+#: core/validators.py:206
+#: core/validators.py:208
#, python-format
msgid "The URL %s is a broken link."
msgstr "URL:en %s är en trasig länk."
@@ -1780,7 +1677,8 @@ msgstr "Det här fältet måste matcha fältet '%s'."
msgid "Please enter something for at least one field."
msgstr "Fyll i något i minst ett fält."
-#: core/validators.py:264 core/validators.py:275
+#: core/validators.py:264
+#: core/validators.py:275
msgid "Please enter both fields or leave them both empty."
msgstr "Fyll antingen i båda fälten, eller lämna båda tomma"
@@ -1810,16 +1708,14 @@ msgstr "Fyll i ett giltigt decimaltal."
#: core/validators.py:349
#, python-format
msgid "Please enter a valid decimal number with at most %s total digit."
-msgid_plural ""
-"Please enter a valid decimal number with at most %s total digits."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
msgstr[0] "Fyll i ett giltigt decimaltal med mindre än %s siffra totalt."
msgstr[1] "Fyll i ett giltigt decimaltal med mindre än %s siffror totalt."
#: core/validators.py:352
#, 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."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
msgstr[0] "Fyll i ett giltigt decimaltal med som mest %s decimalsiffra."
msgstr[1] "Fyll i ett giltigt decimaltal med som mest %s decimalsiffror."
@@ -1848,96 +1744,68 @@ msgstr "Kunde inte hämta något från %s."
#: core/validators.py:429
#, python-format
-msgid ""
-"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
-msgstr ""
-"Adressen %(url)s returnerade det ogiltiga innehållstyphuvudet (Content-Type "
-"header) '%(contenttype)s'"
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "Adressen %(url)s returnerade det ogiltiga innehållstyphuvudet (Content-Type header) '%(contenttype)s'"
#: core/validators.py:462
#, python-format
-msgid ""
-"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
-"\"%(start)s\".)"
-msgstr ""
-"Var god avsluta den oavslutade taggen %(tag)s på rad %(line)s. (Raden börjar "
-"med \"%(start)s\".)"
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Var god avsluta den oavslutade taggen %(tag)s på rad %(line)s. (Raden börjar med \"%(start)s\".)"
#: core/validators.py:466
#, python-format
-msgid ""
-"Some text starting on line %(line)s is not allowed in that context. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"En del text från rad %(line)s är inte tillåtet i det sammanhanget. (Raden "
-"börjar med \"%(start)s\".)"
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "En del text från rad %(line)s är inte tillåtet i det sammanhanget. (Raden börjar med \"%(start)s\".)"
#: core/validators.py:471
#, python-format
-msgid ""
-"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
-"(start)s\".)"
-msgstr ""
-"\"%(attr)s\" på rad %(line)s är inte ett gilltigt attribut. (Raden startar "
-"med \"%(start)s\".)"
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" på rad %(line)s är inte ett gilltigt attribut. (Raden startar med \"%(start)s\".)"
#: core/validators.py:476
#, python-format
-msgid ""
-"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
-"(start)s\".)"
-msgstr ""
-"\"<%(tag)s>\" på rad %(line)s är inte en giltig tagg. (Raden börjar med \"%"
-"(start)s\".)"
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "\"<%(tag)s>\" på rad %(line)s är inte en giltig tagg. (Raden börjar med \"%(start)s\".)"
#: core/validators.py:480
#, python-format
-msgid ""
-"A tag on line %(line)s is missing one or more required attributes. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"En tagg på rad %(line)s saknar en eller flera nödvändiga attribut. (Raden "
-"börjar med \"%(start)s\".)"
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "En tagg på rad %(line)s saknar en eller flera nödvändiga attribut. (Raden börjar med \"%(start)s\".)"
#: core/validators.py:485
#, python-format
-msgid ""
-"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"Attributet \"%(attr)s\" på rad %(line)s har ett ogiltigt värde. (Raden "
-"börjar med \"%(start)s\".)"
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "Attributet \"%(attr)s\" på rad %(line)s har ett ogiltigt värde. (Raden börjar med \"%(start)s\".)"
#: db/models/manipulators.py:302
-#, fuzzy, python-format
+#, python-format
msgid "%(object)s with this %(type)s already exists for the given %(field)s."
-msgstr "%(optname)s med det här %(fieldname)s finns redan."
+msgstr "%(object)s med typen %(type)s finns redan för %(field)s."
#: db/models/fields/__init__.py:40
#, python-format
msgid "%(optname)s with this %(fieldname)s already exists."
msgstr "%(optname)s med det här %(fieldname)s finns redan."
-#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
-#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
+#: db/models/fields/__init__.py:114
+#: db/models/fields/__init__.py:265
+#: db/models/fields/__init__.py:542
+#: db/models/fields/__init__.py:553
#: forms/__init__.py:346
msgid "This field is required."
msgstr "Det här fältet är obligatoriskt."
#: db/models/fields/__init__.py:337
-#, fuzzy
msgid "This value must be an integer."
-msgstr "Det här värdet måste vara en multipel av %s."
+msgstr "Det här värdet måste vara ett heltal"
#: db/models/fields/__init__.py:369
-#, fuzzy
msgid "This value must be either True or False."
-msgstr "Det här värdet måste vara en multipel av %s."
+msgstr "Det här värdet måste vara True eller False"
#: db/models/fields/__init__.py:385
-#, fuzzy
msgid "This field cannot be null."
-msgstr "Det här fältet är ogiltigt."
+msgstr "Det här fältet får inte vara null"
#: db/models/fields/__init__.py:562
msgid "Enter a valid filename."
@@ -1949,25 +1817,19 @@ msgid "Please enter a valid %s."
msgstr "Var god fyll i ett giltigt %s."
#: db/models/fields/related.py:579
-#, fuzzy
msgid "Separate multiple IDs with commas."
-msgstr " Separera flera ID:n med kommatecken."
+msgstr "Separera flera ID:n med kommatecken."
#: db/models/fields/related.py:581
-#, fuzzy
-msgid ""
-"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
-msgstr ""
-" Håll ner \"Control\", eller \"Command\" på en Mac, för att välja mer än en."
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Håll ner \"Control\", eller \"Command\" på en Mac, för att välja mer än en."
#: db/models/fields/related.py:625
#, 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."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
msgstr[0] "Var god och fyll giltiga %(self)s ID. Värdet %(value)r är ogiltigt."
-msgstr[1] ""
-"Var god och fyll giltiga %(self)s ID. Värdena %(value)r är ogiltigt."
+msgstr[1] "Var god och fyll giltiga %(self)s ID. Värdena %(value)r är ogiltigt."
#: forms/__init__.py:380
#, python-format
@@ -1980,7 +1842,9 @@ msgstr[1] "Se till att din text är kortare än %s tecken."
msgid "Line breaks are not allowed here."
msgstr "Radbrytningar är inte tillåtna här."
-#: forms/__init__.py:480 forms/__init__.py:551 forms/__init__.py:589
+#: forms/__init__.py:480
+#: forms/__init__.py:551
+#: forms/__init__.py:589
#, python-format
msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
msgstr "Välj ett giltigt alternativ. '%(data)s' finns inte bland %(choices)s"
@@ -2007,22 +1871,18 @@ msgstr "ja,nej,kanske"
#~ msgid "Comment"
#~ msgstr "Kommentar"
-
#~ msgid "Comments"
#~ msgstr "Kommentarer"
-
#~ msgid "String (up to 50)"
#~ msgstr "Sträng (upp till 50)"
-
#~ msgid "label"
#~ msgstr "etikett"
-
#~ msgid "package"
#~ msgstr "paket"
-
#~ msgid "packages"
#~ msgstr "paket"
#, fuzzy
#~ msgid "count"
#~ msgstr "innehåll"
+
diff --git a/django/contrib/admin/media/js/urlify.js b/django/contrib/admin/media/js/urlify.js
index 90d11c435a..9b87113628 100644
--- a/django/contrib/admin/media/js/urlify.js
+++ b/django/contrib/admin/media/js/urlify.js
@@ -7,7 +7,7 @@ function URLify(s, num_chars) {
"with"];
r = new RegExp('\\b(' + removelist.join('|') + ')\\b', 'gi');
s = s.replace(r, '');
- s = s.replace(/[^-A-Z0-9\s]/gi, ''); // remove unneeded chars
+ s = s.replace(/[^-\w\s]/g, ''); // remove unneeded chars
s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
s = s.replace(/[-\s]+/g, '-'); // convert spaces to hyphens
s = s.toLowerCase(); // convert to lowercase
diff --git a/django/contrib/localflavor/__init__.py b/django/contrib/localflavor/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/django/contrib/localflavor/uk/__init__.py b/django/contrib/localflavor/uk/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/django/contrib/localflavor/uk/forms.py b/django/contrib/localflavor/uk/forms.py
new file mode 100644
index 0000000000..ddd033e1e0
--- /dev/null
+++ b/django/contrib/localflavor/uk/forms.py
@@ -0,0 +1,19 @@
+"""
+UK-specific Form helpers
+"""
+
+from django.newforms.fields import RegexField
+from django.utils.translation import gettext
+
+class UKPostcodeField(RegexField):
+ """
+ A form field that validates its input is a UK postcode.
+
+ The regular expression used is sourced from the schema for British Standard
+ BS7666 address types: http://www.govtalk.gov.uk/gdsc/schemas/bs7666-v2-0.xsd
+ """
+ def __init__(self, *args, **kwargs):
+ super(UKPostcodeField, self).__init__(r'^(GIR 0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HIK-Y][0-9](|[0-9]|[ABEHMNPRVWXY]))|[0-9][A-HJKSTUW]) [0-9][ABD-HJLNP-UW-Z]{2})$',
+ max_length=None, min_length=None,
+ error_message=gettext(u'Enter a postcode. A space is required between the two postcode parts.'),
+ *args, **kwargs)
diff --git a/django/contrib/localflavor/usa/__init__.py b/django/contrib/localflavor/usa/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/django/contrib/localflavor/usa/forms.py b/django/contrib/localflavor/usa/forms.py
new file mode 100644
index 0000000000..4d2cb5e90a
--- /dev/null
+++ b/django/contrib/localflavor/usa/forms.py
@@ -0,0 +1,44 @@
+"""
+USA-specific Form helpers
+"""
+
+from django.newforms import ValidationError
+from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES
+from django.utils.translation import gettext
+
+class USZipCodeField(RegexField):
+ def __init__(self, *args, **kwargs):
+ super(USZipCodeField, self).__init__(r'^\d{5}(?:-\d{4})?$',
+ max_length=None, min_length=None,
+ error_message=gettext(u'Enter a zip code in the format XXXXX or XXXXX-XXXX.'),
+ *args, **kwargs)
+
+class USStateField(Field):
+ """
+ A form field that validates its input is a U.S. state name or abbreviation.
+ It normalizes the input to the standard two-leter postal service
+ abbreviation for the given state.
+ """
+ def clean(self, value):
+ from us_states import STATES_NORMALIZED # relative import
+ super(USStateField, self).clean(value)
+ if value in EMPTY_VALUES:
+ return u''
+ try:
+ value = value.strip().lower()
+ except AttributeError:
+ pass
+ else:
+ try:
+ return STATES_NORMALIZED[value.strip().lower()].decode('ascii')
+ except KeyError:
+ pass
+ raise ValidationError(u'Enter a U.S. state or territory.')
+
+class USStateSelect(Select):
+ """
+ A Select widget that uses a list of U.S. states/territories as its choices.
+ """
+ def __init__(self, attrs=None):
+ from us_states import STATE_CHOICES # relative import
+ super(USStateSelect, self).__init__(attrs, choices=STATE_CHOICES)
diff --git a/django/contrib/localflavor/usa/us_states.py b/django/contrib/localflavor/usa/us_states.py
new file mode 100644
index 0000000000..5333763645
--- /dev/null
+++ b/django/contrib/localflavor/usa/us_states.py
@@ -0,0 +1,238 @@
+"""
+A mapping of state misspellings/abbreviations to normalized abbreviations, and
+an alphabetical list of states for use as `choices` in a formfield.
+
+This exists in this standalone file so that it's only imported into memory
+when explicitly needed.
+"""
+
+STATE_CHOICES = (
+ ('AL', 'Alabama'),
+ ('AK', 'Alaska'),
+ ('AS', 'American Samoa'),
+ ('AZ', 'Arizona'),
+ ('AR', 'Arkansas'),
+ ('CA', 'California'),
+ ('CO', 'Colorado'),
+ ('CT', 'Connecticut'),
+ ('DE', 'Deleware'),
+ ('DC', 'District of Columbia'),
+ ('FM', 'Federated States of Micronesia'),
+ ('FL', 'Florida'),
+ ('GA', 'Georgia'),
+ ('GU', 'Guam'),
+ ('HI', 'Hawaii'),
+ ('ID', 'Idaho'),
+ ('IL', 'Illinois'),
+ ('IN', 'Indiana'),
+ ('IA', 'Iowa'),
+ ('KS', 'Kansas'),
+ ('KY', 'Kentucky'),
+ ('LA', 'Louisiana'),
+ ('ME', 'Maine'),
+ ('MH', 'Marshall Islands'),
+ ('MD', 'Maryland'),
+ ('MI', 'Michigan'),
+ ('MN', 'Minnesota'),
+ ('MS', 'Mississippi'),
+ ('MO', 'Missouri'),
+ ('MT', 'Montana'),
+ ('NE', 'Nebraska'),
+ ('NV', 'Nevada'),
+ ('NH', 'New Hampshire'),
+ ('NJ', 'New Jersey'),
+ ('NM', 'New Mexico'),
+ ('NY', 'New York'),
+ ('NC', 'North Carolina'),
+ ('ND', 'North Dakota'),
+ ('MP', 'Northern Mariana Islands'),
+ ('OH', 'Ohio'),
+ ('OK', 'Oklahoma'),
+ ('OR', 'Oregon'),
+ ('PW', 'Palau'),
+ ('PA', 'Pennsylvania'),
+ ('PR', 'Puerto Rico'),
+ ('RI', 'Rhode Island'),
+ ('SC', 'South Carolina'),
+ ('SD', 'South Dakota'),
+ ('TN', 'Tennessee'),
+ ('TX', 'Texas'),
+ ('UT', 'Utah'),
+ ('VT', 'Vermont'),
+ ('VI', 'Virgin Islands'),
+ ('VA', 'Virginia'),
+ ('WA', 'Washington'),
+ ('WV', 'West Virginia'),
+ ('WI', 'Wisconsin'),
+ ('WY', 'Wyoming'),
+)
+
+STATES_NORMALIZED = {
+ 'ak': 'AK',
+ 'al': 'AL',
+ 'ala': 'AL',
+ 'alabama': 'AL',
+ 'alaska': 'AK',
+ 'american samao': 'AS',
+ 'american samoa': 'AS',
+ 'ar': 'AR',
+ 'ariz': 'AZ',
+ 'arizona': 'AZ',
+ 'ark': 'AR',
+ 'arkansas': 'AR',
+ 'as': 'AS',
+ 'az': 'AZ',
+ 'ca': 'CA',
+ 'calf': 'CA',
+ 'calif': 'CA',
+ 'california': 'CA',
+ 'co': 'CO',
+ 'colo': 'CO',
+ 'colorado': 'CO',
+ 'conn': 'CT',
+ 'connecticut': 'CT',
+ 'ct': 'CT',
+ 'dc': 'DC',
+ 'de': 'DE',
+ 'del': 'DE',
+ 'delaware': 'DE',
+ 'district of columbia': 'DC',
+ 'federated states of micronesia': 'FM',
+ 'fl': 'FL',
+ 'fla': 'FL',
+ 'florida': 'FL',
+ 'fm': 'FM',
+ 'ga': 'GA',
+ 'georgia': 'GA',
+ 'gu': 'GU',
+ 'guam': 'GU',
+ 'hawaii': 'HI',
+ 'hi': 'HI',
+ 'ia': 'IA',
+ 'id': 'ID',
+ 'idaho': 'ID',
+ 'il': 'IL',
+ 'ill': 'IL',
+ 'illinois': 'IL',
+ 'in': 'IN',
+ 'ind': 'IN',
+ 'indiana': 'IN',
+ 'iowa': 'IA',
+ 'kan': 'KS',
+ 'kans': 'KS',
+ 'kansas': 'KS',
+ 'kentucky': 'KY',
+ 'ks': 'KS',
+ 'ky': 'KY',
+ 'la': 'LA',
+ 'louisiana': 'LA',
+ 'ma': 'MA',
+ 'maine': 'ME',
+ 'marianas islands': 'MP',
+ 'marianas islands of the pacific': 'MP',
+ 'marinas islands of the pacific': 'MP',
+ 'maryland': 'MD',
+ 'mass': 'MA',
+ 'massachusetts': 'MA',
+ 'massachussetts': 'MA',
+ 'md': 'MD',
+ 'me': 'ME',
+ 'mi': 'MI',
+ 'mich': 'MI',
+ 'michigan': 'MI',
+ 'micronesia': 'FM',
+ 'minn': 'MN',
+ 'minnesota': 'MN',
+ 'miss': 'MS',
+ 'mississippi': 'MS',
+ 'missouri': 'MO',
+ 'mn': 'MN',
+ 'mo': 'MO',
+ 'mont': 'MT',
+ 'montana': 'MT',
+ 'mp': 'MP',
+ 'ms': 'MS',
+ 'mt': 'MT',
+ 'n d': 'ND',
+ 'n dak': 'ND',
+ 'n h': 'NH',
+ 'n j': 'NJ',
+ 'n m': 'NM',
+ 'n mex': 'NM',
+ 'nc': 'NC',
+ 'nd': 'ND',
+ 'ne': 'NE',
+ 'neb': 'NE',
+ 'nebr': 'NE',
+ 'nebraska': 'NE',
+ 'nev': 'NV',
+ 'nevada': 'NV',
+ 'new hampshire': 'NH',
+ 'new jersey': 'NJ',
+ 'new mexico': 'NM',
+ 'new york': 'NY',
+ 'nh': 'NH',
+ 'nj': 'NJ',
+ 'nm': 'NM',
+ 'nmex': 'NM',
+ 'north carolina': 'NC',
+ 'north dakota': 'ND',
+ 'northern mariana islands': 'MP',
+ 'nv': 'NV',
+ 'ny': 'NY',
+ 'oh': 'OH',
+ 'ohio': 'OH',
+ 'ok': 'OK',
+ 'okla': 'OK',
+ 'oklahoma': 'OK',
+ 'or': 'OR',
+ 'ore': 'OR',
+ 'oreg': 'OR',
+ 'oregon': 'OR',
+ 'pa': 'PA',
+ 'penn': 'PA',
+ 'pennsylvania': 'PA',
+ 'pr': 'PR',
+ 'puerto rico': 'PR',
+ 'rhode island': 'RI',
+ 'ri': 'RI',
+ 's dak': 'SD',
+ 'sc': 'SC',
+ 'sd': 'SD',
+ 'sdak': 'SD',
+ 'south carolina': 'SC',
+ 'south dakota': 'SD',
+ 'tenn': 'TN',
+ 'tennessee': 'TN',
+ 'territory of hawaii': 'HI',
+ 'tex': 'TX',
+ 'texas': 'TX',
+ 'tn': 'TN',
+ 'tx': 'TX',
+ 'us virgin islands': 'VI',
+ 'usvi': 'VI',
+ 'ut': 'UT',
+ 'utah': 'UT',
+ 'va': 'VA',
+ 'vermont': 'VT',
+ 'vi': 'VI',
+ 'viginia': 'VA',
+ 'virgin islands': 'VI',
+ 'virgina': 'VA',
+ 'virginia': 'VA',
+ 'vt': 'VT',
+ 'w va': 'WV',
+ 'wa': 'WA',
+ 'wash': 'WA',
+ 'washington': 'WA',
+ 'west virginia': 'WV',
+ 'wi': 'WI',
+ 'wis': 'WI',
+ 'wisc': 'WI',
+ 'wisconsin': 'WI',
+ 'wv': 'WV',
+ 'wva': 'WV',
+ 'wy': 'WY',
+ 'wyo': 'WY',
+ 'wyoming': 'WY',
+}
\ No newline at end of file
diff --git a/django/core/mail.py b/django/core/mail.py
index a5af6e610f..cc99659adb 100644
--- a/django/core/mail.py
+++ b/django/core/mail.py
@@ -8,7 +8,18 @@ import socket
import time
import random
-DNS_NAME = socket.getfqdn() # Cache the hostname
+# 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):
+ def __str__(self):
+ return self.get_fqdn()
+
+ def get_fqdn(self):
+ if not hasattr(self, '_fqdn'):
+ self._fqdn = socket.getfqdn()
+ return self._fqdn
+
+DNS_NAME = CachedDnsName()
class BadHeaderError(ValueError):
pass
diff --git a/django/core/management.py b/django/core/management.py
index 74e8016fc8..3ec25889bf 100644
--- a/django/core/management.py
+++ b/django/core/management.py
@@ -1177,6 +1177,11 @@ createcachetable.args = "[tablename]"
def run_shell(use_plain=False):
"Runs a Python interactive interpreter. Tries to use IPython, if it's available."
+ # XXX: (Temporary) workaround for ticket #1796: force early loading of all
+ # models from installed apps.
+ from django.db.models.loading import get_models
+ loaded_models = get_models()
+
try:
if use_plain:
# Don't bother loading IPython, because the user wants plain Python.
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 04b1ebb418..0f1390ed57 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -161,7 +161,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', 'year', 'month', 'day', 'search'):
+ if lookup_type in ('exact', 'gt', 'gte', 'lt', 'lte', 'month', 'day', 'search'):
return [value]
elif lookup_type in ('range', 'in'):
return value
@@ -175,7 +175,13 @@ class Field(object):
return ["%%%s" % prep_for_like_query(value)]
elif lookup_type == 'isnull':
return []
- raise TypeError, "Field has invalid lookup: %s" % lookup_type
+ elif lookup_type == 'year':
+ try:
+ value = int(value)
+ except ValueError:
+ raise ValueError("The __year lookup type requires an integer argument")
+ return ['%s-01-01 00:00:00' % value, '%s-12-31 23:59:59.999999' % value]
+ raise TypeError("Field has invalid lookup: %s" % lookup_type)
def has_default(self):
"Returns a boolean of whether this field has a default value."
diff --git a/django/db/models/query.py b/django/db/models/query.py
index 8a784be7c8..2209521d93 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -198,17 +198,17 @@ class QuerySet(object):
counter = self._clone()
counter._order_by = ()
counter._select_related = False
-
+
offset = counter._offset
limit = counter._limit
counter._offset = None
counter._limit = None
-
+
try:
select, sql, params = counter._get_sql_clause()
except EmptyResultSet:
return 0
-
+
cursor = connection.cursor()
if self._distinct:
id_col = "%s.%s" % (backend.quote_name(self.model._meta.db_table),
@@ -553,7 +553,7 @@ class ValuesQuerySet(QuerySet):
else: # Default to all fields.
columns = [f.column for f in self.model._meta.fields]
field_names = [f.attname for f in self.model._meta.fields]
-
+
select = ['%s.%s' % (backend.quote_name(self.model._meta.db_table), backend.quote_name(c)) for c in columns]
cursor = connection.cursor()
cursor.execute("SELECT " + (self._distinct and "DISTINCT " or "") + ",".join(select) + sql, params)
@@ -576,12 +576,12 @@ class DateQuerySet(QuerySet):
if self._field.null:
self._where.append('%s.%s IS NOT NULL' % \
(backend.quote_name(self.model._meta.db_table), backend.quote_name(self._field.column)))
-
+
try:
select, sql, params = self._get_sql_clause()
except EmptyResultSet:
raise StopIteration
-
+
sql = 'SELECT %s %s GROUP BY 1 ORDER BY 1 %s' % \
(backend.get_date_trunc_sql(self._kind, '%s.%s' % (backend.quote_name(self.model._meta.db_table),
backend.quote_name(self._field.column))), sql, self._order)
@@ -598,15 +598,15 @@ class DateQuerySet(QuerySet):
c._kind = self._kind
c._order = self._order
return c
-
+
class EmptyQuerySet(QuerySet):
def __init__(self, model=None):
super(EmptyQuerySet, self).__init__(model)
self._result_cache = []
-
+
def count(self):
return 0
-
+
def delete(self):
pass
@@ -708,9 +708,9 @@ def get_where_clause(lookup_type, table_prefix, field_name, value):
return '%s%s IN (%s)' % (table_prefix, field_name, in_string)
else:
raise EmptyResultSet
- elif lookup_type == 'range':
+ elif lookup_type in ('range', 'year'):
return '%s%s BETWEEN %%s AND %%s' % (table_prefix, field_name)
- elif lookup_type in ('year', 'month', 'day'):
+ elif lookup_type in ('month', 'day'):
return "%s = %%s" % backend.get_date_extract_sql(lookup_type, table_prefix + field_name)
elif lookup_type == 'isnull':
return "%s%s IS %sNULL" % (table_prefix, field_name, (not value and 'NOT ' or ''))
@@ -791,7 +791,7 @@ def parse_lookup(kwarg_items, opts):
if len(path) < 1:
raise TypeError, "Cannot parse keyword query %r" % kwarg
-
+
if value is None:
# Interpret '__exact=None' as the sql '= NULL'; otherwise, reject
# all uses of None as a query value.
@@ -1007,7 +1007,7 @@ def delete_objects(seen_objs):
pk_list[offset:offset+GET_ITERATOR_CHUNK_SIZE])
for f in cls._meta.many_to_many:
if isinstance(f, GenericRelation):
- from django.contrib.contenttypes.models import ContentType
+ from django.contrib.contenttypes.models import ContentType
query_extra = 'AND %s=%%s' % f.rel.to._meta.get_field(f.content_type_field_name).column
args_extra = [ContentType.objects.get_for_model(cls).id]
else:
diff --git a/django/db/models/related.py b/django/db/models/related.py
index b76da34079..a63f09b745 100644
--- a/django/db/models/related.py
+++ b/django/db/models/related.py
@@ -104,12 +104,12 @@ class RelatedObject(object):
attr = getattr(manipulator.original_object, self.get_accessor_name())
count = attr.count()
count += self.field.rel.num_extra_on_change
- if self.field.rel.min_num_in_admin:
- count = max(count, self.field.rel.min_num_in_admin)
- if self.field.rel.max_num_in_admin:
- count = min(count, self.field.rel.max_num_in_admin)
else:
count = self.field.rel.num_in_admin
+ if self.field.rel.min_num_in_admin:
+ count = max(count, self.field.rel.min_num_in_admin)
+ if self.field.rel.max_num_in_admin:
+ count = min(count, self.field.rel.max_num_in_admin)
else:
count = 1
diff --git a/django/newforms/fields.py b/django/newforms/fields.py
index 1391bd1b2f..0f082b9ee3 100644
--- a/django/newforms/fields.py
+++ b/django/newforms/fields.py
@@ -51,7 +51,7 @@ class Field(object):
if label is not None:
label = smart_unicode(label)
self.required, self.label, self.initial = required, label, initial
- self.help_text = help_text
+ self.help_text = smart_unicode(help_text or '')
widget = widget or self.widget
if isinstance(widget, type):
widget = widget()
diff --git a/django/newforms/forms.py b/django/newforms/forms.py
index 7e29941bef..2b3aa97428 100644
--- a/django/newforms/forms.py
+++ b/django/newforms/forms.py
@@ -7,6 +7,7 @@ from django.utils.html import escape
from fields import Field
from widgets import TextInput, Textarea, HiddenInput, MultipleHiddenInput
from util import flatatt, StrAndUnicode, ErrorDict, ErrorList, ValidationError
+import copy
__all__ = ('BaseForm', 'Form')
@@ -27,13 +28,24 @@ class SortedDictFromList(SortedDict):
dict.__init__(self, dict(data))
def copy(self):
- return SortedDictFromList(self.items())
+ return SortedDictFromList([(k, copy.copy(v)) for k, v in self.items()])
class DeclarativeFieldsMetaclass(type):
- "Metaclass that converts Field attributes to a dictionary called 'base_fields'."
+ """
+ Metaclass that converts Field attributes to a dictionary called
+ 'base_fields', taking into account parent class 'base_fields' as well.
+ """
def __new__(cls, name, bases, attrs):
fields = [(field_name, attrs.pop(field_name)) for field_name, obj in attrs.items() if isinstance(obj, Field)]
fields.sort(lambda x, y: cmp(x[1].creation_counter, y[1].creation_counter))
+
+ # If this class is subclassing another Form, add that Form's fields.
+ # Note that we loop over the bases in *reverse*. This is necessary in
+ # order to preserve the correct order of fields.
+ for base in bases[::-1]:
+ if hasattr(base, 'base_fields'):
+ fields = base.base_fields.items() + fields
+
attrs['base_fields'] = SortedDictFromList(fields)
return type.__new__(cls, name, bases, attrs)
@@ -49,6 +61,7 @@ class BaseForm(StrAndUnicode):
self.prefix = prefix
self.initial = initial or {}
self.__errors = None # Stores the errors after clean() has been called.
+
# The base_fields class attribute is the *class-wide* definition of
# fields. Because a particular *instance* of the class might want to
# alter self.fields, we create self.fields here by copying base_fields.
@@ -100,7 +113,7 @@ class BaseForm(StrAndUnicode):
output, hidden_fields = [], []
for name, field in self.fields.items():
bf = BoundField(self, field, name)
- bf_errors = bf.errors # Cache in local variable.
+ bf_errors = ErrorList([escape(error) for error in bf.errors]) # Escape and cache in local variable.
if bf.is_hidden:
if bf_errors:
top_errors.extend(['(Hidden field %s) %s' % (name, e) for e in bf_errors])
@@ -205,6 +218,7 @@ class BoundField(StrAndUnicode):
self.label = pretty_name(name)
else:
self.label = self.field.label
+ self.help_text = field.help_text or ''
def __unicode__(self):
"Renders this field as an HTML widget."
diff --git a/django/newforms/util.py b/django/newforms/util.py
index 2fec9e4e2e..51a8efdde2 100644
--- a/django/newforms/util.py
+++ b/django/newforms/util.py
@@ -7,7 +7,10 @@ flatatt = lambda attrs: u''.join([u' %s="%s"' % (k, escape(v)) for k, v in attrs
def smart_unicode(s):
if not isinstance(s, basestring):
- s = unicode(str(s))
+ if hasattr(s, '__unicode__'):
+ s = unicode(s)
+ else:
+ s = unicode(str(s), settings.DEFAULT_CHARSET)
elif not isinstance(s, unicode):
s = unicode(s, settings.DEFAULT_CHARSET)
return s
diff --git a/django/newforms/widgets.py b/django/newforms/widgets.py
index 585e12cc18..18bba31897 100644
--- a/django/newforms/widgets.py
+++ b/django/newforms/widgets.py
@@ -81,6 +81,14 @@ class TextInput(Input):
class PasswordInput(Input):
input_type = 'password'
+ def __init__(self, attrs=None, render_value=True):
+ self.attrs = attrs or {}
+ self.render_value = render_value
+
+ def render(self, name, value, attrs=None):
+ if not self.render_value: value=None
+ return super(PasswordInput, self).render(name, value, attrs)
+
class HiddenInput(Input):
input_type = 'hidden'
is_hidden = True
diff --git a/django/test/client.py b/django/test/client.py
index ca1a04e659..682dd01261 100644
--- a/django/test/client.py
+++ b/django/test/client.py
@@ -1,5 +1,6 @@
import sys
from cStringIO import StringIO
+from urlparse import urlparse
from django.conf import settings
from django.core.handlers.base import BaseHandler
from django.core.handlers.wsgi import WSGIRequest
@@ -9,6 +10,9 @@ from django.http import urlencode, SimpleCookie
from django.test import signals
from django.utils.functional import curry
+BOUNDARY = 'BoUnDaRyStRiNg'
+MULTIPART_CONTENT = 'multipart/form-data; boundary=%s' % BOUNDARY
+
class ClientHandler(BaseHandler):
"""
A HTTP Handler that can be used for testing purposes.
@@ -184,19 +188,20 @@ class Client:
return self.request(**r)
- def post(self, path, data={}, **extra):
+ def post(self, path, data={}, content_type=MULTIPART_CONTENT, **extra):
"Request a response from the server using POST."
- BOUNDARY = 'BoUnDaRyStRiNg'
+ if content_type is MULTIPART_CONTENT:
+ post_data = encode_multipart(BOUNDARY, data)
+ else:
+ post_data = data
- encoded = encode_multipart(BOUNDARY, data)
- stream = StringIO(encoded)
r = {
- 'CONTENT_LENGTH': len(encoded),
- 'CONTENT_TYPE': 'multipart/form-data; boundary=%s' % BOUNDARY,
+ 'CONTENT_LENGTH': len(post_data),
+ 'CONTENT_TYPE': content_type,
'PATH_INFO': path,
'REQUEST_METHOD': 'POST',
- 'wsgi.input': stream,
+ 'wsgi.input': StringIO(post_data),
}
r.update(extra)
@@ -218,7 +223,7 @@ class Client:
if response.status_code != 302:
return False
- login_path, data = response['Location'].split('?')
+ _, _, login_path, _, data, _= urlparse(response['Location'])
next = data.split('=')[1]
# Second, GET the login page; required to set up cookies
@@ -235,7 +240,8 @@ class Client:
response = self.post(login_path, data=form_data, **extra)
# Login page should 302 redirect to the originally requested page
- if response.status_code != 302 or response['Location'] != path:
+ if (response.status_code != 302 or
+ urlparse(response['Location'])[2] != path):
return False
# Since we are logged in, request the actual page again
diff --git a/django/test/simple.py b/django/test/simple.py
index 88e6b49925..0cecc6b4fc 100644
--- a/django/test/simple.py
+++ b/django/test/simple.py
@@ -1,6 +1,5 @@
import unittest, doctest
from django.conf import settings
-from django.core import management
from django.test.utils import setup_test_environment, teardown_test_environment
from django.test.utils import create_test_db, destroy_test_db
from django.test.testcases import OutputChecker, DocTestRunner
@@ -78,7 +77,6 @@ def run_tests(module_list, verbosity=1, extra_tests=[]):
old_name = settings.DATABASE_NAME
create_test_db(verbosity)
- management.syncdb(verbosity, interactive=False)
unittest.TextTestRunner(verbosity=verbosity).run(suite)
destroy_test_db(old_name, verbosity)
diff --git a/django/test/utils.py b/django/test/utils.py
index 039a6dd7a2..9939e36fa4 100644
--- a/django/test/utils.py
+++ b/django/test/utils.py
@@ -1,6 +1,7 @@
import sys, time
from django.conf import settings
from django.db import connection, transaction, backend
+from django.core import management
from django.dispatch import dispatcher
from django.test import signals
from django.template import Template
@@ -84,6 +85,8 @@ def create_test_db(verbosity=1, autoclobber=False):
connection.close()
settings.DATABASE_NAME = TEST_DATABASE_NAME
+ management.syncdb(verbosity, interactive=False)
+
# Get a cursor (even though we don't need one yet). This has
# the side effect of initializing the test database.
cursor = connection.cursor()
diff --git a/docs/add_ons.txt b/docs/add_ons.txt
index d937eb2141..1756fe5720 100644
--- a/docs/add_ons.txt
+++ b/docs/add_ons.txt
@@ -139,6 +139,15 @@ See the `flatpages documentation`_.
.. _flatpages documentation: ../flatpages/
+localflavor
+===========
+
+**New in Django development version**
+
+A collection of various Django snippets that are useful only for a particular
+country or culture. For example, ``django.contrib.localflavor.usa.forms``
+contains a ``USZipCodeField`` that you can use to validate U.S. zip codes.
+
markup
======
diff --git a/docs/model-api.txt b/docs/model-api.txt
index 8abd88f7ec..0a10918d54 100644
--- a/docs/model-api.txt
+++ b/docs/model-api.txt
@@ -874,8 +874,8 @@ the relationship should work. All are optional:
force Django to add the descriptor for the reverse
relationship, allowing ``ManyToMany`` relationships to be
non-symmetrical.
-
- ``db_table`` The name of the table to create for storing the many-to-many
+
+ ``db_table`` The name of the table to create for storing the many-to-many
data. If this is not provided, Django will assume a default
name based upon the names of the two tables being joined.
@@ -1272,8 +1272,8 @@ A few special cases to note about ``list_display``:
return '%s %s' % (self.color_code, self.first_name, self.last_name)
colored_name.allow_tags = True
- * If the string given is a method of the model that returns True or False
- Django will display a pretty "on" or "off" icon if you give the method a
+ * If the string given is a method of the model that returns True or False
+ Django will display a pretty "on" or "off" icon if you give the method a
``boolean`` attribute whose value is ``True``.
Here's a full example model::
@@ -1412,7 +1412,7 @@ This should be set to a list of field names that will be searched whenever
somebody submits a search query in that text box.
These fields should be some kind of text field, such as ``CharField`` or
-``TextField``. You can also perform a related lookup on a ``ForeignKey`` with
+``TextField``. You can also perform a related lookup on a ``ForeignKey`` with
the lookup API "follow" notation::
search_fields = ['foreign_key__related_fieldname']
@@ -1721,11 +1721,29 @@ But this template code is good::
{{ object.name }}
-(Yes, we know ``get_absolute_url()`` couples URLs to models, which violates the
-DRY principle, because URLs are defined both in a URLconf and in the model.
-This is a rare case in which we've intentionally violated that principle for
-the sake of convenience. With that said, we're working on an even cleaner way
-of specifying URLs in a more DRY fashion.)
+The ``permalink`` decorator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+**New in Django development version.**
+
+The problem with the way we wrote ``get_absolute_url()`` above is that it
+slightly violates the DRY principle: the URL for this object is defined both
+in the URLConf file and in the model.
+
+You can further decouple your models from the URLconf using the ``permalink``
+decorator. This decorator is passed the view function and any parameters you
+would use for accessing this instance directly. Django then works out the
+correct full URL path using the URLconf. For example::
+
+ from django.db.models import permalink
+
+ def get_absolute_url(self):
+ return ('people.views.details', str(self.id))
+ get_absolute_url = permalink(get_absolute_url)
+
+In this way, you're tying the model's absolute URL to the view that is used
+to display it, without repeating the URL information anywhere. You can still
+use the ``get_absolute_url`` method in templates, as before.
Executing custom SQL
--------------------
diff --git a/docs/newforms.txt b/docs/newforms.txt
index 063f686ed5..33aaf14357 100644
--- a/docs/newforms.txt
+++ b/docs/newforms.txt
@@ -51,9 +51,10 @@ too messy. The choice is yours.
Overview
========
-As with the ``django.forms`` ("manipulators") system before it, ``django.newforms``
-is intended to handle HTML form display, validation and redisplay. It's what
-you use if you want to perform server-side validation for an HTML form.
+As with the ``django.forms`` ("manipulators") system before it,
+``django.newforms`` is intended to handle HTML form display, data processing
+(validation) and redisplay. It's what you use if you want to perform
+server-side validation for an HTML form.
For example, if your Web site has a contact form that visitors can use to
send you e-mail, you'd use this library to implement the display of the HTML
@@ -571,6 +572,46 @@ is a list-like object that is displayed as an HTML ``
`` when printed::
>>> str(f['subject'].errors)
''
+Subclassing forms
+-----------------
+
+If you subclass a custom ``Form`` class, the resulting ``Form`` class will
+include all fields of the parent class(es), followed by the fields you define
+in the subclass.
+
+In this example, ``ContactFormWithPriority`` contains all the fields from
+``ContactForm``, plus an additional field, ``priority``. The ``ContactForm``
+fields are ordered first::
+
+ >>> class ContactFormWithPriority(ContactForm):
+ ... priority = forms.CharField()
+ >>> f = ContactFormWithPriority(auto_id=False)
+ >>> print f.as_ul()
+
Subject:
+
Message:
+
Sender:
+
Cc myself:
+
Priority:
+
+It's possible to subclass multiple forms, treating forms as "mix-ins." In this
+example, ``BeatleForm`` subclasses both ``PersonForm`` and ``InstrumentForm``
+(in that order), and its field list includes the fields from the parent
+classes::
+
+ >>> class PersonForm(Form):
+ ... first_name = CharField()
+ ... last_name = CharField()
+ >>> class InstrumentForm(Form):
+ ... instrument = CharField()
+ >>> class BeatleForm(PersonForm, InstrumentForm):
+ ... haircut_type = CharField()
+ >>> b = BeatleForm(auto_id=False)
+ >>> print b.as_ul()
+
First name:
+
Last name:
+
Instrument:
+
Haircut type:
+
Fields
======
diff --git a/docs/request_response.txt b/docs/request_response.txt
index afea0bcd53..6dfe78a686 100644
--- a/docs/request_response.txt
+++ b/docs/request_response.txt
@@ -432,3 +432,118 @@ types of HTTP responses. Like ``HttpResponse``, these subclasses live in
``HttpResponseServerError``
Acts just like ``HttpResponse`` but uses a 500 status code.
+
+Returning errors
+================
+
+Returning HTTP error codes in Django is easy. We've already mentioned the
+``HttpResponseNotFound``, ``HttpResponseForbidden``,
+``HttpResponseServerError``, etc., subclasses; just return an instance of one
+of those subclasses instead of a normal ``HttpResponse`` in order to signify
+an error. For example::
+
+ def my_view(request):
+ # ...
+ if foo:
+ return HttpResponseNotFound('
Page not found
')
+ else:
+ return HttpResponse('
Page was found
')
+
+Because 404 errors are by far the most common HTTP error, there's an easier way
+to handle those errors.
+
+The Http404 exception
+---------------------
+
+When you return an error such as ``HttpResponseNotFound``, you're responsible
+for defining the HTML of the resulting error page::
+
+ return HttpResponseNotFound('
Page not found
')
+
+For convenience, and because it's a good idea to have a consistent 404 error page
+across your site, Django provides an ``Http404`` exception. If you raise
+``Http404`` at any point in a view function, Django will catch it and return the
+standard error page for your application, along with an HTTP error code 404.
+
+Example usage::
+
+ from django.http import Http404
+
+ def detail(request, poll_id):
+ try:
+ p = Poll.objects.get(pk=poll_id)
+ except Poll.DoesNotExist:
+ raise Http404
+ return render_to_response('polls/detail.html', {'poll': p})
+
+In order to use the ``Http404`` exception to its fullest, you should create a
+template that is displayed when a 404 error is raised. This template should be
+called ``404.html`` and located in the top level of your template tree.
+
+Customing error views
+---------------------
+
+The 404 (page not found) view
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When you raise an ``Http404`` exception, Django loads a special view devoted
+to handling 404 errors. By default, it's the view
+``django.views.defaults.page_not_found``, which loads and renders the template
+``404.html``.
+
+This means you need to define a ``404.html`` template in your root template
+directory. This template will be used for all 404 errors.
+
+This ``page_not_found`` view should suffice for 99% of Web applications, but if
+you want to override the 404 view, you can specify ``handler404`` in your
+URLconf, like so::
+
+ handler404 = 'mysite.views.my_custom_404_view'
+
+Behind the scenes, Django determines the 404 view by looking for ``handler404``.
+By default, URLconfs contain the following line::
+
+ from django.conf.urls.defaults import *
+
+That takes care of setting ``handler404`` in the current module. As you can see
+in ``django/conf/urls/defaults.py``, ``handler404`` is set to
+``'django.views.defaults.page_not_found'`` by default.
+
+Three things to note about 404 views:
+
+ * The 404 view is also called if Django doesn't find a match after checking
+ every regular expression in the URLconf.
+
+ * If you don't define your own 404 view -- and simply use the default,
+ which is recommended -- you still have one obligation: To create a
+ ``404.html`` template in the root of your template directory. The default
+ 404 view will use that template for all 404 errors.
+
+ * If ``DEBUG`` is set to ``True`` (in your settings module) then your 404
+ view will never be used, and the traceback will be displayed instead.
+
+The 500 (server error) view
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Similarly, Django executes special-case behavior in the case of runtime errors
+in view code. If a view results in an exception, Django will, by default, call
+the view ``django.views.defaults.server_error``, which loads and renders the
+template ``500.html``.
+
+This means you need to define a ``500.html`` template in your root template
+directory. This template will be used for all server errors.
+
+This ``server_error`` view should suffice for 99% of Web applications, but if
+you want to override the view, you can specify ``handler500`` in your
+URLconf, like so::
+
+ handler500 = 'mysite.views.my_custom_error_view'
+
+Behind the scenes, Django determines the error view by looking for ``handler500``.
+By default, URLconfs contain the following line::
+
+ from django.conf.urls.defaults import *
+
+That takes care of setting ``handler500`` in the current module. As you can see
+in ``django/conf/urls/defaults.py``, ``handler500`` is set to
+``'django.views.defaults.server_error'`` by default.
diff --git a/docs/testing.txt b/docs/testing.txt
index cab31ed63b..33014723cd 100644
--- a/docs/testing.txt
+++ b/docs/testing.txt
@@ -92,7 +92,7 @@ Writing unittests
Like doctests, Django's unit tests use a standard library module: unittest_.
As with doctests, Django's test runner looks for any unit test cases defined
-in ``models.py``, or in a ``tests.py`` file stored in the application
+in ``models.py``, or in a ``tests.py`` file stored in the application
directory.
An equivalent unittest test case for the above example would look like::
@@ -111,8 +111,8 @@ An equivalent unittest test case for the above example would look like::
self.assertEquals(self.cat.speak(), 'The cat says "meow"')
When you `run your tests`_, the test utility will find all the test cases
-(that is, subclasses of ``unittest.TestCase``) in ``models.py`` and
-``tests.py``, automatically build a test suite out of those test cases,
+(that is, subclasses of ``unittest.TestCase``) in ``models.py`` and
+``tests.py``, automatically build a test suite out of those test cases,
and run that suite.
For more details about ``unittest``, see the `standard library unittest
@@ -164,12 +164,12 @@ in different circumstances.
Testing Tools
=============
-To assist in testing various features of your application, Django provides
+To assist in testing various features of your application, Django provides
tools that can be used to establish tests and test conditions.
* `Test Client`_
* Fixtures_
-
+
Test Client
-----------
@@ -178,23 +178,23 @@ GET and POST requests on a URL, and observe the response that is received.
This allows you to test that the correct view is executed for a given URL,
and that the view constructs the correct response.
-As the response is generated, the Test Client gathers details on the
+As the response is generated, the Test Client gathers details on the
Template and Context objects that were used to generate the response. These
Templates and Contexts are then provided as part of the response, and can be
used as test conditions.
.. admonition:: Test Client vs Browser Automation?
- The Test Client is not intended as a replacement for Twill_, Selenium_,
- or other browser automation frameworks - it is intended to allow
- testing of the contexts and templates produced by a view,
+ The Test Client is not intended as a replacement for Twill_, Selenium_,
+ or other browser automation frameworks - it is intended to allow
+ testing of the contexts and templates produced by a view,
rather than the HTML rendered to the end-user.
-
+
A comprehensive test suite should use a combination of both: Test Client
- tests to establish that the correct view is being called and that
+ tests to establish that the correct view is being called and that
the view is collecting the correct context data, and Browser Automation
tests to check that user interface behaves as expected.
-
+
.. _Twill: http://twill.idyll.org/
.. _Selenium: http://www.openqa.org/selenium/
@@ -202,7 +202,7 @@ used as test conditions.
Making requests
~~~~~~~~~~~~~~~
-Creating an instance of ``Client`` (``django.test.client.Client``) requires
+Creating an instance of ``Client`` (``django.test.client.Client``) requires
no arguments at time of construction. Once constructed, the following methods
can be invoked on the ``Client`` instance.
@@ -217,23 +217,29 @@ can be invoked on the ``Client`` instance.
http://yoursite.com/customers/details/?name=fred&age=7
-``post(path, data={})``
- Make a POST request on the provided ``path``. The key-value pairs in the
- data dictionary will be used to create the POST data payload. This payload
- will be transmitted with the mimetype ``multipart/form-data``.
-
- However submitting files is a special case. To POST a file, you need only
- provide the file field name as a key, and a file handle to the file you wish to
- upload as a value. The Test Client will populate the two POST fields (i.e.,
- ``field`` and ``field_file``) required by FileField. For example::
+``post(path, data={}, content_type=MULTIPART_CONTENT)``
+ Make a POST request on the provided ``path``. If you provide a content type
+ (e.g., ``text/xml`` for an XML payload), the contents of ``data`` will be
+ sent as-is in the POST request, using the content type in the HTTP
+ ``Content-Type`` header.
+
+ If you do not provide a value for ``content_type``, the values in
+ ``data`` will be transmitted with a content type of ``multipart/form-data``.
+ The key-value pairs in the data dictionary will be encoded as a multipart
+ message and used to create the POST data payload.
+
+ Submitting files is a special case. To POST a file, you need only
+ provide the file field name as a key, and a file handle to the file you wish to
+ upload as a value. The Test Client will populate the two POST fields (i.e.,
+ ``field`` and ``field_file``) required by Django's FileField. For example::
c = Client()
f = open('wishlist.doc')
c.post('/customers/wishes/', {'name':'fred', 'attachment':f})
f.close()
- will result in the evaluation of a POST request on ``/customers/wishes/``,
- with a POST dictionary that contains `name`, `attachment` (containing the
+ will result in the evaluation of a POST request on ``/customers/wishes/``,
+ with a POST dictionary that contains `name`, `attachment` (containing the
file name), and `attachment_file` (containing the file data). Note that you
need to manually close the file after it has been provided to the POST.
@@ -245,48 +251,48 @@ can be invoked on the ``Client`` instance.
call to ``login()`` stimulates the series of GET and POST calls required
to log a user into a @login_required protected view.
- If login is possible, the final return value of ``login()`` is the response
+ If login is possible, the final return value of ``login()`` is the response
that is generated by issuing a GET request on the protected URL. If login
is not possible, ``login()`` returns False.
- Note that since the test suite will be executed using the test database,
+ Note that since the test suite will be executed using the test database,
which contains no users by default. As a result, logins for your production
- site will not work. You will need to create users as part of the test suite
- to be able to test logins to your application.
+ site will not work. You will need to create users as part of the test suite
+ to be able to test logins to your application.
Testing Responses
~~~~~~~~~~~~~~~~~
-The ``get()``, ``post()`` and ``login()`` methods all return a Response
-object. This Response object has the following properties that can be used
+The ``get()``, ``post()`` and ``login()`` methods all return a Response
+object. This Response object has the following properties that can be used
for testing purposes:
=============== ==========================================================
Property Description
=============== ==========================================================
- ``status_code`` The HTTP status of the response. See RFC2616_ for a
+ ``status_code`` The HTTP status of the response. See RFC2616_ for a
full list of HTTP status codes.
- ``content`` The body of the response. The is the final page
- content as rendered by the view, or any error message
+ ``content`` The body of the response. The is the final page
+ content as rendered by the view, or any error message
(such as the URL for a 302 redirect).
- ``template`` The Template instance that was used to render the final
- content. Testing ``template.name`` can be particularly
- useful; if the template was loaded from a file,
- ``template.name`` will be the file name that was loaded.
+ ``template`` The Template instance that was used to render the final
+ content. Testing ``template.name`` can be particularly
+ useful; if the template was loaded from a file,
+ ``template.name`` will be the file name that was loaded.
- If multiple templates were rendered, (e.g., if one
- template includes another template),``template`` will
- be a list of Template objects, in the order in which
+ If multiple templates were rendered, (e.g., if one
+ template includes another template),``template`` will
+ be a list of Template objects, in the order in which
they were rendered.
- ``context`` The Context that was used to render the template that
+ ``context`` The Context that was used to render the template that
produced the response content.
- As with ``template``, if multiple templates were rendered
- ``context`` will be a list of Context objects, stored in
- the order in which they were rendered.
+ As with ``template``, if multiple templates were rendered
+ ``context`` will be a list of Context objects, stored in
+ the order in which they were rendered.
=============== ==========================================================
.. _RFC2616: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
@@ -295,11 +301,11 @@ Exceptions
~~~~~~~~~~
If you point the Test Client at a view that raises an exception, that exception
-will be visible in the test case. You can then use a standard ``try...catch``
+will be visible in the test case. You can then use a standard ``try...catch``
block, or ``unittest.TestCase.assertRaises()`` to test for exceptions.
-The only exceptions that are not visible in a Test Case are ``Http404``,
-``PermissionDenied`` and ``SystemExit``. Django catches these exceptions
+The only exceptions that are not visible in a Test Case are ``Http404``,
+``PermissionDenied`` and ``SystemExit``. Django catches these exceptions
internally and converts them into the appropriate HTTP responses codes.
Persistent state
@@ -307,8 +313,8 @@ Persistent state
The Test Client is stateful; if a cookie is returned as part of a response,
that cookie is provided as part of the next request issued by that Client
-instance. Expiry policies for these cookies are not followed; if you want
-a cookie to expire, either delete it manually or create a new Client
+instance. Expiry policies for these cookies are not followed; if you want
+a cookie to expire, either delete it manually or create a new Client
instance (which will effectively delete all cookies).
There are two properties of the Test Client which are used to store persistent
@@ -323,25 +329,26 @@ part of a test condition.
``session`` A dictionary-like object containing session information.
See the `session documentation`_ for full details.
+ =============== ==========================================================
.. _`session documentation`: ../sessions/
-
+
Example
~~~~~~~
The following is a simple unit test using the Test Client::
-
+
import unittest
from django.test.client import Client
-
+
class SimpleTest(unittest.TestCase):
def setUp(self):
# Every test needs a client
self.client = Client()
- def test_details(self):
+ def test_details(self):
# Issue a GET request
response = self.client.get('/customer/details/')
-
+
# Check that the respose is 200 OK
self.failUnlessEqual(response.status_code, 200)
# Check that the rendered context contains 5 customers
@@ -368,13 +375,13 @@ but you only want to run the animals unit tests, run::
When you run your tests, you'll see a bunch of text flow by as the test
database is created and models are initialized. This test database is
-created from scratch every time you run your tests.
+created from scratch every time you run your tests.
-By default, the test database gets its name by prepending ``test_`` to
-the database name specified by the ``DATABASE_NAME`` setting; all other
+By default, the test database gets its name by prepending ``test_`` to
+the database name specified by the ``DATABASE_NAME`` setting; all other
database settings will the same as they would be for the project normally.
-If you wish to use a name other than the default for the test database,
-you can use the ``TEST_DATABASE_NAME`` setting to provide a name.
+If you wish to use a name other than the default for the test database,
+you can use the ``TEST_DATABASE_NAME`` setting to provide a name.
Once the test database has been established, Django will run your tests.
If everything goes well, at the end you'll see::
@@ -447,7 +454,7 @@ arguments:
The module list is the list of Python modules that contain the models to be
tested. This is the same format returned by ``django.db.models.get_apps()``
- Verbosity determines the amount of notification and debug information that
+ Verbosity determines the amount of notification and debug information that
will be printed to the console; `0` is no output, `1` is normal output,
and `2` is verbose output.
@@ -458,12 +465,12 @@ To assist in the creation of your own test runner, Django provides
a number of utility methods in the ``django.test.utils`` module.
``setup_test_environment()``
- Performs any global pre-test setup, such as the installing the
- instrumentation of the template rendering system.
+ Performs any global pre-test setup, such as the installing the
+ instrumentation of the template rendering system.
``teardown_test_environment()``
- Performs any global post-test teardown, such as removing the instrumentation
- of the template rendering system.
+ Performs any global post-test teardown, such as removing the instrumentation
+ of the template rendering system.
``create_test_db(verbosity=1, autoclobber=False)``
Creates a new test database, and run ``syncdb`` against it.
diff --git a/tests/modeltests/basic/models.py b/tests/modeltests/basic/models.py
index 1663068892..9af13c0e3e 100644
--- a/tests/modeltests/basic/models.py
+++ b/tests/modeltests/basic/models.py
@@ -12,7 +12,7 @@ class Article(models.Model):
class Meta:
ordering = ('pub_date','headline')
-
+
def __str__(self):
return self.headline
@@ -319,7 +319,6 @@ AttributeError: Manager isn't accessible via Article instances
>>> Article.objects.filter(id__lte=4).delete()
>>> Article.objects.all()
[, , , ]
-
"""}
from django.conf import settings
@@ -358,4 +357,11 @@ __test__['API_TESTS'] += """
>>> a10 = Article.objects.create(headline="Article 10", pub_date=datetime(2005, 7, 31, 12, 30, 45))
>>> Article.objects.get(headline="Article 10")
+
+# Edge-case test: A year lookup should retrieve all objects in the given
+year, including Jan. 1 and Dec. 31.
+>>> a11 = Article.objects.create(headline='Article 11', pub_date=datetime(2008, 1, 1))
+>>> a12 = Article.objects.create(headline='Article 12', pub_date=datetime(2008, 12, 31, 23, 59, 59, 999999))
+>>> Article.objects.filter(pub_date__year=2008)
+[, ]
"""
diff --git a/tests/modeltests/test_client/models.py b/tests/modeltests/test_client/models.py
index 74f5e9700c..c3febfb99f 100644
--- a/tests/modeltests/test_client/models.py
+++ b/tests/modeltests/test_client/models.py
@@ -43,7 +43,7 @@ class ClientTest(unittest.TestCase):
# Check some response details
self.assertEqual(response.status_code, 200)
- self.assertEqual(response.template.name, 'Empty POST Template')
+ self.assertEqual(response.template.name, 'Empty GET Template')
def test_empty_post(self):
"POST an empty dictionary to a view"
@@ -53,7 +53,7 @@ class ClientTest(unittest.TestCase):
self.assertEqual(response.status_code, 200)
self.assertEqual(response.template.name, 'Empty POST Template')
- def test_post_view(self):
+ def test_post(self):
"POST some data to a view"
post_data = {
'value': 37
@@ -66,6 +66,14 @@ class ClientTest(unittest.TestCase):
self.assertEqual(response.template.name, 'POST Template')
self.failUnless('Data received' in response.content)
+ def test_raw_post(self):
+ test_doc = """BlinkMalcolm Gladwell"""
+ response = self.client.post("/test_client/raw_post_view/", test_doc,
+ content_type="text/xml")
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(response.template.name, "Book template")
+ self.assertEqual(response.content, "Blink - Malcolm Gladwell")
+
def test_redirect(self):
"GET a URL that redirects elsewhere"
response = self.client.get('/test_client/redirect_view/')
diff --git a/tests/modeltests/test_client/urls.py b/tests/modeltests/test_client/urls.py
index 96da4ec34e..0bef1e9b71 100644
--- a/tests/modeltests/test_client/urls.py
+++ b/tests/modeltests/test_client/urls.py
@@ -4,6 +4,7 @@ import views
urlpatterns = patterns('',
(r'^get_view/$', views.get_view),
(r'^post_view/$', views.post_view),
+ (r'^raw_post_view/$', views.raw_post_view),
(r'^redirect_view/$', views.redirect_view),
(r'^login_protected_view/$', views.login_protected_view),
(r'^session_view/$', views.session_view),
diff --git a/tests/modeltests/test_client/views.py b/tests/modeltests/test_client/views.py
index b1f2739845..653e9a10e9 100644
--- a/tests/modeltests/test_client/views.py
+++ b/tests/modeltests/test_client/views.py
@@ -1,3 +1,4 @@
+from xml.dom.minidom import parseString
from django.template import Context, Template
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.auth.decorators import login_required
@@ -13,15 +14,34 @@ def post_view(request):
"""A view that expects a POST, and returns a different template depending
on whether any POST data is available
"""
- if request.POST:
- t = Template('Data received: {{ data }} is the value.', name='POST Template')
- c = Context({'data': request.POST['value']})
+ if request.method == 'POST':
+ if request.POST:
+ t = Template('Data received: {{ data }} is the value.', name='POST Template')
+ c = Context({'data': request.POST['value']})
+ else:
+ t = Template('Viewing POST page.', name='Empty POST Template')
+ c = Context()
else:
- t = Template('Viewing POST page.', name='Empty POST Template')
+ t = Template('Viewing GET page.', name='Empty GET Template')
c = Context()
-
+
return HttpResponse(t.render(c))
+def raw_post_view(request):
+ """A view which expects raw XML to be posted and returns content extracted
+ from the XML"""
+ if request.method == 'POST':
+ root = parseString(request.raw_post_data)
+ first_book = root.firstChild.firstChild
+ title, author = [n.firstChild.nodeValue for n in first_book.childNodes]
+ t = Template("{{ title }} - {{ author }}", name="Book template")
+ c = Context({"title": title, "author": author})
+ else:
+ t = Template("GET request.", name="Book GET template")
+ c = Context()
+
+ return HttpResponse(t.render(c))
+
def redirect_view(request):
"A view that redirects all requests to the GET view"
return HttpResponseRedirect('/test_client/get_view/')
diff --git a/tests/regressiontests/forms/tests.py b/tests/regressiontests/forms/tests.py
index be17864b9d..c4502b2202 100644
--- a/tests/regressiontests/forms/tests.py
+++ b/tests/regressiontests/forms/tests.py
@@ -72,6 +72,22 @@ u''
>>> w.render('email', 'Å ÄĆŽćžšđ', attrs={'class': 'fun'})
u''
+The render_value argument lets you specify whether the widget should render
+its value. You may want to do this for security reasons.
+>>> w = PasswordInput(render_value=True)
+>>> w.render('email', 'secret')
+u''
+>>> w = PasswordInput(render_value=False)
+>>> w.render('email', '')
+u''
+>>> w.render('email', None)
+u''
+>>> w.render('email', 'secret')
+u''
+>>> w = PasswordInput(attrs={'class': 'fun'}, render_value=False)
+>>> w.render('email', 'secret')
+u''
+
# HiddenInput Widget ############################################################
>>> w = HiddenInput()
@@ -2201,6 +2217,19 @@ returns a list of input.
>>> f.clean_data
{'composers': [u'J', u'P'], 'name': u'Yesterday'}
+Validation errors are HTML-escaped when output as HTML.
+>>> class EscapingForm(Form):
+... special_name = CharField()
+... def clean_special_name(self):
+... raise ValidationError("Something's wrong with '%s'" % self.clean_data['special_name'])
+
+>>> f = EscapingForm({'special_name': "Nothing to escape"}, auto_id=False)
+>>> print f
+
Special name:
Something's wrong with 'Nothing to escape'
+>>> f = EscapingForm({'special_name': "Should escape < & > and "}, auto_id=False)
+>>> print f
+
Special name:
Something's wrong with 'Should escape < & > and <script>alert('xss')</script>'
+
# Validating multiple fields in relation to another ###########################
There are a couple of ways to do multiple-field validation. If you want the
@@ -2334,6 +2363,43 @@ the next.
Field3:
Field4:
+Similarly, changes to field attributes do not persist from one Form instance
+to the next.
+>>> class Person(Form):
+... first_name = CharField(required=False)
+... last_name = CharField(required=False)
+... def __init__(self, names_required=False, *args, **kwargs):
+... super(Person, self).__init__(*args, **kwargs)
+... if names_required:
+... self.fields['first_name'].required = True
+... self.fields['last_name'].required = True
+>>> f = Person(names_required=False)
+>>> f['first_name'].field.required, f['last_name'].field.required
+(False, False)
+>>> f = Person(names_required=True)
+>>> f['first_name'].field.required, f['last_name'].field.required
+(True, True)
+>>> f = Person(names_required=False)
+>>> f['first_name'].field.required, f['last_name'].field.required
+(False, False)
+>>> class Person(Form):
+... first_name = CharField(max_length=30)
+... last_name = CharField(max_length=30)
+... def __init__(self, name_max_length=None, *args, **kwargs):
+... super(Person, self).__init__(*args, **kwargs)
+... if name_max_length:
+... self.fields['first_name'].max_length = name_max_length
+... self.fields['last_name'].max_length = name_max_length
+>>> f = Person(name_max_length=None)
+>>> f['first_name'].field.max_length, f['last_name'].field.max_length
+(30, 30)
+>>> f = Person(name_max_length=20)
+>>> f['first_name'].field.max_length, f['last_name'].field.max_length
+(20, 20)
+>>> f = Person(name_max_length=None)
+>>> f['first_name'].field.max_length, f['last_name'].field.max_length
+(30, 30)
+
HiddenInput widgets are displayed differently in the as_table(), as_ul()
and as_p() output of a Form -- their verbose names are not displayed, and a
separate row is not displayed. They're displayed in the last row of the
@@ -2645,6 +2711,54 @@ purposes, though.
Username: e.g., user@example.com
Password:
+Help text can include arbitrary Unicode characters.
+>>> class UserRegistration(Form):
+... username = CharField(max_length=10, help_text='Å ÄĆŽćžšđ')
+>>> p = UserRegistration(auto_id=False)
+>>> p.as_ul()
+u'
'
+
+# Subclassing forms ###########################################################
+
+You can subclass a Form to add fields. The resulting form subclass will have
+all of the fields of the parent Form, plus whichever fields you define in the
+subclass.
+>>> class Person(Form):
+... first_name = CharField()
+... last_name = CharField()
+... birthday = DateField()
+>>> class Musician(Person):
+... instrument = CharField()
+>>> p = Person(auto_id=False)
+>>> print p.as_ul()
+
First name:
+
Last name:
+
Birthday:
+>>> m = Musician(auto_id=False)
+>>> print m.as_ul()
+
First name:
+
Last name:
+
Birthday:
+
Instrument:
+
+Yes, you can subclass multiple forms. The fields are added in the order in
+which the parent classes are listed.
+>>> class Person(Form):
+... first_name = CharField()
+... last_name = CharField()
+... birthday = DateField()
+>>> class Instrument(Form):
+... instrument = CharField()
+>>> class Beatle(Person, Instrument):
+... haircut_type = CharField()
+>>> b = Beatle(auto_id=False)
+>>> print b.as_ul()
+
First name:
+
Last name:
+
Birthday:
+
Instrument:
+
Haircut type:
+
# Forms with prefixes #########################################################
Sometimes it's necessary to have multiple forms display on the same HTML page,
@@ -2858,7 +2972,7 @@ VALID: {'username': u'adrian', 'password1': u'secret', 'password2': u'secret'}
# Some ideas for using templates with forms ###################################
>>> class UserRegistration(Form):
-... username = CharField(max_length=10)
+... username = CharField(max_length=10, help_text="Good luck picking a username that doesn't already exist.")
... password1 = CharField(widget=PasswordInput)
... password2 = CharField(widget=PasswordInput)
... def clean(self):
@@ -2935,6 +3049,24 @@ field an "id" attribute.
+User form.[field].help_text to output a field's help text. If the given field
+does not have help text, nothing will be output.
+>>> t = Template('''''')
+>>> print t.render(Context({'form': UserRegistration(auto_id=False)}))
+
+>>> Template('{{ form.password1.help_text }}').render(Context({'form': UserRegistration(auto_id=False)}))
+''
+
The label_tag() method takes an optional attrs argument: a dictionary of HTML
attributes to add to the