1
0
mirror of https://github.com/django/django.git synced 2025-07-04 09:49:12 +00:00

merged to trunk r1124

git-svn-id: http://code.djangoproject.com/svn/django/branches/new-admin@1125 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Robert Wittams 2005-11-08 15:16:12 +00:00
commit 5abf214ea6
52 changed files with 5867 additions and 4258 deletions

View File

@ -70,7 +70,13 @@ for lang in languages:
if verbose: sys.stdout.write('processing file %s in %s\n' % (file, dirpath)) if verbose: sys.stdout.write('processing file %s in %s\n' % (file, dirpath))
cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy -o - "%s"' % ( cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy -o - "%s"' % (
os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile)) os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile))
msgs = os.popen(cmd, 'r').read() (stdin, stdout, stderr) = os.popen3(cmd, 'r')
msgs = stdout.read()
errors = stderr.read()
if errors:
print "errors happened while running xgettext on %s" % file
print errors
sys.exit(8)
if thefile != file: if thefile != file:
old = '#: '+os.path.join(dirpath, thefile)[2:] old = '#: '+os.path.join(dirpath, thefile)[2:]
new = '#: '+os.path.join(dirpath, file)[2:] new = '#: '+os.path.join(dirpath, file)[2:]
@ -80,10 +86,22 @@ for lang in languages:
if thefile != file: if thefile != file:
os.unlink(os.path.join(dirpath, thefile)) os.unlink(os.path.join(dirpath, thefile))
msgs = os.popen('msguniq %s' % potfile, 'r').read() (stdin, stdout, stderr) = os.popen3('msguniq %s' % potfile, 'r')
msgs = stdout.read()
errors = stderr.read()
if errors:
print "errors happened while running msguniq"
print errors
sys.exit(8)
open(potfile, 'w').write(msgs) open(potfile, 'w').write(msgs)
if os.path.exists(pofile): if os.path.exists(pofile):
msgs = os.popen('msgmerge %s %s' % (pofile, potfile), 'r').read() (stdin, stdout, stderr) = os.popen3('msgmerge -q %s %s' % (pofile, potfile), 'r')
msgs = stdout.read()
errors = stderr.read()
if errors:
print "errors happened while running msgmerge"
print errors
sys.exit(8)
open(pofile, 'wb').write(msgs) open(pofile, 'wb').write(msgs)
os.unlink(potfile) os.unlink(potfile)

View File

@ -41,11 +41,12 @@ LANGUAGES = (
('fr', _('French')), ('fr', _('French')),
('gl', _('Galician')), ('gl', _('Galician')),
('it', _('Italian')), ('it', _('Italian')),
('no-nb', _('Norwegian')), ('no', _('Norwegian')),
('pt-br', _('Brazilian')), ('pt-br', _('Brazilian')),
('ru', _('Russian')), ('ru', _('Russian')),
('sr', _('Serbian')), ('sr', _('Serbian')),
('zh-cn', _('Simplified Chinese')), ('zh-cn', _('Simplified Chinese')),
('sk', _('Slovak')),
) )
# Not-necessarily-technical managers of the site. They get broken link # Not-necessarily-technical managers of the site. They get broken link
@ -147,6 +148,26 @@ SECRET_KEY = ''
# Path to the "jing" executable -- needed to validate XMLFields # Path to the "jing" executable -- needed to validate XMLFields
JING_PATH = "/usr/bin/jing" JING_PATH = "/usr/bin/jing"
# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"
MEDIA_ROOT = ''
# URL that handles the media served from MEDIA_ROOT.
# Example: "http://media.lawrence.com"
MEDIA_URL = ''
# Default formatting for date objects. See all available format strings here:
# http://www.djangoproject.com/documentation/templates/#now
DATE_FORMAT = 'N j, Y'
# Default formatting for datetime objects. See all available format strings here:
# http://www.djangoproject.com/documentation/templates/#now
DATETIME_FORMAT = 'N j, Y, P'
# Default formatting for time objects. See all available format strings here:
# http://www.djangoproject.com/documentation/templates/#now
TIME_FORMAT = 'P'
############## ##############
# MIDDLEWARE # # MIDDLEWARE #
############## ##############
@ -204,11 +225,3 @@ COMMENTS_FIRST_FEW = 0
# A tuple of IP addresses that have been banned from participating in various # A tuple of IP addresses that have been banned from participating in various
# Django-powered features. # Django-powered features.
BANNED_IPS = () BANNED_IPS = ()
# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"
MEDIA_ROOT = ''
# URL that handles the media served from MEDIA_ROOT.
# Example: "http://media.lawrence.com"
MEDIA_URL = ''

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-11-04 18:22+0100\n" "POT-Creation-Date: 2005-11-08 09:05-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -16,36 +16,110 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: contrib/admin/models/admin.py:6 #: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
msgid "action time" #, python-format
msgid ""
"<h3>By %s:</h3>\n"
"<ul>\n"
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:9 #: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
msgid "object id" #: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:10 #: contrib/admin/views/main.py:210
msgid "object repr" #, python-format
msgid "Select %s"
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:11 #: contrib/admin/views/main.py:211
msgid "action flag" #, python-format
msgid "Select %s to change"
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:12 #: contrib/admin/views/main.py:570
msgid "change message" #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:15 #: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
msgid "log entry" msgid "You may edit it again below."
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:16 #: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
msgid "log entries" #, python-format
msgid "You may add another %s below."
msgstr "" msgstr ""
#: contrib/admin/templatetags/admin_list.py:256 #: contrib/admin/views/main.py:600
msgid "All dates" #, python-format
msgid "Add %s"
msgstr ""
#: contrib/admin/views/main.py:616
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:616 contrib/admin/views/main.py:618
#: contrib/admin/views/main.py:620
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:618
#, python-format
msgid "Changed %s."
msgstr ""
#: contrib/admin/views/main.py:620
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:623
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:648
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:657
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:695
#, python-format
msgid "Change %s"
msgstr ""
#: contrib/admin/views/main.py:775
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:780
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:809
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:812
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:827
#, python-format
msgid "Change history: %s"
msgstr "" msgstr ""
#: contrib/admin/views/decorators.py:22 #: contrib/admin/views/decorators.py:22
@ -74,112 +148,6 @@ msgstr ""
msgid "Your e-mail address is not your username. Try '%s' instead." msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "" msgstr ""
#: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
#, python-format
msgid ""
"<h3>By %s:</h3>\n"
"<ul>\n"
msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, python-format
msgid "Select %s to change"
msgstr ""
#: contrib/admin/views/main.py:567
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:572 contrib/admin/views/main.py:648
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:580 contrib/admin/views/main.py:657
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:597
#, python-format
msgid "Add %s"
msgstr ""
#: contrib/admin/views/main.py:613
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:613 contrib/admin/views/main.py:615
#: contrib/admin/views/main.py:617
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:615
#, python-format
msgid "Changed %s."
msgstr ""
#: contrib/admin/views/main.py:617
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:620
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:645
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:654
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:692
#, python-format
msgid "Change %s"
msgstr ""
#: contrib/admin/views/main.py:772
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:777
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:806
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:809
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:824
#, python-format
msgid "Change history: %s"
msgstr ""
#: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271 #: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271
#: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278 #: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281 #: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
@ -243,7 +211,7 @@ msgstr ""
msgid "Time" msgid "Time"
msgstr "" msgstr ""
#: contrib/admin/views/doc.py:284 models/core.py:81 #: contrib/admin/views/doc.py:284 models/core.py:87
msgid "URL" msgid "URL"
msgstr "" msgstr ""
@ -255,6 +223,53 @@ msgstr ""
msgid "XML text" msgid "XML text"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin"
msgstr ""
#: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration"
msgstr ""
#: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/base.html:29
#: contrib/admin/templates/admin/change_form.html:12
#: 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
msgid "Home"
msgstr ""
#: contrib/admin/templates/admin/500.html:4
msgid "Server error"
msgstr ""
#: contrib/admin/templates/admin/500.html:6
msgid "Server error (500)"
msgstr ""
#: contrib/admin/templates/admin/500.html:9
msgid "Server Error <em>(500)</em>"
msgstr ""
#: 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 ""
#: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8
msgid "Page not found"
msgstr ""
#: contrib/admin/templates/admin/404.html:10
msgid "We're sorry, but the requested page could not be found."
msgstr ""
#: contrib/admin/templates/admin/index.html:27 #: contrib/admin/templates/admin/index.html:27
#: contrib/admin/templates/admin/change_form.html:14 #: contrib/admin/templates/admin/change_form.html:14
msgid "Add" msgid "Add"
@ -280,36 +295,6 @@ msgstr ""
msgid "None available" msgid "None available"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/admin/base.html:29
#: 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
msgid "Home"
msgstr ""
#: contrib/admin/templates/admin/500.html:4
msgid "Server error"
msgstr ""
#: contrib/admin/templates/admin/500.html:6
msgid "Server error (500)"
msgstr ""
#: contrib/admin/templates/admin/500.html:9
msgid "Server Error <em>(500)</em>"
msgstr ""
#: 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 ""
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:19 #: contrib/admin/templates/admin/change_form.html:19
msgid "History" msgid "History"
@ -337,14 +322,6 @@ msgid ""
"admin site." "admin site."
msgstr "" msgstr ""
#: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin"
msgstr ""
#: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration"
msgstr ""
#: contrib/admin/templates/admin/login.html:15 #: contrib/admin/templates/admin/login.html:15
msgid "Username:" msgid "Username:"
msgstr "" msgstr ""
@ -357,31 +334,16 @@ msgstr ""
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?" msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/base.html:23
#: contrib/admin/templates/admin/404.html:8 msgid "Welcome,"
msgid "Page not found"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/404.html:10 #: contrib/admin/templates/admin/base.html:23
msgid "We're sorry, but the requested page could not be found." msgid "Change password"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/change_form.html:20 #: contrib/admin/templates/admin/base.html:23
msgid "View on site" msgid "Log out"
msgstr ""
#: contrib/admin/templates/admin/change_form.html:28
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/change_form.html:45
msgid "Ordering"
msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/delete_confirmation.html:7 #: contrib/admin/templates/admin/delete_confirmation.html:7
@ -403,16 +365,22 @@ msgstr ""
msgid "Yes, I'm sure" msgid "Yes, I'm sure"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:20
msgid "Welcome," msgid "View on site"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:28
msgid "Change password" msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/change_form.html:45
msgid "Ordering"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:48
msgid "Log out" msgid "Order:"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/submit_line.html:3 #: contrib/admin/templates/admin/submit_line.html:3
@ -543,6 +511,38 @@ msgstr ""
msgid "The %(site_name)s team" msgid "The %(site_name)s team"
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:6
msgid "action time"
msgstr ""
#: contrib/admin/models/admin.py:9
msgid "object id"
msgstr ""
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr ""
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr ""
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr ""
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr ""
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr ""
#: contrib/admin/templatetags/admin_list.py:260
msgid "All dates"
msgstr ""
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Monday" msgid "Monday"
msgstr "" msgstr ""
@ -647,138 +647,138 @@ msgstr ""
msgid "Dec." msgid "Dec."
msgstr "" msgstr ""
#: models/core.py:5 #: models/core.py:7
msgid "domain name" msgid "domain name"
msgstr "" msgstr ""
#: models/core.py:6 #: models/core.py:8
msgid "display name" msgid "display name"
msgstr "" msgstr ""
#: models/core.py:8 #: models/core.py:10
msgid "site" msgid "site"
msgstr "" msgstr ""
#: models/core.py:9 #: models/core.py:11
msgid "sites" msgid "sites"
msgstr "" msgstr ""
#: models/core.py:22 #: models/core.py:28
msgid "label" msgid "label"
msgstr "" msgstr ""
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19 #: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19
msgid "name" msgid "name"
msgstr "" msgstr ""
#: models/core.py:25 #: models/core.py:31
msgid "package" msgid "package"
msgstr "" msgstr ""
#: models/core.py:26 #: models/core.py:32
msgid "packages" msgid "packages"
msgstr "" msgstr ""
#: models/core.py:36 #: models/core.py:42
msgid "python module name" msgid "python module name"
msgstr "" msgstr ""
#: models/core.py:38 #: models/core.py:44
msgid "content type" msgid "content type"
msgstr "" msgstr ""
#: models/core.py:39 #: models/core.py:45
msgid "content types" msgid "content types"
msgstr "" msgstr ""
#: models/core.py:62 #: models/core.py:68
msgid "redirect from" msgid "redirect from"
msgstr "" msgstr ""
#: models/core.py:63 #: models/core.py:69
msgid "" msgid ""
"This should be an absolute path, excluding the domain name. Example: '/" "This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'." "events/search/'."
msgstr "" msgstr ""
#: models/core.py:64 #: models/core.py:70
msgid "redirect to" msgid "redirect to"
msgstr "" msgstr ""
#: models/core.py:65 #: models/core.py:71
msgid "" msgid ""
"This can be either an absolute path (as above) or a full URL starting with " "This can be either an absolute path (as above) or a full URL starting with "
"'http://'." "'http://'."
msgstr "" msgstr ""
#: models/core.py:67 #: models/core.py:73
msgid "redirect" msgid "redirect"
msgstr "" msgstr ""
#: models/core.py:68 #: models/core.py:74
msgid "redirects" msgid "redirects"
msgstr "" msgstr ""
#: models/core.py:82 #: models/core.py:88
msgid "" msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes." "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr "" msgstr ""
#: models/core.py:83 #: models/core.py:89
msgid "title" msgid "title"
msgstr "" msgstr ""
#: models/core.py:84 #: models/core.py:90
msgid "content" msgid "content"
msgstr "" msgstr ""
#: models/core.py:85 #: models/core.py:91
msgid "enable comments" msgid "enable comments"
msgstr "" msgstr ""
#: models/core.py:86 #: models/core.py:92
msgid "template name" msgid "template name"
msgstr "" msgstr ""
#: models/core.py:87 #: models/core.py:93
msgid "" msgid ""
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will " "Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
"use 'flatfiles/default'." "use 'flatfiles/default'."
msgstr "" msgstr ""
#: models/core.py:88 #: models/core.py:94
msgid "registration required" msgid "registration required"
msgstr "" msgstr ""
#: models/core.py:88 #: models/core.py:94
msgid "If this is checked, only logged-in users will be able to view the page." msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "" msgstr ""
#: models/core.py:92 #: models/core.py:98
msgid "flat page" msgid "flat page"
msgstr "" msgstr ""
#: models/core.py:93 #: models/core.py:99
msgid "flat pages" msgid "flat pages"
msgstr "" msgstr ""
#: models/core.py:114 #: models/core.py:117
msgid "session key" msgid "session key"
msgstr "" msgstr ""
#: models/core.py:115 #: models/core.py:118
msgid "session data" msgid "session data"
msgstr "" msgstr ""
#: models/core.py:116 #: models/core.py:119
msgid "expire date" msgid "expire date"
msgstr "" msgstr ""
#: models/core.py:118 #: models/core.py:121
msgid "session" msgid "session"
msgstr "" msgstr ""
#: models/core.py:119 #: models/core.py:122
msgid "sessions" msgid "sessions"
msgstr "" msgstr ""
@ -920,165 +920,169 @@ msgstr ""
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "" msgstr ""
#: core/validators.py:58 #: conf/global_settings.py:49
msgid "Slovak"
msgstr ""
#: core/validators.py:59
msgid "This value must contain only letters, numbers and underscores." msgid "This value must contain only letters, numbers and underscores."
msgstr "" msgstr ""
#: core/validators.py:62 #: core/validators.py:63
msgid "This value must contain only letters, numbers, underscores and slashes." msgid "This value must contain only letters, numbers, underscores and slashes."
msgstr "" msgstr ""
#: core/validators.py:70 #: core/validators.py:71
msgid "Uppercase letters are not allowed here." msgid "Uppercase letters are not allowed here."
msgstr "" msgstr ""
#: core/validators.py:74 #: core/validators.py:75
msgid "Lowercase letters are not allowed here." msgid "Lowercase letters are not allowed here."
msgstr "" msgstr ""
#: core/validators.py:81 #: core/validators.py:82
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "" msgstr ""
#: core/validators.py:93 #: core/validators.py:94
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "" msgstr ""
#: core/validators.py:100 #: core/validators.py:98
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
msgstr "" msgstr ""
#: core/validators.py:104 #: core/validators.py:102
msgid "Empty values are not allowed here." msgid "Empty values are not allowed here."
msgstr "" msgstr ""
#: core/validators.py:108 #: core/validators.py:106
msgid "Non-numeric characters aren't allowed here." msgid "Non-numeric characters aren't allowed here."
msgstr "" msgstr ""
#: core/validators.py:112 #: core/validators.py:110
msgid "This value can't be comprised solely of digits." msgid "This value can't be comprised solely of digits."
msgstr "" msgstr ""
#: core/validators.py:117 #: core/validators.py:115
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "" msgstr ""
#: core/validators.py:121 #: core/validators.py:119
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
msgstr "" msgstr ""
#: core/validators.py:125 #: core/validators.py:123
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "" msgstr ""
#: core/validators.py:129 #: core/validators.py:127
msgid "Enter a valid time in HH:MM format." msgid "Enter a valid time in HH:MM format."
msgstr "" msgstr ""
#: core/validators.py:133 #: core/validators.py:131
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "" msgstr ""
#: core/validators.py:137 #: core/validators.py:135
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "" msgstr ""
#: core/validators.py:149 #: core/validators.py:147
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: core/validators.py:156 #: core/validators.py:154
#, python-format #, python-format
msgid "The URL %s does not point to a valid image." msgid "The URL %s does not point to a valid image."
msgstr "" msgstr ""
#: core/validators.py:160 #: core/validators.py:158
#, python-format #, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "" msgstr ""
#: core/validators.py:168 #: core/validators.py:166
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "" msgstr ""
#: core/validators.py:172 #: core/validators.py:170
msgid "A valid URL is required." msgid "A valid URL is required."
msgstr "" msgstr ""
#: core/validators.py:186 #: core/validators.py:184
#, python-format #, python-format
msgid "" msgid ""
"Valid HTML is required. Specific errors are:\n" "Valid HTML is required. Specific errors are:\n"
"%s" "%s"
msgstr "" msgstr ""
#: core/validators.py:193 #: core/validators.py:191
#, python-format #, python-format
msgid "Badly formed XML: %s" msgid "Badly formed XML: %s"
msgstr "" msgstr ""
#: core/validators.py:203 #: core/validators.py:201
#, python-format #, python-format
msgid "Invalid URL: %s" msgid "Invalid URL: %s"
msgstr "" msgstr ""
#: core/validators.py:205 #: core/validators.py:203
#, python-format #, python-format
msgid "The URL %s is a broken link." msgid "The URL %s is a broken link."
msgstr "" msgstr ""
#: core/validators.py:211 #: core/validators.py:209
msgid "Enter a valid U.S. state abbreviation." msgid "Enter a valid U.S. state abbreviation."
msgstr "" msgstr ""
#: core/validators.py:226 #: core/validators.py:224
#, python-format #, python-format
msgid "Watch your mouth! The word %s is not allowed here." msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: core/validators.py:233 #: core/validators.py:231
#, python-format #, python-format
msgid "This field must match the '%s' field." msgid "This field must match the '%s' field."
msgstr "" msgstr ""
#: core/validators.py:252 #: core/validators.py:250
msgid "Please enter something for at least one field." msgid "Please enter something for at least one field."
msgstr "" msgstr ""
#: core/validators.py:261 core/validators.py:272 #: core/validators.py:259 core/validators.py:270
msgid "Please enter both fields or leave them both empty." msgid "Please enter both fields or leave them both empty."
msgstr "" msgstr ""
#: core/validators.py:279 #: core/validators.py:277
#, python-format #, python-format
msgid "This field must be given if %(field)s is %(value)s" msgid "This field must be given if %(field)s is %(value)s"
msgstr "" msgstr ""
#: core/validators.py:291 #: core/validators.py:289
#, python-format #, python-format
msgid "This field must be given if %(field)s is not %(value)s" msgid "This field must be given if %(field)s is not %(value)s"
msgstr "" msgstr ""
#: core/validators.py:310 #: core/validators.py:308
msgid "Duplicate values are not allowed." msgid "Duplicate values are not allowed."
msgstr "" msgstr ""
#: core/validators.py:333 #: core/validators.py:331
#, python-format #, python-format
msgid "This value must be a power of %s." msgid "This value must be a power of %s."
msgstr "" msgstr ""
#: core/validators.py:344 #: core/validators.py:342
msgid "Please enter a valid decimal number." msgid "Please enter a valid decimal number."
msgstr "" msgstr ""
#: core/validators.py:346 #: core/validators.py:344
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s total digit." msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "" msgid_plural ""
@ -1086,7 +1090,7 @@ msgid_plural ""
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: core/validators.py:349 #: core/validators.py:347
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "" msgid_plural ""
@ -1094,71 +1098,71 @@ msgid_plural ""
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: core/validators.py:359 #: core/validators.py:357
#, python-format #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "" msgstr ""
#: core/validators.py:360 #: core/validators.py:358
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "" msgstr ""
#: core/validators.py:373 #: core/validators.py:371
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
msgstr "" msgstr ""
#: core/validators.py:388 #: core/validators.py:386
msgid "This field is invalid." msgid "This field is invalid."
msgstr "" msgstr ""
#: core/validators.py:423 #: core/validators.py:421
#, python-format #, python-format
msgid "Could not retrieve anything from %s." msgid "Could not retrieve anything from %s."
msgstr "" msgstr ""
#: core/validators.py:426 #: core/validators.py:424
#, python-format #, python-format
msgid "" msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
msgstr "" msgstr ""
#: core/validators.py:459 #: core/validators.py:457
#, python-format #, python-format
msgid "" msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
"\"%(start)s\".)" "\"%(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:463 #: core/validators.py:461
#, python-format #, python-format
msgid "" msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line " "Some text starting on line %(line)s is not allowed in that context. (Line "
"starts with \"%(start)s\".)" "starts with \"%(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:468 #: core/validators.py:466
#, python-format #, python-format
msgid "" msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
"(start)s\".)" "(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:473 #: core/validators.py:471
#, python-format #, python-format
msgid "" msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
"(start)s\".)" "(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:477 #: core/validators.py:475
#, python-format #, python-format
msgid "" msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line " "A tag on line %(line)s is missing one or more required attributes. (Line "
"starts with \"%(start)s\".)" "starts with \"%(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:482 #: core/validators.py:480
#, python-format #, python-format
msgid "" msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: django\n" "Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-11-04 18:22+0100\n" "POT-Creation-Date: 2005-11-08 09:05-0600\n"
"PO-Revision-Date: 2005-10-04 20:59GMT\n" "PO-Revision-Date: 2005-10-04 20:59GMT\n"
"Last-Translator: Ricardo Javier Cárdenes Medina <ricardo.cardenes@gmail." "Last-Translator: Ricardo Javier Cárdenes Medina <ricardo.cardenes@gmail."
"com>\n" "com>\n"
@ -17,39 +17,112 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10.2\n" "X-Generator: KBabel 1.10.2\n"
#: contrib/admin/models/admin.py:6 #: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
#, fuzzy #, python-format
msgid "action time" msgid ""
msgstr "Fecha/hora" "<h3>By %s:</h3>\n"
"<ul>\n"
#: contrib/admin/models/admin.py:9
msgid "object id"
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:10 #: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
msgid "object repr" #: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:11 #: contrib/admin/views/main.py:210
msgid "action flag" #, python-format
msgid "Select %s"
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:12 #: contrib/admin/views/main.py:211
msgid "change message" #, fuzzy, python-format
msgid "Select %s to change"
msgstr "Cambie para modificar"
#: contrib/admin/views/main.py:570
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:15 #: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
msgid "log entry" msgid "You may edit it again below."
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:16 #: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
msgid "log entries" #, python-format
msgid "You may add another %s below."
msgstr "" msgstr ""
#: contrib/admin/templatetags/admin_list.py:256 #: contrib/admin/views/main.py:600
msgid "All dates" #, fuzzy, python-format
msgid "Add %s"
msgstr "Agregar"
#: contrib/admin/views/main.py:616
#, python-format
msgid "Added %s."
msgstr "" msgstr ""
#: contrib/admin/views/main.py:616 contrib/admin/views/main.py:618
#: contrib/admin/views/main.py:620
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:618
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Modificar"
#: contrib/admin/views/main.py:620
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:623
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:648
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:657
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:695
#, fuzzy, python-format
msgid "Change %s"
msgstr "Modificar"
#: contrib/admin/views/main.py:775
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:780
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:809
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:812
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:827
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Cambiar clave"
#: contrib/admin/views/decorators.py:22 #: contrib/admin/views/decorators.py:22
#: contrib/admin/templates/admin/login.html:24 #: contrib/admin/templates/admin/login.html:24
msgid "Log in" msgid "Log in"
@ -76,112 +149,6 @@ msgstr ""
msgid "Your e-mail address is not your username. Try '%s' instead." msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "" msgstr ""
#: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
#, python-format
msgid ""
"<h3>By %s:</h3>\n"
"<ul>\n"
msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, fuzzy, python-format
msgid "Select %s to change"
msgstr "Cambie para modificar"
#: contrib/admin/views/main.py:567
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:572 contrib/admin/views/main.py:648
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:580 contrib/admin/views/main.py:657
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:597
#, fuzzy, python-format
msgid "Add %s"
msgstr "Agregar"
#: contrib/admin/views/main.py:613
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:613 contrib/admin/views/main.py:615
#: contrib/admin/views/main.py:617
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:615
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Modificar"
#: contrib/admin/views/main.py:617
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:620
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:645
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:654
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:692
#, fuzzy, python-format
msgid "Change %s"
msgstr "Modificar"
#: contrib/admin/views/main.py:772
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:777
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:806
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:809
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:824
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Cambiar clave"
#: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271 #: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271
#: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278 #: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281 #: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
@ -249,7 +216,7 @@ msgstr ""
msgid "Time" msgid "Time"
msgstr "" msgstr ""
#: contrib/admin/views/doc.py:284 models/core.py:81 #: contrib/admin/views/doc.py:284 models/core.py:87
msgid "URL" msgid "URL"
msgstr "" msgstr ""
@ -261,35 +228,18 @@ msgstr ""
msgid "XML text" msgid "XML text"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/index.html:27 #: contrib/admin/templates/admin/base_site.html:4
#: contrib/admin/templates/admin/change_form.html:14 msgid "Django site admin"
msgid "Add" msgstr "Sitio de administración de Django"
msgstr "Agregar"
#: contrib/admin/templates/admin/index.html:33 #: contrib/admin/templates/admin/base_site.html:7
msgid "Change" msgid "Django administration"
msgstr "Modificar" msgstr "Administración de Django"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "No tiene permiso para editar nada."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Acciones recientes"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Mis acciones"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Ninguno disponible"
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/admin/base.html:29 #: contrib/admin/templates/admin/base.html:29
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/registration/password_change_done.html:4 #: contrib/admin/templates/registration/password_change_done.html:4
#: contrib/admin/templates/registration/password_reset_form.html:4 #: contrib/admin/templates/registration/password_reset_form.html:4
#: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/logged_out.html:4
@ -320,6 +270,40 @@ msgstr ""
"mediante correo electrónico y debería arreglarse en breve. Gracias por su " "mediante correo electrónico y debería arreglarse en breve. Gracias por su "
"paciencia" "paciencia"
#: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8
msgid "Page not found"
msgstr "Página no encontrada"
#: contrib/admin/templates/admin/404.html:10
msgid "We're sorry, but the requested page could not be found."
msgstr "Lo sentimos, pero no se encuentra la página solicitada."
#: contrib/admin/templates/admin/index.html:27
#: contrib/admin/templates/admin/change_form.html:14
msgid "Add"
msgstr "Agregar"
#: contrib/admin/templates/admin/index.html:33
msgid "Change"
msgstr "Modificar"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "No tiene permiso para editar nada."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Acciones recientes"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Mis acciones"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Ninguno disponible"
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:19 #: contrib/admin/templates/admin/change_form.html:19
msgid "History" msgid "History"
@ -349,14 +333,6 @@ msgstr ""
"Este objeto no tiene histórico de cambios. Probablemente no fue añadido " "Este objeto no tiene histórico de cambios. Probablemente no fue añadido "
"usando este sitio de administración." "usando este sitio de administración."
#: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin"
msgstr "Sitio de administración de Django"
#: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration"
msgstr "Administración de Django"
#: contrib/admin/templates/admin/login.html:15 #: contrib/admin/templates/admin/login.html:15
msgid "Username:" msgid "Username:"
msgstr "Usuario:" msgstr "Usuario:"
@ -369,32 +345,17 @@ msgstr "Clave:"
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?" msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
msgstr "¿Ha <a href=\"/password_reset/\">olvidado su clave</a>?" msgstr "¿Ha <a href=\"/password_reset/\">olvidado su clave</a>?"
#: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/base.html:23
#: contrib/admin/templates/admin/404.html:8 msgid "Welcome,"
msgid "Page not found" msgstr "Bienvenido,"
msgstr "Página no encontrada"
#: contrib/admin/templates/admin/404.html:10 #: contrib/admin/templates/admin/base.html:23
msgid "We're sorry, but the requested page could not be found." msgid "Change password"
msgstr "Lo sentimos, pero no se encuentra la página solicitada." msgstr "Cambiar clave"
#: contrib/admin/templates/admin/change_form.html:20 #: contrib/admin/templates/admin/base.html:23
msgid "View on site" msgid "Log out"
msgstr "" msgstr "Terminar"
#: contrib/admin/templates/admin/change_form.html:28
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/change_form.html:45
msgid "Ordering"
msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/delete_confirmation.html:7 #: contrib/admin/templates/admin/delete_confirmation.html:7
#, fuzzy, python-format #, fuzzy, python-format
@ -420,17 +381,23 @@ msgstr ""
msgid "Yes, I'm sure" msgid "Yes, I'm sure"
msgstr "Sí, estoy seguro" msgstr "Sí, estoy seguro"
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:20
msgid "Welcome," msgid "View on site"
msgstr "Bienvenido," msgstr ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:28
msgid "Change password" msgid "Please correct the error below."
msgstr "Cambiar clave" msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:45
msgid "Log out" msgid "Ordering"
msgstr "Terminar" msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/submit_line.html:3 #: contrib/admin/templates/admin/submit_line.html:3
msgid "Delete" msgid "Delete"
@ -566,6 +533,39 @@ msgstr "
msgid "The %(site_name)s team" msgid "The %(site_name)s team"
msgstr "El equipo de %(site_name)s" msgstr "El equipo de %(site_name)s"
#: contrib/admin/models/admin.py:6
#, fuzzy
msgid "action time"
msgstr "Fecha/hora"
#: contrib/admin/models/admin.py:9
msgid "object id"
msgstr ""
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr ""
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr ""
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr ""
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr ""
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr ""
#: contrib/admin/templatetags/admin_list.py:260
msgid "All dates"
msgstr ""
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Monday" msgid "Monday"
msgstr "" msgstr ""
@ -670,139 +670,139 @@ msgstr ""
msgid "Dec." msgid "Dec."
msgstr "" msgstr ""
#: models/core.py:5 #: models/core.py:7
msgid "domain name" msgid "domain name"
msgstr "" msgstr ""
#: models/core.py:6 #: models/core.py:8
msgid "display name" msgid "display name"
msgstr "" msgstr ""
#: models/core.py:8 #: models/core.py:10
msgid "site" msgid "site"
msgstr "" msgstr ""
#: models/core.py:9 #: models/core.py:11
msgid "sites" msgid "sites"
msgstr "" msgstr ""
#: models/core.py:22 #: models/core.py:28
msgid "label" msgid "label"
msgstr "" msgstr ""
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19 #: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19
#, fuzzy #, fuzzy
msgid "name" msgid "name"
msgstr "Usuario:" msgstr "Usuario:"
#: models/core.py:25 #: models/core.py:31
msgid "package" msgid "package"
msgstr "" msgstr ""
#: models/core.py:26 #: models/core.py:32
msgid "packages" msgid "packages"
msgstr "" msgstr ""
#: models/core.py:36 #: models/core.py:42
msgid "python module name" msgid "python module name"
msgstr "" msgstr ""
#: models/core.py:38 #: models/core.py:44
msgid "content type" msgid "content type"
msgstr "" msgstr ""
#: models/core.py:39 #: models/core.py:45
msgid "content types" msgid "content types"
msgstr "" msgstr ""
#: models/core.py:62 #: models/core.py:68
msgid "redirect from" msgid "redirect from"
msgstr "" msgstr ""
#: models/core.py:63 #: models/core.py:69
msgid "" msgid ""
"This should be an absolute path, excluding the domain name. Example: '/" "This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'." "events/search/'."
msgstr "" msgstr ""
#: models/core.py:64 #: models/core.py:70
msgid "redirect to" msgid "redirect to"
msgstr "" msgstr ""
#: models/core.py:65 #: models/core.py:71
msgid "" msgid ""
"This can be either an absolute path (as above) or a full URL starting with " "This can be either an absolute path (as above) or a full URL starting with "
"'http://'." "'http://'."
msgstr "" msgstr ""
#: models/core.py:67 #: models/core.py:73
msgid "redirect" msgid "redirect"
msgstr "" msgstr ""
#: models/core.py:68 #: models/core.py:74
msgid "redirects" msgid "redirects"
msgstr "" msgstr ""
#: models/core.py:82 #: models/core.py:88
msgid "" msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes." "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr "" msgstr ""
#: models/core.py:83 #: models/core.py:89
msgid "title" msgid "title"
msgstr "" msgstr ""
#: models/core.py:84 #: models/core.py:90
msgid "content" msgid "content"
msgstr "" msgstr ""
#: models/core.py:85 #: models/core.py:91
msgid "enable comments" msgid "enable comments"
msgstr "" msgstr ""
#: models/core.py:86 #: models/core.py:92
msgid "template name" msgid "template name"
msgstr "" msgstr ""
#: models/core.py:87 #: models/core.py:93
msgid "" msgid ""
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will " "Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
"use 'flatfiles/default'." "use 'flatfiles/default'."
msgstr "" msgstr ""
#: models/core.py:88 #: models/core.py:94
msgid "registration required" msgid "registration required"
msgstr "" msgstr ""
#: models/core.py:88 #: models/core.py:94
msgid "If this is checked, only logged-in users will be able to view the page." msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "" msgstr ""
#: models/core.py:92 #: models/core.py:98
msgid "flat page" msgid "flat page"
msgstr "" msgstr ""
#: models/core.py:93 #: models/core.py:99
msgid "flat pages" msgid "flat pages"
msgstr "" msgstr ""
#: models/core.py:114 #: models/core.py:117
msgid "session key" msgid "session key"
msgstr "" msgstr ""
#: models/core.py:115 #: models/core.py:118
msgid "session data" msgid "session data"
msgstr "" msgstr ""
#: models/core.py:116 #: models/core.py:119
msgid "expire date" msgid "expire date"
msgstr "" msgstr ""
#: models/core.py:118 #: models/core.py:121
msgid "session" msgid "session"
msgstr "" msgstr ""
#: models/core.py:119 #: models/core.py:122
msgid "sessions" msgid "sessions"
msgstr "" msgstr ""
@ -948,167 +948,171 @@ msgstr ""
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "" msgstr ""
#: core/validators.py:58 #: conf/global_settings.py:49
msgid "Slovak"
msgstr ""
#: core/validators.py:59
msgid "This value must contain only letters, numbers and underscores." msgid "This value must contain only letters, numbers and underscores."
msgstr "Este valor debe contener sólo letras, números y guión bajo." msgstr "Este valor debe contener sólo letras, números y guión bajo."
#: core/validators.py:62 #: core/validators.py:63
#, fuzzy #, fuzzy
msgid "This value must contain only letters, numbers, underscores and slashes." msgid "This value must contain only letters, numbers, underscores and slashes."
msgstr "Este valor debe contener sólo letras, números y guión bajo." msgstr "Este valor debe contener sólo letras, números y guión bajo."
#: core/validators.py:70 #: core/validators.py:71
msgid "Uppercase letters are not allowed here." msgid "Uppercase letters are not allowed here."
msgstr "" msgstr ""
#: core/validators.py:74 #: core/validators.py:75
msgid "Lowercase letters are not allowed here." msgid "Lowercase letters are not allowed here."
msgstr "" msgstr ""
#: core/validators.py:81 #: core/validators.py:82
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "" msgstr ""
#: core/validators.py:93 #: core/validators.py:94
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "" msgstr ""
#: core/validators.py:100 #: core/validators.py:98
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
msgstr "" msgstr ""
#: core/validators.py:104 #: core/validators.py:102
msgid "Empty values are not allowed here." msgid "Empty values are not allowed here."
msgstr "" msgstr ""
#: core/validators.py:108 #: core/validators.py:106
msgid "Non-numeric characters aren't allowed here." msgid "Non-numeric characters aren't allowed here."
msgstr "" msgstr ""
#: core/validators.py:112 #: core/validators.py:110
msgid "This value can't be comprised solely of digits." msgid "This value can't be comprised solely of digits."
msgstr "" msgstr ""
#: core/validators.py:117 #: core/validators.py:115
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "" msgstr ""
#: core/validators.py:121 #: core/validators.py:119
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
msgstr "" msgstr ""
#: core/validators.py:125 #: core/validators.py:123
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "" msgstr ""
#: core/validators.py:129 #: core/validators.py:127
msgid "Enter a valid time in HH:MM format." msgid "Enter a valid time in HH:MM format."
msgstr "" msgstr ""
#: core/validators.py:133 #: core/validators.py:131
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "" msgstr ""
#: core/validators.py:137 #: core/validators.py:135
#, fuzzy #, fuzzy
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "Dirección de correo:" msgstr "Dirección de correo:"
#: core/validators.py:149 #: core/validators.py:147
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: core/validators.py:156 #: core/validators.py:154
#, python-format #, python-format
msgid "The URL %s does not point to a valid image." msgid "The URL %s does not point to a valid image."
msgstr "" msgstr ""
#: core/validators.py:160 #: core/validators.py:158
#, python-format #, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "" msgstr ""
#: core/validators.py:168 #: core/validators.py:166
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "" msgstr ""
#: core/validators.py:172 #: core/validators.py:170
msgid "A valid URL is required." msgid "A valid URL is required."
msgstr "" msgstr ""
#: core/validators.py:186 #: core/validators.py:184
#, python-format #, python-format
msgid "" msgid ""
"Valid HTML is required. Specific errors are:\n" "Valid HTML is required. Specific errors are:\n"
"%s" "%s"
msgstr "" msgstr ""
#: core/validators.py:193 #: core/validators.py:191
#, python-format #, python-format
msgid "Badly formed XML: %s" msgid "Badly formed XML: %s"
msgstr "" msgstr ""
#: core/validators.py:203 #: core/validators.py:201
#, python-format #, python-format
msgid "Invalid URL: %s" msgid "Invalid URL: %s"
msgstr "" msgstr ""
#: core/validators.py:205 #: core/validators.py:203
#, python-format #, python-format
msgid "The URL %s is a broken link." msgid "The URL %s is a broken link."
msgstr "" msgstr ""
#: core/validators.py:211 #: core/validators.py:209
msgid "Enter a valid U.S. state abbreviation." msgid "Enter a valid U.S. state abbreviation."
msgstr "" msgstr ""
#: core/validators.py:226 #: core/validators.py:224
#, python-format #, python-format
msgid "Watch your mouth! The word %s is not allowed here." msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: core/validators.py:233 #: core/validators.py:231
#, python-format #, python-format
msgid "This field must match the '%s' field." msgid "This field must match the '%s' field."
msgstr "" msgstr ""
#: core/validators.py:252 #: core/validators.py:250
msgid "Please enter something for at least one field." msgid "Please enter something for at least one field."
msgstr "" msgstr ""
#: core/validators.py:261 core/validators.py:272 #: core/validators.py:259 core/validators.py:270
msgid "Please enter both fields or leave them both empty." msgid "Please enter both fields or leave them both empty."
msgstr "" msgstr ""
#: core/validators.py:279 #: core/validators.py:277
#, python-format #, python-format
msgid "This field must be given if %(field)s is %(value)s" msgid "This field must be given if %(field)s is %(value)s"
msgstr "" msgstr ""
#: core/validators.py:291 #: core/validators.py:289
#, python-format #, python-format
msgid "This field must be given if %(field)s is not %(value)s" msgid "This field must be given if %(field)s is not %(value)s"
msgstr "" msgstr ""
#: core/validators.py:310 #: core/validators.py:308
msgid "Duplicate values are not allowed." msgid "Duplicate values are not allowed."
msgstr "" msgstr ""
#: core/validators.py:333 #: core/validators.py:331
#, python-format #, python-format
msgid "This value must be a power of %s." msgid "This value must be a power of %s."
msgstr "" msgstr ""
#: core/validators.py:344 #: core/validators.py:342
msgid "Please enter a valid decimal number." msgid "Please enter a valid decimal number."
msgstr "" msgstr ""
#: core/validators.py:346 #: core/validators.py:344
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s total digit." msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "" msgid_plural ""
@ -1116,7 +1120,7 @@ msgid_plural ""
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: core/validators.py:349 #: core/validators.py:347
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "" msgid_plural ""
@ -1124,71 +1128,71 @@ msgid_plural ""
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: core/validators.py:359 #: core/validators.py:357
#, python-format #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "" msgstr ""
#: core/validators.py:360 #: core/validators.py:358
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "" msgstr ""
#: core/validators.py:373 #: core/validators.py:371
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
msgstr "" msgstr ""
#: core/validators.py:388 #: core/validators.py:386
msgid "This field is invalid." msgid "This field is invalid."
msgstr "" msgstr ""
#: core/validators.py:423 #: core/validators.py:421
#, python-format #, python-format
msgid "Could not retrieve anything from %s." msgid "Could not retrieve anything from %s."
msgstr "" msgstr ""
#: core/validators.py:426 #: core/validators.py:424
#, python-format #, python-format
msgid "" msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
msgstr "" msgstr ""
#: core/validators.py:459 #: core/validators.py:457
#, python-format #, python-format
msgid "" msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
"\"%(start)s\".)" "\"%(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:463 #: core/validators.py:461
#, python-format #, python-format
msgid "" msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line " "Some text starting on line %(line)s is not allowed in that context. (Line "
"starts with \"%(start)s\".)" "starts with \"%(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:468 #: core/validators.py:466
#, python-format #, python-format
msgid "" msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
"(start)s\".)" "(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:473 #: core/validators.py:471
#, python-format #, python-format
msgid "" msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
"(start)s\".)" "(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:477 #: core/validators.py:475
#, python-format #, python-format
msgid "" msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line " "A tag on line %(line)s is missing one or more required attributes. (Line "
"starts with \"%(start)s\".)" "starts with \"%(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:482 #: core/validators.py:480
#, python-format #, python-format
msgid "" msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: django\n" "Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-11-04 18:22+0100\n" "POT-Creation-Date: 2005-11-08 09:05-0600\n"
"PO-Revision-Date: 2005-10-18 12:27+0200\n" "PO-Revision-Date: 2005-10-18 12:27+0200\n"
"Last-Translator: Laurent Rahuel <laurent.rahuel@gmail.com>\n" "Last-Translator: Laurent Rahuel <laurent.rahuel@gmail.com>\n"
"Language-Team: français <fr@li.org>\n" "Language-Team: français <fr@li.org>\n"
@ -15,38 +15,112 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: contrib/admin/models/admin.py:6 #: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
msgid "action time" #, python-format
msgstr "heure de l'action" msgid ""
"<h3>By %s:</h3>\n"
#: contrib/admin/models/admin.py:9 "<ul>\n"
msgid "object id"
msgstr "id de l'objet"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "repr de l'objet"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "drapeau de l'action"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "message de modification"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "entrée de log"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "entrées de log"
#: contrib/admin/templatetags/admin_list.py:256
msgid "All dates"
msgstr "" msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, python-format
msgid "Select %s to change"
msgstr ""
#: contrib/admin/views/main.py:570
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:600
#, fuzzy, python-format
msgid "Add %s"
msgstr "Ajouter"
#: contrib/admin/views/main.py:616
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:616 contrib/admin/views/main.py:618
#: contrib/admin/views/main.py:620
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:618
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Modifier"
#: contrib/admin/views/main.py:620
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:623
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:648
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:657
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:695
#, fuzzy, python-format
msgid "Change %s"
msgstr "Modifier"
#: contrib/admin/views/main.py:775
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:780
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:809
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:812
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:827
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Modifier votre mot de passe"
#: contrib/admin/views/decorators.py:22 #: contrib/admin/views/decorators.py:22
#: contrib/admin/templates/admin/login.html:24 #: contrib/admin/templates/admin/login.html:24
msgid "Log in" msgid "Log in"
@ -73,112 +147,6 @@ msgstr ""
msgid "Your e-mail address is not your username. Try '%s' instead." msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "" msgstr ""
#: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
#, python-format
msgid ""
"<h3>By %s:</h3>\n"
"<ul>\n"
msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, python-format
msgid "Select %s to change"
msgstr ""
#: contrib/admin/views/main.py:567
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:572 contrib/admin/views/main.py:648
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:580 contrib/admin/views/main.py:657
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:597
#, fuzzy, python-format
msgid "Add %s"
msgstr "Ajouter"
#: contrib/admin/views/main.py:613
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:613 contrib/admin/views/main.py:615
#: contrib/admin/views/main.py:617
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:615
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Modifier"
#: contrib/admin/views/main.py:617
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:620
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:645
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:654
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:692
#, fuzzy, python-format
msgid "Change %s"
msgstr "Modifier"
#: contrib/admin/views/main.py:772
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:777
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:806
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:809
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:824
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Modifier votre mot de passe"
#: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271 #: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271
#: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278 #: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281 #: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
@ -248,7 +216,7 @@ msgstr ""
msgid "Time" msgid "Time"
msgstr "" msgstr ""
#: contrib/admin/views/doc.py:284 models/core.py:81 #: contrib/admin/views/doc.py:284 models/core.py:87
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
@ -260,35 +228,18 @@ msgstr ""
msgid "XML text" msgid "XML text"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/index.html:27 #: contrib/admin/templates/admin/base_site.html:4
#: contrib/admin/templates/admin/change_form.html:14 msgid "Django site admin"
msgid "Add" msgstr "Site d'administration de Django"
msgstr "Ajouter"
#: contrib/admin/templates/admin/index.html:33 #: contrib/admin/templates/admin/base_site.html:7
msgid "Change" msgid "Django administration"
msgstr "Modifier" msgstr "Administration de Django"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "Vous n'avez pas la permission d'éditer quoi que ce soit."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Actions récentes"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Mes actions"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Aucun(e) disponible"
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/admin/base.html:29 #: contrib/admin/templates/admin/base.html:29
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/registration/password_change_done.html:4 #: contrib/admin/templates/registration/password_change_done.html:4
#: contrib/admin/templates/registration/password_reset_form.html:4 #: contrib/admin/templates/registration/password_reset_form.html:4
#: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/logged_out.html:4
@ -319,6 +270,40 @@ msgstr ""
"administrateurs du site et sera corrigée dans les meilleurs délais. Merci " "administrateurs du site et sera corrigée dans les meilleurs délais. Merci "
"pour votre patience." "pour votre patience."
#: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8
msgid "Page not found"
msgstr "Cette page n'a pas été trouvée"
#: contrib/admin/templates/admin/404.html:10
msgid "We're sorry, but the requested page could not be found."
msgstr "Nous sommes désolés, mais la page demandée est introuvable."
#: contrib/admin/templates/admin/index.html:27
#: contrib/admin/templates/admin/change_form.html:14
msgid "Add"
msgstr "Ajouter"
#: contrib/admin/templates/admin/index.html:33
msgid "Change"
msgstr "Modifier"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "Vous n'avez pas la permission d'éditer quoi que ce soit."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Actions récentes"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Mes actions"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Aucun(e) disponible"
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:19 #: contrib/admin/templates/admin/change_form.html:19
msgid "History" msgid "History"
@ -348,14 +333,6 @@ msgstr ""
"Cet objet n'a pas d'historique de modification. Il n'a probablement pas été " "Cet objet n'a pas d'historique de modification. Il n'a probablement pas été "
"ajouté au moyen de ce site d'administration." "ajouté au moyen de ce site d'administration."
#: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin"
msgstr "Site d'administration de Django"
#: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration"
msgstr "Administration de Django"
#: contrib/admin/templates/admin/login.html:15 #: contrib/admin/templates/admin/login.html:15
msgid "Username:" msgid "Username:"
msgstr "Nom d'utilisateur" msgstr "Nom d'utilisateur"
@ -368,32 +345,17 @@ msgstr "Mot de passe"
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?" msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
msgstr "Avez vous <a href=\"/password_reset/\">perdu votre mot de passe</a>?" msgstr "Avez vous <a href=\"/password_reset/\">perdu votre mot de passe</a>?"
#: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/base.html:23
#: contrib/admin/templates/admin/404.html:8 msgid "Welcome,"
msgid "Page not found" msgstr "Bienvenue,"
msgstr "Cette page n'a pas été trouvée"
#: contrib/admin/templates/admin/404.html:10 #: contrib/admin/templates/admin/base.html:23
msgid "We're sorry, but the requested page could not be found." msgid "Change password"
msgstr "Nous sommes désolés, mais la page demandée est introuvable." msgstr "Modifier votre mot de passe"
#: contrib/admin/templates/admin/change_form.html:20 #: contrib/admin/templates/admin/base.html:23
msgid "View on site" msgid "Log out"
msgstr "" msgstr "Déconnection"
#: contrib/admin/templates/admin/change_form.html:28
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/change_form.html:45
msgid "Ordering"
msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/delete_confirmation.html:7 #: contrib/admin/templates/admin/delete_confirmation.html:7
#, fuzzy, python-format #, fuzzy, python-format
@ -419,17 +381,23 @@ msgstr ""
msgid "Yes, I'm sure" msgid "Yes, I'm sure"
msgstr "Oui, je suis certain" msgstr "Oui, je suis certain"
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:20
msgid "Welcome," msgid "View on site"
msgstr "Bienvenue," msgstr ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:28
msgid "Change password" msgid "Please correct the error below."
msgstr "Modifier votre mot de passe" msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:45
msgid "Log out" msgid "Ordering"
msgstr "Déconnection" msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/submit_line.html:3 #: contrib/admin/templates/admin/submit_line.html:3
msgid "Delete" msgid "Delete"
@ -569,6 +537,38 @@ msgstr "Merci d'utiliser notre site!"
msgid "The %(site_name)s team" msgid "The %(site_name)s team"
msgstr "L'équipe %(site_name)s" msgstr "L'équipe %(site_name)s"
#: contrib/admin/models/admin.py:6
msgid "action time"
msgstr "heure de l'action"
#: contrib/admin/models/admin.py:9
msgid "object id"
msgstr "id de l'objet"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "repr de l'objet"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "drapeau de l'action"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "message de modification"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "entrée de log"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "entrées de log"
#: contrib/admin/templatetags/admin_list.py:260
msgid "All dates"
msgstr ""
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Monday" msgid "Monday"
msgstr "Lundi" msgstr "Lundi"
@ -673,55 +673,55 @@ msgstr "Nov."
msgid "Dec." msgid "Dec."
msgstr "Déc." msgstr "Déc."
#: models/core.py:5 #: models/core.py:7
msgid "domain name" msgid "domain name"
msgstr "nom de domaine" msgstr "nom de domaine"
#: models/core.py:6 #: models/core.py:8
msgid "display name" msgid "display name"
msgstr "nom à afficher" msgstr "nom à afficher"
#: models/core.py:8 #: models/core.py:10
msgid "site" msgid "site"
msgstr "site" msgstr "site"
#: models/core.py:9 #: models/core.py:11
msgid "sites" msgid "sites"
msgstr "sites" msgstr "sites"
#: models/core.py:22 #: models/core.py:28
msgid "label" msgid "label"
msgstr "intitulé" msgstr "intitulé"
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19 #: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19
msgid "name" msgid "name"
msgstr "nom" msgstr "nom"
#: models/core.py:25 #: models/core.py:31
msgid "package" msgid "package"
msgstr "paquetage" msgstr "paquetage"
#: models/core.py:26 #: models/core.py:32
msgid "packages" msgid "packages"
msgstr "paquetages" msgstr "paquetages"
#: models/core.py:36 #: models/core.py:42
msgid "python module name" msgid "python module name"
msgstr "nom du module python" msgstr "nom du module python"
#: models/core.py:38 #: models/core.py:44
msgid "content type" msgid "content type"
msgstr "type de contenu" msgstr "type de contenu"
#: models/core.py:39 #: models/core.py:45
msgid "content types" msgid "content types"
msgstr "types de contenu" msgstr "types de contenu"
#: models/core.py:62 #: models/core.py:68
msgid "redirect from" msgid "redirect from"
msgstr "redirigé depuis" msgstr "redirigé depuis"
#: models/core.py:63 #: models/core.py:69
msgid "" msgid ""
"This should be an absolute path, excluding the domain name. Example: '/" "This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'." "events/search/'."
@ -729,11 +729,11 @@ msgstr ""
"Ceci doit être un chemin absolu, sans nom de domaine. Par exemple: '/events/" "Ceci doit être un chemin absolu, sans nom de domaine. Par exemple: '/events/"
"search/'." "search/'."
#: models/core.py:64 #: models/core.py:70
msgid "redirect to" msgid "redirect to"
msgstr "redirigé vers" msgstr "redirigé vers"
#: models/core.py:65 #: models/core.py:71
msgid "" msgid ""
"This can be either an absolute path (as above) or a full URL starting with " "This can be either an absolute path (as above) or a full URL starting with "
"'http://'." "'http://'."
@ -741,38 +741,38 @@ msgstr ""
"Ceci peut être soit un chemin absolu (voir ci-dessus) soit une URL complète " "Ceci peut être soit un chemin absolu (voir ci-dessus) soit une URL complète "
"débutant par 'http://'." "débutant par 'http://'."
#: models/core.py:67 #: models/core.py:73
msgid "redirect" msgid "redirect"
msgstr "redirection" msgstr "redirection"
#: models/core.py:68 #: models/core.py:74
msgid "redirects" msgid "redirects"
msgstr "redirections" msgstr "redirections"
#: models/core.py:82 #: models/core.py:88
msgid "" msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes." "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr "" msgstr ""
"Par exemple : '/about/contact/'. Vérifiez la présence du caractère '/' en " "Par exemple : '/about/contact/'. Vérifiez la présence du caractère '/' en "
"début et en fin de chaine." "début et en fin de chaine."
#: models/core.py:83 #: models/core.py:89
msgid "title" msgid "title"
msgstr "titre" msgstr "titre"
#: models/core.py:84 #: models/core.py:90
msgid "content" msgid "content"
msgstr "contenu" msgstr "contenu"
#: models/core.py:85 #: models/core.py:91
msgid "enable comments" msgid "enable comments"
msgstr "autoriser les commentaires" msgstr "autoriser les commentaires"
#: models/core.py:86 #: models/core.py:92
msgid "template name" msgid "template name"
msgstr "nom du template" msgstr "nom du template"
#: models/core.py:87 #: models/core.py:93
msgid "" msgid ""
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will " "Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
"use 'flatfiles/default'." "use 'flatfiles/default'."
@ -780,41 +780,41 @@ msgstr ""
"Par exemple: 'flatfiles/contact_page'. Sans définition, le système utilisera " "Par exemple: 'flatfiles/contact_page'. Sans définition, le système utilisera "
"'flatfiles/default'." "'flatfiles/default'."
#: models/core.py:88 #: models/core.py:94
msgid "registration required" msgid "registration required"
msgstr "enregistrement requis" msgstr "enregistrement requis"
#: models/core.py:88 #: models/core.py:94
msgid "If this is checked, only logged-in users will be able to view the page." msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "" msgstr ""
"Si coché, seuls les utilisateurs connectés auront la possibilité de voir " "Si coché, seuls les utilisateurs connectés auront la possibilité de voir "
"cette page." "cette page."
#: models/core.py:92 #: models/core.py:98
msgid "flat page" msgid "flat page"
msgstr "page à plat" msgstr "page à plat"
#: models/core.py:93 #: models/core.py:99
msgid "flat pages" msgid "flat pages"
msgstr "pages à plat" msgstr "pages à plat"
#: models/core.py:114 #: models/core.py:117
msgid "session key" msgid "session key"
msgstr "clé de session" msgstr "clé de session"
#: models/core.py:115 #: models/core.py:118
msgid "session data" msgid "session data"
msgstr "donnée de session" msgstr "donnée de session"
#: models/core.py:116 #: models/core.py:119
msgid "expire date" msgid "expire date"
msgstr "date d'expiration" msgstr "date d'expiration"
#: models/core.py:118 #: models/core.py:121
msgid "session" msgid "session"
msgstr "session" msgstr "session"
#: models/core.py:119 #: models/core.py:122
msgid "sessions" msgid "sessions"
msgstr "sessions" msgstr "sessions"
@ -961,74 +961,78 @@ msgstr "Serbe"
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "" msgstr ""
#: core/validators.py:58 #: conf/global_settings.py:49
msgid "Slovak"
msgstr ""
#: core/validators.py:59
msgid "This value must contain only letters, numbers and underscores." msgid "This value must contain only letters, numbers and underscores."
msgstr "" msgstr ""
"Ce champ ne doit contenir que des lettres, des nombres et des sous-tirets." "Ce champ ne doit contenir que des lettres, des nombres et des sous-tirets."
#: core/validators.py:62 #: core/validators.py:63
msgid "This value must contain only letters, numbers, underscores and slashes." msgid "This value must contain only letters, numbers, underscores and slashes."
msgstr "" msgstr ""
"Ce champ ne doit contenir que des lettres, des nombres, des sous-tirets et " "Ce champ ne doit contenir que des lettres, des nombres, des sous-tirets et "
"des '/'." "des '/'."
#: core/validators.py:70 #: core/validators.py:71
msgid "Uppercase letters are not allowed here." msgid "Uppercase letters are not allowed here."
msgstr "Les lettres majuscules ne sont pas autorisées ici." msgstr "Les lettres majuscules ne sont pas autorisées ici."
#: core/validators.py:74 #: core/validators.py:75
msgid "Lowercase letters are not allowed here." msgid "Lowercase letters are not allowed here."
msgstr "Les lettres minuscules ne sont pas autorisées ici." msgstr "Les lettres minuscules ne sont pas autorisées ici."
#: core/validators.py:81 #: core/validators.py:82
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "Seulement des chiffres ([0-9]), séparés par des virgules." msgstr "Seulement des chiffres ([0-9]), séparés par des virgules."
#: core/validators.py:93 #: core/validators.py:94
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "Entrez des adresses de courriel valides séparées par des virgules." msgstr "Entrez des adresses de courriel valides séparées par des virgules."
#: core/validators.py:100 #: core/validators.py:98
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
msgstr "Entrez une adresse IP valide." msgstr "Entrez une adresse IP valide."
#: core/validators.py:104 #: core/validators.py:102
msgid "Empty values are not allowed here." msgid "Empty values are not allowed here."
msgstr "Vous ne pouvez pas laisser ce champ vide." msgstr "Vous ne pouvez pas laisser ce champ vide."
#: core/validators.py:108 #: core/validators.py:106
msgid "Non-numeric characters aren't allowed here." msgid "Non-numeric characters aren't allowed here."
msgstr "Les caractères non numériques ne sont pas autorisés ici." msgstr "Les caractères non numériques ne sont pas autorisés ici."
#: core/validators.py:112 #: core/validators.py:110
msgid "This value can't be comprised solely of digits." msgid "This value can't be comprised solely of digits."
msgstr "Cette valeur ne peut contenir que des chiffres [0-9]." msgstr "Cette valeur ne peut contenir que des chiffres [0-9]."
#: core/validators.py:117 #: core/validators.py:115
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "Entrez un nombre entier." msgstr "Entrez un nombre entier."
#: core/validators.py:121 #: core/validators.py:119
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
msgstr "Seules les lettres de l'alphabet sont autorisées ici." msgstr "Seules les lettres de l'alphabet sont autorisées ici."
#: core/validators.py:125 #: core/validators.py:123
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "Entrez une date valide au format AAAA-MM-JJ." msgstr "Entrez une date valide au format AAAA-MM-JJ."
#: core/validators.py:129 #: core/validators.py:127
msgid "Enter a valid time in HH:MM format." msgid "Enter a valid time in HH:MM format."
msgstr "Entrez une heure valide au format HH:MM." msgstr "Entrez une heure valide au format HH:MM."
#: core/validators.py:133 #: core/validators.py:131
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "Entrez une date et une heure valide au format AAAA-MM-JJ HH:MM." msgstr "Entrez une date et une heure valide au format AAAA-MM-JJ HH:MM."
#: core/validators.py:137 #: core/validators.py:135
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "Entrez une adresse de courriel valide." msgstr "Entrez une adresse de courriel valide."
#: core/validators.py:149 #: core/validators.py:147
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
@ -1036,28 +1040,28 @@ msgstr ""
"Envoyez une image valide. Le fichier que vous avez transferé n'est pas une " "Envoyez une image valide. Le fichier que vous avez transferé n'est pas une "
"image ou bien est une image corrompue." "image ou bien est une image corrompue."
#: core/validators.py:156 #: core/validators.py:154
#, python-format #, python-format
msgid "The URL %s does not point to a valid image." msgid "The URL %s does not point to a valid image."
msgstr "L'URL %s ne pointe pas vers une image valide." msgstr "L'URL %s ne pointe pas vers une image valide."
#: core/validators.py:160 #: core/validators.py:158
#, python-format #, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "" msgstr ""
"Les numéros de téléphone doivent être au format XX XX XX XX XX. \"%s\" est " "Les numéros de téléphone doivent être au format XX XX XX XX XX. \"%s\" est "
"incorrect." "incorrect."
#: core/validators.py:168 #: core/validators.py:166
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "L'URL %s ne pointe pas vers une vidéo QuickTime valide." msgstr "L'URL %s ne pointe pas vers une vidéo QuickTime valide."
#: core/validators.py:172 #: core/validators.py:170
msgid "A valid URL is required." msgid "A valid URL is required."
msgstr "Une URL valide est requise." msgstr "Une URL valide est requise."
#: core/validators.py:186 #: core/validators.py:184
#, python-format #, python-format
msgid "" msgid ""
"Valid HTML is required. Specific errors are:\n" "Valid HTML is required. Specific errors are:\n"
@ -1066,69 +1070,69 @@ msgstr ""
"Du HTML valide est requis. Les erreurs spécifiques sont:\n" "Du HTML valide est requis. Les erreurs spécifiques sont:\n"
"%s" "%s"
#: core/validators.py:193 #: core/validators.py:191
#, python-format #, python-format
msgid "Badly formed XML: %s" msgid "Badly formed XML: %s"
msgstr "XML mal formé: %s" msgstr "XML mal formé: %s"
#: core/validators.py:203 #: core/validators.py:201
#, python-format #, python-format
msgid "Invalid URL: %s" msgid "Invalid URL: %s"
msgstr "URL invalide: %s" msgstr "URL invalide: %s"
#: core/validators.py:205 #: core/validators.py:203
#, python-format #, python-format
msgid "The URL %s is a broken link." msgid "The URL %s is a broken link."
msgstr "L'URL %s est un lien cassé." msgstr "L'URL %s est un lien cassé."
#: core/validators.py:211 #: core/validators.py:209
msgid "Enter a valid U.S. state abbreviation." msgid "Enter a valid U.S. state abbreviation."
msgstr "Entrez une abréviation d'état américain valide." msgstr "Entrez une abréviation d'état américain valide."
#: core/validators.py:226 #: core/validators.py:224
#, python-format #, python-format
msgid "Watch your mouth! The word %s is not allowed here." msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here."
msgstr[0] "Attention à votre langage,! Le mot %s n'est pas autorisé ici." msgstr[0] "Attention à votre langage,! Le mot %s n'est pas autorisé ici."
msgstr[1] "Attention à votre langage,! Les mots %s ne sont pas autorisés ici." msgstr[1] "Attention à votre langage,! Les mots %s ne sont pas autorisés ici."
#: core/validators.py:233 #: core/validators.py:231
#, python-format #, python-format
msgid "This field must match the '%s' field." msgid "This field must match the '%s' field."
msgstr "Ce champ doit correspondre au champ '%s'." msgstr "Ce champ doit correspondre au champ '%s'."
#: core/validators.py:252 #: core/validators.py:250
msgid "Please enter something for at least one field." msgid "Please enter something for at least one field."
msgstr "S'il vous plaît, saisissez au moins une valeur dans un des champs." msgstr "S'il vous plaît, saisissez au moins une valeur dans un des champs."
#: core/validators.py:261 core/validators.py:272 #: core/validators.py:259 core/validators.py:270
msgid "Please enter both fields or leave them both empty." msgid "Please enter both fields or leave them both empty."
msgstr "S'il vous plaît, renseignez chaque champ ou laissez les deux vides." msgstr "S'il vous plaît, renseignez chaque champ ou laissez les deux vides."
#: core/validators.py:279 #: core/validators.py:277
#, python-format #, python-format
msgid "This field must be given if %(field)s is %(value)s" msgid "This field must be given if %(field)s is %(value)s"
msgstr "Ce champ doit être renseigné si %(field)s vaut %(value)s" msgstr "Ce champ doit être renseigné si %(field)s vaut %(value)s"
#: core/validators.py:291 #: core/validators.py:289
#, python-format #, python-format
msgid "This field must be given if %(field)s is not %(value)s" msgid "This field must be given if %(field)s is not %(value)s"
msgstr "Ce champ doit être renseigné si %(field)s ne vaut pas %(value)s" msgstr "Ce champ doit être renseigné si %(field)s ne vaut pas %(value)s"
#: core/validators.py:310 #: core/validators.py:308
msgid "Duplicate values are not allowed." msgid "Duplicate values are not allowed."
msgstr "Des valeurs identiques ne sont pas autorisées." msgstr "Des valeurs identiques ne sont pas autorisées."
#: core/validators.py:333 #: core/validators.py:331
#, python-format #, python-format
msgid "This value must be a power of %s." msgid "This value must be a power of %s."
msgstr "Cette valeur doit être une puissance de %s." msgstr "Cette valeur doit être une puissance de %s."
#: core/validators.py:344 #: core/validators.py:342
msgid "Please enter a valid decimal number." msgid "Please enter a valid decimal number."
msgstr "S'il vous plaît, saisissez un nombre décimal valide." msgstr "S'il vous plaît, saisissez un nombre décimal valide."
#: core/validators.py:346 #: core/validators.py:344
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s total digit." msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "" msgid_plural ""
@ -1138,7 +1142,7 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
"S'il vous plaît, saisissez un nombre décimal valide avec au plus %s chiffres." "S'il vous plaît, saisissez un nombre décimal valide avec au plus %s chiffres."
#: core/validators.py:349 #: core/validators.py:347
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "" msgid_plural ""
@ -1148,32 +1152,32 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
"S'il vous plaît, saisissez un nombre décimal valide avec au plus %s décimales" "S'il vous plaît, saisissez un nombre décimal valide avec au plus %s décimales"
#: core/validators.py:359 #: core/validators.py:357
#, python-format #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "" msgstr ""
"Vérifiez que le fichier transféré fait au moins une taille de %s octets." "Vérifiez que le fichier transféré fait au moins une taille de %s octets."
#: core/validators.py:360 #: core/validators.py:358
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "" msgstr ""
"Vérifiez que le fichier transféré fait au plus une taille de %s octets." "Vérifiez que le fichier transféré fait au plus une taille de %s octets."
#: core/validators.py:373 #: core/validators.py:371
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
msgstr "Le format de ce champ est mauvais." msgstr "Le format de ce champ est mauvais."
#: core/validators.py:388 #: core/validators.py:386
msgid "This field is invalid." msgid "This field is invalid."
msgstr "Ce champ est invalide." msgstr "Ce champ est invalide."
#: core/validators.py:423 #: core/validators.py:421
#, python-format #, python-format
msgid "Could not retrieve anything from %s." msgid "Could not retrieve anything from %s."
msgstr "Impossible de récupérer quoi que ce soit depuis %s." msgstr "Impossible de récupérer quoi que ce soit depuis %s."
#: core/validators.py:426 #: core/validators.py:424
#, python-format #, python-format
msgid "" msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
@ -1181,7 +1185,7 @@ msgstr ""
"L'entête Content-Type '%(contenttype)s', renvoyée par l'url %(url)s n'est " "L'entête Content-Type '%(contenttype)s', renvoyée par l'url %(url)s n'est "
"pas valide." "pas valide."
#: core/validators.py:459 #: core/validators.py:457
#, python-format #, python-format
msgid "" msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
@ -1190,7 +1194,7 @@ msgstr ""
"Veuillez fermer le tag %(tag)s de la ligne %(line)s. (La ligne débutant par " "Veuillez fermer le tag %(tag)s de la ligne %(line)s. (La ligne débutant par "
"\"%(start)s\".)" "\"%(start)s\".)"
#: core/validators.py:463 #: core/validators.py:461
#, python-format #, python-format
msgid "" msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line " "Some text starting on line %(line)s is not allowed in that context. (Line "
@ -1199,7 +1203,7 @@ msgstr ""
"Du texte commençant à la ligne %(line)s n'est pas autorisé dans ce contexte. " "Du texte commençant à la ligne %(line)s n'est pas autorisé dans ce contexte. "
"(Ligne débutant par \"%(start)s\".)" "(Ligne débutant par \"%(start)s\".)"
#: core/validators.py:468 #: core/validators.py:466
#, python-format #, python-format
msgid "" msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
@ -1208,7 +1212,7 @@ msgstr ""
"\"%(attr)s\" ligne %(line)s n'est pas un attribut valide. (Ligne débutant " "\"%(attr)s\" ligne %(line)s n'est pas un attribut valide. (Ligne débutant "
"par \"%(start)s\".)" "par \"%(start)s\".)"
#: core/validators.py:473 #: core/validators.py:471
#, python-format #, python-format
msgid "" msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
@ -1217,7 +1221,7 @@ msgstr ""
"\"<%(tag)s>\" ligne %(line)s n'est pas un tag valide. (Ligne débutant par \"%" "\"<%(tag)s>\" ligne %(line)s n'est pas un tag valide. (Ligne débutant par \"%"
"(start)s\".)" "(start)s\".)"
#: core/validators.py:477 #: core/validators.py:475
#, python-format #, python-format
msgid "" msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line " "A tag on line %(line)s is missing one or more required attributes. (Line "
@ -1226,7 +1230,7 @@ msgstr ""
"Un tag, ou un ou plusieurs attributs, de la ligne %(line)s est manquant. " "Un tag, ou un ou plusieurs attributs, de la ligne %(line)s est manquant. "
"(Ligne débutant par \"%(start)s\".)" "(Ligne débutant par \"%(start)s\".)"
#: core/validators.py:482 #: core/validators.py:480
#, python-format #, python-format
msgid "" msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-11-04 18:22+0100\n" "POT-Creation-Date: 2005-11-08 09:05-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -16,38 +16,112 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n" "Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: contrib/admin/models/admin.py:6 #: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
msgid "action time" #, python-format
msgstr "data azione" msgid ""
"<h3>By %s:</h3>\n"
#: contrib/admin/models/admin.py:9 "<ul>\n"
msgid "object id"
msgstr "id dell'oggetto"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "rappresentazione dell'oggetto"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "flag azione"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "messaggio"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "voce di log"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "voci di log"
#: contrib/admin/templatetags/admin_list.py:256
msgid "All dates"
msgstr "" msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, fuzzy, python-format
msgid "Select %s to change"
msgstr "Clicca per cambiare"
#: contrib/admin/views/main.py:570
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:600
#, fuzzy, python-format
msgid "Add %s"
msgstr "Aggiungi"
#: contrib/admin/views/main.py:616
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:616 contrib/admin/views/main.py:618
#: contrib/admin/views/main.py:620
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:618
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Cambia"
#: contrib/admin/views/main.py:620
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:623
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:648
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:657
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:695
#, fuzzy, python-format
msgid "Change %s"
msgstr "Cambia"
#: contrib/admin/views/main.py:775
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:780
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:809
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:812
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:827
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Cambia la password"
#: contrib/admin/views/decorators.py:22 #: contrib/admin/views/decorators.py:22
#: contrib/admin/templates/admin/login.html:24 #: contrib/admin/templates/admin/login.html:24
msgid "Log in" msgid "Log in"
@ -74,112 +148,6 @@ msgstr ""
msgid "Your e-mail address is not your username. Try '%s' instead." msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "" msgstr ""
#: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
#, python-format
msgid ""
"<h3>By %s:</h3>\n"
"<ul>\n"
msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, fuzzy, python-format
msgid "Select %s to change"
msgstr "Clicca per cambiare"
#: contrib/admin/views/main.py:567
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:572 contrib/admin/views/main.py:648
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:580 contrib/admin/views/main.py:657
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:597
#, fuzzy, python-format
msgid "Add %s"
msgstr "Aggiungi"
#: contrib/admin/views/main.py:613
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:613 contrib/admin/views/main.py:615
#: contrib/admin/views/main.py:617
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:615
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Cambia"
#: contrib/admin/views/main.py:617
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:620
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:645
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:654
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:692
#, fuzzy, python-format
msgid "Change %s"
msgstr "Cambia"
#: contrib/admin/views/main.py:772
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:777
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:806
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:809
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:824
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Cambia la password"
#: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271 #: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271
#: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278 #: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281 #: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
@ -249,7 +217,7 @@ msgstr ""
msgid "Time" msgid "Time"
msgstr "" msgstr ""
#: contrib/admin/views/doc.py:284 models/core.py:81 #: contrib/admin/views/doc.py:284 models/core.py:87
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
@ -261,35 +229,18 @@ msgstr ""
msgid "XML text" msgid "XML text"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/index.html:27 #: contrib/admin/templates/admin/base_site.html:4
#: contrib/admin/templates/admin/change_form.html:14 msgid "Django site admin"
msgid "Add" msgstr "Amministrazione sito Django"
msgstr "Aggiungi"
#: contrib/admin/templates/admin/index.html:33 #: contrib/admin/templates/admin/base_site.html:7
msgid "Change" msgid "Django administration"
msgstr "Cambia" msgstr "Amministrazione Django"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "Non hai i permessi di modificare nulla."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Azioni Recenti"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Azioni Proprie"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Nessuna disponibile"
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/admin/base.html:29 #: contrib/admin/templates/admin/base.html:29
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/registration/password_change_done.html:4 #: contrib/admin/templates/registration/password_change_done.html:4
#: contrib/admin/templates/registration/password_reset_form.html:4 #: contrib/admin/templates/registration/password_reset_form.html:4
#: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/logged_out.html:4
@ -319,6 +270,40 @@ msgstr ""
"C'è stato un errore. E' stato riportato agli amministratori del sito via e-" "C'è stato un errore. E' stato riportato agli amministratori del sito via e-"
"mail e verrà risolto a breve. Grazie per la pazienza." "mail e verrà risolto a breve. Grazie per la pazienza."
#: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8
msgid "Page not found"
msgstr "Pagina non trovata"
#: contrib/admin/templates/admin/404.html:10
msgid "We're sorry, but the requested page could not be found."
msgstr "Spiacente, ma la pagina richiesta non esiste."
#: contrib/admin/templates/admin/index.html:27
#: contrib/admin/templates/admin/change_form.html:14
msgid "Add"
msgstr "Aggiungi"
#: contrib/admin/templates/admin/index.html:33
msgid "Change"
msgstr "Cambia"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "Non hai i permessi di modificare nulla."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Azioni Recenti"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Azioni Proprie"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Nessuna disponibile"
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:19 #: contrib/admin/templates/admin/change_form.html:19
msgid "History" msgid "History"
@ -348,14 +333,6 @@ msgstr ""
"Questo oggetto non ha cambiamenti storicizzati. Probabilmente non è stato " "Questo oggetto non ha cambiamenti storicizzati. Probabilmente non è stato "
"creato con questo sito di amministrazione." "creato con questo sito di amministrazione."
#: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin"
msgstr "Amministrazione sito Django"
#: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration"
msgstr "Amministrazione Django"
#: contrib/admin/templates/admin/login.html:15 #: contrib/admin/templates/admin/login.html:15
msgid "Username:" msgid "Username:"
msgstr "Nome utente:" msgstr "Nome utente:"
@ -368,32 +345,17 @@ msgstr "Password:"
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?" msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
msgstr "Hai <a href=\"/password_reset/\">dimenticato la tua password</a>?" msgstr "Hai <a href=\"/password_reset/\">dimenticato la tua password</a>?"
#: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/base.html:23
#: contrib/admin/templates/admin/404.html:8 msgid "Welcome,"
msgid "Page not found" msgstr "Benvenuto,"
msgstr "Pagina non trovata"
#: contrib/admin/templates/admin/404.html:10 #: contrib/admin/templates/admin/base.html:23
msgid "We're sorry, but the requested page could not be found." msgid "Change password"
msgstr "Spiacente, ma la pagina richiesta non esiste." msgstr "Cambia la password"
#: contrib/admin/templates/admin/change_form.html:20 #: contrib/admin/templates/admin/base.html:23
msgid "View on site" msgid "Log out"
msgstr "" msgstr "Esci"
#: contrib/admin/templates/admin/change_form.html:28
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/change_form.html:45
msgid "Ordering"
msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/delete_confirmation.html:7 #: contrib/admin/templates/admin/delete_confirmation.html:7
#, fuzzy, python-format #, fuzzy, python-format
@ -419,17 +381,23 @@ msgstr ""
msgid "Yes, I'm sure" msgid "Yes, I'm sure"
msgstr "Sì, sono sicuro" msgstr "Sì, sono sicuro"
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:20
msgid "Welcome," msgid "View on site"
msgstr "Benvenuto," msgstr ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:28
msgid "Change password" msgid "Please correct the error below."
msgstr "Cambia la password" msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:45
msgid "Log out" msgid "Ordering"
msgstr "Esci" msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/submit_line.html:3 #: contrib/admin/templates/admin/submit_line.html:3
msgid "Delete" msgid "Delete"
@ -567,6 +535,38 @@ msgstr "Ti ringraziamo per l'utilizzo del nostro sito!"
msgid "The %(site_name)s team" msgid "The %(site_name)s team"
msgstr "Il team di %(site_name)s" msgstr "Il team di %(site_name)s"
#: contrib/admin/models/admin.py:6
msgid "action time"
msgstr "data azione"
#: contrib/admin/models/admin.py:9
msgid "object id"
msgstr "id dell'oggetto"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "rappresentazione dell'oggetto"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "flag azione"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "messaggio"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "voce di log"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "voci di log"
#: contrib/admin/templatetags/admin_list.py:260
msgid "All dates"
msgstr ""
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Monday" msgid "Monday"
msgstr "Lunedì" msgstr "Lunedì"
@ -671,55 +671,55 @@ msgstr "Nov."
msgid "Dec." msgid "Dec."
msgstr "Dic." msgstr "Dic."
#: models/core.py:5 #: models/core.py:7
msgid "domain name" msgid "domain name"
msgstr "nome a dominio" msgstr "nome a dominio"
#: models/core.py:6 #: models/core.py:8
msgid "display name" msgid "display name"
msgstr "nome visualizzato" msgstr "nome visualizzato"
#: models/core.py:8 #: models/core.py:10
msgid "site" msgid "site"
msgstr "sito" msgstr "sito"
#: models/core.py:9 #: models/core.py:11
msgid "sites" msgid "sites"
msgstr "siti" msgstr "siti"
#: models/core.py:22 #: models/core.py:28
msgid "label" msgid "label"
msgstr "etichetta" msgstr "etichetta"
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19 #: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19
msgid "name" msgid "name"
msgstr "nome" msgstr "nome"
#: models/core.py:25 #: models/core.py:31
msgid "package" msgid "package"
msgstr "pacchetto" msgstr "pacchetto"
#: models/core.py:26 #: models/core.py:32
msgid "packages" msgid "packages"
msgstr "pacchetti" msgstr "pacchetti"
#: models/core.py:36 #: models/core.py:42
msgid "python module name" msgid "python module name"
msgstr "nome del modulo python" msgstr "nome del modulo python"
#: models/core.py:38 #: models/core.py:44
msgid "content type" msgid "content type"
msgstr "tipo di contenuto" msgstr "tipo di contenuto"
#: models/core.py:39 #: models/core.py:45
msgid "content types" msgid "content types"
msgstr "tipo di contenuti" msgstr "tipo di contenuti"
#: models/core.py:62 #: models/core.py:68
msgid "redirect from" msgid "redirect from"
msgstr "redirigi da" msgstr "redirigi da"
#: models/core.py:63 #: models/core.py:69
msgid "" msgid ""
"This should be an absolute path, excluding the domain name. Example: '/" "This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'." "events/search/'."
@ -727,48 +727,48 @@ msgstr ""
"Un percorso assoluto, senza nome a dominio. Esempio: '/events/search/'.Un " "Un percorso assoluto, senza nome a dominio. Esempio: '/events/search/'.Un "
"percorso assoluto, senza nome a dominio. Esempio: '/events/search/'." "percorso assoluto, senza nome a dominio. Esempio: '/events/search/'."
#: models/core.py:64 #: models/core.py:70
msgid "redirect to" msgid "redirect to"
msgstr "redirigi verso" msgstr "redirigi verso"
#: models/core.py:65 #: models/core.py:71
msgid "" msgid ""
"This can be either an absolute path (as above) or a full URL starting with " "This can be either an absolute path (as above) or a full URL starting with "
"'http://'." "'http://'."
msgstr "" msgstr ""
"Un percorso assoluto (come sopra) o un URL completa che inizi con 'http://'." "Un percorso assoluto (come sopra) o un URL completa che inizi con 'http://'."
#: models/core.py:67 #: models/core.py:73
msgid "redirect" msgid "redirect"
msgstr "redirigi" msgstr "redirigi"
#: models/core.py:68 #: models/core.py:74
msgid "redirects" msgid "redirects"
msgstr "redirezioni" msgstr "redirezioni"
#: models/core.py:82 #: models/core.py:88
msgid "" msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes." "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr "" msgstr ""
"Esempio: '/about/contact/'. Attenzione alla barra ('/') iniziale e finale." "Esempio: '/about/contact/'. Attenzione alla barra ('/') iniziale e finale."
#: models/core.py:83 #: models/core.py:89
msgid "title" msgid "title"
msgstr "titolo" msgstr "titolo"
#: models/core.py:84 #: models/core.py:90
msgid "content" msgid "content"
msgstr "contenuto" msgstr "contenuto"
#: models/core.py:85 #: models/core.py:91
msgid "enable comments" msgid "enable comments"
msgstr "abilita commenti" msgstr "abilita commenti"
#: models/core.py:86 #: models/core.py:92
msgid "template name" msgid "template name"
msgstr "nome modello" msgstr "nome modello"
#: models/core.py:87 #: models/core.py:93
msgid "" msgid ""
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will " "Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
"use 'flatfiles/default'." "use 'flatfiles/default'."
@ -776,39 +776,39 @@ msgstr ""
"Esempio: 'flatfiles/contact_page'. Se non specificato, il sistema userà " "Esempio: 'flatfiles/contact_page'. Se non specificato, il sistema userà "
"'flatfiles/default'." "'flatfiles/default'."
#: models/core.py:88 #: models/core.py:94
msgid "registration required" msgid "registration required"
msgstr "registrazione obbligatoria" msgstr "registrazione obbligatoria"
#: models/core.py:88 #: models/core.py:94
msgid "If this is checked, only logged-in users will be able to view the page." msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "Se selezionata, solo gli utenti registrati potranno vedere la pagina." msgstr "Se selezionata, solo gli utenti registrati potranno vedere la pagina."
#: models/core.py:92 #: models/core.py:98
msgid "flat page" msgid "flat page"
msgstr "pagina statica" msgstr "pagina statica"
#: models/core.py:93 #: models/core.py:99
msgid "flat pages" msgid "flat pages"
msgstr "pagine statiche" msgstr "pagine statiche"
#: models/core.py:114 #: models/core.py:117
msgid "session key" msgid "session key"
msgstr "chiave di sessione" msgstr "chiave di sessione"
#: models/core.py:115 #: models/core.py:118
msgid "session data" msgid "session data"
msgstr "dati di sessione" msgstr "dati di sessione"
#: models/core.py:116 #: models/core.py:119
msgid "expire date" msgid "expire date"
msgstr "data di scadenza" msgstr "data di scadenza"
#: models/core.py:118 #: models/core.py:121
msgid "session" msgid "session"
msgstr "sessione" msgstr "sessione"
#: models/core.py:119 #: models/core.py:122
msgid "sessions" msgid "sessions"
msgstr "sessioni" msgstr "sessioni"
@ -953,99 +953,103 @@ msgstr "Serbo"
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "" msgstr ""
#: core/validators.py:58 #: conf/global_settings.py:49
msgid "Slovak"
msgstr ""
#: core/validators.py:59
msgid "This value must contain only letters, numbers and underscores." msgid "This value must contain only letters, numbers and underscores."
msgstr "Sono ammesse solo lettere, numeri e sottolineature ('_')." msgstr "Sono ammesse solo lettere, numeri e sottolineature ('_')."
#: core/validators.py:62 #: core/validators.py:63
msgid "This value must contain only letters, numbers, underscores and slashes." msgid "This value must contain only letters, numbers, underscores and slashes."
msgstr "Sono ammesse solo lettere, numeri, sottolineature ('_') e barre ('/')." msgstr "Sono ammesse solo lettere, numeri, sottolineature ('_') e barre ('/')."
#: core/validators.py:70 #: core/validators.py:71
msgid "Uppercase letters are not allowed here." msgid "Uppercase letters are not allowed here."
msgstr "Non sono ammesse lettere maiuscole." msgstr "Non sono ammesse lettere maiuscole."
#: core/validators.py:74 #: core/validators.py:75
msgid "Lowercase letters are not allowed here." msgid "Lowercase letters are not allowed here."
msgstr "Non sono ammesse lettere minuscole." msgstr "Non sono ammesse lettere minuscole."
#: core/validators.py:81 #: core/validators.py:82
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "Inserire solo numeri separati da virgole." msgstr "Inserire solo numeri separati da virgole."
#: core/validators.py:93 #: core/validators.py:94
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "Inserire indirizzi e-mail validi separati da virgole." msgstr "Inserire indirizzi e-mail validi separati da virgole."
#: core/validators.py:100 #: core/validators.py:98
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
msgstr "Inserire un indirizzo IP valido." msgstr "Inserire un indirizzo IP valido."
#: core/validators.py:104 #: core/validators.py:102
msgid "Empty values are not allowed here." msgid "Empty values are not allowed here."
msgstr "E' necessario inserire un valore." msgstr "E' necessario inserire un valore."
#: core/validators.py:108 #: core/validators.py:106
msgid "Non-numeric characters aren't allowed here." msgid "Non-numeric characters aren't allowed here."
msgstr "Sono ammessi soltanto caratteri alfabetici." msgstr "Sono ammessi soltanto caratteri alfabetici."
#: core/validators.py:112 #: core/validators.py:110
msgid "This value can't be comprised solely of digits." msgid "This value can't be comprised solely of digits."
msgstr "Il valore non può essere composto solo da cifre." msgstr "Il valore non può essere composto solo da cifre."
#: core/validators.py:117 #: core/validators.py:115
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "Inserire un numero." msgstr "Inserire un numero."
#: core/validators.py:121 #: core/validators.py:119
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
msgstr "Sono ammessi solo caratteri alfabetici." msgstr "Sono ammessi solo caratteri alfabetici."
#: core/validators.py:125 #: core/validators.py:123
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "Inserire un data valida in formato YYYY-MM-DD." msgstr "Inserire un data valida in formato YYYY-MM-DD."
#: core/validators.py:129 #: core/validators.py:127
msgid "Enter a valid time in HH:MM format." msgid "Enter a valid time in HH:MM format."
msgstr "Inserire un orario valido in formato HH:MM." msgstr "Inserire un orario valido in formato HH:MM."
#: core/validators.py:133 #: core/validators.py:131
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "Inserire una data/ora in formato YYYY-MM-DD HH:MM." msgstr "Inserire una data/ora in formato YYYY-MM-DD HH:MM."
#: core/validators.py:137 #: core/validators.py:135
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "Inserire un indirizzo e-mail valido." msgstr "Inserire un indirizzo e-mail valido."
#: core/validators.py:149 #: core/validators.py:147
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
"Caricare un'immagine valida. Il file inserito non è un'immagine o è corrotto." "Caricare un'immagine valida. Il file inserito non è un'immagine o è corrotto."
#: core/validators.py:156 #: core/validators.py:154
#, python-format #, python-format
msgid "The URL %s does not point to a valid image." msgid "The URL %s does not point to a valid image."
msgstr "L'URL %s non punta ad un'immagine valida." msgstr "L'URL %s non punta ad un'immagine valida."
#: core/validators.py:160 #: core/validators.py:158
#, python-format #, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "" msgstr ""
"I numeri di telefono devono essere in formato XXX-XXX-XXXX. \"%s\" non è " "I numeri di telefono devono essere in formato XXX-XXX-XXXX. \"%s\" non è "
"valido." "valido."
#: core/validators.py:168 #: core/validators.py:166
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "L'URL %s non punta ad un video QuickTime valido." msgstr "L'URL %s non punta ad un video QuickTime valido."
#: core/validators.py:172 #: core/validators.py:170
msgid "A valid URL is required." msgid "A valid URL is required."
msgstr "Inserire un URL valido." msgstr "Inserire un URL valido."
#: core/validators.py:186 #: core/validators.py:184
#, python-format #, python-format
msgid "" msgid ""
"Valid HTML is required. Specific errors are:\n" "Valid HTML is required. Specific errors are:\n"
@ -1054,69 +1058,69 @@ msgstr ""
"E' richiesto HTML valido. Gli errori sono i seguenti:\n" "E' richiesto HTML valido. Gli errori sono i seguenti:\n"
"%s" "%s"
#: core/validators.py:193 #: core/validators.py:191
#, python-format #, python-format
msgid "Badly formed XML: %s" msgid "Badly formed XML: %s"
msgstr "XML malformato: %s" msgstr "XML malformato: %s"
#: core/validators.py:203 #: core/validators.py:201
#, python-format #, python-format
msgid "Invalid URL: %s" msgid "Invalid URL: %s"
msgstr "URL non valida: %s" msgstr "URL non valida: %s"
#: core/validators.py:205 #: core/validators.py:203
#, python-format #, python-format
msgid "The URL %s is a broken link." msgid "The URL %s is a broken link."
msgstr "L'URL %s è un link rotto." msgstr "L'URL %s è un link rotto."
#: core/validators.py:211 #: core/validators.py:209
msgid "Enter a valid U.S. state abbreviation." msgid "Enter a valid U.S. state abbreviation."
msgstr "Inserire un nome di stato americano abbreviato valido." msgstr "Inserire un nome di stato americano abbreviato valido."
#: core/validators.py:226 #: core/validators.py:224
#, python-format #, python-format
msgid "Watch your mouth! The word %s is not allowed here." msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here."
msgstr[0] "Attenzione! La parola %s non è ammessa qui." msgstr[0] "Attenzione! La parola %s non è ammessa qui."
msgstr[1] "Attenzione! Le parole %s non sono ammesse qui." msgstr[1] "Attenzione! Le parole %s non sono ammesse qui."
#: core/validators.py:233 #: core/validators.py:231
#, python-format #, python-format
msgid "This field must match the '%s' field." msgid "This field must match the '%s' field."
msgstr "Questo campo deve corrispondere al campo '%s'." msgstr "Questo campo deve corrispondere al campo '%s'."
#: core/validators.py:252 #: core/validators.py:250
msgid "Please enter something for at least one field." msgid "Please enter something for at least one field."
msgstr "Inserire almeno un campo." msgstr "Inserire almeno un campo."
#: core/validators.py:261 core/validators.py:272 #: core/validators.py:259 core/validators.py:270
msgid "Please enter both fields or leave them both empty." msgid "Please enter both fields or leave them both empty."
msgstr "Inserire entrambi i campi o lasciarli entrambi vuoti." msgstr "Inserire entrambi i campi o lasciarli entrambi vuoti."
#: core/validators.py:279 #: core/validators.py:277
#, python-format #, python-format
msgid "This field must be given if %(field)s is %(value)s" msgid "This field must be given if %(field)s is %(value)s"
msgstr "Il campo è obbligatorio se %(field)s è %(value)s" msgstr "Il campo è obbligatorio se %(field)s è %(value)s"
#: core/validators.py:291 #: core/validators.py:289
#, python-format #, python-format
msgid "This field must be given if %(field)s is not %(value)s" msgid "This field must be given if %(field)s is not %(value)s"
msgstr "Il campo non può essere valorizzato se %(field)s non è %(value)s" msgstr "Il campo non può essere valorizzato se %(field)s non è %(value)s"
#: core/validators.py:310 #: core/validators.py:308
msgid "Duplicate values are not allowed." msgid "Duplicate values are not allowed."
msgstr "Non sono ammessi valori duplicati." msgstr "Non sono ammessi valori duplicati."
#: core/validators.py:333 #: core/validators.py:331
#, python-format #, python-format
msgid "This value must be a power of %s." msgid "This value must be a power of %s."
msgstr "Il valore deve essere una potenza di %s." msgstr "Il valore deve essere una potenza di %s."
#: core/validators.py:344 #: core/validators.py:342
msgid "Please enter a valid decimal number." msgid "Please enter a valid decimal number."
msgstr "Inserire un numero decimale valido." msgstr "Inserire un numero decimale valido."
#: core/validators.py:346 #: core/validators.py:344
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s total digit." msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "" msgid_plural ""
@ -1124,7 +1128,7 @@ msgid_plural ""
msgstr[0] "Inserire un numero decimale con non più di %s cifre totali." msgstr[0] "Inserire un numero decimale con non più di %s cifre totali."
msgstr[1] "" msgstr[1] ""
#: core/validators.py:349 #: core/validators.py:347
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "" msgid_plural ""
@ -1132,30 +1136,30 @@ msgid_plural ""
msgstr[0] "Inserire un decimale con non più di %s cifre decimali." msgstr[0] "Inserire un decimale con non più di %s cifre decimali."
msgstr[1] "" msgstr[1] ""
#: core/validators.py:359 #: core/validators.py:357
#, python-format #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "Verifica che il file inserito sia almeno di %s byte." msgstr "Verifica che il file inserito sia almeno di %s byte."
#: core/validators.py:360 #: core/validators.py:358
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "Verifica che il file inserito sia al massimo %d byte." msgstr "Verifica che il file inserito sia al massimo %d byte."
#: core/validators.py:373 #: core/validators.py:371
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
msgstr "Formato del file non valido." msgstr "Formato del file non valido."
#: core/validators.py:388 #: core/validators.py:386
msgid "This field is invalid." msgid "This field is invalid."
msgstr "Il campo non è valido." msgstr "Il campo non è valido."
#: core/validators.py:423 #: core/validators.py:421
#, python-format #, python-format
msgid "Could not retrieve anything from %s." msgid "Could not retrieve anything from %s."
msgstr "Impossibile recuperare alcunchè da %s." msgstr "Impossibile recuperare alcunchè da %s."
#: core/validators.py:426 #: core/validators.py:424
#, python-format #, python-format
msgid "" msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
@ -1163,7 +1167,7 @@ msgstr ""
"L'URL %(url)s restituisce un Content-Type header non valido '%(contenttype)" "L'URL %(url)s restituisce un Content-Type header non valido '%(contenttype)"
"s'." "s'."
#: core/validators.py:459 #: core/validators.py:457
#, python-format #, python-format
msgid "" msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
@ -1172,7 +1176,7 @@ msgstr ""
"Il tag %(tag)s alla linea %(line)s non è chiuso. (La linea comincia con \"%" "Il tag %(tag)s alla linea %(line)s non è chiuso. (La linea comincia con \"%"
"(start)s\".)" "(start)s\".)"
#: core/validators.py:463 #: core/validators.py:461
#, python-format #, python-format
msgid "" msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line " "Some text starting on line %(line)s is not allowed in that context. (Line "
@ -1181,7 +1185,7 @@ msgstr ""
"Il testo che comincia a linea %(line)s non e' ammesso in questo contesto. " "Il testo che comincia a linea %(line)s non e' ammesso in questo contesto. "
"(La linea comincia con \"%(start)s\".)" "(La linea comincia con \"%(start)s\".)"
#: core/validators.py:468 #: core/validators.py:466
#, python-format #, python-format
msgid "" msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
@ -1190,7 +1194,7 @@ msgstr ""
"\"%(attr)s\" alla linea %(line)s è un attributo invalido. (La linea comincia " "\"%(attr)s\" alla linea %(line)s è un attributo invalido. (La linea comincia "
"con \"%(start)s\".)" "con \"%(start)s\".)"
#: core/validators.py:473 #: core/validators.py:471
#, python-format #, python-format
msgid "" msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
@ -1199,7 +1203,7 @@ msgstr ""
"\"<%(tag)s>\" alla linea %(line)s tag non valido. (La linea comincia con \"%" "\"<%(tag)s>\" alla linea %(line)s tag non valido. (La linea comincia con \"%"
"(start)s\".)" "(start)s\".)"
#: core/validators.py:477 #: core/validators.py:475
#, python-format #, python-format
msgid "" msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line " "A tag on line %(line)s is missing one or more required attributes. (Line "
@ -1208,7 +1212,7 @@ msgstr ""
"Un tag alla linea %(line)s manca di uno o più attributi richiesti. (La linea " "Un tag alla linea %(line)s manca di uno o più attributi richiesti. (La linea "
"comincia con \"%(start)s\".)" "comincia con \"%(start)s\".)"
#: core/validators.py:482 #: core/validators.py:480
#, python-format #, python-format
msgid "" msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "

Binary file not shown.

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-11-04 18:22+0100\n" "POT-Creation-Date: 2005-11-08 09:05-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Espen Grndhaug <espen@grindhaug.org>\n" "Last-Translator: Espen Grndhaug <espen@grindhaug.org>\n"
"Language-Team: Norwegian\n" "Language-Team: Norwegian\n"
@ -16,38 +16,112 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: contrib/admin/models/admin.py:6 #: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
msgid "action time" #, python-format
msgstr "handlings tid" msgid ""
"<h3>By %s:</h3>\n"
#: contrib/admin/models/admin.py:9 "<ul>\n"
msgid "object id"
msgstr "objekt id"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "objekt repr"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "handlings flagg"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "endre melding"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "logg notis"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "logg innlegg"
#: contrib/admin/templatetags/admin_list.py:256
msgid "All dates"
msgstr "" msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, python-format
msgid "Select %s to change"
msgstr ""
#: contrib/admin/views/main.py:570
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:600
#, fuzzy, python-format
msgid "Add %s"
msgstr "Legg til"
#: contrib/admin/views/main.py:616
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:616 contrib/admin/views/main.py:618
#: contrib/admin/views/main.py:620
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:618
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Endre"
#: contrib/admin/views/main.py:620
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:623
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:648
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:657
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:695
#, fuzzy, python-format
msgid "Change %s"
msgstr "Endre"
#: contrib/admin/views/main.py:775
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:780
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:809
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:812
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:827
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Endre passord"
#: contrib/admin/views/decorators.py:22 #: contrib/admin/views/decorators.py:22
#: contrib/admin/templates/admin/login.html:24 #: contrib/admin/templates/admin/login.html:24
msgid "Log in" msgid "Log in"
@ -74,112 +148,6 @@ msgstr ""
msgid "Your e-mail address is not your username. Try '%s' instead." msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "" msgstr ""
#: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
#, python-format
msgid ""
"<h3>By %s:</h3>\n"
"<ul>\n"
msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, python-format
msgid "Select %s to change"
msgstr ""
#: contrib/admin/views/main.py:567
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:572 contrib/admin/views/main.py:648
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:580 contrib/admin/views/main.py:657
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:597
#, fuzzy, python-format
msgid "Add %s"
msgstr "Legg til"
#: contrib/admin/views/main.py:613
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:613 contrib/admin/views/main.py:615
#: contrib/admin/views/main.py:617
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:615
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Endre"
#: contrib/admin/views/main.py:617
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:620
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:645
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:654
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:692
#, fuzzy, python-format
msgid "Change %s"
msgstr "Endre"
#: contrib/admin/views/main.py:772
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:777
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:806
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:809
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:824
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Endre passord"
#: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271 #: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271
#: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278 #: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281 #: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
@ -249,7 +217,7 @@ msgstr ""
msgid "Time" msgid "Time"
msgstr "" msgstr ""
#: contrib/admin/views/doc.py:284 models/core.py:81 #: contrib/admin/views/doc.py:284 models/core.py:87
msgid "URL" msgid "URL"
msgstr "Internettadresse" msgstr "Internettadresse"
@ -261,35 +229,18 @@ msgstr ""
msgid "XML text" msgid "XML text"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/index.html:27 #: contrib/admin/templates/admin/base_site.html:4
#: contrib/admin/templates/admin/change_form.html:14 msgid "Django site admin"
msgid "Add" msgstr "Django administrasjonsside"
msgstr "Legg til"
#: contrib/admin/templates/admin/index.html:33 #: contrib/admin/templates/admin/base_site.html:7
msgid "Change" msgid "Django administration"
msgstr "Endre" msgstr "Django administrasjon"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "Du har ikke rettigheter til å endre."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Siste handlinger"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Mine handlinger"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Ingen tilgjengelige"
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/admin/base.html:29 #: contrib/admin/templates/admin/base.html:29
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/registration/password_change_done.html:4 #: contrib/admin/templates/registration/password_change_done.html:4
#: contrib/admin/templates/registration/password_reset_form.html:4 #: contrib/admin/templates/registration/password_reset_form.html:4
#: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/logged_out.html:4
@ -318,6 +269,40 @@ msgstr ""
"Det har vært en feil. Feilen er blitt rapportert til administrator via e-" "Det har vært en feil. Feilen er blitt rapportert til administrator via e-"
"mail, og vill bli fikset snart. Takk for din tålmodighet." "mail, og vill bli fikset snart. Takk for din tålmodighet."
#: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8
msgid "Page not found"
msgstr "Fant ikke siden"
#: contrib/admin/templates/admin/404.html:10
msgid "We're sorry, but the requested page could not be found."
msgstr "Beklager, men siden du spør etter finnest ikke."
#: contrib/admin/templates/admin/index.html:27
#: contrib/admin/templates/admin/change_form.html:14
msgid "Add"
msgstr "Legg til"
#: contrib/admin/templates/admin/index.html:33
msgid "Change"
msgstr "Endre"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "Du har ikke rettigheter til å endre."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Siste handlinger"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Mine handlinger"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Ingen tilgjengelige"
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:19 #: contrib/admin/templates/admin/change_form.html:19
msgid "History" msgid "History"
@ -347,14 +332,6 @@ msgstr ""
"Dette objektet har ingen endrings historie. Den var sannsynligvis ikke laget " "Dette objektet har ingen endrings historie. Den var sannsynligvis ikke laget "
"via denne siden" "via denne siden"
#: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin"
msgstr "Django administrasjonsside"
#: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration"
msgstr "Django administrasjon"
#: contrib/admin/templates/admin/login.html:15 #: contrib/admin/templates/admin/login.html:15
msgid "Username:" msgid "Username:"
msgstr "Brukernavn:" msgstr "Brukernavn:"
@ -367,32 +344,17 @@ msgstr "Passord:"
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?" msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
msgstr "Har du <a href=\"/password_reset/\">glemt passordet ditt</a>?" msgstr "Har du <a href=\"/password_reset/\">glemt passordet ditt</a>?"
#: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/base.html:23
#: contrib/admin/templates/admin/404.html:8 msgid "Welcome,"
msgid "Page not found" msgstr "Velkommen"
msgstr "Fant ikke siden"
#: contrib/admin/templates/admin/404.html:10 #: contrib/admin/templates/admin/base.html:23
msgid "We're sorry, but the requested page could not be found." msgid "Change password"
msgstr "Beklager, men siden du spør etter finnest ikke." msgstr "Endre passord"
#: contrib/admin/templates/admin/change_form.html:20 #: contrib/admin/templates/admin/base.html:23
msgid "View on site" msgid "Log out"
msgstr "" msgstr "Log ut"
#: contrib/admin/templates/admin/change_form.html:28
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/change_form.html:45
msgid "Ordering"
msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/delete_confirmation.html:7 #: contrib/admin/templates/admin/delete_confirmation.html:7
#, python-format #, python-format
@ -417,17 +379,23 @@ msgstr ""
msgid "Yes, I'm sure" msgid "Yes, I'm sure"
msgstr "Ja, jeg er sikker" msgstr "Ja, jeg er sikker"
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:20
msgid "Welcome," msgid "View on site"
msgstr "Velkommen" msgstr ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:28
msgid "Change password" msgid "Please correct the error below."
msgstr "Endre passord" msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:45
msgid "Log out" msgid "Ordering"
msgstr "Log ut" msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/submit_line.html:3 #: contrib/admin/templates/admin/submit_line.html:3
msgid "Delete" msgid "Delete"
@ -565,6 +533,38 @@ msgstr "Takk for at du bruker vår side!"
msgid "The %(site_name)s team" msgid "The %(site_name)s team"
msgstr "Hilsen %(site_name)s" msgstr "Hilsen %(site_name)s"
#: contrib/admin/models/admin.py:6
msgid "action time"
msgstr "handlings tid"
#: contrib/admin/models/admin.py:9
msgid "object id"
msgstr "objekt id"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "objekt repr"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "handlings flagg"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "endre melding"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "logg notis"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "logg innlegg"
#: contrib/admin/templatetags/admin_list.py:260
msgid "All dates"
msgstr ""
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Monday" msgid "Monday"
msgstr "Mondag" msgstr "Mondag"
@ -669,55 +669,55 @@ msgstr "Nov."
msgid "Dec." msgid "Dec."
msgstr "Des." msgstr "Des."
#: models/core.py:5 #: models/core.py:7
msgid "domain name" msgid "domain name"
msgstr "domene navn" msgstr "domene navn"
#: models/core.py:6 #: models/core.py:8
msgid "display name" msgid "display name"
msgstr "vist navn" msgstr "vist navn"
#: models/core.py:8 #: models/core.py:10
msgid "site" msgid "site"
msgstr "side" msgstr "side"
#: models/core.py:9 #: models/core.py:11
msgid "sites" msgid "sites"
msgstr "sider" msgstr "sider"
#: models/core.py:22 #: models/core.py:28
msgid "label" msgid "label"
msgstr "merkelapp" msgstr "merkelapp"
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19 #: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19
msgid "name" msgid "name"
msgstr "navn" msgstr "navn"
#: models/core.py:25 #: models/core.py:31
msgid "package" msgid "package"
msgstr "pakke" msgstr "pakke"
#: models/core.py:26 #: models/core.py:32
msgid "packages" msgid "packages"
msgstr "pakker" msgstr "pakker"
#: models/core.py:36 #: models/core.py:42
msgid "python module name" msgid "python module name"
msgstr "python modul navn" msgstr "python modul navn"
#: models/core.py:38 #: models/core.py:44
msgid "content type" msgid "content type"
msgstr "innholds type" msgstr "innholds type"
#: models/core.py:39 #: models/core.py:45
msgid "content types" msgid "content types"
msgstr "innholds typer" msgstr "innholds typer"
#: models/core.py:62 #: models/core.py:68
msgid "redirect from" msgid "redirect from"
msgstr "videresend fra" msgstr "omadresser fra"
#: models/core.py:63 #: models/core.py:69
msgid "" msgid ""
"This should be an absolute path, excluding the domain name. Example: '/" "This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'." "events/search/'."
@ -725,11 +725,11 @@ msgstr ""
"Denne burde vær en fullstendig sti, uten domene navnet. Foreksempel: '/" "Denne burde vær en fullstendig sti, uten domene navnet. Foreksempel: '/"
"nyheter/les/" "nyheter/les/"
#: models/core.py:64 #: models/core.py:70
msgid "redirect to" msgid "redirect to"
msgstr "videresend til" msgstr "omadresser til"
#: models/core.py:65 #: models/core.py:71
msgid "" msgid ""
"This can be either an absolute path (as above) or a full URL starting with " "This can be either an absolute path (as above) or a full URL starting with "
"'http://'." "'http://'."
@ -737,37 +737,37 @@ msgstr ""
"Denne kan enten være en fullstendig sti (som over), eller en hel " "Denne kan enten være en fullstendig sti (som over), eller en hel "
"internettadresse som starter med 'http://'" "internettadresse som starter med 'http://'"
#: models/core.py:67 #: models/core.py:73
msgid "redirect" msgid "redirect"
msgstr "videresend" msgstr "omadressering"
#: models/core.py:68 #: models/core.py:74
msgid "redirects" msgid "redirects"
msgstr "vidersesendelser" msgstr "omadresserelser"
#: models/core.py:82 #: models/core.py:88
msgid "" msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes." "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr "" msgstr ""
"Eksempel: '/om/kontakt/'. Vær sikker på at du har en skråstrek forran og bak." "Eksempel: '/om/kontakt/'. Vær sikker på at du har en skråstrek forran og bak."
#: models/core.py:83 #: models/core.py:89
msgid "title" msgid "title"
msgstr "tittel" msgstr "tittel"
#: models/core.py:84 #: models/core.py:90
msgid "content" msgid "content"
msgstr "innhold" msgstr "innhold"
#: models/core.py:85 #: models/core.py:91
msgid "enable comments" msgid "enable comments"
msgstr "tillat kommentarer" msgstr "tillat kommentarer"
#: models/core.py:86 #: models/core.py:92
msgid "template name" msgid "template name"
msgstr "mal navn" msgstr "mal navn"
#: models/core.py:87 #: models/core.py:93
msgid "" msgid ""
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will " "Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
"use 'flatfiles/default'." "use 'flatfiles/default'."
@ -775,41 +775,41 @@ msgstr ""
"Eksempel: 'flatfiler/kontakt_side'. Vist denne ikke denne er gitt, vill " "Eksempel: 'flatfiler/kontakt_side'. Vist denne ikke denne er gitt, vill "
"'flatfiles/default' bli brukt." "'flatfiles/default' bli brukt."
#: models/core.py:88 #: models/core.py:94
msgid "registration required" msgid "registration required"
msgstr "registrering kreves" msgstr "registrering kreves"
#: models/core.py:88 #: models/core.py:94
msgid "If this is checked, only logged-in users will be able to view the page." msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "" msgstr ""
"Vist denne er krysset av er det bare brukere som er logget inn som kan se " "Vist denne er krysset av er det bare brukere som er logget inn som kan se "
"siden." "siden."
#: models/core.py:92 #: models/core.py:98
msgid "flat page" msgid "flat page"
msgstr "flatside" msgstr "flatside"
#: models/core.py:93 #: models/core.py:99
msgid "flat pages" msgid "flat pages"
msgstr "flatsider" msgstr "flatsider"
#: models/core.py:114 #: models/core.py:117
msgid "session key" msgid "session key"
msgstr "sesjon nøkkel" msgstr "sesjon nøkkel"
#: models/core.py:115 #: models/core.py:118
msgid "session data" msgid "session data"
msgstr "sesjon data" msgstr "sesjon data"
#: models/core.py:116 #: models/core.py:119
msgid "expire date" msgid "expire date"
msgstr "utløpsdato" msgstr "utløpsdato"
#: models/core.py:118 #: models/core.py:121
msgid "session" msgid "session"
msgstr "sesjon" msgstr "sesjon"
#: models/core.py:119 #: models/core.py:122
msgid "sessions" msgid "sessions"
msgstr "sesjoner" msgstr "sesjoner"
@ -935,7 +935,7 @@ msgstr "Italiensk"
#: conf/global_settings.py:44 #: conf/global_settings.py:44
msgid "Norwegian" msgid "Norwegian"
msgstr "" msgstr "Norsk"
#: conf/global_settings.py:45 #: conf/global_settings.py:45
msgid "Brazilian" msgid "Brazilian"
@ -951,75 +951,79 @@ msgstr "Serbisk"
#: conf/global_settings.py:48 #: conf/global_settings.py:48
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "Simpel Kinesisk"
#: conf/global_settings.py:49
msgid "Slovak"
msgstr "" msgstr ""
#: core/validators.py:58 #: core/validators.py:59
msgid "This value must contain only letters, numbers and underscores." msgid "This value must contain only letters, numbers and underscores."
msgstr "Dette feltet må bare inneholde bokstaver, nummer og understreker." msgstr "Dette feltet må bare inneholde bokstaver, nummer og understreker."
#: core/validators.py:62 #: core/validators.py:63
msgid "This value must contain only letters, numbers, underscores and slashes." msgid "This value must contain only letters, numbers, underscores and slashes."
msgstr "" msgstr ""
"Dette feltet må bare inneholde bokstaver, nummer, understreker og " "Dette feltet må bare inneholde bokstaver, nummer, understreker og "
"skråstreker." "skråstreker."
#: core/validators.py:70 #: core/validators.py:71
msgid "Uppercase letters are not allowed here." msgid "Uppercase letters are not allowed here."
msgstr "Tor skrift er ikke tillatt her." msgstr "Tor skrift er ikke tillatt her."
#: core/validators.py:74 #: core/validators.py:75
msgid "Lowercase letters are not allowed here." msgid "Lowercase letters are not allowed here."
msgstr "Små bokstaver er ikke tillatt her." msgstr "Små bokstaver er ikke tillatt her."
#: core/validators.py:81 #: core/validators.py:82
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "Skriv inn bare tall, skilt med kommaer." msgstr "Skriv inn bare tall, skilt med kommaer."
#: core/validators.py:93 #: core/validators.py:94
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "Skriv inn e-post adresser skilt med kommaer." msgstr "Skriv inn e-post adresser skilt med kommaer."
#: core/validators.py:100 #: core/validators.py:98
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
msgstr "Vennligst skriv inn en godkjent IP adresse." msgstr "Vennligst skriv inn en godkjent IP adresse."
#: core/validators.py:104 #: core/validators.py:102
msgid "Empty values are not allowed here." msgid "Empty values are not allowed here."
msgstr "Dette felte kan ikke være tomt." msgstr "Dette felte kan ikke være tomt."
#: core/validators.py:108 #: core/validators.py:106
msgid "Non-numeric characters aren't allowed here." msgid "Non-numeric characters aren't allowed here."
msgstr "Det er bare tall som kan stå i dette feltet." msgstr "Det er bare tall som kan stå i dette feltet."
#: core/validators.py:112 #: core/validators.py:110
msgid "This value can't be comprised solely of digits." msgid "This value can't be comprised solely of digits."
msgstr "Dette feltet kan ikke bare bestå av nummer." msgstr "Dette feltet kan ikke bare bestå av nummer."
#: core/validators.py:117 #: core/validators.py:115
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "Skriv inn et helt nummer." msgstr "Skriv inn et helt nummer."
#: core/validators.py:121 #: core/validators.py:119
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
msgstr "Bare alfabetiske bokstaber er tillatt her." msgstr "Bare alfabetiske bokstaber er tillatt her."
#: core/validators.py:125 #: core/validators.py:123
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "Skriv inn en dato i ÅÅÅÅ-MM-DD formatet." msgstr "Skriv inn en dato i ÅÅÅÅ-MM-DD formatet."
#: core/validators.py:129 #: core/validators.py:127
msgid "Enter a valid time in HH:MM format." msgid "Enter a valid time in HH:MM format."
msgstr "Skriv inn tiden i TT:MM formatet." msgstr "Skriv inn tiden i TT:MM formatet."
#: core/validators.py:133 #: core/validators.py:131
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "Skriv inn dato og tid i ÅÅÅÅ-MM-DD TT:MM formatet." msgstr "Skriv inn dato og tid i ÅÅÅÅ-MM-DD TT:MM formatet."
#: core/validators.py:137 #: core/validators.py:135
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "Skriv inn en godkjent e-post adresse." msgstr "Skriv inn en godkjent e-post adresse."
#: core/validators.py:149 #: core/validators.py:147
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
@ -1027,27 +1031,27 @@ msgstr ""
"Lastopp et bilde. Filen du lastet opp var ikke et bilde, eller så var det et " "Lastopp et bilde. Filen du lastet opp var ikke et bilde, eller så var det et "
"ødelagt bilde" "ødelagt bilde"
#: core/validators.py:156 #: core/validators.py:154
#, python-format #, python-format
msgid "The URL %s does not point to a valid image." msgid "The URL %s does not point to a valid image."
msgstr "Internettadressen %s peker ikke til et godkjent bilde." msgstr "Internettadressen %s peker ikke til et godkjent bilde."
#: core/validators.py:160 #: core/validators.py:158
#, python-format #, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "" msgstr ""
"Telefon nummeret må være i XXX-XXX-XXXX formatet. \"%s\" er ikke godkjent." "Telefon nummeret må være i XXX-XXX-XXXX formatet. \"%s\" er ikke godkjent."
#: core/validators.py:168 #: core/validators.py:166
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "Internettadressen %s peker ikke til en godkjent QuickTime film." msgstr "Internettadressen %s peker ikke til en godkjent QuickTime film."
#: core/validators.py:172 #: core/validators.py:170
msgid "A valid URL is required." msgid "A valid URL is required."
msgstr "En godkjent internettadresse er påbudt." msgstr "En godkjent internettadresse er påbudt."
#: core/validators.py:186 #: core/validators.py:184
#, python-format #, python-format
msgid "" msgid ""
"Valid HTML is required. Specific errors are:\n" "Valid HTML is required. Specific errors are:\n"
@ -1056,69 +1060,69 @@ msgstr ""
"Godkjent HTML er påbudt. Feilene var:\n" "Godkjent HTML er påbudt. Feilene var:\n"
"%s" "%s"
#: core/validators.py:193 #: core/validators.py:191
#, python-format #, python-format
msgid "Badly formed XML: %s" msgid "Badly formed XML: %s"
msgstr "Ikke godkjent XML: %s" msgstr "Ikke godkjent XML: %s"
#: core/validators.py:203 #: core/validators.py:201
#, python-format #, python-format
msgid "Invalid URL: %s" msgid "Invalid URL: %s"
msgstr "Ikke godkjent internettadresse: %s" msgstr "Ikke godkjent internettadresse: %s"
#: core/validators.py:205 #: core/validators.py:203
#, python-format #, python-format
msgid "The URL %s is a broken link." msgid "The URL %s is a broken link."
msgstr "Internettadresse fører til en side som ikke virker." msgstr "Internettadresse fører til en side som ikke virker."
#: core/validators.py:211 #: core/validators.py:209
msgid "Enter a valid U.S. state abbreviation." msgid "Enter a valid U.S. state abbreviation."
msgstr "Skriv inn en godkjent amerikansk stats forkortelse." msgstr "Skriv inn en godkjent amerikansk stats forkortelse."
#: core/validators.py:226 #: core/validators.py:224
#, python-format #, python-format
msgid "Watch your mouth! The word %s is not allowed here." msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here."
msgstr[0] "Pass munnen din! Ordet %s er ikke tillatt her." msgstr[0] "Pass munnen din! Ordet %s er ikke tillatt her."
msgstr[1] "Pass munnen din! Ordene %s er ikke tillatt her." msgstr[1] "Pass munnen din! Ordene %s er ikke tillatt her."
#: core/validators.py:233 #: core/validators.py:231
#, python-format #, python-format
msgid "This field must match the '%s' field." msgid "This field must match the '%s' field."
msgstr "Dette felte må være det samme som i '%s' feltet." msgstr "Dette felte må være det samme som i '%s' feltet."
#: core/validators.py:252 #: core/validators.py:250
msgid "Please enter something for at least one field." msgid "Please enter something for at least one field."
msgstr "Vennligst skriv inn noe i minst et felt." msgstr "Vennligst skriv inn noe i minst et felt."
#: core/validators.py:261 core/validators.py:272 #: core/validators.py:259 core/validators.py:270
msgid "Please enter both fields or leave them both empty." msgid "Please enter both fields or leave them both empty."
msgstr "Vennligst skriv inn noe i begge felta, eller la dem stå blanke." msgstr "Vennligst skriv inn noe i begge felta, eller la dem stå blanke."
#: core/validators.py:279 #: core/validators.py:277
#, python-format #, python-format
msgid "This field must be given if %(field)s is %(value)s" msgid "This field must be given if %(field)s is %(value)s"
msgstr "Dette feltet må bare brukes vist %(field)s er lik %(value)s" msgstr "Dette feltet må bare brukes vist %(field)s er lik %(value)s"
#: core/validators.py:291 #: core/validators.py:289
#, python-format #, python-format
msgid "This field must be given if %(field)s is not %(value)s" msgid "This field must be given if %(field)s is not %(value)s"
msgstr "Dette feltet må bare brukes vist %(field)s ikke er lik %(value)s" msgstr "Dette feltet må bare brukes vist %(field)s ikke er lik %(value)s"
#: core/validators.py:310 #: core/validators.py:308
msgid "Duplicate values are not allowed." msgid "Duplicate values are not allowed."
msgstr "Like verdier er ikke tillatt." msgstr "Like verdier er ikke tillatt."
#: core/validators.py:333 #: core/validators.py:331
#, python-format #, python-format
msgid "This value must be a power of %s." msgid "This value must be a power of %s."
msgstr "Denne verdien må være 'power' av %s." msgstr "Denne verdien må være 'power' av %s."
#: core/validators.py:344 #: core/validators.py:342
msgid "Please enter a valid decimal number." msgid "Please enter a valid decimal number."
msgstr "Vennligst skriv inn et godkjent desimal tall." msgstr "Vennligst skriv inn et godkjent desimal tall."
#: core/validators.py:346 #: core/validators.py:344
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s total digit." msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "" msgid_plural ""
@ -1126,7 +1130,7 @@ msgid_plural ""
msgstr[0] "Skriv inn et desimal tall med maksimum %s total antall tall." msgstr[0] "Skriv inn et desimal tall med maksimum %s total antall tall."
msgstr[1] "Skriv inn et desimal tall med maksimum %s total antall tall." msgstr[1] "Skriv inn et desimal tall med maksimum %s total antall tall."
#: core/validators.py:349 #: core/validators.py:347
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "" msgid_plural ""
@ -1134,32 +1138,32 @@ msgid_plural ""
msgstr[0] "Skriv inn et desimal tall med maksimum %s tall bak komma. " msgstr[0] "Skriv inn et desimal tall med maksimum %s tall bak komma. "
msgstr[1] "Skriv inn et desimal tall med maksimum %s tall bak komma. " msgstr[1] "Skriv inn et desimal tall med maksimum %s tall bak komma. "
#: core/validators.py:359 #: core/validators.py:357
#, python-format #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "" msgstr ""
"Er du sikker på at fila du prøver å laste opp er minimum %s bytes stor?" "Er du sikker på at fila du prøver å laste opp er minimum %s bytes stor?"
#: core/validators.py:360 #: core/validators.py:358
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "" msgstr ""
"Er du sikker på at fila du prøver å laste opp er maksimum %s bytes stor?" "Er du sikker på at fila du prøver å laste opp er maksimum %s bytes stor?"
#: core/validators.py:373 #: core/validators.py:371
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
msgstr "Formatet i dette feltet er feil." msgstr "Formatet i dette feltet er feil."
#: core/validators.py:388 #: core/validators.py:386
msgid "This field is invalid." msgid "This field is invalid."
msgstr "Dette feltet er feil." msgstr "Dette feltet er feil."
#: core/validators.py:423 #: core/validators.py:421
#, python-format #, python-format
msgid "Could not retrieve anything from %s." msgid "Could not retrieve anything from %s."
msgstr "Klarte ikke å motta noe fra %s." msgstr "Klarte ikke å motta noe fra %s."
#: core/validators.py:426 #: core/validators.py:424
#, python-format #, python-format
msgid "" msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
@ -1167,7 +1171,7 @@ msgstr ""
"Tnternettadressen %(url)s returnerte en ikke godkjent Content-Type '%" "Tnternettadressen %(url)s returnerte en ikke godkjent Content-Type '%"
"(contenttype)s'." "(contenttype)s'."
#: core/validators.py:459 #: core/validators.py:457
#, python-format #, python-format
msgid "" msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
@ -1176,7 +1180,7 @@ msgstr ""
"Vennligst lukk taggen %(tag)s på linje %(line)s. (Linja starer med \"%(start)" "Vennligst lukk taggen %(tag)s på linje %(line)s. (Linja starer med \"%(start)"
"s\".)" "s\".)"
#: core/validators.py:463 #: core/validators.py:461
#, python-format #, python-format
msgid "" msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line " "Some text starting on line %(line)s is not allowed in that context. (Line "
@ -1185,7 +1189,7 @@ msgstr ""
"Noe av teksten som starter på linje %(line)s er ikke tillatt. (Linja starter " "Noe av teksten som starter på linje %(line)s er ikke tillatt. (Linja starter "
"med \"%(start)s\".)" "med \"%(start)s\".)"
#: core/validators.py:468 #: core/validators.py:466
#, python-format #, python-format
msgid "" msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
@ -1194,7 +1198,7 @@ msgstr ""
"\"%(attr)s\" på linje %(line)s er ikke en godkjent tillegg. (Linja starter " "\"%(attr)s\" på linje %(line)s er ikke en godkjent tillegg. (Linja starter "
"med \"%(start)s\".)" "med \"%(start)s\".)"
#: core/validators.py:473 #: core/validators.py:471
#, python-format #, python-format
msgid "" msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
@ -1203,7 +1207,7 @@ msgstr ""
"\"<%(tag)s>\" på linje %(line)s er ikke en godkjent tag. (linja starter med " "\"<%(tag)s>\" på linje %(line)s er ikke en godkjent tag. (linja starter med "
"\"%(start)s\".)" "\"%(start)s\".)"
#: core/validators.py:477 #: core/validators.py:475
#, python-format #, python-format
msgid "" msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line " "A tag on line %(line)s is missing one or more required attributes. (Line "
@ -1212,7 +1216,7 @@ msgstr ""
"En tag på linje %(line)s mangler en av de påbydte tillegga. (linja starter " "En tag på linje %(line)s mangler en av de påbydte tillegga. (linja starter "
"med \"%(start)s\".)" "med \"%(start)s\".)"
#: core/validators.py:482 #: core/validators.py:480
#, python-format #, python-format
msgid "" msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: django\n" "Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-11-04 18:22+0100\n" "POT-Creation-Date: 2005-11-08 09:05-0600\n"
"PO-Revision-Date: 2005-10-11 09:12GMT-3\n" "PO-Revision-Date: 2005-10-11 09:12GMT-3\n"
"Last-Translator: João Paulo Farias <jpaulofarias@gmail.com>\n" "Last-Translator: João Paulo Farias <jpaulofarias@gmail.com>\n"
"Language-Team: Português do Brasil <pt-br@li.org>\n" "Language-Team: Português do Brasil <pt-br@li.org>\n"
@ -16,38 +16,112 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: contrib/admin/models/admin.py:6 #: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
msgid "action time" #, python-format
msgstr "hora da ação" msgid ""
"<h3>By %s:</h3>\n"
#: contrib/admin/models/admin.py:9 "<ul>\n"
msgid "object id"
msgstr "id do objeto"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "repr do objeto"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "flag de ação"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "alterar mensagem"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "entrada de log"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "entradas de log"
#: contrib/admin/templatetags/admin_list.py:256
msgid "All dates"
msgstr "" msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, fuzzy, python-format
msgid "Select %s to change"
msgstr "Clique para alterar"
#: contrib/admin/views/main.py:570
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:600
#, fuzzy, python-format
msgid "Add %s"
msgstr "Adicionar"
#: contrib/admin/views/main.py:616
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:616 contrib/admin/views/main.py:618
#: contrib/admin/views/main.py:620
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:618
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Modificar"
#: contrib/admin/views/main.py:620
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:623
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:648
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:657
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:695
#, fuzzy, python-format
msgid "Change %s"
msgstr "Modificar"
#: contrib/admin/views/main.py:775
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:780
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:809
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:812
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:827
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Alterar senha"
#: contrib/admin/views/decorators.py:22 #: contrib/admin/views/decorators.py:22
#: contrib/admin/templates/admin/login.html:24 #: contrib/admin/templates/admin/login.html:24
msgid "Log in" msgid "Log in"
@ -74,112 +148,6 @@ msgstr ""
msgid "Your e-mail address is not your username. Try '%s' instead." msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "" msgstr ""
#: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
#, python-format
msgid ""
"<h3>By %s:</h3>\n"
"<ul>\n"
msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, fuzzy, python-format
msgid "Select %s to change"
msgstr "Clique para alterar"
#: contrib/admin/views/main.py:567
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:572 contrib/admin/views/main.py:648
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:580 contrib/admin/views/main.py:657
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:597
#, fuzzy, python-format
msgid "Add %s"
msgstr "Adicionar"
#: contrib/admin/views/main.py:613
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:613 contrib/admin/views/main.py:615
#: contrib/admin/views/main.py:617
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:615
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Modificar"
#: contrib/admin/views/main.py:617
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:620
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:645
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:654
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:692
#, fuzzy, python-format
msgid "Change %s"
msgstr "Modificar"
#: contrib/admin/views/main.py:772
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:777
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:806
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:809
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:824
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Alterar senha"
#: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271 #: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271
#: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278 #: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281 #: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
@ -249,7 +217,7 @@ msgstr ""
msgid "Time" msgid "Time"
msgstr "" msgstr ""
#: contrib/admin/views/doc.py:284 models/core.py:81 #: contrib/admin/views/doc.py:284 models/core.py:87
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
@ -261,35 +229,18 @@ msgstr ""
msgid "XML text" msgid "XML text"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/index.html:27 #: contrib/admin/templates/admin/base_site.html:4
#: contrib/admin/templates/admin/change_form.html:14 msgid "Django site admin"
msgid "Add" msgstr "Site de administração do Django"
msgstr "Adicionar"
#: contrib/admin/templates/admin/index.html:33 #: contrib/admin/templates/admin/base_site.html:7
msgid "Change" msgid "Django administration"
msgstr "Modificar" msgstr "Administração do Django"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "Você não tem permissão para edição."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Ações Recentes"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Minhas Ações"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Nenhuma disponível"
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/admin/base.html:29 #: contrib/admin/templates/admin/base.html:29
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/registration/password_change_done.html:4 #: contrib/admin/templates/registration/password_change_done.html:4
#: contrib/admin/templates/registration/password_reset_form.html:4 #: contrib/admin/templates/registration/password_reset_form.html:4
#: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/logged_out.html:4
@ -319,6 +270,40 @@ msgstr ""
"Houve um erro. Este foi reportado aos administradores do site através d e-" "Houve um erro. Este foi reportado aos administradores do site através d e-"
"mail e deve ser consertado em breve. Obrigado pela compreensão." "mail e deve ser consertado em breve. Obrigado pela compreensão."
#: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8
msgid "Page not found"
msgstr "Página não encontrada"
#: contrib/admin/templates/admin/404.html:10
msgid "We're sorry, but the requested page could not be found."
msgstr "Desculpe, mas a página requisitada não pode ser encontrada."
#: contrib/admin/templates/admin/index.html:27
#: contrib/admin/templates/admin/change_form.html:14
msgid "Add"
msgstr "Adicionar"
#: contrib/admin/templates/admin/index.html:33
msgid "Change"
msgstr "Modificar"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "Você não tem permissão para edição."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Ações Recentes"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Minhas Ações"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Nenhuma disponível"
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:19 #: contrib/admin/templates/admin/change_form.html:19
msgid "History" msgid "History"
@ -348,14 +333,6 @@ msgstr ""
"Este objeto não tem um histórico de alterações. Ele provavelmente não foi " "Este objeto não tem um histórico de alterações. Ele provavelmente não foi "
"adicionado por este site de administração." "adicionado por este site de administração."
#: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin"
msgstr "Site de administração do Django"
#: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration"
msgstr "Administração do Django"
#: contrib/admin/templates/admin/login.html:15 #: contrib/admin/templates/admin/login.html:15
msgid "Username:" msgid "Username:"
msgstr "Usuário:" msgstr "Usuário:"
@ -368,32 +345,17 @@ msgstr "Senha:"
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?" msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
msgstr "Você <a href=\"/password_reset/\"esqueceu a senha</a>?" msgstr "Você <a href=\"/password_reset/\"esqueceu a senha</a>?"
#: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/base.html:23
#: contrib/admin/templates/admin/404.html:8 msgid "Welcome,"
msgid "Page not found" msgstr "Bem vindo,"
msgstr "Página não encontrada"
#: contrib/admin/templates/admin/404.html:10 #: contrib/admin/templates/admin/base.html:23
msgid "We're sorry, but the requested page could not be found." msgid "Change password"
msgstr "Desculpe, mas a página requisitada não pode ser encontrada." msgstr "Alterar senha"
#: contrib/admin/templates/admin/change_form.html:20 #: contrib/admin/templates/admin/base.html:23
msgid "View on site" msgid "Log out"
msgstr "" msgstr "Encerrar sessão"
#: contrib/admin/templates/admin/change_form.html:28
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/change_form.html:45
msgid "Ordering"
msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/delete_confirmation.html:7 #: contrib/admin/templates/admin/delete_confirmation.html:7
#, fuzzy, python-format #, fuzzy, python-format
@ -419,17 +381,23 @@ msgstr ""
msgid "Yes, I'm sure" msgid "Yes, I'm sure"
msgstr "Sim, tenho certeza" msgstr "Sim, tenho certeza"
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:20
msgid "Welcome," msgid "View on site"
msgstr "Bem vindo," msgstr ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:28
msgid "Change password" msgid "Please correct the error below."
msgstr "Alterar senha" msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:45
msgid "Log out" msgid "Ordering"
msgstr "Encerrar sessão" msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/submit_line.html:3 #: contrib/admin/templates/admin/submit_line.html:3
msgid "Delete" msgid "Delete"
@ -566,6 +534,38 @@ msgstr "Obrigado por usar nosso site!"
msgid "The %(site_name)s team" msgid "The %(site_name)s team"
msgstr "Time do %(site_name)s" msgstr "Time do %(site_name)s"
#: contrib/admin/models/admin.py:6
msgid "action time"
msgstr "hora da ação"
#: contrib/admin/models/admin.py:9
msgid "object id"
msgstr "id do objeto"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "repr do objeto"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "flag de ação"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "alterar mensagem"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "entrada de log"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "entradas de log"
#: contrib/admin/templatetags/admin_list.py:260
msgid "All dates"
msgstr ""
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Monday" msgid "Monday"
msgstr "Segunda Feira" msgstr "Segunda Feira"
@ -670,56 +670,56 @@ msgstr "Nov."
msgid "Dec." msgid "Dec."
msgstr "Dez." msgstr "Dez."
#: models/core.py:5 #: models/core.py:7
msgid "domain name" msgid "domain name"
msgstr "nome do domínio" msgstr "nome do domínio"
#: models/core.py:6 #: models/core.py:8
msgid "display name" msgid "display name"
msgstr "nome para exibição" msgstr "nome para exibição"
#: models/core.py:8 #: models/core.py:10
msgid "site" msgid "site"
msgstr "site" msgstr "site"
#: models/core.py:9 #: models/core.py:11
msgid "sites" msgid "sites"
msgstr "sites" msgstr "sites"
#: models/core.py:22 #: models/core.py:28
msgid "label" msgid "label"
msgstr "etiqueta" msgstr "etiqueta"
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19 #: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19
#, fuzzy #, fuzzy
msgid "name" msgid "name"
msgstr "nome:" msgstr "nome:"
#: models/core.py:25 #: models/core.py:31
msgid "package" msgid "package"
msgstr "pacote" msgstr "pacote"
#: models/core.py:26 #: models/core.py:32
msgid "packages" msgid "packages"
msgstr "pacotes" msgstr "pacotes"
#: models/core.py:36 #: models/core.py:42
msgid "python module name" msgid "python module name"
msgstr "nome do módulo python" msgstr "nome do módulo python"
#: models/core.py:38 #: models/core.py:44
msgid "content type" msgid "content type"
msgstr "tipo de conteúdo" msgstr "tipo de conteúdo"
#: models/core.py:39 #: models/core.py:45
msgid "content types" msgid "content types"
msgstr "tipos de conteúdo" msgstr "tipos de conteúdo"
#: models/core.py:62 #: models/core.py:68
msgid "redirect from" msgid "redirect from"
msgstr "redirecionar de" msgstr "redirecionar de"
#: models/core.py:63 #: models/core.py:69
msgid "" msgid ""
"This should be an absolute path, excluding the domain name. Example: '/" "This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'." "events/search/'."
@ -727,11 +727,11 @@ msgstr ""
"Deve conter um caminho absoluto, excluindo o nome de domínio. Exemplo: '/" "Deve conter um caminho absoluto, excluindo o nome de domínio. Exemplo: '/"
"eventos/busca/'." "eventos/busca/'."
#: models/core.py:64 #: models/core.py:70
msgid "redirect to" msgid "redirect to"
msgstr "redirecionar para" msgstr "redirecionar para"
#: models/core.py:65 #: models/core.py:71
msgid "" msgid ""
"This can be either an absolute path (as above) or a full URL starting with " "This can be either an absolute path (as above) or a full URL starting with "
"'http://'." "'http://'."
@ -739,36 +739,36 @@ msgstr ""
"Deve conter um caminho absoluto (como acima) ou uma URL completa, começando " "Deve conter um caminho absoluto (como acima) ou uma URL completa, começando "
"com 'http://'." "com 'http://'."
#: models/core.py:67 #: models/core.py:73
msgid "redirect" msgid "redirect"
msgstr "redirecionar" msgstr "redirecionar"
#: models/core.py:68 #: models/core.py:74
msgid "redirects" msgid "redirects"
msgstr "redirecionamentos" msgstr "redirecionamentos"
#: models/core.py:82 #: models/core.py:88
msgid "" msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes." "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr "Exemplo: '/sobre/contato/'. Lembre-se das barras no começo e no final." msgstr "Exemplo: '/sobre/contato/'. Lembre-se das barras no começo e no final."
#: models/core.py:83 #: models/core.py:89
msgid "title" msgid "title"
msgstr "título" msgstr "título"
#: models/core.py:84 #: models/core.py:90
msgid "content" msgid "content"
msgstr "conteúdo" msgstr "conteúdo"
#: models/core.py:85 #: models/core.py:91
msgid "enable comments" msgid "enable comments"
msgstr "habilitar comentários" msgstr "habilitar comentários"
#: models/core.py:86 #: models/core.py:92
msgid "template name" msgid "template name"
msgstr "nome do modelo" msgstr "nome do modelo"
#: models/core.py:87 #: models/core.py:93
msgid "" msgid ""
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will " "Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
"use 'flatfiles/default'." "use 'flatfiles/default'."
@ -776,39 +776,39 @@ msgstr ""
"Exemplo: 'flatfiles/contact_page'. Se não for informado, será utilizado " "Exemplo: 'flatfiles/contact_page'. Se não for informado, será utilizado "
"'flatfiles/default'." "'flatfiles/default'."
#: models/core.py:88 #: models/core.py:94
msgid "registration required" msgid "registration required"
msgstr "é obrigatório registrar" msgstr "é obrigatório registrar"
#: models/core.py:88 #: models/core.py:94
msgid "If this is checked, only logged-in users will be able to view the page." msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "Se estiver marcado, apenas usuários conectados poderão ver a página." msgstr "Se estiver marcado, apenas usuários conectados poderão ver a página."
#: models/core.py:92 #: models/core.py:98
msgid "flat page" msgid "flat page"
msgstr "página plana" msgstr "página plana"
#: models/core.py:93 #: models/core.py:99
msgid "flat pages" msgid "flat pages"
msgstr "páginas planas" msgstr "páginas planas"
#: models/core.py:114 #: models/core.py:117
msgid "session key" msgid "session key"
msgstr "chave da sessão" msgstr "chave da sessão"
#: models/core.py:115 #: models/core.py:118
msgid "session data" msgid "session data"
msgstr "dados da sessão" msgstr "dados da sessão"
#: models/core.py:116 #: models/core.py:119
msgid "expire date" msgid "expire date"
msgstr "data de expiração" msgstr "data de expiração"
#: models/core.py:118 #: models/core.py:121
msgid "session" msgid "session"
msgstr "sessão" msgstr "sessão"
#: models/core.py:119 #: models/core.py:122
msgid "sessions" msgid "sessions"
msgstr "sessões" msgstr "sessões"
@ -957,71 +957,75 @@ msgstr "Sérvio"
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "" msgstr ""
#: core/validators.py:58 #: conf/global_settings.py:49
msgid "Slovak"
msgstr ""
#: core/validators.py:59
msgid "This value must contain only letters, numbers and underscores." msgid "This value must contain only letters, numbers and underscores."
msgstr "Deve conter apenas letras, números e sublinhados (_)." msgstr "Deve conter apenas letras, números e sublinhados (_)."
#: core/validators.py:62 #: core/validators.py:63
msgid "This value must contain only letters, numbers, underscores and slashes." msgid "This value must contain only letters, numbers, underscores and slashes."
msgstr "Deve conter apenas letras, números, sublinhados (_) e barras (/)." msgstr "Deve conter apenas letras, números, sublinhados (_) e barras (/)."
#: core/validators.py:70 #: core/validators.py:71
msgid "Uppercase letters are not allowed here." msgid "Uppercase letters are not allowed here."
msgstr "Letras em maiúsculo não são permitidas aqui." msgstr "Letras em maiúsculo não são permitidas aqui."
#: core/validators.py:74 #: core/validators.py:75
msgid "Lowercase letters are not allowed here." msgid "Lowercase letters are not allowed here."
msgstr "Letras em minúsculo não são permitidas aqui." msgstr "Letras em minúsculo não são permitidas aqui."
#: core/validators.py:81 #: core/validators.py:82
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "Informe apenas dígitos separados por vírgulas." msgstr "Informe apenas dígitos separados por vírgulas."
#: core/validators.py:93 #: core/validators.py:94
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "Informe endereços de email válidos separados por vírgulas." msgstr "Informe endereços de email válidos separados por vírgulas."
#: core/validators.py:100 #: core/validators.py:98
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
msgstr "Informe um endereço IP válido." msgstr "Informe um endereço IP válido."
#: core/validators.py:104 #: core/validators.py:102
msgid "Empty values are not allowed here." msgid "Empty values are not allowed here."
msgstr "Valores em branco não são permitidos." msgstr "Valores em branco não são permitidos."
#: core/validators.py:108 #: core/validators.py:106
msgid "Non-numeric characters aren't allowed here." msgid "Non-numeric characters aren't allowed here."
msgstr "Caracteres não numéricos não são permitidos." msgstr "Caracteres não numéricos não são permitidos."
#: core/validators.py:112 #: core/validators.py:110
msgid "This value can't be comprised solely of digits." msgid "This value can't be comprised solely of digits."
msgstr "Este valor não pode conter apenas dígitos." msgstr "Este valor não pode conter apenas dígitos."
#: core/validators.py:117 #: core/validators.py:115
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "Informe um número inteiro." msgstr "Informe um número inteiro."
#: core/validators.py:121 #: core/validators.py:119
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
msgstr "Apenas caracteres do alfabeto são permitidos aqui." msgstr "Apenas caracteres do alfabeto são permitidos aqui."
#: core/validators.py:125 #: core/validators.py:123
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "Informe uma data válida no formato AAAA-MM-DD." msgstr "Informe uma data válida no formato AAAA-MM-DD."
#: core/validators.py:129 #: core/validators.py:127
msgid "Enter a valid time in HH:MM format." msgid "Enter a valid time in HH:MM format."
msgstr "Informe uma hora válida no formato HH:MM." msgstr "Informe uma hora válida no formato HH:MM."
#: core/validators.py:133 #: core/validators.py:131
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "Informe uma data/hora válida no formato AAAA-MM-DD HH:MM." msgstr "Informe uma data/hora válida no formato AAAA-MM-DD HH:MM."
#: core/validators.py:137 #: core/validators.py:135
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "Informe um endereço de email válido." msgstr "Informe um endereço de email válido."
#: core/validators.py:149 #: core/validators.py:147
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
@ -1029,27 +1033,27 @@ msgstr ""
"Envie uma imagem válida. O arquivo enviado não é uma imagem ou está " "Envie uma imagem válida. O arquivo enviado não é uma imagem ou está "
"corrompido." "corrompido."
#: core/validators.py:156 #: core/validators.py:154
#, python-format #, python-format
msgid "The URL %s does not point to a valid image." msgid "The URL %s does not point to a valid image."
msgstr "A URL %s não aponta para um imagem válida." msgstr "A URL %s não aponta para um imagem válida."
#: core/validators.py:160 #: core/validators.py:158
#, python-format #, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "" msgstr ""
"Números de telefone deves estar no formato XXX-XXX-XXXX.\"%s\" é inválido." "Números de telefone deves estar no formato XXX-XXX-XXXX.\"%s\" é inválido."
#: core/validators.py:168 #: core/validators.py:166
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "A URL %s não aponta para um vídeo QuickTime válido." msgstr "A URL %s não aponta para um vídeo QuickTime válido."
#: core/validators.py:172 #: core/validators.py:170
msgid "A valid URL is required." msgid "A valid URL is required."
msgstr "Uma URL válida é exigida." msgstr "Uma URL válida é exigida."
#: core/validators.py:186 #: core/validators.py:184
#, python-format #, python-format
msgid "" msgid ""
"Valid HTML is required. Specific errors are:\n" "Valid HTML is required. Specific errors are:\n"
@ -1058,69 +1062,69 @@ msgstr ""
"HTML válido é exigido. Estes são os erros específicos:\n" "HTML válido é exigido. Estes são os erros específicos:\n"
"%s" "%s"
#: core/validators.py:193 #: core/validators.py:191
#, python-format #, python-format
msgid "Badly formed XML: %s" msgid "Badly formed XML: %s"
msgstr "XML mal formado: %s" msgstr "XML mal formado: %s"
#: core/validators.py:203 #: core/validators.py:201
#, python-format #, python-format
msgid "Invalid URL: %s" msgid "Invalid URL: %s"
msgstr "URL inválida: %s" msgstr "URL inválida: %s"
#: core/validators.py:205 #: core/validators.py:203
#, python-format #, python-format
msgid "The URL %s is a broken link." msgid "The URL %s is a broken link."
msgstr "A URL %s é um link quebrado." msgstr "A URL %s é um link quebrado."
#: core/validators.py:211 #: core/validators.py:209
msgid "Enter a valid U.S. state abbreviation." msgid "Enter a valid U.S. state abbreviation."
msgstr "Informe uma abreviação válida de nome de um estado dos EUA." msgstr "Informe uma abreviação válida de nome de um estado dos EUA."
#: core/validators.py:226 #: core/validators.py:224
#, python-format #, python-format
msgid "Watch your mouth! The word %s is not allowed here." msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here."
msgstr[0] "Lave sua boca! A palavra %s não é permitida aqui." msgstr[0] "Lave sua boca! A palavra %s não é permitida aqui."
msgstr[1] "Lave sua boca! As palavras %s não são permitidas aqui." msgstr[1] "Lave sua boca! As palavras %s não são permitidas aqui."
#: core/validators.py:233 #: core/validators.py:231
#, python-format #, python-format
msgid "This field must match the '%s' field." msgid "This field must match the '%s' field."
msgstr "Este campo deve ser igual ao campo '%s'." msgstr "Este campo deve ser igual ao campo '%s'."
#: core/validators.py:252 #: core/validators.py:250
msgid "Please enter something for at least one field." msgid "Please enter something for at least one field."
msgstr "Informe algo em pelo menos um campo." msgstr "Informe algo em pelo menos um campo."
#: core/validators.py:261 core/validators.py:272 #: core/validators.py:259 core/validators.py:270
msgid "Please enter both fields or leave them both empty." msgid "Please enter both fields or leave them both empty."
msgstr "Informe ambos os campos ou deixe ambos vazios." msgstr "Informe ambos os campos ou deixe ambos vazios."
#: core/validators.py:279 #: core/validators.py:277
#, python-format #, python-format
msgid "This field must be given if %(field)s is %(value)s" msgid "This field must be given if %(field)s is %(value)s"
msgstr "Este campo deve ser informado se o campo %(field)s for %(value)s." msgstr "Este campo deve ser informado se o campo %(field)s for %(value)s."
#: core/validators.py:291 #: core/validators.py:289
#, python-format #, python-format
msgid "This field must be given if %(field)s is not %(value)s" msgid "This field must be given if %(field)s is not %(value)s"
msgstr "Este campo deve ser dado se o campo %(field)s não for %(value)s." msgstr "Este campo deve ser dado se o campo %(field)s não for %(value)s."
#: core/validators.py:310 #: core/validators.py:308
msgid "Duplicate values are not allowed." msgid "Duplicate values are not allowed."
msgstr "Valores duplicados não são permitidos." msgstr "Valores duplicados não são permitidos."
#: core/validators.py:333 #: core/validators.py:331
#, python-format #, python-format
msgid "This value must be a power of %s." msgid "This value must be a power of %s."
msgstr "Este valor deve ser uma potência de %s." msgstr "Este valor deve ser uma potência de %s."
#: core/validators.py:344 #: core/validators.py:342
msgid "Please enter a valid decimal number." msgid "Please enter a valid decimal number."
msgstr "Informe um número decimal." msgstr "Informe um número decimal."
#: core/validators.py:346 #: core/validators.py:344
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s total digit." msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "" msgid_plural ""
@ -1128,7 +1132,7 @@ msgid_plural ""
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: core/validators.py:349 #: core/validators.py:347
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "" msgid_plural ""
@ -1136,30 +1140,30 @@ msgid_plural ""
msgstr[0] "Informe um número decimal com no máximo %s casa decimal." msgstr[0] "Informe um número decimal com no máximo %s casa decimal."
msgstr[1] "Informe um número decimal com no máximo %s casas decimais." msgstr[1] "Informe um número decimal com no máximo %s casas decimais."
#: core/validators.py:359 #: core/validators.py:357
#, python-format #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "Verifique se o arquivo enviado tem pelo menos %s bytes." msgstr "Verifique se o arquivo enviado tem pelo menos %s bytes."
#: core/validators.py:360 #: core/validators.py:358
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "Verifique se o arquivo enviado tem no máximo %s bytes." msgstr "Verifique se o arquivo enviado tem no máximo %s bytes."
#: core/validators.py:373 #: core/validators.py:371
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
msgstr "O formato deste campo está errado." msgstr "O formato deste campo está errado."
#: core/validators.py:388 #: core/validators.py:386
msgid "This field is invalid." msgid "This field is invalid."
msgstr "Este campo é inválido." msgstr "Este campo é inválido."
#: core/validators.py:423 #: core/validators.py:421
#, python-format #, python-format
msgid "Could not retrieve anything from %s." msgid "Could not retrieve anything from %s."
msgstr "Não foi possível receber dados de %s." msgstr "Não foi possível receber dados de %s."
#: core/validators.py:426 #: core/validators.py:424
#, python-format #, python-format
msgid "" msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
@ -1167,7 +1171,7 @@ msgstr ""
"A URL %(url)s retornou um cabeçalho '%(contenttype)s' de Content-Type " "A URL %(url)s retornou um cabeçalho '%(contenttype)s' de Content-Type "
"inválido." "inválido."
#: core/validators.py:459 #: core/validators.py:457
#, python-format #, python-format
msgid "" msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
@ -1176,7 +1180,7 @@ msgstr ""
"Por favor, feche a tag %(tag)s na linha %(line)s. (A linha começa com \"%" "Por favor, feche a tag %(tag)s na linha %(line)s. (A linha começa com \"%"
"(start)s\".)" "(start)s\".)"
#: core/validators.py:463 #: core/validators.py:461
#, python-format #, python-format
msgid "" msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line " "Some text starting on line %(line)s is not allowed in that context. (Line "
@ -1185,7 +1189,7 @@ msgstr ""
"Algum texto começando na linha %(line)s não é permitido no contexto. (Linha " "Algum texto começando na linha %(line)s não é permitido no contexto. (Linha "
"começa com \"%(start)s\".)" "começa com \"%(start)s\".)"
#: core/validators.py:468 #: core/validators.py:466
#, python-format #, python-format
msgid "" msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
@ -1194,7 +1198,7 @@ msgstr ""
"\"%(attr)s\" na linha %(line)s não é um atributo válido. (Linha começa com " "\"%(attr)s\" na linha %(line)s não é um atributo válido. (Linha começa com "
"\"%(start)s\".)" "\"%(start)s\".)"
#: core/validators.py:473 #: core/validators.py:471
#, python-format #, python-format
msgid "" msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
@ -1203,7 +1207,7 @@ msgstr ""
"\"<%(tag)s>\" na linha %(line)s é uma tag inválida. (Linha começa com \"%" "\"<%(tag)s>\" na linha %(line)s é uma tag inválida. (Linha começa com \"%"
"(start)s\".)" "(start)s\".)"
#: core/validators.py:477 #: core/validators.py:475
#, python-format #, python-format
msgid "" msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line " "A tag on line %(line)s is missing one or more required attributes. (Line "
@ -1212,7 +1216,7 @@ msgstr ""
"Uma tag na linha %(line)s está não apresenta um ou mais atributos exigidos." "Uma tag na linha %(line)s está não apresenta um ou mais atributos exigidos."
"(Linha começa com \"%(start)s\".)" "(Linha começa com \"%(start)s\".)"
#: core/validators.py:482 #: core/validators.py:480
#, python-format #, python-format
msgid "" msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: django\n" "Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-11-04 18:22+0100\n" "POT-Creation-Date: 2005-11-08 09:05-0600\n"
"PO-Revision-Date: 2005-10-05 00:00\n" "PO-Revision-Date: 2005-10-05 00:00\n"
"Last-Translator: Dmitry Sorokin <ds@@dial.com.ru>\n" "Last-Translator: Dmitry Sorokin <ds@@dial.com.ru>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -15,39 +15,112 @@ msgstr ""
"Content-Type: text/plain; charset=koi8-r\n" "Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: contrib/admin/models/admin.py:6 #: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
#, fuzzy #, python-format
msgid "action time" msgid ""
msgstr "äÁÔÁ/×ÒÅÍÑ" "<h3>By %s:</h3>\n"
"<ul>\n"
#: contrib/admin/models/admin.py:9
msgid "object id"
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:10 #: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
msgid "object repr" #: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:11 #: contrib/admin/views/main.py:210
msgid "action flag" #, python-format
msgid "Select %s"
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:12 #: contrib/admin/views/main.py:211
msgid "change message" #, fuzzy, python-format
msgid "Select %s to change"
msgstr "ýÅÌËÎÉÔÅ ÄÌÑ ÉÚÍÅÎÅÎÉÑ"
#: contrib/admin/views/main.py:570
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:15 #: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
msgid "log entry" msgid "You may edit it again below."
msgstr "" msgstr ""
#: contrib/admin/models/admin.py:16 #: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
msgid "log entries" #, python-format
msgid "You may add another %s below."
msgstr "" msgstr ""
#: contrib/admin/templatetags/admin_list.py:256 #: contrib/admin/views/main.py:600
msgid "All dates" #, fuzzy, python-format
msgid "Add %s"
msgstr "äÏÂÁ×ÉÔØ"
#: contrib/admin/views/main.py:616
#, python-format
msgid "Added %s."
msgstr "" msgstr ""
#: contrib/admin/views/main.py:616 contrib/admin/views/main.py:618
#: contrib/admin/views/main.py:620
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:618
#, fuzzy, python-format
msgid "Changed %s."
msgstr "éÚÍÅÎÉÔØ"
#: contrib/admin/views/main.py:620
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:623
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:648
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:657
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:695
#, fuzzy, python-format
msgid "Change %s"
msgstr "éÚÍÅÎÉÔØ"
#: contrib/admin/views/main.py:775
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:780
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:809
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:812
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:827
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "éÚÍÅÎÅÎÉÅ ÐÁÒÏÌÑ"
#: contrib/admin/views/decorators.py:22 #: contrib/admin/views/decorators.py:22
#: contrib/admin/templates/admin/login.html:24 #: contrib/admin/templates/admin/login.html:24
msgid "Log in" msgid "Log in"
@ -74,112 +147,6 @@ msgstr ""
msgid "Your e-mail address is not your username. Try '%s' instead." msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "" msgstr ""
#: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
#, python-format
msgid ""
"<h3>By %s:</h3>\n"
"<ul>\n"
msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, fuzzy, python-format
msgid "Select %s to change"
msgstr "ýÅÌËÎÉÔÅ ÄÌÑ ÉÚÍÅÎÅÎÉÑ"
#: contrib/admin/views/main.py:567
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:572 contrib/admin/views/main.py:648
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:580 contrib/admin/views/main.py:657
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:597
#, fuzzy, python-format
msgid "Add %s"
msgstr "äÏÂÁ×ÉÔØ"
#: contrib/admin/views/main.py:613
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:613 contrib/admin/views/main.py:615
#: contrib/admin/views/main.py:617
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:615
#, fuzzy, python-format
msgid "Changed %s."
msgstr "éÚÍÅÎÉÔØ"
#: contrib/admin/views/main.py:617
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:620
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:645
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:654
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:692
#, fuzzy, python-format
msgid "Change %s"
msgstr "éÚÍÅÎÉÔØ"
#: contrib/admin/views/main.py:772
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:777
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:806
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:809
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:824
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "éÚÍÅÎÅÎÉÅ ÐÁÒÏÌÑ"
#: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271 #: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271
#: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278 #: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281 #: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
@ -247,7 +214,7 @@ msgstr ""
msgid "Time" msgid "Time"
msgstr "" msgstr ""
#: contrib/admin/views/doc.py:284 models/core.py:81 #: contrib/admin/views/doc.py:284 models/core.py:87
msgid "URL" msgid "URL"
msgstr "" msgstr ""
@ -259,35 +226,18 @@ msgstr ""
msgid "XML text" msgid "XML text"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/index.html:27 #: contrib/admin/templates/admin/base_site.html:4
#: contrib/admin/templates/admin/change_form.html:14 msgid "Django site admin"
msgid "Add" msgstr "áÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÊ ÓÁÊÔ Django"
msgstr "äÏÂÁ×ÉÔØ"
#: contrib/admin/templates/admin/index.html:33 #: contrib/admin/templates/admin/base_site.html:7
msgid "Change" msgid "Django administration"
msgstr "éÚÍÅÎÉÔØ" msgstr "áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ Django"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "îÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "ðÏÓÌÅÄÎÉÅ äÅÊÓÔ×ÉÑ"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "íÏÉ äÅÊÓÔ×ÉÑ"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "îÅÄÏÓÔÕÐÎÏ"
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/admin/base.html:29 #: contrib/admin/templates/admin/base.html:29
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/registration/password_change_done.html:4 #: contrib/admin/templates/registration/password_change_done.html:4
#: contrib/admin/templates/registration/password_reset_form.html:4 #: contrib/admin/templates/registration/password_reset_form.html:4
#: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/logged_out.html:4
@ -317,6 +267,40 @@ msgstr ""
"ðÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ. ïÔÞÅÔ Ï ÏÛÉÂËÅ ÏÔÐÒÁ×ÌÅÎ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁÍ ÓÁÊÔÁ ÐÏ e-mailÉ " "ðÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ. ïÔÞÅÔ Ï ÏÛÉÂËÅ ÏÔÐÒÁ×ÌÅÎ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁÍ ÓÁÊÔÁ ÐÏ e-mailÉ "
"ÏÎÁ ÄÏÌÖÎÁ ÂÙÔØ ×ÓËÏÒÅ ÉÓÐÒÁ×ÌÅÎÁ. âÌÁÇÏÄÁÒÉÍ ×ÁÓ ÎÁ ÔÅÒÐÅÎÉÅ É ÐÏÍÏÝØ." "ÏÎÁ ÄÏÌÖÎÁ ÂÙÔØ ×ÓËÏÒÅ ÉÓÐÒÁ×ÌÅÎÁ. âÌÁÇÏÄÁÒÉÍ ×ÁÓ ÎÁ ÔÅÒÐÅÎÉÅ É ÐÏÍÏÝØ."
#: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8
msgid "Page not found"
msgstr "óÔÒÁÎÉÃÁ ÎÅ ÎÁÊÄÅÎÁ"
#: contrib/admin/templates/admin/404.html:10
msgid "We're sorry, but the requested page could not be found."
msgstr "ë ÓÏÖÁÌÅÎÉÀ, ÚÁÐÒÁÛÉ×ÁÅÍÁÑ ×ÁÍÉ ÓÔÒÁÎÉÃÁ ÎÅ ÎÁÊÄÅÎÁ."
#: contrib/admin/templates/admin/index.html:27
#: contrib/admin/templates/admin/change_form.html:14
msgid "Add"
msgstr "äÏÂÁ×ÉÔØ"
#: contrib/admin/templates/admin/index.html:33
msgid "Change"
msgstr "éÚÍÅÎÉÔØ"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "îÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "ðÏÓÌÅÄÎÉÅ äÅÊÓÔ×ÉÑ"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "íÏÉ äÅÊÓÔ×ÉÑ"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "îÅÄÏÓÔÕÐÎÏ"
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:19 #: contrib/admin/templates/admin/change_form.html:19
msgid "History" msgid "History"
@ -346,14 +330,6 @@ msgstr ""
"äÁÎÎÙÊ ÏÂØÅËÔ ÎÅ ÉÍÅÅÔ ÉÓÔÏÒÉÉ ÉÚÍÅÎÅÎÉÑ. ÷ÏÚÍÏÖÎÏ ÏÎ ÎÅ ÂÙÌ ÄÏÂÁ×ÌÅÎ ÞÅÒÅÚ " "äÁÎÎÙÊ ÏÂØÅËÔ ÎÅ ÉÍÅÅÔ ÉÓÔÏÒÉÉ ÉÚÍÅÎÅÎÉÑ. ÷ÏÚÍÏÖÎÏ ÏÎ ÎÅ ÂÙÌ ÄÏÂÁ×ÌÅÎ ÞÅÒÅÚ "
"ÄÁÎÎÙÊ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÊ ÓÁÊÔ." "ÄÁÎÎÙÊ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÊ ÓÁÊÔ."
#: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin"
msgstr "áÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÊ ÓÁÊÔ Django"
#: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration"
msgstr "áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ Django"
#: contrib/admin/templates/admin/login.html:15 #: contrib/admin/templates/admin/login.html:15
msgid "Username:" msgid "Username:"
msgstr "éÍÑ:" msgstr "éÍÑ:"
@ -366,32 +342,17 @@ msgstr "
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?" msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
msgstr "÷Ù <a href=\"/password_reset/\">ÚÁÂÙÌÉ ÐÁÒÏÌØ</a>?" msgstr "÷Ù <a href=\"/password_reset/\">ÚÁÂÙÌÉ ÐÁÒÏÌØ</a>?"
#: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/base.html:23
#: contrib/admin/templates/admin/404.html:8 msgid "Welcome,"
msgid "Page not found" msgstr "äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ,"
msgstr "óÔÒÁÎÉÃÁ ÎÅ ÎÁÊÄÅÎÁ"
#: contrib/admin/templates/admin/404.html:10 #: contrib/admin/templates/admin/base.html:23
msgid "We're sorry, but the requested page could not be found." msgid "Change password"
msgstr "ë ÓÏÖÁÌÅÎÉÀ, ÚÁÐÒÁÛÉ×ÁÅÍÁÑ ×ÁÍÉ ÓÔÒÁÎÉÃÁ ÎÅ ÎÁÊÄÅÎÁ." msgstr "éÚÍÅÎÅÎÉÅ ÐÁÒÏÌÑ"
#: contrib/admin/templates/admin/change_form.html:20 #: contrib/admin/templates/admin/base.html:23
msgid "View on site" msgid "Log out"
msgstr "" msgstr "÷ÙÈÏÄ"
#: contrib/admin/templates/admin/change_form.html:28
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/change_form.html:45
msgid "Ordering"
msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/delete_confirmation.html:7 #: contrib/admin/templates/admin/delete_confirmation.html:7
#, fuzzy, python-format #, fuzzy, python-format
@ -417,17 +378,23 @@ msgstr ""
msgid "Yes, I'm sure" msgid "Yes, I'm sure"
msgstr "äÁ, Ñ Õ×ÅÒÅÎ" msgstr "äÁ, Ñ Õ×ÅÒÅÎ"
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:20
msgid "Welcome," msgid "View on site"
msgstr "äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ," msgstr ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:28
msgid "Change password" msgid "Please correct the error below."
msgstr "éÚÍÅÎÅÎÉÅ ÐÁÒÏÌÑ" msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:45
msgid "Log out" msgid "Ordering"
msgstr "÷ÙÈÏÄ" msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/submit_line.html:3 #: contrib/admin/templates/admin/submit_line.html:3
msgid "Delete" msgid "Delete"
@ -563,6 +530,39 @@ msgstr "
msgid "The %(site_name)s team" msgid "The %(site_name)s team"
msgstr "ëÏÍÁÎÄÁ ÓÁÊÔÁ di %(site_name)s" msgstr "ëÏÍÁÎÄÁ ÓÁÊÔÁ di %(site_name)s"
#: contrib/admin/models/admin.py:6
#, fuzzy
msgid "action time"
msgstr "äÁÔÁ/×ÒÅÍÑ"
#: contrib/admin/models/admin.py:9
msgid "object id"
msgstr ""
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr ""
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr ""
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr ""
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr ""
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr ""
#: contrib/admin/templatetags/admin_list.py:260
msgid "All dates"
msgstr ""
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Monday" msgid "Monday"
msgstr "" msgstr ""
@ -667,139 +667,139 @@ msgstr ""
msgid "Dec." msgid "Dec."
msgstr "" msgstr ""
#: models/core.py:5 #: models/core.py:7
msgid "domain name" msgid "domain name"
msgstr "" msgstr ""
#: models/core.py:6 #: models/core.py:8
msgid "display name" msgid "display name"
msgstr "" msgstr ""
#: models/core.py:8 #: models/core.py:10
msgid "site" msgid "site"
msgstr "" msgstr ""
#: models/core.py:9 #: models/core.py:11
msgid "sites" msgid "sites"
msgstr "" msgstr ""
#: models/core.py:22 #: models/core.py:28
msgid "label" msgid "label"
msgstr "" msgstr ""
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19 #: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19
#, fuzzy #, fuzzy
msgid "name" msgid "name"
msgstr "éÍÑ:" msgstr "éÍÑ:"
#: models/core.py:25 #: models/core.py:31
msgid "package" msgid "package"
msgstr "" msgstr ""
#: models/core.py:26 #: models/core.py:32
msgid "packages" msgid "packages"
msgstr "" msgstr ""
#: models/core.py:36 #: models/core.py:42
msgid "python module name" msgid "python module name"
msgstr "" msgstr ""
#: models/core.py:38 #: models/core.py:44
msgid "content type" msgid "content type"
msgstr "" msgstr ""
#: models/core.py:39 #: models/core.py:45
msgid "content types" msgid "content types"
msgstr "" msgstr ""
#: models/core.py:62 #: models/core.py:68
msgid "redirect from" msgid "redirect from"
msgstr "" msgstr ""
#: models/core.py:63 #: models/core.py:69
msgid "" msgid ""
"This should be an absolute path, excluding the domain name. Example: '/" "This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'." "events/search/'."
msgstr "" msgstr ""
#: models/core.py:64 #: models/core.py:70
msgid "redirect to" msgid "redirect to"
msgstr "" msgstr ""
#: models/core.py:65 #: models/core.py:71
msgid "" msgid ""
"This can be either an absolute path (as above) or a full URL starting with " "This can be either an absolute path (as above) or a full URL starting with "
"'http://'." "'http://'."
msgstr "" msgstr ""
#: models/core.py:67 #: models/core.py:73
msgid "redirect" msgid "redirect"
msgstr "" msgstr ""
#: models/core.py:68 #: models/core.py:74
msgid "redirects" msgid "redirects"
msgstr "" msgstr ""
#: models/core.py:82 #: models/core.py:88
msgid "" msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes." "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr "" msgstr ""
#: models/core.py:83 #: models/core.py:89
msgid "title" msgid "title"
msgstr "" msgstr ""
#: models/core.py:84 #: models/core.py:90
msgid "content" msgid "content"
msgstr "" msgstr ""
#: models/core.py:85 #: models/core.py:91
msgid "enable comments" msgid "enable comments"
msgstr "" msgstr ""
#: models/core.py:86 #: models/core.py:92
msgid "template name" msgid "template name"
msgstr "" msgstr ""
#: models/core.py:87 #: models/core.py:93
msgid "" msgid ""
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will " "Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
"use 'flatfiles/default'." "use 'flatfiles/default'."
msgstr "" msgstr ""
#: models/core.py:88 #: models/core.py:94
msgid "registration required" msgid "registration required"
msgstr "" msgstr ""
#: models/core.py:88 #: models/core.py:94
msgid "If this is checked, only logged-in users will be able to view the page." msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "" msgstr ""
#: models/core.py:92 #: models/core.py:98
msgid "flat page" msgid "flat page"
msgstr "" msgstr ""
#: models/core.py:93 #: models/core.py:99
msgid "flat pages" msgid "flat pages"
msgstr "" msgstr ""
#: models/core.py:114 #: models/core.py:117
msgid "session key" msgid "session key"
msgstr "" msgstr ""
#: models/core.py:115 #: models/core.py:118
msgid "session data" msgid "session data"
msgstr "" msgstr ""
#: models/core.py:116 #: models/core.py:119
msgid "expire date" msgid "expire date"
msgstr "" msgstr ""
#: models/core.py:118 #: models/core.py:121
msgid "session" msgid "session"
msgstr "" msgstr ""
#: models/core.py:119 #: models/core.py:122
msgid "sessions" msgid "sessions"
msgstr "" msgstr ""
@ -945,167 +945,171 @@ msgstr ""
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "" msgstr ""
#: core/validators.py:58 #: conf/global_settings.py:49
msgid "Slovak"
msgstr ""
#: core/validators.py:59
msgid "This value must contain only letters, numbers and underscores." msgid "This value must contain only letters, numbers and underscores."
msgstr "úÎÁÞÅÎÉÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÔÏÌØËÏ ÂÕË×Ù, ÃÉÆÒÙ É ÐÏÄÞÅÒËÉ×ÁÎÉÑ." msgstr "úÎÁÞÅÎÉÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÔÏÌØËÏ ÂÕË×Ù, ÃÉÆÒÙ É ÐÏÄÞÅÒËÉ×ÁÎÉÑ."
#: core/validators.py:62 #: core/validators.py:63
#, fuzzy #, fuzzy
msgid "This value must contain only letters, numbers, underscores and slashes." msgid "This value must contain only letters, numbers, underscores and slashes."
msgstr "úÎÁÞÅÎÉÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÔÏÌØËÏ ÂÕË×Ù, ÃÉÆÒÙ É ÐÏÄÞÅÒËÉ×ÁÎÉÑ." msgstr "úÎÁÞÅÎÉÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÔÏÌØËÏ ÂÕË×Ù, ÃÉÆÒÙ É ÐÏÄÞÅÒËÉ×ÁÎÉÑ."
#: core/validators.py:70 #: core/validators.py:71
msgid "Uppercase letters are not allowed here." msgid "Uppercase letters are not allowed here."
msgstr "" msgstr ""
#: core/validators.py:74 #: core/validators.py:75
msgid "Lowercase letters are not allowed here." msgid "Lowercase letters are not allowed here."
msgstr "" msgstr ""
#: core/validators.py:81 #: core/validators.py:82
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "" msgstr ""
#: core/validators.py:93 #: core/validators.py:94
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "" msgstr ""
#: core/validators.py:100 #: core/validators.py:98
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
msgstr "" msgstr ""
#: core/validators.py:104 #: core/validators.py:102
msgid "Empty values are not allowed here." msgid "Empty values are not allowed here."
msgstr "" msgstr ""
#: core/validators.py:108 #: core/validators.py:106
msgid "Non-numeric characters aren't allowed here." msgid "Non-numeric characters aren't allowed here."
msgstr "" msgstr ""
#: core/validators.py:112 #: core/validators.py:110
msgid "This value can't be comprised solely of digits." msgid "This value can't be comprised solely of digits."
msgstr "" msgstr ""
#: core/validators.py:117 #: core/validators.py:115
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "" msgstr ""
#: core/validators.py:121 #: core/validators.py:119
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
msgstr "" msgstr ""
#: core/validators.py:125 #: core/validators.py:123
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "" msgstr ""
#: core/validators.py:129 #: core/validators.py:127
msgid "Enter a valid time in HH:MM format." msgid "Enter a valid time in HH:MM format."
msgstr "" msgstr ""
#: core/validators.py:133 #: core/validators.py:131
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "" msgstr ""
#: core/validators.py:137 #: core/validators.py:135
#, fuzzy #, fuzzy
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "E-mail ÁÄÒÅÓ:" msgstr "E-mail ÁÄÒÅÓ:"
#: core/validators.py:149 #: core/validators.py:147
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: core/validators.py:156 #: core/validators.py:154
#, python-format #, python-format
msgid "The URL %s does not point to a valid image." msgid "The URL %s does not point to a valid image."
msgstr "" msgstr ""
#: core/validators.py:160 #: core/validators.py:158
#, python-format #, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "" msgstr ""
#: core/validators.py:168 #: core/validators.py:166
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "" msgstr ""
#: core/validators.py:172 #: core/validators.py:170
msgid "A valid URL is required." msgid "A valid URL is required."
msgstr "" msgstr ""
#: core/validators.py:186 #: core/validators.py:184
#, python-format #, python-format
msgid "" msgid ""
"Valid HTML is required. Specific errors are:\n" "Valid HTML is required. Specific errors are:\n"
"%s" "%s"
msgstr "" msgstr ""
#: core/validators.py:193 #: core/validators.py:191
#, python-format #, python-format
msgid "Badly formed XML: %s" msgid "Badly formed XML: %s"
msgstr "" msgstr ""
#: core/validators.py:203 #: core/validators.py:201
#, python-format #, python-format
msgid "Invalid URL: %s" msgid "Invalid URL: %s"
msgstr "" msgstr ""
#: core/validators.py:205 #: core/validators.py:203
#, python-format #, python-format
msgid "The URL %s is a broken link." msgid "The URL %s is a broken link."
msgstr "" msgstr ""
#: core/validators.py:211 #: core/validators.py:209
msgid "Enter a valid U.S. state abbreviation." msgid "Enter a valid U.S. state abbreviation."
msgstr "" msgstr ""
#: core/validators.py:226 #: core/validators.py:224
#, python-format #, python-format
msgid "Watch your mouth! The word %s is not allowed here." msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: core/validators.py:233 #: core/validators.py:231
#, python-format #, python-format
msgid "This field must match the '%s' field." msgid "This field must match the '%s' field."
msgstr "" msgstr ""
#: core/validators.py:252 #: core/validators.py:250
msgid "Please enter something for at least one field." msgid "Please enter something for at least one field."
msgstr "" msgstr ""
#: core/validators.py:261 core/validators.py:272 #: core/validators.py:259 core/validators.py:270
msgid "Please enter both fields or leave them both empty." msgid "Please enter both fields or leave them both empty."
msgstr "" msgstr ""
#: core/validators.py:279 #: core/validators.py:277
#, python-format #, python-format
msgid "This field must be given if %(field)s is %(value)s" msgid "This field must be given if %(field)s is %(value)s"
msgstr "" msgstr ""
#: core/validators.py:291 #: core/validators.py:289
#, python-format #, python-format
msgid "This field must be given if %(field)s is not %(value)s" msgid "This field must be given if %(field)s is not %(value)s"
msgstr "" msgstr ""
#: core/validators.py:310 #: core/validators.py:308
msgid "Duplicate values are not allowed." msgid "Duplicate values are not allowed."
msgstr "" msgstr ""
#: core/validators.py:333 #: core/validators.py:331
#, python-format #, python-format
msgid "This value must be a power of %s." msgid "This value must be a power of %s."
msgstr "" msgstr ""
#: core/validators.py:344 #: core/validators.py:342
msgid "Please enter a valid decimal number." msgid "Please enter a valid decimal number."
msgstr "" msgstr ""
#: core/validators.py:346 #: core/validators.py:344
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s total digit." msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "" msgid_plural ""
@ -1113,7 +1117,7 @@ msgid_plural ""
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: core/validators.py:349 #: core/validators.py:347
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "" msgid_plural ""
@ -1121,71 +1125,71 @@ msgid_plural ""
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: core/validators.py:359 #: core/validators.py:357
#, python-format #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "" msgstr ""
#: core/validators.py:360 #: core/validators.py:358
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "" msgstr ""
#: core/validators.py:373 #: core/validators.py:371
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
msgstr "" msgstr ""
#: core/validators.py:388 #: core/validators.py:386
msgid "This field is invalid." msgid "This field is invalid."
msgstr "" msgstr ""
#: core/validators.py:423 #: core/validators.py:421
#, python-format #, python-format
msgid "Could not retrieve anything from %s." msgid "Could not retrieve anything from %s."
msgstr "" msgstr ""
#: core/validators.py:426 #: core/validators.py:424
#, python-format #, python-format
msgid "" msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
msgstr "" msgstr ""
#: core/validators.py:459 #: core/validators.py:457
#, python-format #, python-format
msgid "" msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
"\"%(start)s\".)" "\"%(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:463 #: core/validators.py:461
#, python-format #, python-format
msgid "" msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line " "Some text starting on line %(line)s is not allowed in that context. (Line "
"starts with \"%(start)s\".)" "starts with \"%(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:468 #: core/validators.py:466
#, python-format #, python-format
msgid "" msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
"(start)s\".)" "(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:473 #: core/validators.py:471
#, python-format #, python-format
msgid "" msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
"(start)s\".)" "(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:477 #: core/validators.py:475
#, python-format #, python-format
msgid "" msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line " "A tag on line %(line)s is missing one or more required attributes. (Line "
"starts with \"%(start)s\".)" "starts with \"%(start)s\".)"
msgstr "" msgstr ""
#: core/validators.py:482 #: core/validators.py:480
#, python-format #, python-format
msgid "" msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django Serbian (latin) translation v1.0\n" "Project-Id-Version: Django Serbian (latin) translation v1.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-11-04 18:22+0100\n" "POT-Creation-Date: 2005-11-08 09:05-0600\n"
"PO-Revision-Date: 2005-11-03 00:28+0100\n" "PO-Revision-Date: 2005-11-03 00:28+0100\n"
"Last-Translator: Petar Marić <petar.maric@gmail.com>\n" "Last-Translator: Petar Marić <petar.maric@gmail.com>\n"
"Language-Team: Nesh <nesh@studioquatro.co.yu> & Petar <petar.maric@gmail." "Language-Team: Nesh <nesh@studioquatro.co.yu> & Petar <petar.maric@gmail."
@ -17,38 +17,112 @@ msgstr ""
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-Basepath: ../../../../\n" "X-Poedit-Basepath: ../../../../\n"
#: contrib/admin/models/admin.py:6 #: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
msgid "action time" #, python-format
msgstr "Datum/vreme akcije" msgid ""
"<h3>By %s:</h3>\n"
#: contrib/admin/models/admin.py:9 "<ul>\n"
msgid "object id"
msgstr "id objekta"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "opis objekta"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "akcija"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "opis promene"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "unos u dnevnik izmena"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "unosi u dnevnik izmena"
#: contrib/admin/templatetags/admin_list.py:256
msgid "All dates"
msgstr "" msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, python-format
msgid "Select %s to change"
msgstr ""
#: contrib/admin/views/main.py:570
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:600
#, fuzzy, python-format
msgid "Add %s"
msgstr "Dodaj"
#: contrib/admin/views/main.py:616
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:616 contrib/admin/views/main.py:618
#: contrib/admin/views/main.py:620
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:618
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Izmena"
#: contrib/admin/views/main.py:620
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:623
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:648
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:657
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:695
#, fuzzy, python-format
msgid "Change %s"
msgstr "Izmena"
#: contrib/admin/views/main.py:775
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:780
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:809
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:812
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:827
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Izmeni lozinku"
#: contrib/admin/views/decorators.py:22 #: contrib/admin/views/decorators.py:22
#: contrib/admin/templates/admin/login.html:24 #: contrib/admin/templates/admin/login.html:24
msgid "Log in" msgid "Log in"
@ -75,112 +149,6 @@ msgstr ""
msgid "Your e-mail address is not your username. Try '%s' instead." msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "" msgstr ""
#: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
#, python-format
msgid ""
"<h3>By %s:</h3>\n"
"<ul>\n"
msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, python-format
msgid "Select %s to change"
msgstr ""
#: contrib/admin/views/main.py:567
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:572 contrib/admin/views/main.py:648
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:580 contrib/admin/views/main.py:657
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:597
#, fuzzy, python-format
msgid "Add %s"
msgstr "Dodaj"
#: contrib/admin/views/main.py:613
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:613 contrib/admin/views/main.py:615
#: contrib/admin/views/main.py:617
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:615
#, fuzzy, python-format
msgid "Changed %s."
msgstr "Izmena"
#: contrib/admin/views/main.py:617
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:620
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:645
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:654
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:692
#, fuzzy, python-format
msgid "Change %s"
msgstr "Izmena"
#: contrib/admin/views/main.py:772
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:777
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:806
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:809
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:824
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "Izmeni lozinku"
#: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271 #: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271
#: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278 #: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281 #: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
@ -252,7 +220,7 @@ msgstr ""
# nesh: ovo se valjda ne prevodi # nesh: ovo se valjda ne prevodi
# petar: ne prevodi se # petar: ne prevodi se
#: contrib/admin/views/doc.py:284 models/core.py:81 #: contrib/admin/views/doc.py:284 models/core.py:87
msgid "URL" msgid "URL"
msgstr "" msgstr ""
@ -264,35 +232,18 @@ msgstr ""
msgid "XML text" msgid "XML text"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/index.html:27 #: contrib/admin/templates/admin/base_site.html:4
#: contrib/admin/templates/admin/change_form.html:14 msgid "Django site admin"
msgid "Add" msgstr "Django administracija sajta"
msgstr "Dodaj"
#: contrib/admin/templates/admin/index.html:33 #: contrib/admin/templates/admin/base_site.html:7
msgid "Change" msgid "Django administration"
msgstr "Izmena" msgstr "Django administracija"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "Nemate prava da vršite izmene."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Skorije akcije"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Moje akcije"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Nema dostupnih"
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/admin/base.html:29 #: contrib/admin/templates/admin/base.html:29
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/registration/password_change_done.html:4 #: contrib/admin/templates/registration/password_change_done.html:4
#: contrib/admin/templates/registration/password_reset_form.html:4 #: contrib/admin/templates/registration/password_reset_form.html:4
#: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/logged_out.html:4
@ -322,6 +273,40 @@ msgstr ""
"Dogodila se greška koja je prijavljena administratorima i biće popravljena " "Dogodila se greška koja je prijavljena administratorima i biće popravljena "
"uskoro. Hvala Vam na strpljenju." "uskoro. Hvala Vam na strpljenju."
#: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8
msgid "Page not found"
msgstr "Strana nije pronađena"
#: contrib/admin/templates/admin/404.html:10
msgid "We're sorry, but the requested page could not be found."
msgstr "Tražena strana ne postoji."
#: contrib/admin/templates/admin/index.html:27
#: contrib/admin/templates/admin/change_form.html:14
msgid "Add"
msgstr "Dodaj"
#: contrib/admin/templates/admin/index.html:33
msgid "Change"
msgstr "Izmena"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "Nemate prava da vršite izmene."
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "Skorije akcije"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "Moje akcije"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "Nema dostupnih"
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:19 #: contrib/admin/templates/admin/change_form.html:19
msgid "History" msgid "History"
@ -351,14 +336,6 @@ msgstr ""
"Ovaj objekat nema istoriju promena. Najverovatnije nije dodat korišćenjem " "Ovaj objekat nema istoriju promena. Najverovatnije nije dodat korišćenjem "
"administracije sajta." "administracije sajta."
#: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin"
msgstr "Django administracija sajta"
#: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration"
msgstr "Django administracija"
#: contrib/admin/templates/admin/login.html:15 #: contrib/admin/templates/admin/login.html:15
msgid "Username:" msgid "Username:"
msgstr "Korisničko ime:" msgstr "Korisničko ime:"
@ -371,33 +348,17 @@ msgstr "Lozinka:"
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?" msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
msgstr "Da li ste <a href=\"/password_reset/\">zaboravili Vašu lozinku?</a>?" msgstr "Da li ste <a href=\"/password_reset/\">zaboravili Vašu lozinku?</a>?"
#: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/base.html:23
#: contrib/admin/templates/admin/404.html:8 msgid "Welcome,"
msgid "Page not found" msgstr "Dobrodošli,"
msgstr "Strana nije pronađena"
#: contrib/admin/templates/admin/404.html:10 #: contrib/admin/templates/admin/base.html:23
msgid "We're sorry, but the requested page could not be found." msgid "Change password"
msgstr "Tražena strana ne postoji." msgstr "Izmeni lozinku"
#: contrib/admin/templates/admin/change_form.html:20 #: contrib/admin/templates/admin/base.html:23
msgid "View on site" msgid "Log out"
msgstr "" msgstr "Odjavi se"
#: contrib/admin/templates/admin/change_form.html:28
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: contrib/admin/templates/admin/change_form.html:45
msgid "Ordering"
msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/delete_confirmation.html:7 #: contrib/admin/templates/admin/delete_confirmation.html:7
#, fuzzy, python-format #, fuzzy, python-format
@ -422,17 +383,24 @@ msgstr ""
msgid "Yes, I'm sure" msgid "Yes, I'm sure"
msgstr "Da, siguran sam" msgstr "Da, siguran sam"
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:20
msgid "Welcome," msgid "View on site"
msgstr "Dobrodošli," msgstr ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:28
msgid "Change password" msgid "Please correct the error below."
msgstr "Izmeni lozinku" msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:45
msgid "Log out" msgid "Ordering"
msgstr "Odjavi se" msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/submit_line.html:3 #: contrib/admin/templates/admin/submit_line.html:3
msgid "Delete" msgid "Delete"
@ -569,6 +537,38 @@ msgstr "Hvala Vam na poseti!"
msgid "The %(site_name)s team" msgid "The %(site_name)s team"
msgstr "%(site_name)s tim" msgstr "%(site_name)s tim"
#: contrib/admin/models/admin.py:6
msgid "action time"
msgstr "Datum/vreme akcije"
#: contrib/admin/models/admin.py:9
msgid "object id"
msgstr "id objekta"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "opis objekta"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "akcija"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "opis promene"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "unos u dnevnik izmena"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "unosi u dnevnik izmena"
#: contrib/admin/templatetags/admin_list.py:260
msgid "All dates"
msgstr ""
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Monday" msgid "Monday"
msgstr "Ponedeljak" msgstr "Ponedeljak"
@ -673,55 +673,55 @@ msgstr "Nov."
msgid "Dec." msgid "Dec."
msgstr "Dec." msgstr "Dec."
#: models/core.py:5 #: models/core.py:7
msgid "domain name" msgid "domain name"
msgstr "ime domena" msgstr "ime domena"
#: models/core.py:6 #: models/core.py:8
msgid "display name" msgid "display name"
msgstr "naziv" msgstr "naziv"
#: models/core.py:8 #: models/core.py:10
msgid "site" msgid "site"
msgstr "sajt" msgstr "sajt"
#: models/core.py:9 #: models/core.py:11
msgid "sites" msgid "sites"
msgstr "sajtovi" msgstr "sajtovi"
#: models/core.py:22 #: models/core.py:28
msgid "label" msgid "label"
msgstr "" msgstr ""
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19 #: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19
msgid "name" msgid "name"
msgstr "ime" msgstr "ime"
#: models/core.py:25 #: models/core.py:31
msgid "package" msgid "package"
msgstr "" msgstr ""
#: models/core.py:26 #: models/core.py:32
msgid "packages" msgid "packages"
msgstr "" msgstr ""
#: models/core.py:36 #: models/core.py:42
msgid "python module name" msgid "python module name"
msgstr "ime python modula" msgstr "ime python modula"
#: models/core.py:38 #: models/core.py:44
msgid "content type" msgid "content type"
msgstr "tip sadržaja" msgstr "tip sadržaja"
#: models/core.py:39 #: models/core.py:45
msgid "content types" msgid "content types"
msgstr "tipovi sadržaja" msgstr "tipovi sadržaja"
#: models/core.py:62 #: models/core.py:68
msgid "redirect from" msgid "redirect from"
msgstr "redirekcija od" msgstr "redirekcija od"
#: models/core.py:63 #: models/core.py:69
msgid "" msgid ""
"This should be an absolute path, excluding the domain name. Example: '/" "This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'." "events/search/'."
@ -729,11 +729,11 @@ msgstr ""
"Ovde treba upisati apsolutnu putanju bez imena domena. Primer: '/events/" "Ovde treba upisati apsolutnu putanju bez imena domena. Primer: '/events/"
"search/'." "search/'."
#: models/core.py:64 #: models/core.py:70
msgid "redirect to" msgid "redirect to"
msgstr "redirekcija na" msgstr "redirekcija na"
#: models/core.py:65 #: models/core.py:71
msgid "" msgid ""
"This can be either an absolute path (as above) or a full URL starting with " "This can be either an absolute path (as above) or a full URL starting with "
"'http://'." "'http://'."
@ -741,38 +741,38 @@ msgstr ""
"Ovo može biti apsolutna putanja (kao gore) ili puni URL koji počinje sa " "Ovo može biti apsolutna putanja (kao gore) ili puni URL koji počinje sa "
"'http://'." "'http://'."
#: models/core.py:67 #: models/core.py:73
msgid "redirect" msgid "redirect"
msgstr "redirekcija" msgstr "redirekcija"
#: models/core.py:68 #: models/core.py:74
msgid "redirects" msgid "redirects"
msgstr "redirekcije" msgstr "redirekcije"
#: models/core.py:82 #: models/core.py:88
msgid "" msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes." "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr "" msgstr ""
"Primer: '/about/contact/'. Proverite da li ste uneli početnu i kranju kosu " "Primer: '/about/contact/'. Proverite da li ste uneli početnu i kranju kosu "
"crtu." "crtu."
#: models/core.py:83 #: models/core.py:89
msgid "title" msgid "title"
msgstr "naslov" msgstr "naslov"
#: models/core.py:84 #: models/core.py:90
msgid "content" msgid "content"
msgstr "sadržaj" msgstr "sadržaj"
#: models/core.py:85 #: models/core.py:91
msgid "enable comments" msgid "enable comments"
msgstr "omogućite komentare" msgstr "omogućite komentare"
#: models/core.py:86 #: models/core.py:92
msgid "template name" msgid "template name"
msgstr "ime templejta" msgstr "ime templejta"
#: models/core.py:87 #: models/core.py:93
msgid "" msgid ""
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will " "Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
"use 'flatfiles/default'." "use 'flatfiles/default'."
@ -780,41 +780,41 @@ msgstr ""
"Primer: 'flatfiles/contact-page'. Ako nije dato sistem će koristiti " "Primer: 'flatfiles/contact-page'. Ako nije dato sistem će koristiti "
"'flatfiles/default'." "'flatfiles/default'."
#: models/core.py:88 #: models/core.py:94
msgid "registration required" msgid "registration required"
msgstr "samo za registrovane korisnike" msgstr "samo za registrovane korisnike"
#: models/core.py:88 #: models/core.py:94
msgid "If this is checked, only logged-in users will be able to view the page." msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "" msgstr ""
"Ako izaberete ovu opciju samo prijavljeni korisnici će imati pristup datoj " "Ako izaberete ovu opciju samo prijavljeni korisnici će imati pristup datoj "
"strani." "strani."
#: models/core.py:92 #: models/core.py:98
msgid "flat page" msgid "flat page"
msgstr "statična strana" msgstr "statična strana"
#: models/core.py:93 #: models/core.py:99
msgid "flat pages" msgid "flat pages"
msgstr "statične strane" msgstr "statične strane"
#: models/core.py:114 #: models/core.py:117
msgid "session key" msgid "session key"
msgstr "ključ sesije" msgstr "ključ sesije"
#: models/core.py:115 #: models/core.py:118
msgid "session data" msgid "session data"
msgstr "podaci sesije" msgstr "podaci sesije"
#: models/core.py:116 #: models/core.py:119
msgid "expire date" msgid "expire date"
msgstr "datum prestanka važenja sesije" msgstr "datum prestanka važenja sesije"
#: models/core.py:118 #: models/core.py:121
msgid "session" msgid "session"
msgstr "sesija" msgstr "sesija"
#: models/core.py:119 #: models/core.py:122
msgid "sessions" msgid "sessions"
msgstr "sesije" msgstr "sesije"
@ -957,73 +957,77 @@ msgstr "Srpski"
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "" msgstr ""
#: conf/global_settings.py:49
msgid "Slovak"
msgstr ""
# nesh: Ovo je opis za stari SlugField # nesh: Ovo je opis za stari SlugField
#: core/validators.py:58 #: core/validators.py:59
msgid "This value must contain only letters, numbers and underscores." msgid "This value must contain only letters, numbers and underscores."
msgstr "Ovo polje može sadržati samo slova, brojeve i donju crtu (_)." msgstr "Ovo polje može sadržati samo slova, brojeve i donju crtu (_)."
#: core/validators.py:62 #: core/validators.py:63
msgid "This value must contain only letters, numbers, underscores and slashes." msgid "This value must contain only letters, numbers, underscores and slashes."
msgstr "" msgstr ""
"Ovo polje može sadržati samo slova, brojeve, donju crtu (_) i kose crte." "Ovo polje može sadržati samo slova, brojeve, donju crtu (_) i kose crte."
#: core/validators.py:70 #: core/validators.py:71
msgid "Uppercase letters are not allowed here." msgid "Uppercase letters are not allowed here."
msgstr "Velika slova ovde nisu dozvoljena." msgstr "Velika slova ovde nisu dozvoljena."
#: core/validators.py:74 #: core/validators.py:75
msgid "Lowercase letters are not allowed here." msgid "Lowercase letters are not allowed here."
msgstr "Mala slova ovde nisu dozvoljena." msgstr "Mala slova ovde nisu dozvoljena."
#: core/validators.py:81 #: core/validators.py:82
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "Unesite samo brojeve razdvojene zarezima." msgstr "Unesite samo brojeve razdvojene zarezima."
#: core/validators.py:93 #: core/validators.py:94
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "Unesite ispravne e-mail adrese razdvojene zarezima." msgstr "Unesite ispravne e-mail adrese razdvojene zarezima."
#: core/validators.py:100 #: core/validators.py:98
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
msgstr "Unesite ispravnu IP adresu." msgstr "Unesite ispravnu IP adresu."
#: core/validators.py:104 #: core/validators.py:102
msgid "Empty values are not allowed here." msgid "Empty values are not allowed here."
msgstr "Prazne vrednosti ovde nisu dozvoljene." msgstr "Prazne vrednosti ovde nisu dozvoljene."
#: core/validators.py:108 #: core/validators.py:106
msgid "Non-numeric characters aren't allowed here." msgid "Non-numeric characters aren't allowed here."
msgstr "Ovde možete uneti samo brojeve." msgstr "Ovde možete uneti samo brojeve."
#: core/validators.py:112 #: core/validators.py:110
msgid "This value can't be comprised solely of digits." msgid "This value can't be comprised solely of digits."
msgstr "Podatak se ne može sastojati samo od brojeva." msgstr "Podatak se ne može sastojati samo od brojeva."
#: core/validators.py:117 #: core/validators.py:115
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "Unesite celi broj." msgstr "Unesite celi broj."
#: core/validators.py:121 #: core/validators.py:119
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
msgstr "Ovde možete koristiti samo slova." msgstr "Ovde možete koristiti samo slova."
#: core/validators.py:125 #: core/validators.py:123
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "Unesite ispravan datum u YYYY-MM-DD formatu." msgstr "Unesite ispravan datum u YYYY-MM-DD formatu."
#: core/validators.py:129 #: core/validators.py:127
msgid "Enter a valid time in HH:MM format." msgid "Enter a valid time in HH:MM format."
msgstr "Unesite ispravno vreme u HH:MM formatu." msgstr "Unesite ispravno vreme u HH:MM formatu."
#: core/validators.py:133 #: core/validators.py:131
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "Unesite ispravan datum i vreme u YYYY-MM-DD HH:MM formatu." msgstr "Unesite ispravan datum i vreme u YYYY-MM-DD HH:MM formatu."
#: core/validators.py:137 #: core/validators.py:135
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "Unesite ispravnu e-mail adresu." msgstr "Unesite ispravnu e-mail adresu."
#: core/validators.py:149 #: core/validators.py:147
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
@ -1031,27 +1035,27 @@ msgstr ""
"Pošaljite ispravnu sliku. Fajl koji ste poslali ili nije slika ili je sam " "Pošaljite ispravnu sliku. Fajl koji ste poslali ili nije slika ili je sam "
"fajl oštećen." "fajl oštećen."
#: core/validators.py:156 #: core/validators.py:154
#, python-format #, python-format
msgid "The URL %s does not point to a valid image." msgid "The URL %s does not point to a valid image."
msgstr "URL %s ne pokazuje na ispravnu sliku" msgstr "URL %s ne pokazuje na ispravnu sliku"
# nesh: tel. brojevi su u američkom formatu, ovo se ionako neće koristiti u i18n delu # nesh: tel. brojevi su u američkom formatu, ovo se ionako neće koristiti u i18n delu
#: core/validators.py:160 #: core/validators.py:158
#, python-format #, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "" msgstr ""
#: core/validators.py:168 #: core/validators.py:166
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "URL %s ne pokazuje na ispravni QuickTime video fajl." msgstr "URL %s ne pokazuje na ispravni QuickTime video fajl."
#: core/validators.py:172 #: core/validators.py:170
msgid "A valid URL is required." msgid "A valid URL is required."
msgstr "Unesite ispravan URL." msgstr "Unesite ispravan URL."
#: core/validators.py:186 #: core/validators.py:184
#, python-format #, python-format
msgid "" msgid ""
"Valid HTML is required. Specific errors are:\n" "Valid HTML is required. Specific errors are:\n"
@ -1060,27 +1064,27 @@ msgstr ""
"Unesite ispravan HTML. Greške su:\n" "Unesite ispravan HTML. Greške su:\n"
"%s" "%s"
#: core/validators.py:193 #: core/validators.py:191
#, python-format #, python-format
msgid "Badly formed XML: %s" msgid "Badly formed XML: %s"
msgstr "Neispravan XML: %s" msgstr "Neispravan XML: %s"
#: core/validators.py:203 #: core/validators.py:201
#, python-format #, python-format
msgid "Invalid URL: %s" msgid "Invalid URL: %s"
msgstr "Neispravan URL: %s" msgstr "Neispravan URL: %s"
#: core/validators.py:205 #: core/validators.py:203
#, python-format #, python-format
msgid "The URL %s is a broken link." msgid "The URL %s is a broken link."
msgstr "URL %s je neispravan link." msgstr "URL %s je neispravan link."
# nesh: Ni ovo nije interesantno za i18n # nesh: Ni ovo nije interesantno za i18n
#: core/validators.py:211 #: core/validators.py:209
msgid "Enter a valid U.S. state abbreviation." msgid "Enter a valid U.S. state abbreviation."
msgstr "" msgstr ""
#: core/validators.py:226 #: core/validators.py:224
#, python-format #, python-format
msgid "Watch your mouth! The word %s is not allowed here." msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here."
@ -1088,43 +1092,43 @@ msgstr[0] "Pripazi na jezik! %s reč nije ovde dozvoljena."
msgstr[1] "Pripazi na jezik! %s reči nisu ovde dozvoljene." msgstr[1] "Pripazi na jezik! %s reči nisu ovde dozvoljene."
msgstr[2] "Pripazi na jezik! %s reči nisu ovde dozvoljene." msgstr[2] "Pripazi na jezik! %s reči nisu ovde dozvoljene."
#: core/validators.py:233 #: core/validators.py:231
#, python-format #, python-format
msgid "This field must match the '%s' field." msgid "This field must match the '%s' field."
msgstr "Ovo polje mora biti jednako sa poljem '%s'." msgstr "Ovo polje mora biti jednako sa poljem '%s'."
#: core/validators.py:252 #: core/validators.py:250
msgid "Please enter something for at least one field." msgid "Please enter something for at least one field."
msgstr "Morate popuniti barem jedno polje." msgstr "Morate popuniti barem jedno polje."
#: core/validators.py:261 core/validators.py:272 #: core/validators.py:259 core/validators.py:270
msgid "Please enter both fields or leave them both empty." msgid "Please enter both fields or leave them both empty."
msgstr "Popunite oba polja ili oba ostavite prazna." msgstr "Popunite oba polja ili oba ostavite prazna."
#: core/validators.py:279 #: core/validators.py:277
#, python-format #, python-format
msgid "This field must be given if %(field)s is %(value)s" msgid "This field must be given if %(field)s is %(value)s"
msgstr "Ovo polje mora biti uneto ako polje %(field)s ima vrednost %(value)s" msgstr "Ovo polje mora biti uneto ako polje %(field)s ima vrednost %(value)s"
#: core/validators.py:291 #: core/validators.py:289
#, python-format #, python-format
msgid "This field must be given if %(field)s is not %(value)s" msgid "This field must be given if %(field)s is not %(value)s"
msgstr "Ovo polje mora biti uneto ako polje %(field)s nema vrednost %(value)s" msgstr "Ovo polje mora biti uneto ako polje %(field)s nema vrednost %(value)s"
#: core/validators.py:310 #: core/validators.py:308
msgid "Duplicate values are not allowed." msgid "Duplicate values are not allowed."
msgstr "Duple vrednosti nisu dozvoljene." msgstr "Duple vrednosti nisu dozvoljene."
#: core/validators.py:333 #: core/validators.py:331
#, python-format #, python-format
msgid "This value must be a power of %s." msgid "This value must be a power of %s."
msgstr "Vrednost mora biti stepena %s." msgstr "Vrednost mora biti stepena %s."
#: core/validators.py:344 #: core/validators.py:342
msgid "Please enter a valid decimal number." msgid "Please enter a valid decimal number."
msgstr "Unesite ispravan decimalni broj." msgstr "Unesite ispravan decimalni broj."
#: core/validators.py:346 #: core/validators.py:344
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s total digit." msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "" msgid_plural ""
@ -1133,7 +1137,7 @@ msgstr[0] "Unesite ispravan decimalni broj sa %s cifrom."
msgstr[1] "Unesite ispravan decimalni broj sa %s cifre." msgstr[1] "Unesite ispravan decimalni broj sa %s cifre."
msgstr[2] "Unesite ispravan decimalni broj sa %s cifara." msgstr[2] "Unesite ispravan decimalni broj sa %s cifara."
#: core/validators.py:349 #: core/validators.py:347
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "" msgid_plural ""
@ -1142,37 +1146,37 @@ msgstr[0] "Unesite decimalni broj sa najviše %s decimalnim mestom."
msgstr[1] "Unesite decimalni broj sa najviše %s decimalna mesta." msgstr[1] "Unesite decimalni broj sa najviše %s decimalna mesta."
msgstr[2] "Unesite decimalni broj sa najviše %s decimalnih mesta." msgstr[2] "Unesite decimalni broj sa najviše %s decimalnih mesta."
#: core/validators.py:359 #: core/validators.py:357
#, python-format #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "Veličina fajla mora biti najmanje %s bajtova." msgstr "Veličina fajla mora biti najmanje %s bajtova."
#: core/validators.py:360 #: core/validators.py:358
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "Veličina fajla mora biti najviše %s bajtova." msgstr "Veličina fajla mora biti najviše %s bajtova."
#: core/validators.py:373 #: core/validators.py:371
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
msgstr "Pogrešan format polja." msgstr "Pogrešan format polja."
#: core/validators.py:388 #: core/validators.py:386
msgid "This field is invalid." msgid "This field is invalid."
msgstr "Neispravno polje." msgstr "Neispravno polje."
#: core/validators.py:423 #: core/validators.py:421
#, python-format #, python-format
msgid "Could not retrieve anything from %s." msgid "Could not retrieve anything from %s."
msgstr "Ništa nije moglo da se skine sa URL-a %s." msgstr "Ništa nije moglo da se skine sa URL-a %s."
#: core/validators.py:426 #: core/validators.py:424
#, python-format #, python-format
msgid "" msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
msgstr "" msgstr ""
"Sa URL-a %(url)s se vratio pogrešan Content-Type header '%(contenttype)s'." "Sa URL-a %(url)s se vratio pogrešan Content-Type header '%(contenttype)s'."
#: core/validators.py:459 #: core/validators.py:457
#, python-format #, python-format
msgid "" msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
@ -1181,7 +1185,7 @@ msgstr ""
"Zatvorite nezatvoren tag \"%(tag)s\" iz reda %(line)s. (Red počinje sa \"%" "Zatvorite nezatvoren tag \"%(tag)s\" iz reda %(line)s. (Red počinje sa \"%"
"(start)s\".)" "(start)s\".)"
#: core/validators.py:463 #: core/validators.py:461
#, python-format #, python-format
msgid "" msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line " "Some text starting on line %(line)s is not allowed in that context. (Line "
@ -1190,7 +1194,7 @@ msgstr ""
"Tekst koji počinje u redu %(line)s nije dozvoljen u ovom kontekstu. (Red " "Tekst koji počinje u redu %(line)s nije dozvoljen u ovom kontekstu. (Red "
"počinje sa \"%(start)s\".)" "počinje sa \"%(start)s\".)"
#: core/validators.py:468 #: core/validators.py:466
#, python-format #, python-format
msgid "" msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
@ -1199,7 +1203,7 @@ msgstr ""
"Atribut \"%(attr)s\" u red %(line)s je neispravan. (Red počinje sa \"%(start)" "Atribut \"%(attr)s\" u red %(line)s je neispravan. (Red počinje sa \"%(start)"
"s\".)" "s\".)"
#: core/validators.py:473 #: core/validators.py:471
#, python-format #, python-format
msgid "" msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
@ -1207,7 +1211,7 @@ msgid ""
msgstr "" msgstr ""
"Tag \"<%(tag)s>\" u redu %(line)s je neispravan. (Red počinje \"%(start)s\".)" "Tag \"<%(tag)s>\" u redu %(line)s je neispravan. (Red počinje \"%(start)s\".)"
#: core/validators.py:477 #: core/validators.py:475
#, python-format #, python-format
msgid "" msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line " "A tag on line %(line)s is missing one or more required attributes. (Line "
@ -1216,7 +1220,7 @@ msgstr ""
"Tag-u u redu %(line)s nedostaje jedan ili više atributa. (Red počinje sa \"%" "Tag-u u redu %(line)s nedostaje jedan ili više atributa. (Red počinje sa \"%"
"(start)s\".)" "(start)s\".)"
#: core/validators.py:482 #: core/validators.py:480
#, python-format #, python-format
msgid "" msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: django v1.0\n" "Project-Id-Version: django v1.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-11-04 18:22+0100\n" "POT-Creation-Date: 2005-11-08 15:05+0000\n"
"PO-Revision-Date: 2005-10-30 15:46+0800\n" "PO-Revision-Date: 2005-10-30 15:46+0800\n"
"Last-Translator: limodou <limodou@gmail.com>\n" "Last-Translator: limodou <limodou@gmail.com>\n"
"Language-Team: Simplified Chinese <limodou@gmail.com>\n" "Language-Team: Simplified Chinese <limodou@gmail.com>\n"
@ -18,38 +18,112 @@ msgstr ""
"X-Poedit-Country: CHINA\n" "X-Poedit-Country: CHINA\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
#: contrib/admin/models/admin.py:6 #: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
msgid "action time" #, python-format
msgstr "动作时间" msgid ""
"<h3>By %s:</h3>\n"
#: contrib/admin/models/admin.py:9 "<ul>\n"
msgid "object id"
msgstr "对象id"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "对象表示"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "动作标志"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "修改消息"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "日志记录"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "日志记录"
#: contrib/admin/templatetags/admin_list.py:256
msgid "All dates"
msgstr "" msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, python-format
msgid "Select %s to change"
msgstr ""
#: contrib/admin/views/main.py:570
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:600
#, fuzzy, python-format
msgid "Add %s"
msgstr "增加"
#: contrib/admin/views/main.py:616
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:616 contrib/admin/views/main.py:618
#: contrib/admin/views/main.py:620
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:618
#, fuzzy, python-format
msgid "Changed %s."
msgstr "修改"
#: contrib/admin/views/main.py:620
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:623
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:648
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:657
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:695
#, fuzzy, python-format
msgid "Change %s"
msgstr "修改"
#: contrib/admin/views/main.py:775
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:780
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:809
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:812
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:827
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "修改口令"
#: contrib/admin/views/decorators.py:22 #: contrib/admin/views/decorators.py:22
#: contrib/admin/templates/admin/login.html:24 #: contrib/admin/templates/admin/login.html:24
msgid "Log in" msgid "Log in"
@ -76,112 +150,6 @@ msgstr ""
msgid "Your e-mail address is not your username. Try '%s' instead." msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "" msgstr ""
#: contrib/admin/views/main.py:78 contrib/admin/views/main.py:106
#, python-format
msgid ""
"<h3>By %s:</h3>\n"
"<ul>\n"
msgstr ""
#: contrib/admin/views/main.py:128 contrib/admin/views/main.py:167
#: contrib/admin/views/main.py:187
#, python-format
msgid "<h3>By %s:</h3><ul>\n"
msgstr ""
#: contrib/admin/views/main.py:210
#, python-format
msgid "Select %s"
msgstr ""
#: contrib/admin/views/main.py:211
#, python-format
msgid "Select %s to change"
msgstr ""
#: contrib/admin/views/main.py:567
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
#: contrib/admin/views/main.py:572 contrib/admin/views/main.py:648
msgid "You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:580 contrib/admin/views/main.py:657
#, python-format
msgid "You may add another %s below."
msgstr ""
#: contrib/admin/views/main.py:597
#, fuzzy, python-format
msgid "Add %s"
msgstr "增加"
#: contrib/admin/views/main.py:613
#, python-format
msgid "Added %s."
msgstr ""
#: contrib/admin/views/main.py:613 contrib/admin/views/main.py:615
#: contrib/admin/views/main.py:617
msgid "and"
msgstr ""
#: contrib/admin/views/main.py:615
#, fuzzy, python-format
msgid "Changed %s."
msgstr "修改"
#: contrib/admin/views/main.py:617
#, python-format
msgid "Deleted %s."
msgstr ""
#: contrib/admin/views/main.py:620
msgid "No fields changed."
msgstr ""
#: contrib/admin/views/main.py:645
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
#: contrib/admin/views/main.py:654
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
#: contrib/admin/views/main.py:692
#, fuzzy, python-format
msgid "Change %s"
msgstr "修改"
#: contrib/admin/views/main.py:772
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
#: contrib/admin/views/main.py:777
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
#: contrib/admin/views/main.py:806
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
#: contrib/admin/views/main.py:809
msgid "Are you sure?"
msgstr ""
#: contrib/admin/views/main.py:824
#, fuzzy, python-format
msgid "Change history: %s"
msgstr "修改口令"
#: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271 #: contrib/admin/views/doc.py:262 contrib/admin/views/doc.py:271
#: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278 #: contrib/admin/views/doc.py:273 contrib/admin/views/doc.py:278
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281 #: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
@ -251,7 +219,7 @@ msgstr ""
msgid "Time" msgid "Time"
msgstr "" msgstr ""
#: contrib/admin/views/doc.py:284 models/core.py:81 #: contrib/admin/views/doc.py:284 models/core.py:87
msgid "URL" msgid "URL"
msgstr "" msgstr ""
@ -263,35 +231,18 @@ msgstr ""
msgid "XML text" msgid "XML text"
msgstr "" msgstr ""
#: contrib/admin/templates/admin/index.html:27 #: contrib/admin/templates/admin/base_site.html:4
#: contrib/admin/templates/admin/change_form.html:14 msgid "Django site admin"
msgid "Add" msgstr "Django管理站点"
msgstr "增加"
#: contrib/admin/templates/admin/index.html:33 #: contrib/admin/templates/admin/base_site.html:7
msgid "Change" msgid "Django administration"
msgstr "修改" msgstr "Django管理员"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "你无权修改任何东西。"
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "最近动作"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "我的动作"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "无可用的"
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/admin/base.html:29 #: contrib/admin/templates/admin/base.html:29
#: contrib/admin/templates/admin/change_form.html:12
#: contrib/admin/templates/registration/password_change_done.html:4 #: contrib/admin/templates/registration/password_change_done.html:4
#: contrib/admin/templates/registration/password_reset_form.html:4 #: contrib/admin/templates/registration/password_reset_form.html:4
#: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/logged_out.html:4
@ -321,6 +272,40 @@ msgstr ""
"存在一个错误。它已经通过电子邮件被报告给站点管理员了,并且应该很快被改正。谢" "存在一个错误。它已经通过电子邮件被报告给站点管理员了,并且应该很快被改正。谢"
"谢你的关心。" "谢你的关心。"
#: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8
msgid "Page not found"
msgstr "页面没有找到"
#: contrib/admin/templates/admin/404.html:10
msgid "We're sorry, but the requested page could not be found."
msgstr "很报歉,请求页面无法找到。"
#: contrib/admin/templates/admin/index.html:27
#: contrib/admin/templates/admin/change_form.html:14
msgid "Add"
msgstr "增加"
#: contrib/admin/templates/admin/index.html:33
msgid "Change"
msgstr "修改"
#: contrib/admin/templates/admin/index.html:43
msgid "You don't have permission to edit anything."
msgstr "你无权修改任何东西。"
#: contrib/admin/templates/admin/index.html:51
msgid "Recent Actions"
msgstr "最近动作"
#: contrib/admin/templates/admin/index.html:52
msgid "My Actions"
msgstr "我的动作"
#: contrib/admin/templates/admin/index.html:56
msgid "None available"
msgstr "无可用的"
#: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/object_history.html:5
#: contrib/admin/templates/admin/change_form.html:19 #: contrib/admin/templates/admin/change_form.html:19
msgid "History" msgid "History"
@ -348,14 +333,6 @@ msgid ""
"admin site." "admin site."
msgstr "此对象没有修改历史。可能不能通过这个管理站点来增加。" msgstr "此对象没有修改历史。可能不能通过这个管理站点来增加。"
#: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin"
msgstr "Django管理站点"
#: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration"
msgstr "Django管理员"
#: contrib/admin/templates/admin/login.html:15 #: contrib/admin/templates/admin/login.html:15
msgid "Username:" msgid "Username:"
msgstr "用户名:" msgstr "用户名:"
@ -368,32 +345,17 @@ msgstr "口令:"
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?" msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
msgstr "<a href=\"/password_reset/\">忘记你的密码</a>" msgstr "<a href=\"/password_reset/\">忘记你的密码</a>"
#: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/base.html:23
#: contrib/admin/templates/admin/404.html:8 msgid "Welcome,"
msgid "Page not found" msgstr "欢迎,"
msgstr "页面没有找到"
#: contrib/admin/templates/admin/404.html:10 #: contrib/admin/templates/admin/base.html:23
msgid "We're sorry, but the requested page could not be found." msgid "Change password"
msgstr "很报歉,请求页面无法找到。" msgstr "修改口令"
#: contrib/admin/templates/admin/change_form.html:20 #: contrib/admin/templates/admin/base.html:23
msgid "View on site" msgid "Log out"
msgstr "" msgstr "注销"
#: contrib/admin/templates/admin/change_form.html:28
msgid "Please correct the error below."
msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/change_form.html:45
msgid "Ordering"
msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/delete_confirmation.html:7 #: contrib/admin/templates/admin/delete_confirmation.html:7
#, fuzzy, python-format #, fuzzy, python-format
@ -417,17 +379,23 @@ msgstr ""
msgid "Yes, I'm sure" msgid "Yes, I'm sure"
msgstr "是的,我确定" msgstr "是的,我确定"
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:20
msgid "Welcome," msgid "View on site"
msgstr "欢迎," msgstr ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:28
msgid "Change password" msgid "Please correct the error below."
msgstr "修改口令" msgid_plural "Please correct the errors below."
msgstr[0] ""
msgstr[1] ""
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/change_form.html:45
msgid "Log out" msgid "Ordering"
msgstr "注销" msgstr ""
#: contrib/admin/templates/admin/change_form.html:48
msgid "Order:"
msgstr ""
#: contrib/admin/templates/admin/submit_line.html:3 #: contrib/admin/templates/admin/submit_line.html:3
msgid "Delete" msgid "Delete"
@ -563,6 +531,38 @@ msgstr "感谢使用我们的站点!"
msgid "The %(site_name)s team" msgid "The %(site_name)s team"
msgstr "%(site_name)s 小组" msgstr "%(site_name)s 小组"
#: contrib/admin/models/admin.py:6
msgid "action time"
msgstr "动作时间"
#: contrib/admin/models/admin.py:9
msgid "object id"
msgstr "对象id"
#: contrib/admin/models/admin.py:10
msgid "object repr"
msgstr "对象表示"
#: contrib/admin/models/admin.py:11
msgid "action flag"
msgstr "动作标志"
#: contrib/admin/models/admin.py:12
msgid "change message"
msgstr "修改消息"
#: contrib/admin/models/admin.py:15
msgid "log entry"
msgstr "日志记录"
#: contrib/admin/models/admin.py:16
msgid "log entries"
msgstr "日志记录"
#: contrib/admin/templatetags/admin_list.py:260
msgid "All dates"
msgstr ""
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Monday" msgid "Monday"
msgstr "星期一" msgstr "星期一"
@ -667,139 +667,139 @@ msgstr "十一月"
msgid "Dec." msgid "Dec."
msgstr "十二月" msgstr "十二月"
#: models/core.py:5 #: models/core.py:7
msgid "domain name" msgid "domain name"
msgstr "域名" msgstr "域名"
#: models/core.py:6 #: models/core.py:8
msgid "display name" msgid "display name"
msgstr "显示名" msgstr "显示名"
#: models/core.py:8 #: models/core.py:10
msgid "site" msgid "site"
msgstr "站点" msgstr "站点"
#: models/core.py:9 #: models/core.py:11
msgid "sites" msgid "sites"
msgstr "站点" msgstr "站点"
#: models/core.py:22 #: models/core.py:28
msgid "label" msgid "label"
msgstr "标签" msgstr "标签"
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19 #: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19
msgid "name" msgid "name"
msgstr "名称" msgstr "名称"
#: models/core.py:25 #: models/core.py:31
msgid "package" msgid "package"
msgstr "包" msgstr "包"
#: models/core.py:26 #: models/core.py:32
msgid "packages" msgid "packages"
msgstr "包" msgstr "包"
#: models/core.py:36 #: models/core.py:42
msgid "python module name" msgid "python module name"
msgstr "python模块名" msgstr "python模块名"
#: models/core.py:38 #: models/core.py:44
msgid "content type" msgid "content type"
msgstr "内容类型" msgstr "内容类型"
#: models/core.py:39 #: models/core.py:45
msgid "content types" msgid "content types"
msgstr "内容类型" msgstr "内容类型"
#: models/core.py:62 #: models/core.py:68
msgid "redirect from" msgid "redirect from"
msgstr "重定向自" msgstr "重定向自"
#: models/core.py:63 #: models/core.py:69
msgid "" msgid ""
"This should be an absolute path, excluding the domain name. Example: '/" "This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'." "events/search/'."
msgstr "应该是一个绝对路径,不包括域名。例如:'/events/search/'。" msgstr "应该是一个绝对路径,不包括域名。例如:'/events/search/'。"
#: models/core.py:64 #: models/core.py:70
msgid "redirect to" msgid "redirect to"
msgstr "重定向到" msgstr "重定向到"
#: models/core.py:65 #: models/core.py:71
msgid "" msgid ""
"This can be either an absolute path (as above) or a full URL starting with " "This can be either an absolute path (as above) or a full URL starting with "
"'http://'." "'http://'."
msgstr "可以是绝对路径(同上)或以'http://'开始的全URL。" msgstr "可以是绝对路径(同上)或以'http://'开始的全URL。"
#: models/core.py:67 #: models/core.py:73
msgid "redirect" msgid "redirect"
msgstr "重定向" msgstr "重定向"
#: models/core.py:68 #: models/core.py:74
msgid "redirects" msgid "redirects"
msgstr "重定向" msgstr "重定向"
#: models/core.py:82 #: models/core.py:88
msgid "" msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes." "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr "例如:'/about/contact/'。请确保前导和结尾的除号。" msgstr "例如:'/about/contact/'。请确保前导和结尾的除号。"
#: models/core.py:83 #: models/core.py:89
msgid "title" msgid "title"
msgstr "标题" msgstr "标题"
#: models/core.py:84 #: models/core.py:90
msgid "content" msgid "content"
msgstr "内容" msgstr "内容"
#: models/core.py:85 #: models/core.py:91
msgid "enable comments" msgid "enable comments"
msgstr "允许评论" msgstr "允许评论"
#: models/core.py:86 #: models/core.py:92
msgid "template name" msgid "template name"
msgstr "模板名称" msgstr "模板名称"
#: models/core.py:87 #: models/core.py:93
msgid "" msgid ""
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will " "Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
"use 'flatfiles/default'." "use 'flatfiles/default'."
msgstr "" msgstr ""
"例如:'flatfiles/contact_page'。如果未提供,系统将使用'flatfiles/default'。" "例如:'flatfiles/contact_page'。如果未提供,系统将使用'flatfiles/default'。"
#: models/core.py:88 #: models/core.py:94
msgid "registration required" msgid "registration required"
msgstr "请先注册" msgstr "请先注册"
#: models/core.py:88 #: models/core.py:94
msgid "If this is checked, only logged-in users will be able to view the page." msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "如果被选中,仅登录用户才可以查看此页。" msgstr "如果被选中,仅登录用户才可以查看此页。"
#: models/core.py:92 #: models/core.py:98
msgid "flat page" msgid "flat page"
msgstr "简单页面" msgstr "简单页面"
#: models/core.py:93 #: models/core.py:99
msgid "flat pages" msgid "flat pages"
msgstr "简单页面" msgstr "简单页面"
#: models/core.py:114 #: models/core.py:117
msgid "session key" msgid "session key"
msgstr "session键字" msgstr "session键字"
#: models/core.py:115 #: models/core.py:118
msgid "session data" msgid "session data"
msgstr "session数据" msgstr "session数据"
#: models/core.py:116 #: models/core.py:119
msgid "expire date" msgid "expire date"
msgstr "过期日期" msgstr "过期日期"
#: models/core.py:118 #: models/core.py:121
msgid "session" msgid "session"
msgstr "" msgstr ""
#: models/core.py:119 #: models/core.py:122
msgid "sessions" msgid "sessions"
msgstr "" msgstr ""
@ -943,96 +943,100 @@ msgstr "塞尔维亚语"
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "" msgstr ""
#: core/validators.py:58 #: conf/global_settings.py:49
msgid "Slovak"
msgstr ""
#: core/validators.py:59
msgid "This value must contain only letters, numbers and underscores." msgid "This value must contain only letters, numbers and underscores."
msgstr "此值只能包含字母、数字和下划线。" msgstr "此值只能包含字母、数字和下划线。"
#: core/validators.py:62 #: core/validators.py:63
msgid "This value must contain only letters, numbers, underscores and slashes." msgid "This value must contain only letters, numbers, underscores and slashes."
msgstr "此值只能包含字母、数字、下划线和斜线。" msgstr "此值只能包含字母、数字、下划线和斜线。"
#: core/validators.py:70 #: core/validators.py:71
msgid "Uppercase letters are not allowed here." msgid "Uppercase letters are not allowed here."
msgstr "这里不允许大写字母。" msgstr "这里不允许大写字母。"
#: core/validators.py:74 #: core/validators.py:75
msgid "Lowercase letters are not allowed here." msgid "Lowercase letters are not allowed here."
msgstr "这里不允许小写字母。" msgstr "这里不允许小写字母。"
#: core/validators.py:81 #: core/validators.py:82
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "只能输入用逗号分隔的数字。" msgstr "只能输入用逗号分隔的数字。"
#: core/validators.py:93 #: core/validators.py:94
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "输入用逗号分隔的有效邮件地址。" msgstr "输入用逗号分隔的有效邮件地址。"
#: core/validators.py:100 #: core/validators.py:98
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
msgstr "请输入一个有效的IP地址。" msgstr "请输入一个有效的IP地址。"
#: core/validators.py:104 #: core/validators.py:102
msgid "Empty values are not allowed here." msgid "Empty values are not allowed here."
msgstr "这里不允许输入空值。" msgstr "这里不允许输入空值。"
#: core/validators.py:108 #: core/validators.py:106
msgid "Non-numeric characters aren't allowed here." msgid "Non-numeric characters aren't allowed here."
msgstr "这里不允许非数字字符。" msgstr "这里不允许非数字字符。"
#: core/validators.py:112 #: core/validators.py:110
msgid "This value can't be comprised solely of digits." msgid "This value can't be comprised solely of digits."
msgstr "此值不能全部由数字组成。" msgstr "此值不能全部由数字组成。"
#: core/validators.py:117 #: core/validators.py:115
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "输入整数。" msgstr "输入整数。"
#: core/validators.py:121 #: core/validators.py:119
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
msgstr "这里只允许字母。" msgstr "这里只允许字母。"
#: core/validators.py:125 #: core/validators.py:123
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "输入一个 YYYY-MM-DD 格式的有效日期。" msgstr "输入一个 YYYY-MM-DD 格式的有效日期。"
#: core/validators.py:129 #: core/validators.py:127
msgid "Enter a valid time in HH:MM format." msgid "Enter a valid time in HH:MM format."
msgstr "输入一个 HH:MM 格式的有效时间。" msgstr "输入一个 HH:MM 格式的有效时间。"
#: core/validators.py:133 #: core/validators.py:131
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "输入一个 YYYY-MM-DD HH:MM 格式的有效日期/时间。" msgstr "输入一个 YYYY-MM-DD HH:MM 格式的有效日期/时间。"
#: core/validators.py:137 #: core/validators.py:135
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "输入一个有效的邮件地址。" msgstr "输入一个有效的邮件地址。"
#: core/validators.py:149 #: core/validators.py:147
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "上传一个有效的图片。您所上传的文件或者不是图片或是一个破坏的图片。" msgstr "上传一个有效的图片。您所上传的文件或者不是图片或是一个破坏的图片。"
#: core/validators.py:156 #: core/validators.py:154
#, python-format #, python-format
msgid "The URL %s does not point to a valid image." msgid "The URL %s does not point to a valid image."
msgstr "URL %s 指向的不是一个有效的图片。" msgstr "URL %s 指向的不是一个有效的图片。"
#: core/validators.py:160 #: core/validators.py:158
#, python-format #, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "电话号码必须为 XXX-XXX-XXXX 格式。\"%s\"是无效的。" msgstr "电话号码必须为 XXX-XXX-XXXX 格式。\"%s\"是无效的。"
#: core/validators.py:168 #: core/validators.py:166
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "URL %s 指向的不是一个有效的 QuickTime 视频。" msgstr "URL %s 指向的不是一个有效的 QuickTime 视频。"
#: core/validators.py:172 #: core/validators.py:170
msgid "A valid URL is required." msgid "A valid URL is required."
msgstr "需要是一个有效的URL。" msgstr "需要是一个有效的URL。"
#: core/validators.py:186 #: core/validators.py:184
#, python-format #, python-format
msgid "" msgid ""
"Valid HTML is required. Specific errors are:\n" "Valid HTML is required. Specific errors are:\n"
@ -1041,69 +1045,69 @@ msgstr ""
"需要有效的HTML。详细的错误是\n" "需要有效的HTML。详细的错误是\n"
"%s" "%s"
#: core/validators.py:193 #: core/validators.py:191
#, python-format #, python-format
msgid "Badly formed XML: %s" msgid "Badly formed XML: %s"
msgstr "格式错误的 XML: %s" msgstr "格式错误的 XML: %s"
#: core/validators.py:203 #: core/validators.py:201
#, python-format #, python-format
msgid "Invalid URL: %s" msgid "Invalid URL: %s"
msgstr "无效 URL: %s" msgstr "无效 URL: %s"
#: core/validators.py:205 #: core/validators.py:203
#, python-format #, python-format
msgid "The URL %s is a broken link." msgid "The URL %s is a broken link."
msgstr "URL %s 是一个断开的链接。" msgstr "URL %s 是一个断开的链接。"
#: core/validators.py:211 #: core/validators.py:209
msgid "Enter a valid U.S. state abbreviation." msgid "Enter a valid U.S. state abbreviation."
msgstr "输入一个有效的 U.S. 州缩写。" msgstr "输入一个有效的 U.S. 州缩写。"
#: core/validators.py:226 #: core/validators.py:224
#, fuzzy, python-format #, fuzzy, python-format
msgid "Watch your mouth! The word %s is not allowed here." msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here."
msgstr[0] "小心你的嘴!%s 不允许在这里出现。" msgstr[0] "小心你的嘴!%s 不允许在这里出现。"
msgstr[1] "小心你的嘴!%s 不允许在这里出现。" msgstr[1] "小心你的嘴!%s 不允许在这里出现。"
#: core/validators.py:233 #: core/validators.py:231
#, python-format #, python-format
msgid "This field must match the '%s' field." msgid "This field must match the '%s' field."
msgstr "这个字段必须与 '%s' 字段相匹配。" msgstr "这个字段必须与 '%s' 字段相匹配。"
#: core/validators.py:252 #: core/validators.py:250
msgid "Please enter something for at least one field." msgid "Please enter something for at least one field."
msgstr "请至少在一个字段上输入些什么。" msgstr "请至少在一个字段上输入些什么。"
#: core/validators.py:261 core/validators.py:272 #: core/validators.py:259 core/validators.py:270
msgid "Please enter both fields or leave them both empty." msgid "Please enter both fields or leave them both empty."
msgstr "请要么两个字段都输入或者两个字段都空着。" msgstr "请要么两个字段都输入或者两个字段都空着。"
#: core/validators.py:279 #: core/validators.py:277
#, python-format #, python-format
msgid "This field must be given if %(field)s is %(value)s" msgid "This field must be given if %(field)s is %(value)s"
msgstr "如果 %(field)s 是 %(value)s 时这个字段必须给出" msgstr "如果 %(field)s 是 %(value)s 时这个字段必须给出"
#: core/validators.py:291 #: core/validators.py:289
#, python-format #, python-format
msgid "This field must be given if %(field)s is not %(value)s" msgid "This field must be given if %(field)s is not %(value)s"
msgstr "如果 %(field)s 不是 %(value)s 时这个字段必须给出" msgstr "如果 %(field)s 不是 %(value)s 时这个字段必须给出"
#: core/validators.py:310 #: core/validators.py:308
msgid "Duplicate values are not allowed." msgid "Duplicate values are not allowed."
msgstr "重复值不允许。" msgstr "重复值不允许。"
#: core/validators.py:333 #: core/validators.py:331
#, python-format #, python-format
msgid "This value must be a power of %s." msgid "This value must be a power of %s."
msgstr "这个值必须是 %s 的乘方。" msgstr "这个值必须是 %s 的乘方。"
#: core/validators.py:344 #: core/validators.py:342
msgid "Please enter a valid decimal number." msgid "Please enter a valid decimal number."
msgstr "请输入一个有效的小数。" msgstr "请输入一个有效的小数。"
#: core/validators.py:346 #: core/validators.py:344
#, fuzzy, python-format #, fuzzy, python-format
msgid "Please enter a valid decimal number with at most %s total digit." msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "" msgid_plural ""
@ -1111,7 +1115,7 @@ msgid_plural ""
msgstr[0] "请输入一个有效的小数,最多 %s 个数字。" msgstr[0] "请输入一个有效的小数,最多 %s 个数字。"
msgstr[1] "请输入一个有效的小数,最多 %s 个数字。" msgstr[1] "请输入一个有效的小数,最多 %s 个数字。"
#: core/validators.py:349 #: core/validators.py:347
#, fuzzy, python-format #, fuzzy, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "" msgid_plural ""
@ -1119,36 +1123,36 @@ msgid_plural ""
msgstr[0] "请输入一个有效的小数,最多 %s 个小数位。" msgstr[0] "请输入一个有效的小数,最多 %s 个小数位。"
msgstr[1] "请输入一个有效的小数,最多 %s 个小数位。" msgstr[1] "请输入一个有效的小数,最多 %s 个小数位。"
#: core/validators.py:359 #: core/validators.py:357
#, python-format #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "请确保你上传的文件至少 %s 字节大。" msgstr "请确保你上传的文件至少 %s 字节大。"
#: core/validators.py:360 #: core/validators.py:358
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "请确保你上传的文件至多 %s 字节大。" msgstr "请确保你上传的文件至多 %s 字节大。"
#: core/validators.py:373 #: core/validators.py:371
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
msgstr "这个字段的格式不正确。" msgstr "这个字段的格式不正确。"
#: core/validators.py:388 #: core/validators.py:386
msgid "This field is invalid." msgid "This field is invalid."
msgstr "这个字段无效。" msgstr "这个字段无效。"
#: core/validators.py:423 #: core/validators.py:421
#, python-format #, python-format
msgid "Could not retrieve anything from %s." msgid "Could not retrieve anything from %s."
msgstr "不能从 %s 得到任何东西。" msgstr "不能从 %s 得到任何东西。"
#: core/validators.py:426 #: core/validators.py:424
#, python-format #, python-format
msgid "" msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
msgstr "URL %(url)s 返回了无效的 Content-Type 头 '%(contenttype)s'。" msgstr "URL %(url)s 返回了无效的 Content-Type 头 '%(contenttype)s'。"
#: core/validators.py:459 #: core/validators.py:457
#, python-format #, python-format
msgid "" msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
@ -1156,7 +1160,7 @@ msgid ""
msgstr "" msgstr ""
"请关闭未关闭的 %(tag)s 标签从第 %(line)s 行。(行开始于 \"%(start)s\"。)" "请关闭未关闭的 %(tag)s 标签从第 %(line)s 行。(行开始于 \"%(start)s\"。)"
#: core/validators.py:463 #: core/validators.py:461
#, python-format #, python-format
msgid "" msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line " "Some text starting on line %(line)s is not allowed in that context. (Line "
@ -1164,7 +1168,7 @@ msgid ""
msgstr "" msgstr ""
"在 %(line)s 行开始的一些文本不允许在那个上下文中。(行开始于 \"%(start)s\"。)" "在 %(line)s 行开始的一些文本不允许在那个上下文中。(行开始于 \"%(start)s\"。)"
#: core/validators.py:468 #: core/validators.py:466
#, python-format #, python-format
msgid "" msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
@ -1172,7 +1176,7 @@ msgid ""
msgstr "" msgstr ""
"在 %(line)s 行的\"%(attr)s\"不是一个有效的属性。(行开始于 \"%(start)s\"。)" "在 %(line)s 行的\"%(attr)s\"不是一个有效的属性。(行开始于 \"%(start)s\"。)"
#: core/validators.py:473 #: core/validators.py:471
#, python-format #, python-format
msgid "" msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
@ -1180,7 +1184,7 @@ msgid ""
msgstr "" msgstr ""
"在 %(line)s 行的\"<%(tag)s>\"不是一个有效的标签。(行开始于 \"%(start)s\"。)" "在 %(line)s 行的\"<%(tag)s>\"不是一个有效的标签。(行开始于 \"%(start)s\"。)"
#: core/validators.py:477 #: core/validators.py:475
#, python-format #, python-format
msgid "" msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line " "A tag on line %(line)s is missing one or more required attributes. (Line "
@ -1188,7 +1192,7 @@ msgid ""
msgstr "" msgstr ""
"在行 %(line)s 的标签少了一个或多个必须的属性。(行开始于 \"%(start)s\"。)" "在行 %(line)s 的标签少了一个或多个必须的属性。(行开始于 \"%(start)s\"。)"
#: core/validators.py:482 #: core/validators.py:480
#, python-format #, python-format
msgid "" msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "

View File

@ -7,7 +7,7 @@ function URLify(s, num_chars) {
"with"]; "with"];
r = new RegExp('\\b(' + removelist.join('|') + ')\\b', 'gi'); r = new RegExp('\\b(' + removelist.join('|') + ')\\b', 'gi');
s = s.replace(r, ''); s = s.replace(r, '');
s = s.replace(/[^\w\s-]/g, ''); // remove unneeded chars s = s.replace(/[^-A-Z0-9\s]/gi, ''); // remove unneeded chars
s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
s = s.replace(/\s+/g, '-'); // convert spaces to hyphens s = s.replace(/\s+/g, '-'); // convert spaces to hyphens
s = s.toLowerCase(); // convert to lowercase s = s.toLowerCase(); // convert to lowercase

View File

@ -2,7 +2,7 @@
{% trans "You're receiving this e-mail because you requested a password reset" %} {% trans "You're receiving this e-mail because you requested a password reset" %}
{% trans "for your user account at %(site_name)s" %}. {% trans "for your user account at %(site_name)s" %}.
{% trans "Your new password is: %(new_password)s" %} {% blocktrans %}Your new password is: {{ new_password }}{% endblocktrans %}
{% trans "Feel free to change this password by going to this page:" %} {% trans "Feel free to change this password by going to this page:" %}
@ -12,4 +12,4 @@ http://{{ domain }}/password_change/
{% trans "Thanks for using our site!" %} {% trans "Thanks for using our site!" %}
{% trans "The %(site_name)s team" %} {% blocktrans %}The {{ site_name }} team{% endblocktrans %}

View File

@ -4,6 +4,8 @@ from django.contrib.admin.views.main import MAX_SHOW_ALL_ALLOWED, DEFAULT_RESULT
ORDER_VAR, ORDER_TYPE_VAR, PAGE_VAR , SEARCH_VAR , IS_POPUP_VAR, EMPTY_CHANGELIST_VALUE, \ ORDER_VAR, ORDER_TYPE_VAR, PAGE_VAR , SEARCH_VAR , IS_POPUP_VAR, EMPTY_CHANGELIST_VALUE, \
MONTHS MONTHS
from django.settings import DATE_FORMAT, TIME_FORMAT, DATETIME_FORMAT
from django.core import meta from django.core import meta
from django.utils.text import capfirst from django.utils.text import capfirst
from django.utils.html import strip_tags, escape from django.utils.html import strip_tags, escape
@ -165,13 +167,15 @@ def items_for_result(cl, result):
result_repr = getattr(result, 'get_%s' % f.name)() result_repr = getattr(result, 'get_%s' % f.name)()
else: else:
result_repr = EMPTY_CHANGELIST_VALUE result_repr = EMPTY_CHANGELIST_VALUE
# Dates are special: They're formatted in a certain way. # Dates and times are special: They're formatted in a certain way.
elif isinstance(f, meta.DateField): elif isinstance(f, meta.DateField) or isinstance(f, meta.TimeField):
if field_val: if field_val:
if isinstance(f, meta.DateTimeField): if isinstance(f, meta.DateTimeField):
result_repr = dateformat.format(field_val, 'N j, Y, P') result_repr = capfirst(dateformat.format(field_val, DATETIME_FORMAT))
elif isinstance(f, meta.TimeField):
result_repr = capfirst(dateformat.time_format(field_val, TIME_FORMAT))
else: else:
result_repr = dateformat.format(field_val, 'N j, Y') result_repr = capfirst(dateformat.format(field_val, DATE_FORMAT))
else: else:
result_repr = EMPTY_CHANGELIST_VALUE result_repr = EMPTY_CHANGELIST_VALUE
row_class = ' class="nowrap"' row_class = ' class="nowrap"'

View File

@ -356,15 +356,18 @@ class ChangeList(object):
lookup_order_field = '%s.%s' % (f.rel.to.db_table, rel_ordering) lookup_order_field = '%s.%s' % (f.rel.to.db_table, rel_ordering)
# Use select_related if one of the list_display options is a field with a # Use select_related if one of the list_display options is a field with a
# relationship. # relationship.
for field_name in lookup_opts.admin.list_display: if lookup_opts.admin.list_select_related:
try: lookup_params['select_related'] = True
f = lookup_opts.get_field(field_name) else:
except meta.FieldDoesNotExist: for field_name in lookup_opts.admin.list_display:
pass try:
else: f = lookup_opts.get_field(field_name)
if isinstance(f.rel, meta.ManyToOne): except meta.FieldDoesNotExist:
lookup_params['select_related'] = True pass
break else:
if isinstance(f.rel, meta.ManyToOne):
lookup_params['select_related'] = True
break
lookup_params['order_by'] = ((order_type == 'desc' and '-' or '') + lookup_order_field,) lookup_params['order_by'] = ((order_type == 'desc' and '-' or '') + lookup_order_field,)
if lookup_opts.admin.search_fields and query: if lookup_opts.admin.search_fields and query:
or_queries = [] or_queries = []

View File

@ -1723,7 +1723,7 @@ def manipulator_save(opts, klass, add, change, self, new_data):
for f in related.opts.fields: for f in related.opts.fields:
if child_follow.get(f.name, None): if child_follow.get(f.name, None):
if isinstance(f, FileField) and rel_new_data.get(f.name, False): if isinstance(f, FileField) and rel_new_data.get(f.name, False):
f.save_file(rel_new_data, new_rel_obj, change and old_rel_obj or None, change, rel=True) f.save_file(rel_new_data, new_rel_obj, change and old_rel_obj or None, old_rel_obj is not None, rel=True)
# Calculate whether any fields have changed. # Calculate whether any fields have changed.
if change: if change:

View File

@ -899,7 +899,7 @@ class FieldSet(object):
class Admin: class Admin:
def __init__(self, fields=None, js=None, list_display=None, list_filter=None, date_hierarchy=None, def __init__(self, fields=None, js=None, list_display=None, list_filter=None, date_hierarchy=None,
save_as=False, ordering=None, search_fields=None, save_on_top=False): save_as=False, ordering=None, search_fields=None, save_on_top=False, list_select_related=False):
self.fields = fields self.fields = fields
self.js = js or [] self.js = js or []
self.list_display = list_display or ['__repr__'] self.list_display = list_display or ['__repr__']
@ -908,6 +908,7 @@ class Admin:
self.save_as, self.ordering = save_as, ordering self.save_as, self.ordering = save_as, ordering
self.search_fields = search_fields or [] self.search_fields = search_fields or []
self.save_on_top = save_on_top self.save_on_top = save_on_top
self.list_select_related = list_select_related
def get_field_sets(self, opts): def get_field_sets(self, opts):
if self.fields is None: if self.fields is None:

View File

@ -406,15 +406,12 @@ else:
class TokenParser: class TokenParser:
""" """
You need to subclass this class and implement the Subclass this and implement the top() method to parse a template line. When
top method to parse your template line. When instantiating instantiating the parser, pass in the line from the Django template parser.
the parser, you pass in the line from the django template
parser.
If your tag needs to know what tag name it was called with, The parser's "tagname" instance-variable stores the name of the tag that
you find it in the tagname instance variable of the parser. the filter was called with.
""" """
def __init__(self, subject): def __init__(self, subject):
self.subject = subject self.subject = subject
self.pointer = 0 self.pointer = 0
@ -422,31 +419,21 @@ class TokenParser:
self.tagname = self.tag() self.tagname = self.tag()
def top(self): def top(self):
""" "Overload this method to do the actual parsing and return the result."
You need to overload this method to do the actual parsing
and return the result.
"""
raise NotImplemented raise NotImplemented
def more(self): def more(self):
""" "Returns True if there is more stuff in the tag."
This returns True if there is more stuff in the tag.
"""
return self.pointer < len(self.subject) return self.pointer < len(self.subject)
def back(self): def back(self):
""" "Undoes the last microparser. Use this for lookahead and backtracking."
This method undos the last microparser. This can be
used for lookahead and backtracking.
"""
if not len(self.backout): if not len(self.backout):
raise TemplateSyntaxError, "back called without some previous parsing" raise TemplateSyntaxError, "back called without some previous parsing"
self.pointer = self.backout.pop() self.pointer = self.backout.pop()
def tag(self): def tag(self):
""" "A microparser that just returns the next tag from the line."
This microparser just returns the next tag from the line.
"""
subject = self.subject subject = self.subject
i = self.pointer i = self.pointer
if i >= len(subject): if i >= len(subject):
@ -462,21 +449,18 @@ class TokenParser:
return s return s
def value(self): def value(self):
""" "A microparser that parses for a value: some string constant or variable name."
This microparser parses for a value - some string constant or
variable name.
"""
subject = self.subject subject = self.subject
i = self.pointer i = self.pointer
if i >= len(subject): if i >= len(subject):
raise TemplateSyntaxError, "searching for value expected another value, found end of string: %s" % subject raise TemplateSyntaxError, "Searching for value. Expected another value but found end of string: %s" % subject
if subject[i] in ('"', "'"): if subject[i] in ('"', "'"):
p = i p = i
i += 1 i += 1
while i < len(subject) and subject[i] != subject[p]: while i < len(subject) and subject[i] != subject[p]:
i += 1 i += 1
if i >= len(subject): if i >= len(subject):
raise TemplateSyntaxError, "searching for value, unexpected end of string in column %d: %s" % subject raise TemplateSyntaxError, "Searching for value. Unexpected end of string in column %d: %s" % subject
i += 1 i += 1
res = subject[p:i] res = subject[p:i]
while i < len(subject) and subject[i] in (' ', '\t'): while i < len(subject) and subject[i] in (' ', '\t'):
@ -496,18 +480,19 @@ class TokenParser:
return s return s
class FilterParser: class FilterParser:
"""Parse a variable token and its optional filters (all as a single string), """
and return a list of tuples of the filter name and arguments. Parses a variable token and its optional filters (all as a single string),
Sample: and return a list of tuples of the filter name and arguments.
>>> token = 'variable|default:"Default value"|date:"Y-m-d"' Sample:
>>> p = FilterParser(token) >>> token = 'variable|default:"Default value"|date:"Y-m-d"'
>>> p.filters >>> p = FilterParser(token)
[('default', 'Default value'), ('date', 'Y-m-d')] >>> p.filters
>>> p.var [('default', 'Default value'), ('date', 'Y-m-d')]
'variable' >>> p.var
'variable'
This class should never be instantiated outside of the This class should never be instantiated outside of the
get_filters_from_token helper function. get_filters_from_token helper function.
""" """
def __init__(self, s): def __init__(self, s):
self.s = s self.s = s
@ -516,8 +501,8 @@ class FilterParser:
self.filters = [] self.filters = []
self.current_filter_name = None self.current_filter_name = None
self.current_filter_arg = None self.current_filter_arg = None
# First read the variable part - decide on wether we need # First read the variable part. Decide whether we need to parse a
# to parse a string or a variable by peeking into the stream # string or a variable by peeking into the stream.
if self.peek_char() in ('_', '"', "'"): if self.peek_char() in ('_', '"', "'"):
self.var = self.read_constant_string_token() self.var = self.read_constant_string_token()
else: else:
@ -548,15 +533,17 @@ class FilterParser:
self.current = None self.current = None
def read_constant_string_token(self): def read_constant_string_token(self):
"""Read a constant string that must be delimited by either " """
or ' characters. The string is returned with it's delimiters.""" Reads a constant string that must be delimited by either " or '
characters. The string is returned with its delimiters.
"""
val = '' val = ''
qchar = None qchar = None
i18n = False i18n = False
self.next_char() self.next_char()
if self.current == '_': if self.current == '_':
i18n = True i18n = True
self.next_char() self.next_char()
if self.current != '(': if self.current != '(':
raise TemplateSyntaxError, "Bad character (expecting '(') '%s'" % self.current raise TemplateSyntaxError, "Bad character (expecting '(') '%s'" % self.current
self.next_char() self.next_char()
@ -579,8 +566,10 @@ class FilterParser:
return val return val
def read_alphanumeric_token(self): def read_alphanumeric_token(self):
"""Read a variable name or filter name, which are continuous strings of """
alphanumeric characters + the underscore""" Reads a variable name or filter name, which are continuous strings of
alphanumeric characters + the underscore.
"""
var = '' var = ''
while 1: while 1:
self.next_char() self.next_char()

View File

@ -2,10 +2,7 @@
from django.core.template import Node, NodeList, Template, Context, resolve_variable, resolve_variable_with_filters, get_filters_from_token, registered_filters from django.core.template import Node, NodeList, Template, Context, resolve_variable, resolve_variable_with_filters, get_filters_from_token, registered_filters
from django.core.template import TemplateSyntaxError, VariableDoesNotExist, BLOCK_TAG_START, BLOCK_TAG_END, VARIABLE_TAG_START, VARIABLE_TAG_END, register_tag from django.core.template import TemplateSyntaxError, VariableDoesNotExist, BLOCK_TAG_START, BLOCK_TAG_END, VARIABLE_TAG_START, VARIABLE_TAG_END, register_tag
from django.utils import translation
import sys import sys
import re
class CommentNode(Node): class CommentNode(Node):
def render(self, context): def render(self, context):
@ -532,12 +529,10 @@ def do_if(parser, token):
{% endif %} {% endif %}
{% if not athlete_list or coach_list %} {% if not athlete_list or coach_list %}
There are no athletes or there are some coaches (OK, so There are no athletes, or there are some coaches.
writing English translations of boolean logic sounds
stupid; it's not my fault).
{% endif %} {% endif %}
For simplicity, ``if`` tags do not allow ``and`` clauses; use nested ``if`` For simplicity, ``if`` tags do not allow ``and`` clauses. Use nested ``if``
tags instead:: tags instead::
{% if athlete_list %} {% if athlete_list %}

View File

@ -17,9 +17,10 @@ alnumurl_re = re.compile(r'^[\w/]+$')
ansi_date_re = re.compile('^%s$' % _datere) ansi_date_re = re.compile('^%s$' % _datere)
ansi_time_re = re.compile('^%s$' % _timere) ansi_time_re = re.compile('^%s$' % _timere)
ansi_datetime_re = re.compile('^%s %s$' % (_datere, _timere)) ansi_datetime_re = re.compile('^%s %s$' % (_datere, _timere))
email_re = re.compile(r'^[-\w.+]+@\w[\w.-]+$') # From http://www.twilightsoul.com/Default.aspx?tabid=134
email_re = re.compile(r'^((([\t\x20]*[!#-\'\*\+\-/-9=\?A-Z\^-~]+[\t\x20]*|"[\x01-\x09\x0B\x0C\x0E-\x21\x23-\x5B\x5D-\x7F]*")+)?[\t\x20]*<([\t\x20]*[!#-\'\*\+\-/-9=\?A-Z\^-~]+(\.[!#-\'\*\+\-/-9=\?A-Z\^-~]+)*|"[\x01-\x09\x0B\x0C\x0E-\x21\x23-\x5B\x5D-\x7F]*")@(([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+[a-zA-Z]{2,}|\[(([0-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\])>[\t\x20]*|([\t\x20]*[!#-\'\*\+\-/-9=\?A-Z\^-~]+(\.[!#-\'\*\+\-/-9=\?A-Z\^-~]+)*|"[\x01-\x09\x0B\x0C\x0E-\x21\x23-\x5B\x5D-\x7F]*")@(([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+[a-zA-Z]{2,}|\[(([0-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\]))$')
integer_re = re.compile(r'^-?\d+$') integer_re = re.compile(r'^-?\d+$')
ip4_re = re.compile(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$') ip4_re = re.compile(r'^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$')
phone_re = re.compile(r'^[A-PR-Y0-9]{3}-[A-PR-Y0-9]{3}-[A-PR-Y0-9]{4}$', re.IGNORECASE) phone_re = re.compile(r'^[A-PR-Y0-9]{3}-[A-PR-Y0-9]{3}-[A-PR-Y0-9]{4}$', re.IGNORECASE)
slug_re = re.compile(r'^[-\w]+$') slug_re = re.compile(r'^[-\w]+$')
url_re = re.compile(r'^http://\S+$') url_re = re.compile(r'^http://\S+$')
@ -93,11 +94,8 @@ def isCommaSeparatedEmailList(field_data, all_data):
raise ValidationError, _("Enter valid e-mail addresses separated by commas.") raise ValidationError, _("Enter valid e-mail addresses separated by commas.")
def isValidIPAddress4(field_data, all_data): def isValidIPAddress4(field_data, all_data):
if ip4_re.search(field_data): if not ip4_re.search(field_data):
valid_parts = [el for el in field_data.split('.') if 0 <= int(el) <= 255] raise ValidationError, _("Please enter a valid IP address.")
if len(valid_parts) == 4:
return
raise validators.ValidationError, _("Please enter a valid IP address.")
def isNotEmpty(field_data, all_data): def isNotEmpty(field_data, all_data):
if field_data.strip() == '': if field_data.strip() == '':

View File

@ -11,15 +11,14 @@ class CommonMiddleware:
- Forbids access to User-Agents in settings.DISALLOWED_USER_AGENTS - Forbids access to User-Agents in settings.DISALLOWED_USER_AGENTS
- URL rewriting: based on the APPEND_SLASH and PREPEND_WWW settings, - URL rewriting: Based on the APPEND_SLASH and PREPEND_WWW settings,
this middleware will -- shocking, isn't it -- append missing slashes this middleware appends missing slashes and/or prepends missing "www."s.
and/or prepend missing "www."s.
- ETags: if the USE_ETAGS setting is set, ETags will be calculated from - ETags: If the USE_ETAGS setting is set, ETags will be calculated from
the entire page content and Not Modified responses will be returned the entire page content and Not Modified responses will be returned
appropriately. appropriately.
- Flat files: for 404 responses, a flat file matching the given path - Flat files: For 404 responses, a flat file matching the given path
will be looked up and used if found. will be looked up and used if found.
""" """

View File

@ -1,3 +1,5 @@
import base64, md5, random, sys
import cPickle as pickle
from django.core import meta, validators from django.core import meta, validators
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@ -9,6 +11,10 @@ class Site(meta.Model):
verbose_name_plural = _('sites') verbose_name_plural = _('sites')
db_table = 'sites' db_table = 'sites'
ordering = ('domain',) ordering = ('domain',)
admin = meta.Admin(
list_display = ('domain', 'name'),
search_fields = ('domain', 'name'),
)
def __repr__(self): def __repr__(self):
return self.domain return self.domain
@ -107,9 +113,6 @@ class FlatFile(meta.Model):
def get_absolute_url(self): def get_absolute_url(self):
return self.url return self.url
import base64, md5, random, sys
import cPickle as pickle
class Session(meta.Model): class Session(meta.Model):
session_key = meta.CharField(_('session key'), maxlength=40, primary_key=True) session_key = meta.CharField(_('session key'), maxlength=40, primary_key=True)
session_data = meta.TextField(_('session data')) session_data = meta.TextField(_('session data'))
@ -132,7 +135,12 @@ class Session(meta.Model):
if md5.new(pickled + SECRET_KEY).hexdigest() != tamper_check: if md5.new(pickled + SECRET_KEY).hexdigest() != tamper_check:
from django.core.exceptions import SuspiciousOperation from django.core.exceptions import SuspiciousOperation
raise SuspiciousOperation, "User tampered with session cookie." raise SuspiciousOperation, "User tampered with session cookie."
return pickle.loads(pickled) try:
return pickle.loads(pickled)
# Unpickling can cause a variety of exceptions. If something happens,
# just return an empty dictionary (an empty session).
except:
return {}
def _module_encode(session_dict): def _module_encode(session_dict):
"Returns the given session dictionary pickled and encoded as a string." "Returns the given session dictionary pickled and encoded as a string."

View File

@ -13,7 +13,7 @@ Usage:
from django.utils.dates import MONTHS, MONTHS_AP, WEEKDAYS from django.utils.dates import MONTHS, MONTHS_AP, WEEKDAYS
from django.utils.tzinfo import LocalTimezone from django.utils.tzinfo import LocalTimezone
from calendar import isleap from calendar import isleap, monthrange
import re, time import re, time
re_formatchars = re.compile(r'(?<!\\)([aABdDfFgGhHiIjlLmMnNOPrsStTUwWyYzZ])') re_formatchars = re.compile(r'(?<!\\)([aABdDfFgGhHiIjlLmMnNOPrsStTUwWyYzZ])')
@ -122,10 +122,6 @@ class DateFormat(TimeFormat):
"Month, textual, long; e.g. 'January'" "Month, textual, long; e.g. 'January'"
return MONTHS[self.data.month] return MONTHS[self.data.month]
def I(self):
"'1' if Daylight Savings Time, '0' otherwise."
raise NotImplementedError
def I(self): def I(self):
"'1' if Daylight Savings Time, '0' otherwise." "'1' if Daylight Savings Time, '0' otherwise."
if self.timezone.dst(self.data): if self.timezone.dst(self.data):
@ -185,7 +181,7 @@ class DateFormat(TimeFormat):
def t(self): def t(self):
"Number of days in the given month; i.e. '28' to '31'" "Number of days in the given month; i.e. '28' to '31'"
raise NotImplementedError return '%02d' % monthrange(self.data.year, self.data.month)[1]
def T(self): def T(self):
"Time zone of this machine; e.g. 'EST' or 'MDT'" "Time zone of this machine; e.g. 'EST' or 'MDT'"

View File

@ -4,24 +4,17 @@ def curry(*args, **kwargs):
return _curried return _curried
def lazy(func, *resultclasses): def lazy(func, *resultclasses):
""" """
lazy turns any callable passed in into a lazy evaluated callable. Turns any callable into a lazy evaluated callable. You need to give result
you need to give result classes or types - at least one is needed classes or types -- at least one is needed so that the automatic forcing of
so that the automatic forcing of the lazy evaluation code is the lazy evaluation code is triggered. Results are not memoized; the
triggered. Results are not memoized - the function is evaluated function is evaluated on every access.
on every access.
""" """
class __proxy__: class __proxy__:
# This inner class encapsulates the code that should be evaluated
""" # lazily. On calling of one of the magic methods it will force
This inner class encapsulates the code that should be evaluated # the evaluation and store the result. Afterwards, the result
lazyly. On calling of one of the magic methods it will force # is delivered directly. So the result is memoized.
the evaluation and store the result - afterwards the result
is delivered directly. So the result is memoized.
"""
def __init__(self, args, kw): def __init__(self, args, kw):
self.__func = func self.__func = func
self.__args = args self.__args = args
@ -31,35 +24,23 @@ def lazy(func, *resultclasses):
self.__dispatch[resultclass] = {} self.__dispatch[resultclass] = {}
for (k, v) in resultclass.__dict__.items(): for (k, v) in resultclass.__dict__.items():
setattr(self, k, self.__promise__(resultclass, k, v)) setattr(self, k, self.__promise__(resultclass, k, v))
def __promise__(self, klass, funcname, func): def __promise__(self, klass, funcname, func):
# Builds a wrapper around some magic method and registers that magic
""" # method for the given type and method name.
This function builds a wrapper around some magic method and
registers that magic method for the given type and methodname.
"""
def __wrapper__(*args, **kw): def __wrapper__(*args, **kw):
""" # Automatically triggers the evaluation of a lazy value and
This wrapper function automatically triggers the evaluation of # applies the given magic method of the result type.
a lazy value. It then applies the given magic method of the
result type.
"""
res = self.__func(*self.__args, **self.__kw) res = self.__func(*self.__args, **self.__kw)
return self.__dispatch[type(res)][funcname](res, *args, **kw) return self.__dispatch[type(res)][funcname](res, *args, **kw)
if not self.__dispatch.has_key(klass): if not self.__dispatch.has_key(klass):
self.__dispatch[klass] = {} self.__dispatch[klass] = {}
self.__dispatch[klass][funcname] = func self.__dispatch[klass][funcname] = func
return __wrapper__ return __wrapper__
def __wrapper__(*args, **kw): def __wrapper__(*args, **kw):
""" # Creates the proxy object, instead of the actual value.
This wrapper function just creates the proxy object that is returned
instead of the actual value.
"""
return __proxy__(args, kw) return __proxy__(args, kw)
return __wrapper__ return __wrapper__

View File

@ -1,11 +1,8 @@
"translation helper functions" "translation helper functions"
import os import os, re, sys
import re
import sys
import gettext as gettext_module import gettext as gettext_module
from cStringIO import StringIO from cStringIO import StringIO
from django.utils.functional import lazy from django.utils.functional import lazy
try: try:
@ -20,22 +17,20 @@ else:
def currentThread(): def currentThread():
return 'no threading' return 'no threading'
# translations are cached in a dictionary for # Translations are cached in a dictionary for every language+app tuple.
# every language+app tuple. The active translations # The active translations are stored by threadid to make them thread local.
# are stored by threadid to make them thread local.
_translations = {} _translations = {}
_active = {} _active = {}
# the default translation is based on the settings file # The default translation is based on the settings file.
_default = None _default = None
# this is a cache for accept-header to translation # This is a cache for accept-header to translation object mappings to prevent
# object mappings to prevent the accept parser to # the accept parser to run multiple times for one user.
# run multiple times for one user
_accepted = {} _accepted = {}
def to_locale(language): def to_locale(language):
"turn a language name (en-us) into a locale name (en_US)" "Turns a language name (en-us) into a locale name (en_US)."
p = language.find('-') p = language.find('-')
if p >= 0: if p >= 0:
return language[:p].lower()+'_'+language[p+1:].upper() return language[:p].lower()+'_'+language[p+1:].upper()
@ -43,7 +38,7 @@ def to_locale(language):
return language.lower() return language.lower()
def to_language(locale): def to_language(locale):
"turns a locale name (en_US) into a language name (en-us)" "Turns a locale name (en_US) into a language name (en-us)."
p = locale.find('_') p = locale.find('_')
if p >= 0: if p >= 0:
return locale[:p].lower()+'-'+locale[p+1:].lower() return locale[:p].lower()+'-'+locale[p+1:].lower()
@ -52,16 +47,14 @@ def to_language(locale):
class DjangoTranslation(gettext_module.GNUTranslations): class DjangoTranslation(gettext_module.GNUTranslations):
""" """
This class sets up the GNUTranslations context with This class sets up the GNUTranslations context with regard to output
regard to output charset. Django uses a defined charset. Django uses a defined DEFAULT_CHARSET as the output charset on
DEFAULT_CHARSET as the output charset on Python 2.4 - Python 2.4. With Python 2.3, use DjangoTranslation23.
with Python 2.3, you need to use DjangoTranslation23.
""" """
def __init__(self, *args, **kw): def __init__(self, *args, **kw):
from django.conf import settings from django.conf import settings
gettext_module.GNUTranslations.__init__(self, *args, **kw) gettext_module.GNUTranslations.__init__(self, *args, **kw)
# starting with Python 2.4, there is a function to define # Starting with Python 2.4, there's a function to define
# the output charset. Before 2.4, the output charset is # the output charset. Before 2.4, the output charset is
# identical with the translation file charset. # identical with the translation file charset.
try: try:
@ -73,29 +66,25 @@ class DjangoTranslation(gettext_module.GNUTranslations):
def merge(self, other): def merge(self, other):
self._catalog.update(other._catalog) self._catalog.update(other._catalog)
def set_language(self, language): def set_language(self, language):
self.__language = language self.__language = language
def language(self): def language(self):
return self.__language return self.__language
def __repr__(self): def __repr__(self):
return "<DjangoTranslation lang:%s>" % self.__language return "<DjangoTranslation lang:%s>" % self.__language
class DjangoTranslation23(DjangoTranslation): class DjangoTranslation23(DjangoTranslation):
""" """
This is a compatibility class that is only used with Python 2.3. Compatibility class that is only used with Python 2.3.
The reason is, Python 2.3 doesn't support set_output_charset on Python 2.3 doesn't support set_output_charset on translation objects and
translation objects and so needs this wrapper class to make sure needs this wrapper class to make sure input charsets from translation files
that input charsets from translation files are correctly translated are correctly translated to output charsets.
to output charsets.
With a full switch to Python 2.4, this can be removed from the source. With a full switch to Python 2.4, this can be removed from the source.
""" """
def gettext(self, msgid): def gettext(self, msgid):
res = self.ugettext(msgid) res = self.ugettext(msgid)
return res.encode(self.django_output_charset) return res.encode(self.django_output_charset)
@ -106,20 +95,19 @@ class DjangoTranslation23(DjangoTranslation):
def translation(language): def translation(language):
""" """
This function returns a translation object. app must be the fully Returns a translation object.
qualified name of the application.
This translation object will be constructed out of multiple GNUTranslations This translation object will be constructed out of multiple GNUTranslations
objects by merging their catalogs. It will construct a object for the requested objects by merging their catalogs. It will construct a object for the
language and add a fallback to the default language, if that is different requested language and add a fallback to the default language, if it's
from the requested language. different from the requested language.
""" """
global _translations global _translations
t = _translations.get(language, None) t = _translations.get(language, None)
if t is not None: if t is not None:
return t return t
from django.conf import settings from django.conf import settings
# set up the right translation class # set up the right translation class
@ -150,7 +138,7 @@ def translation(language):
return t return t
except IOError, e: except IOError, e:
return None return None
res = _translation(globalpath) res = _translation(globalpath)
def _merge(path): def _merge(path):
@ -181,7 +169,7 @@ def translation(language):
if os.path.isdir(apppath): if os.path.isdir(apppath):
res = _merge(apppath) res = _merge(apppath)
if res is None: if res is None:
if fallback is not None: if fallback is not None:
res = fallback res = fallback
@ -197,49 +185,41 @@ def translation(language):
def activate(language): def activate(language):
""" """
This function fetches the translation object for a given Fetches the translation object for a given tuple of application name and
tuple of application name and language and installs it as language and installs it as the current translation object for the current
the current translation object for the current thread. thread.
""" """
_active[currentThread()] = translation(language) _active[currentThread()] = translation(language)
def deactivate(): def deactivate():
""" """
This function deinstalls the currently active translation Deinstalls the currently active translation object so that further _ calls
object so that further _ calls will resolve against the will resolve against the default translation object, again.
default translation object, again.
""" """
global _active global _active
if _active.has_key(currentThread()): if _active.has_key(currentThread()):
del _active[currentThread()] del _active[currentThread()]
def get_language(): def get_language():
""" "Returns the currently selected language."
This function returns the currently selected language.
"""
t = _active.get(currentThread(), None) t = _active.get(currentThread(), None)
if t is not None: if t is not None:
try: try:
return to_language(t.language()) return to_language(t.language())
except AttributeError: except AttributeError:
pass pass
# if we don't have a real translation object, we assume # If we don't have a real translation object, assume it's the default language.
# it's the default language.
from django.conf.settings import LANGUAGE_CODE from django.conf.settings import LANGUAGE_CODE
return LANGUAGE_CODE return LANGUAGE_CODE
def gettext(message): def gettext(message):
""" """
This function will be patched into the builtins module to This function will be patched into the builtins module to provide the _
provide the _ helper function. It will use the current helper function. It will use the current thread as a discriminator to find
thread as a discriminator to find the translation object the translation object to use. If no current translation is activated, the
to use. If no current translation is activated, the message will be run through the default translation object.
message will be run through the default translation
object.
""" """
global _default, _active global _default, _active
t = _active.get(currentThread(), None) t = _active.get(currentThread(), None)
if t is not None: if t is not None:
return t.gettext(message) return t.gettext(message)
@ -250,18 +230,15 @@ def gettext(message):
def gettext_noop(message): def gettext_noop(message):
""" """
This function is used to just mark strings for translation Marks strings for translation but doesn't translate them now. This can be
but to not translate them now. This can be used to store used to store strings in global variables that should stay in the base
strings in global variables that should stay in the base language (because they might be used externally) and will be translated later.
language (because they might be used externally) and will
be translated later on.
""" """
return message return message
def ngettext(singular, plural, number): def ngettext(singular, plural, number):
""" """
This function returns the translation of either the singular Returns the translation of either the singular or plural, based on the number.
or plural, based on the number.
""" """
global _default, _active global _default, _active
@ -278,9 +255,8 @@ ngettext_lazy = lazy(ngettext, str)
def check_for_language(lang_code): def check_for_language(lang_code):
""" """
This function checks wether there is a global language Checks whether there is a global language file for the given language code.
file for the given language code. This is used to decide This is used to decide whether a user-provided language is available.
wether a user-provided language is available.
""" """
from django.conf import settings from django.conf import settings
globalpath = os.path.join(os.path.dirname(settings.__file__), 'locale') globalpath = os.path.join(os.path.dirname(settings.__file__), 'locale')
@ -291,11 +267,9 @@ def check_for_language(lang_code):
def get_language_from_request(request): def get_language_from_request(request):
""" """
analyze the request to find what language the user Analyzes the request to find what language the user wants the system to show.
wants the system to show.
""" """
global _accepted global _accepted
from django.conf import settings from django.conf import settings
globalpath = os.path.join(os.path.dirname(settings.__file__), 'locale') globalpath = os.path.join(os.path.dirname(settings.__file__), 'locale')
@ -303,11 +277,11 @@ def get_language_from_request(request):
lang_code = request.session.get('django_language', None) lang_code = request.session.get('django_language', None)
if lang_code is not None and check_for_language(lang_code): if lang_code is not None and check_for_language(lang_code):
return lang_code return lang_code
lang_code = request.COOKIES.get('django_language', None) lang_code = request.COOKIES.get('django_language', None)
if lang_code is not None and check_for_language(lang_code): if lang_code is not None and check_for_language(lang_code):
return lang_code return lang_code
accept = request.META.get('HTTP_ACCEPT_LANGUAGE', None) accept = request.META.get('HTTP_ACCEPT_LANGUAGE', None)
if accept is not None: if accept is not None:
@ -338,25 +312,24 @@ def get_language_from_request(request):
# filename, because otherwise we might incorrectly # filename, because otherwise we might incorrectly
# report de_DE if we only have de available, but # report de_DE if we only have de available, but
# did find de_DE because of language normalization # did find de_DE because of language normalization
lang = langfile[len(globalpath):].split('/')[1] lang = langfile[len(globalpath):].split(os.path.sep)[1]
_accepted[accept] = lang _accepted[accept] = lang
return lang return lang
return settings.LANGUAGE_CODE return settings.LANGUAGE_CODE
def install(): def install():
""" """
This installs the gettext function as the default Installs the gettext function as the default translation function under
translation function under the name _. the name _.
""" """
__builtins__['_'] = gettext __builtins__['_'] = gettext
dot_re = re.compile(r'\S') dot_re = re.compile(r'\S')
def blankout(src, char): def blankout(src, char):
""" """
This is used in the templateize function and changes every Changes every non-whitespace character to the given char.
non-whitespace character to the given char. Used in the templateize function.
""" """
return dot_re.sub(char, src) return dot_re.sub(char, src)
@ -368,9 +341,9 @@ constant_re = re.compile(r"""_\(((?:".*?")|(?:'.*?'))\)""")
def templateize(src): def templateize(src):
from django.core.template import Lexer, TOKEN_TEXT, TOKEN_VAR, TOKEN_BLOCK from django.core.template import Lexer, TOKEN_TEXT, TOKEN_VAR, TOKEN_BLOCK
""" """
This function turns a django template into something that is Turns a Django template into something that is understood by xgettext. It
understood by xgettext. It does so by translating the django does so by translating the Django translation tags into standard gettext
translation tags into standard gettext function invocations. function invocations.
""" """
out = StringIO() out = StringIO()
intrans = False intrans = False
@ -400,7 +373,7 @@ def templateize(src):
elif pluralmatch: elif pluralmatch:
inplural = True inplural = True
else: else:
raise SyntaxError, "translation blocks must not include other block tags: %s" % t.contents raise SyntaxError, "Translation blocks must not include other block tags: %s" % t.contents
elif t.token_type == TOKEN_VAR: elif t.token_type == TOKEN_VAR:
if inplural: if inplural:
plural.append('%%(%s)s' % t.contents) plural.append('%%(%s)s' % t.contents)
@ -444,4 +417,3 @@ def templateize(src):
else: else:
out.write(blankout(t.contents, 'X')) out.write(blankout(t.contents, 'X'))
return out.getvalue() return out.getvalue()

View File

@ -10,25 +10,25 @@ from django.core.template import Template, Context, TemplateDoesNotExist
def serve(request, path, document_root=None, show_indexes=False): def serve(request, path, document_root=None, show_indexes=False):
""" """
Serve static files below a given point in the directory structure. Serve static files below a given point in the directory structure.
To use, put a URL pattern like:: To use, put a URL pattern such as::
(r'^(?P<path>.*)$', 'django.views.static.serve', {'document_root' : '/path/to/my/files/'}) (r'^(?P<path>.*)$', 'django.views.static.serve', {'document_root' : '/path/to/my/files/'})
in your URL conf; you must provide the ``document_root`` param. You may in your URLconf. You must provide the ``document_root`` param. You may
also set ``show_indexes`` to ``True`` if you'd like to serve a basic index also set ``show_indexes`` to ``True`` if you'd like to serve a basic index
of the directory. This index view will use the template hardcoded below, of the directory. This index view will use the template hardcoded below,
but if you'd like to override it, you can create a template called but if you'd like to override it, you can create a template called
``static/directory_index``. ``static/directory_index``.
""" """
# Clean up given path to only allow serving files below document_root. # Clean up given path to only allow serving files below document_root.
path = posixpath.normpath(urllib.unquote(path)) path = posixpath.normpath(urllib.unquote(path))
newpath = '' newpath = ''
for part in path.split('/'): for part in path.split('/'):
if not part: if not part:
# strip empty path components # strip empty path components
continue continue
drive, part = os.path.splitdrive(part) drive, part = os.path.splitdrive(part)
head, part = os.path.split(part) head, part = os.path.split(part)
if part in (os.curdir, os.pardir): if part in (os.curdir, os.pardir):
@ -67,7 +67,7 @@ DEFAULT_DIRECTORY_INDEX_TEMPLATE = """
</body> </body>
</html> </html>
""" """
def directory_index(path, fullpath): def directory_index(path, fullpath):
try: try:
t = template_loader.get_template('static/directory_index') t = template_loader.get_template('static/directory_index')

View File

@ -88,6 +88,13 @@ install [modelmodule modelmodule ...]
Executes the equivalent of ``sqlall`` for the given model module(s). Executes the equivalent of ``sqlall`` for the given model module(s).
installperms [modelmodule modelmodule ...]
------------------------------------------
Installs any admin permissions for the given model module(s) that aren't
already installed in the database. Outputs a message telling how many
permissions were added, if any.
runserver [optional port number, or ipaddr:port] runserver [optional port number, or ipaddr:port]
------------------------------------------------ ------------------------------------------------

556
docs/i18n.txt Normal file
View File

@ -0,0 +1,556 @@
====================
Internationalization
====================
Django has full support for internationalization of text in code and templates.
Here's how it works.
Overview
========
The goal of internationalization is to allow a single Web application to offer
its content and functionality in multiple languages.
You, the Django developer, can accomplish this goal by adding a minimal amount
of hooks to your Python code and templates. These hooks are called
**translation strings**. They tell Django: "This text should be translated into
the end user's language, if a translation for this text is available in that
language."
Django takes care of using these hooks to translate Web apps, on the fly,
according to users' language preferences.
Essentially, Django does two things:
* It lets developers and template authors specify which parts of their apps
should be translatable.
* It uses these hooks to translate Web apps for particular users according
to their language preferences.
How to internationalize your app: in three steps
------------------------------------------------
1. Embed translation strings in your Python code and templates.
2. Get translations for those strings, in whichever languages you want to
support.
3. Activate the locale middleware in your Django settings.
.. admonition:: Behind the scenes
Django's translation machinery uses the standard ``gettext`` module that
comes with Python.
How to specify translation strings
==================================
Translation strings specify "This text should be translated." These strings can
appear in your Python code and templates. It's your responsibility to mark
translatable strings; the system can only translate strings it knows about.
In Python code
--------------
Standard translation
~~~~~~~~~~~~~~~~~~~~
Specify a translation string by using the function ``_()``. (Yes, the name of
the function is the "underscore" character.) This function is available
globally in any Python module; you don't have to import it.
In this example, the text ``"Welcome to my site."`` is marked as a translation
string::
def my_view(request):
output = _("Welcome to my site.")
return HttpResponse(output)
The function ``django.utils.translation.gettext()`` is identical to ``_()``.
This example is identical to the previous one::
from django.utils.translation import gettext
def my_view(request):
output = gettext("Welcome to my site.")
return HttpResponse(output)
Translation works on computed values. This example is identical to the previous
two::
def my_view(request):
words = ['Welcome', 'to', 'my', 'site.']
output = _(' '.join(words))
return HttpResponse(output)
Translation works on variables. Again, here's an identical example::
def my_view(request):
sentence = 'Welcome to my site.'
output = _(sentence)
return HttpResponse(output)
(The caveat with using variables or computed values, as in the previous two
examples, is that Django's translation-string-detecting utility,
``make-messages.py``, won't be able to find these strings. More on
``make-messages`` later.)
The strings you pass to ``_()`` or ``gettext()`` can take placeholders,
specified with Python's standard named-string interpolation syntax. Example::
def my_view(request, n):
output = _('%(name)s is my name.') % {'name': n}
return HttpResponse(output)
This technique lets language-specific translations reorder the placeholder
text. For example, an English translation may be ``"Adrian is my name."``,
while a Spanish translation may be ``"Me llamo Adrian."`` -- with the
placeholder (the name) placed after the translated text instead of before it.
For this reason, you should use named-string interpolation (e.g., ``%(name)s``)
instead of positional interpolation (e.g., ``%s`` or ``%d``). If you used
positional interpolation, translations wouldn't be able to reorder placeholder
text.
Marking strings as no-op
~~~~~~~~~~~~~~~~~~~~~~~~
Use the function ``django.utils.translation.gettext_noop()`` to mark a string
as a translation string without translating it. The string is later translated
from a variable.
Use this if you have constant strings that should be stored in the source
language because they are exchanged over systems or users -- such as strings in
a database -- but should be translated at the last possible point in time, such
as when the string is presented to the user.
Lazy translation
~~~~~~~~~~~~~~~~
Use the function ``django.utils.translation.gettext_lazy()`` to translate
strings lazily -- when the value is accessed rather than when the
``gettext_lazy()`` function is called.
For example, to translate a model's ``help_text``, do the following::
from django.utils.translation import gettext_lazy
class MyThing(meta.Model):
name = meta.CharField(help_text=gettext_lazy('This is the help text'))
In this example, ``gettext_lazy()`` stores a lazy reference to the string --
not the actual translation. The translation itself will be done when the string
is used in a string context, such as template rendering on the Django admin site.
If you don't like the verbose name ``gettext_lazy``, you can just alias it as
``_`` (underscore), like so::
from django.utils.translation import gettext_lazy as _
class MyThing(meta.Model):
name = meta.CharField(help_text=_('This is the help text'))
Always use lazy translations in `Django models`_. And it's a good idea to add
translations for the field names and table names, too. This means writing
explicit ``verbose_name`` and ``verbose_name_plural`` options in the ``META``
class, though::
from django.utils.translation import gettext_lazy as _
class MyThing(meta.Model):
name = meta.CharField(_('name'), help_text=_('This is the help text'))
class META:
verbose_name = _('my thing')
verbose_name_plural = _('mythings')
.. _Django models: http://www.djangoproject.com/documentation/model_api/
Pluralization
~~~~~~~~~~~~~
Use the function ``django.utils.translation.ngettext()`` to specify pluralized
messages. Example::
from django.utils.translation import ngettext
def hello_world(request, count):
page = ngettext('there is %(count)d object', 'there are %(count)d objects', count) % {
'count': count,
}
return HttpResponse(page)
``ngettext`` takes three arguments: the singular translation string, the plural
translation string and the number of objects (which is passed to the
translation languages as the ``count`` variable).
In template code
----------------
Using translations in `Django templates`_ uses two template tags and a slightly
different syntax than in Python code. To give your template access to these
tags, put ``{% load i18n %}`` toward the top of your template.
The ``{% trans %}`` template tag translates a constant string or a variable
content::
<title>{% trans "This is the title." %}</title>
If you only want to mark a value for translation, but translate it later from a
variable, use the ``noop`` option::
<title>{% trans "value" noop %}</title>
It's not possible to use template variables in ``{% trans %}`` -- only constant
strings, in single or double quotes, are allowed. If your translations require
variables (placeholders), use ``{% blocktrans %}``. Example::
{% blocktrans %}This will have {{ value }} inside.{% endblocktrans %}
To translate a template expression -- say, using template filters -- you need
to bind the expression to a local variable for use within the translation
block::
{% blocktrans with value|filter as myvar %}
This will have {{ myvar }} inside.
{% endblocktrans %}
To pluralize, specify both the singular and plural forms with the
``{% plural %}`` tag, which appears within ``{% blocktrans %}`` and
``{% endblocktrans %}``. Example::
{% blocktrans count list|counted as counter %}
There is only one {{ name }} object.
{% plural %}
There are {{ counter }} {{ name }} objects.
{% endblocktrans %}
Internally, all block and inline translations use the appropriate
``gettext`` / ``ngettext`` call.
Each ``DjangoContext`` has access to two translation-specific variables:
* ``LANGUAGES`` is a list of tuples in which the first element is the
language code and the second is the language name (in that language).
* ``LANGUAGE_CODE`` is the current user's preferred language, as a string.
Example: ``en-us``. (See "How language preference is discovered", below.)
If you don't use the ``DjangoContext`` extension, you can get those values with
two tags::
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
These tags also require a ``{% load i18n %}``.
Translation hooks are also available within any template block tag that accepts
constant strings. In those cases, just use ``_()`` syntax to specify a
translation string. Example::
{% some_special_tag _("Page not found") value|yesno:_("yes,no") %}
In this case, both the tag and the filter will see the already-translated
string, so they don't need to be aware of translations.
.. _Django templates: http://www.djangoproject.com/documentation/templates_python/
How to create language files
============================
Once you've tagged your strings for later translation, you need to write (or
obtain) the language translations themselves. Here's how that works.
Message files
-------------
The first step is to create a **message file** for a new language. A message
file is a plain-text file, representing a single language, that contains all
available translation strings and how they should be represented in the given
language. Message files have a ``.po`` file extension.
Django comes with a tool, ``bin/make-messages.py``, that automates the creation
and upkeep of these files.
To create or update a message file, run this command::
bin/make-messages.py -l de
...where ``de`` is the language code for the message file you want to create.
The language code, in this case, is in locale format. For example, it's
``pt_BR`` for Brazilian and ``de_AT`` for Austrian German.
The script should be run from one of three places:
* The root ``django`` directory (not a Subversion checkout, but the one
that is linked-to via ``$PYTHONPATH`` or is located somewhere on that
path).
* The root directory of your Django project.
* The root directory of your Django app.
The script runs over the entire Django source tree and pulls out all strings
marked for translation. It creates (or updates) a message file in the directory
``conf/locale``. In the ``de`` example, the file will be
``conf/locale/de/LC_MESSAGES/django.po``.
.. admonition:: No gettext?
If you don't have the ``gettext`` utilities installed, ``make-messages.py``
will create empty files. If that's the case, either install the ``gettext``
utilities or just copy the English message file
(``conf/locale/en/LC_MESSAGES/django.po``) and use it as a starting point;
it's just an empty translation file.
The format of ``.po`` files is straightforward. Each ``.po`` file contains a
small bit of metadata, such as the translation maintainer's contact
information, but the bulk of the file is a list of **messages** -- simple
mappings between translation strings and the actual translated text for the
particular language.
For example, if your Django app contained a translation string for the text
``"Welcome to my site."``, like so::
_("Welcome to my site.")
...then ``make-messages.py`` will have created a ``.po`` file containing the
following snippet -- a message::
#: path/to/python/module.py:23
msgid "Welcome to my site."
msgstr ""
A quick explanation:
* ``msgid`` is the translation string, which appears in the source. Don't
change it.
* ``msgstr`` is where you put the language-specific translation. It starts
out empty, so it's your responsibility to change it. Make sure you keep
the quotes around your translation.
* As a convenience, each message includes the filename and line number
from which the translation string was gleaned.
Long messages are a special case. There, the first string directly after the
``msgstr`` (or ``msgid``) is an empty string. Then the content itself will be
written over the next few lines as one string per line. Those strings are
directlyconcatenated. Don't forget trailing spaces within the strings;
otherwise, they'll be tacked together without whitespace!
.. admonition:: Mind your charset
When creating a ``.po`` file with your favorite text editor, first edit
the charset line (search for ``"CHARSET"``) and set it to the charset
you'll be using to edit the content. Generally, utf-8 should work for most
languages, but ``gettext`` should handle any charset you throw at it.
To reexamine all source code and templates for new translation strings and
update all message files for **all** languages, run this::
make-messages.py -a
Compiling message files
-----------------------
After you create your message file -- and each time you make changes to it --
you'll need to compile it into a more efficient form, for use by ``gettext``.
Do this with the ``bin/compile-messages.py`` utility.
This tool runs over all available ``.po`` files and creates ``.mo`` files,
which are binary files optimized for use by ``gettext``. In the same directory
from which you ran ``make-messages.py``, run ``compile-messages.py`` like
this::
bin/compile-messages.py
That's it. Your translations are ready for use.
.. admonition:: A note to translators
If you've created a translation in a language Django doesn't yet support,
please let us know! We'll add it to the global list of available languages
in the global Django settings (``settings.LANGUAGES``).
How Django discovers language preference
========================================
Once you've prepared your translations -- or, if you just want to use the
translations that come with Django -- you'll just need to activate translation
for your app.
Behind the scenes, Django has a very flexible model of deciding which language
should be used -- installation-wide, for a particular user, or both.
To set an installation-wide language preference, set ``LANGUAGE_CODE`` in your
`settings file`_. Django uses this language as the default translation -- the
final attempt if no other translator finds a translation.
If all you want to do is run Django with your native language, and a language
file is available for your language, all you need to do is set
``LANGUAGE_CODE``.
If you want to let each individual user specify which language he or she
prefers, use ``LocaleMiddleware``. ``LocaleMiddleware`` enables language
selection based on data from the request. It customizes content for each user.
To use ``LocaleMiddleware``, add ``'django.middleware.locale.LocaleMiddleware'``
to your ``MIDDLEWARE_CLASSES`` setting. Because middleware order matters, you
should follow these guidelines:
* Make sure it's one of the first middlewares installed.
* It should come after ``SessionMiddleware``, because ``LocaleMiddleware``
makes use of session data.
* If you use ``CacheMiddleware``, put ``LocaleMiddleware`` after it.
For example, your ``MIDDLEWARE_CLASSES`` might look like this::
MIDDLEWARE_CLASSES = (
'django.middleware.sessions.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
)
(For more on middleware, see the `middleware documentation`_.)
``LocaleMiddleware`` tries to determine the user's language preference by
following this algorithm:
* First, it looks for a ``django_language`` key in the the current user's
`session`_.
* Failing that, it looks for a cookie called ``django_language``.
* Failing that, it looks at the ``Accept-Language`` HTTP header. This
header is sent by your browser and tells the server which language(s) you
prefer, in order by priority. Django tries each language in the header
until it finds one with available translations.
* Failing that, it uses the global ``LANGUAGE_CODE`` setting.
Notes:
* In each of these places, the language preference is expected to be in the
standard language format, as a string. For example, Brazilian is
``pt-br``.
* If a base language is available but the sublanguage specified is not,
Django uses the base language. For example, if a user specifies ``de-at``
(Austrian German) but Django only has ``de`` available, Django uses
``de``.
Once ``LocaleMiddleware`` determines the user's preference, it makes this
preference available as ``request.LANGUAGE_CODE`` for each `request object`_.
Feel free to read this value in your view code. Here's a simple example::
def hello_world(request, count):
if request.LANGUAGE_CODE == 'de-at':
return HttpResponse("You prefer to read Austrian German.")
else:
return HttpResponse("You prefer to read another language.")
Note that, with static (middleware-less) translation, the language is in
``settings.LANGUAGE_CODE``, while with dynamic (middleware) translation, it's
in ``request.LANGUAGE_CODE``.
.. _settings file: http://www.djangoproject.com/documentation/settings/
.. _middleware documentation: http://www.djangoproject.com/documentation/middleware/
.. _session: http://www.djangoproject.com/documentation/sessions/
.. _request object: http://www.djangoproject.com/documentation/request_response/#httprequest-objects
The ``set_language`` redirect view
==================================
As a convenience, Django comes with a view, ``django.views.i18n.set_language``,
that sets a user's language preference and redirects back to the previous page.
Activate this view by adding the following line to your URLconf::
(r'^i18n/', include('django.conf.urls.i18n')),
(Note that this example makes the view available at ``/i18n/setlang/``.)
The view expects to be called via the ``GET`` method, with a ``language``
parameter set in the query string. If session support is enabled, the view
saves the language choice in the user's session. Otherwise, it saves the
language choice in a ``django_language`` cookie.
After setting the language choice, Django redirects the user, following this
algorithm:
* Django looks for a ``next`` parameter in the query string.
* If that doesn't exist, or is empty, Django tries the URL in the
``Referer`` header.
* If that's empty -- say, if a user's browser suppresses that header --
then the user will be redirected to ``/`` (the site root) as a fallback.
Here's example HTML template code::
<form action="/i18n/setlang/" method="get">
<input name="next" type="hidden" value="/next/page/" />
<select name="language">
{% for lang in LANGUAGES %}
<option value="{{ lang.0 }}">{{ lang.1 }}</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
Using translations in your own projects
=======================================
Django looks for translations by following this algorithm:
* First, it looks for a ``locale`` directory in the application directory
of the view that's being called. If it finds a translation for the
selected language, the translation will be installed.
* Next, it looks for a ``locale`` directory in the project directory. If it
finds a translation, the translation will be installed.
* Finally, it checks the base translation in ``django/conf/locale``.
This way, you can write applications that include their own translations, and
you can override base translations in your project path. Or, you can just build
a big project out of several apps and put all translations into one big project
message file. The choice is yours.
All message file repositories are structured the same way. They are:
* ``$APPPATH/locale/<language>/LC_MESSAGES/django.(po|mo)``
* ``$PROJECTPATH/locale/<language>/LC_MESSAGES/django.(po|mo)``
* All paths listed in ``LOCALE_PATHS`` in your settings file are
searched in that order for ``<language>/LC_MESSAGES/django.(po|mo)``
* ``$PYTHONPATH/django/conf/locale/<language>/LC_MESSAGES/django.(po|mo)``
To create message files, you use the same ``make-messages.py`` tool as with the
Django message files. You only need to be in the right place -- in the directory
where either the ``conf/locale`` (in case of the source tree) or the ``locale/``
(in case of app messages or project messages) directory are located. And you
use the same ``compile-messages.py`` to produce the binary ``django.mo`` files that
are used by ``gettext``.
Application message files are a bit complicated to discover -- they need the
``LocaleMiddleware``. If you don't use the middleware, only the Django message
files and project message files will be processed.
Finally, you should give some thought to the structure of your translation
files. If your applications need to be delivered to other users and will
be used in other projects, you might want to use app-specific translations.
But using app-specific translations and project translations could produce
weird problems with ``make-messages``: ``make-messages`` will traverse all
directories below the current path and so might put message IDs into the
project message file that are already in application message files.
The easiest way out is to store applications that are not part of the project
(and so carry their own translations) outside the project tree. That way,
``make-messages`` on the project level will only translate strings that are
connected to your explicit project and not strings that are distributed
independently.
Specialities of Django translation
==================================
If you know ``gettext``, you might note these specialities in the way Django
does translation:
* The string domain is always ``django``. The string domain is used to
differentiate between different programs that store their data in a
common message-file library (usually ``/usr/share/locale/``). In Django's
case, there are Django-specific locale libraries, so the domain itself
isn't used. We could store app message files with different names and put
them, say, in the project library, but we decided against this. With
message files in the application tree, apps can be distributed more
easily.
* Django only uses ``gettext`` and ``gettext_noop``. That's because Django
always uses ``DEFAULT_CHARSET`` strings internally. There isn't much use
in using ``ugettext``, because you'll always need to produce utf-8
anyway.
* Django doesn't use ``xgettext`` alone. It uses Python wrappers around
``xgettext`` and ``msgfmt``. That's mostly for convenience.

View File

@ -15,7 +15,7 @@ mod_python is similar to mod_perl -- it embeds Python within Apache and loads
Python code into memory when the server starts. Code stays in memory throughout Python code into memory when the server starts. Code stays in memory throughout
the life of an Apache process, which leads to significant performance gains the life of an Apache process, which leads to significant performance gains
over other server arrangements. Make sure you have Apache installed, with the over other server arrangements. Make sure you have Apache installed, with the
mod_python module activated. mod_python module activated. Django requires Apache 2.x and mod_python 3.x.
See `How to use Django with mod_python`_ for information on how to configure See `How to use Django with mod_python`_ for information on how to configure
mod_python once you have it installed. mod_python once you have it installed.

View File

@ -244,7 +244,7 @@ Here are all available field types:
``EmailField`` ``EmailField``
A ``CharField`` that checks that the value is a valid e-mail address. A ``CharField`` that checks that the value is a valid e-mail address.
(Currently, this is a loose test.) This doesn't accept ``maxlength``. This doesn't accept ``maxlength``.
``FileField`` ``FileField``
A file-upload field. A file-upload field.
@ -387,7 +387,10 @@ Here are all available field types:
meta.SlugField(prepopulate_from=("pre_name", "name")) meta.SlugField(prepopulate_from=("pre_name", "name"))
The admin represents this as an ``<input type="text">`` (a single-line input). ``prepopulate_from`` doesn't accept DateTimeFields.
The admin represents ``SlugField`` as an ``<input type="text">`` (a
single-line input).
``SmallIntegerField`` ``SmallIntegerField``
Like an ``IntegerField``, but only allows values under a certain Like an ``IntegerField``, but only allows values under a certain
@ -897,6 +900,14 @@ object, which takes the following parameters. All are optional.
(This example also has ``search_fields`` defined; see below). (This example also has ``search_fields`` defined; see below).
``list_select_related``
Either ``True`` or ``False``. Default is ``False``. If ``True``, the admin
change list page will use the ``select_related`` database-API parameter in
its query that retrieves the list of items.
Note that Django will use ``select_related``, regardless of this setting,
if one of the ``list_display`` fields is a ``ForeignKey``.
``ordering`` ``ordering``
A list or tuple (see the `META options`_, above) that gives a A list or tuple (see the `META options`_, above) that gives a
different ordering for the admin change list. If this isn't given, the different ordering for the admin change list. If this isn't given, the

View File

@ -2,7 +2,7 @@
How to use Django with mod_python How to use Django with mod_python
================================= =================================
`Apache`_ with `mod_python`_ currently is the preferred setup for using Django Apache_ with `mod_python`_ currently is the preferred setup for using Django
on a production server. on a production server.
mod_python is similar to `mod_perl`_ : It embeds Python within Apache and loads mod_python is similar to `mod_perl`_ : It embeds Python within Apache and loads
@ -10,6 +10,8 @@ Python code into memory when the server starts. Code stays in memory throughout
the life of an Apache process, which leads to significant performance gains over the life of an Apache process, which leads to significant performance gains over
other server arrangements. other server arrangements.
Django requires Apache 2.x and mod_python 3.x.
.. _Apache: http://httpd.apache.org/ .. _Apache: http://httpd.apache.org/
.. _mod_python: http://www.modpython.org/ .. _mod_python: http://www.modpython.org/
.. _mod_perl: http://perl.apache.org/ .. _mod_perl: http://perl.apache.org/
@ -110,12 +112,11 @@ revoke your Django privileges.
Serving media files Serving media files
=================== ===================
Django doesn't serve media files itself. It'd be inefficient to flow media Django doesn't serve media files itself; it leaves that job to whichever Web
files through a (relatively) complex framework when much, much more well-tuned server you choose.
solutions are better.
We recommend using a separate Web server for serving media. Here are some good We recommend using a separate Web server -- i.e., one that's not also running
choices: Django -- for serving media. Here are some good choices:
* lighttpd_ * lighttpd_
* TUX_ * TUX_
@ -129,11 +130,49 @@ particular part of the site::
SetHandler None SetHandler None
</Location> </Location>
Just change ``Location`` to the root URL of your media files. Just change ``Location`` to the root URL of your media files. You can also use
``<LocationMatch>`` to match a regular expression.
This example sets up Django at the site root but explicitly disables Django for
the ``media`` subdirectory and any URL that ends with ``.jpg``, ``.gif`` or
``.png``::
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE myproject.settings
</Location>
<Location "media">
SetHandler None
</Location>
<LocationMatch "\.(jpg|gif|png)$">
SetHandler None
</Location>
Note that the Django development server automagically serves admin media files,
but this is not the case when you use any other server arrangement.
.. _lighttpd: http://www.lighttpd.net/ .. _lighttpd: http://www.lighttpd.net/
.. _TUX: http://en.wikipedia.org/wiki/TUX_web_server .. _TUX: http://en.wikipedia.org/wiki/TUX_web_server
.. _Apache: http://httpd.apache.org/ .. _Apache: http://httpd.apache.org/
Serving the admin files
=======================
Note that the Django development server automagically serves admin media files,
but this is not the case when you use any other server arrangement. You're
responsible for setting up Apache, or whichever media server you're using, to
serve the admin files.
The admin files live in (``django/contrib/admin/media``) of the Django
distribution.
Here are two recommended approaches:
1. Create a symbolic link to the admin media files from within your
document root. This way, all of your Django-related files -- code
**and** templates -- stay in one place, and you'll still be able to
``svn update`` your code to get the latest admin templates, if they
change.
2. Or, copy the admin media files so that they live within your document
root.

View File

@ -258,6 +258,32 @@ Default: ``''`` (Empty string)
The username to use when connecting to the database. Not used with SQLite. The username to use when connecting to the database. Not used with SQLite.
DATE_FORMAT
-----------
Default: ``'N j, Y'`` (e.g. ``Feb. 4, 2003``)
The default formatting to use for date fields on Django admin change-list
pages -- and, possibly, by other parts of the system. See
`allowed date format strings`_.
See also DATETIME_FORMAT and TIME_FORMAT.
.. _allowed date format strings: http://www.djangoproject.com/documentation/templates/#now
DATETIME_FORMAT
---------------
Default: ``'N j, Y, P'`` (e.g. ``Feb. 4, 2003, 4 p.m.``)
The default formatting to use for datetime fields on Django admin change-list
pages -- and, possibly, by other parts of the system. See
`allowed date format strings`_.
See also DATE_FORMAT and TIME_FORMAT.
.. _allowed date format strings: http://www.djangoproject.com/documentation/templates/#now
DEBUG DEBUG
----- -----
@ -355,12 +381,13 @@ See http://www.thaiopensource.com/relaxng/jing.html .
LANGUAGE_CODE LANGUAGE_CODE
------------- -------------
Default: ``'en'`` Default: ``'en-us'``
A string representing the language code for this installation. This should A string representing the language code for this installation. This should be
be in locale format, that's 'en_US' for us-english. If you want to send in standard language format. For example, U.S. English is ``"en-us"``. See the
out the language in your HTML code, use the LANGUAGE_CODE attribute of the `internationalization docs`_.
request, instead, as the chosen language will depend on the browsers settings.
.. _internationalization docs: http://www.djangoproject.com/documentation/i18n/
MANAGERS MANAGERS
-------- --------
@ -481,6 +508,19 @@ Default: ``('django.core.template.loaders.filesystem.load_template_source',)``
A tuple of callables (as strings) that know how to import templates from A tuple of callables (as strings) that know how to import templates from
various sources. See the `template documentation`_. various sources. See the `template documentation`_.
TIME_FORMAT
-----------
Default: ``'P'`` (e.g. ``4 p.m.``)
The default formatting to use for time fields on Django admin change-list
pages -- and, possibly, by other parts of the system. See
`allowed date format strings`_.
See also DATE_FORMAT and DATETIME_FORMAT.
.. _allowed date format strings: http://www.djangoproject.com/documentation/templates/#now
TIME_ZONE TIME_ZONE
--------- ---------

File diff suppressed because it is too large Load Diff

View File

@ -611,7 +611,7 @@ Registering the tag
Finally, use a ``register_tag`` call, as in ``register_filter`` above. Example:: Finally, use a ``register_tag`` call, as in ``register_filter`` above. Example::
from django.core import template from django.core import template
template.register_tag('cycle', do_cycle) template.register_tag('current_time', do_current_time)
``register_tag`` takes two arguments: ``register_tag`` takes two arguments:

View File

@ -1,438 +0,0 @@
======================
How to do translations
======================
Django has support for internationalization of program strings and template
content. Translations use the ``gettext`` library to produce strings in several
languages. Here's an overview of how translation works with Django.
The goal of this document is to explain how to use translations in projects,
how to add translations to Django patches and how to update and create
translation files.
Using translations in Python
============================
The translation machinery in Django uses the standard ``gettext`` module that
comes with Python. Django uses in its own functions and classes, but it uses
standard ``gettext`` machinery under the hood.
To translate strings in your code, use one of the ``gettext`` helper functions.
There are essentially two ways to use them:
* Use the ``_()`` function, which is available globally. This function
translates any string value.
* Use ``django.utils.translation`` and import ``gettext`` or
``gettext_noop`` from there. ``gettext`` is identical to ``_()``.
Note one important thing about translations: The system can only translate
strings it knows about. That means you have to mark strings for translation.
This is done either by calling ``_()``, ``gettext()`` or ``gettext_noop()`` on
string constants. You can translate variable values or computed values, but the
system needs to know those strings beforehand.
The usual method is to build your strings using string interpolation and using
the ``gettext`` functions to do the actual translation. Example::
def hello_world(request, name, site):
page = _('Hello %(name)s, welcome to %(site)s!') % {
'name': name,
'site': site,
}
return HttpResponse(page)
This short snippet shows one important thing: You shouldn't use positional
string interpolation (e.g., ``%s`` or ``%d``). Use the named string
interpolation (e.g., ``%(name)s``), instead. Do this because other languages
might require reordering of text.
The other two helper functions are similar::
from django.utils.translation import gettext
def hello_world(request, name, site):
page = gettext('Hello %(name)s, welcome to %(site)s!') % {
'name': name,
'site': site,
}
return HttpResponse(page)
The difference here is that ``gettext`` is explicitly imported.
Two important helper functions are available: ``gettext`` and ``gettext_noop``.
* ``gettext`` is just like ``_()`` -- it translates its argument.
* ``gettext_noop`` is different. It marks a string for inclusion into the
message file but doesn't do translation. Instead, the string is later
translated from a variable. Use this if you have constant strings that
should be stored in the source language because they are exchanged over
systems or users -- such as strings in a database -- but should be
translated at the last possible point in time, such as when the string is
presented to the user.
One function, ``django.utils.translation.gettext_lazy()``, isn't available in
the standard ``gettext`` module. Use it for lazily translated strings, such as
messages in Django models that are stored internally and translated on access
-- but not translated on storage, as that would only take the default language
into account.
For example, to translate a model's ``help_text``, do the following::
from django.utils.translation import gettext_lazy
class MyThing(meta.Model):
name = meta.CharField(help_text=gettext_lazy('This is the help text'))
In this example, ``gettext_lazy()`` stores a lazy reference to the string --
not the actual translation. The translation itself will be done when the string
is used in a string context, such as template rendering on the Django admin site.
If you don't like the verbose name ``gettext_lazy``, you can just alias it as
``_``, like so::
from django.utils.translation import gettext_lazy as _
class MyThing(meta.Model):
name = meta.CharField(help_text=_('This is the help text'))
Always use lazy translations in Django models. And it's a good idea to add
translations for the field names and table names, too. This means writing
explicit ``verbose_name`` and ``verbose_name_plural`` options in the ``META``
class, though::
from django.utils.translation import gettext_lazy as _
class MyThing(meta.Model):
name = meta.CharField(_('name'), help_text=_('This is the help text'))
class META:
verbose_name = _('my thing')
verbose_name_plural = _('mythings')
A standard problem with translations is pluralization of strings. Use
``ngettext`` to solve this problem. Example::
def hello_world(request, count):
from django.utils.translation import ngettext
page = ngettext('there is %(count)d object', 'there are %(count)d objects', count) % {
'count': count,
}
return HttpResponse(page)
Using translations in templates
===============================
Using translations in Django templates uses two template tags and a slightly
different syntax than standard gettext. The ``{% trans %}`` template tag
translates a constant string or a variable content::
<title>{% trans 'This is the title.' %}</title>
If you only want to mark some value for translation, but translate it
later from a variable, use the ``noop`` option::
<input name="field" value="{% trans "value" noop %}"/>
It is not possible to use variables in this constant string. If you
have variables you need to put in your translations, you have to use the
``{% blocktrans %}`` tag::
{% blocktrans %}This will have {{ value }} inside{% endblocktrans %}
If your expressions are more complex (like you need to have filters applied),
you need to bind them to local variables for the translation block::
{% blocktrans with value|filter as variable %}
This will have {{ value }} inside
{% endblocktrans %}
The last variant is the pluralization form: you need to specify both the singular
and plural sentence with intersparsed variables like this::
{% blocktrans count list|counted as counter %}
There is only one {{ name }} object.
{% plural %}
There are {{ counter }} {{ name }} objects.
{% endblocktrans %}
Internally all block translations and inline translations are translated into
the actual gettext/ngettext call.
Each ``DjangoContext`` has access to two translation-specific variables:
* ``LANGUAGES`` is a list of tuples in which the first element is the
language code and the second is the language name (in that language).
* ``LANGUAGE_CODE`` is the current user's preferred language, as a string.
Example: ``en-us``. (See "How language preference is discovered", below.)
If you don't use the ``DjangoContext`` extension, you can get those values with
two tags::
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
All tags live in the ``i18n`` tag library, so you need to specify
``{% load i18n %}`` in the head of your template to make use of them.
There are some places where you will encounter constant strings in your template code.
One is filter arguments, the other are normal string constants for tags. If you need to
translate those, you can use the ``_("....")`` syntax::
{% some_special_tag _("Page not found") value|yesno:_("yes,no") %}
In this case both the filter and the tag will see the already translated string, so they
don't need to be aware of translations. And both strings will be pulled out of the templates
for translation and stored in the .po files.
The ``setlang`` redirect view
-----------------------------
Django comes with a view, ``django.views.i18n.set_language`` that sets a user's
language preference and redirects back to the previous page. For example, put
this HTML code in your template::
<form action="/i18n/setlang/" method="POST">
<input name="next" type="hidden" value="/next/page/" />
<select name="language">
{% for lang in LANGUAGES %}
<option value="{{ lang.0 }}">{{ lang.1 }}</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
When a user submits the form, his chosen language will be saved in a cookie,
and he'll be redirected either to the URL specified in the ``next`` field, or,
if ``next`` is empty, to the URL in the ``Referer`` header. If the ``Referer``
is blank -- say, if a user's browser suppresses that header -- then the user
will be redirected to ``/`` (the site root) as a fallback.
Activate the ``setlang`` redirect view by adding the following line to your
URLconf::
(r'^i18n/', include('django.conf.urls.i18n'),
Note that this example makes the view available at ``/i18n/setlang/``.
How language preference is discovered
=====================================
Django has a very flexible model of deciding which language should be used --
installation-wide, for a particular user, or both.
To set an installation-wide language preference, set ``LANGUAGE_CODE`` in your
settings file. Django uses this language as the default translation -- the
final attempt if no other translator finds a translation.
If all you want to do is run Django with your native language, and a language
file is available for your language, all you need to do is set
``LANGUAGE_CODE``.
If you want to let each individual user specify which language he or she
prefers, use ``LocaleMiddleware``. ``LocaleMiddleware`` enables language
selection based on data from the request. It lets each user have his or her own
setting.
To use ``LocaleMiddleware``, add ``'django.middleware.locale.LocaleMiddleware'``
to your ``MIDDLEWARE_CLASSES`` setting. Because middleware order matters, you
should follow these guidelines:
* Make sure it's one of the first middlewares installed.
* It should come after ``SessionMiddleware``, because ``LocaleMiddleware``
makes use of session data.
For example, your ``MIDDLEWARE_CLASSES`` might look like this::
MIDDLEWARE_CLASSES = (
'django.middleware.sessions.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
)
``LocaleMiddleware`` tries to determine the user's language preference by
following this algorithm:
* First, it looks for a ``django_language`` key in the the current user's
session.
* Failing that, it looks for a cookie called ``django_language``.
* Failing that, it looks at the ``Accept-Language`` HTTP header. This
header is sent by your browser and tells the server which language(s) you
prefer, in order by priority. Django tries each language in the header
until it finds one with available translations.
* Failing that, it uses the global ``LANGUAGE_CODE`` setting.
Notes:
* In each of these places, the language preference is expected to be in the
standard language format, as a string. For example, Brazilian is
``pt-br``.
* If a base language is available but the sublanguage specified is not,
Django uses the base language. For example, if a user specifies ``de-at``
(Austrian German) but Django only has ``de`` available, Django uses
``de``.
Once ``LocaleMiddleware`` determines the user's preference, it makes this
preference available as ``request.LANGUAGE_CODE`` for each `request object`_.
Feel free to read this value in your view code. Here's a simple example::
def hello_world(request, count):
if request.LANGUAGE_CODE == 'de-at':
return HttpResponse("You prefer to read Austrian German.")
else:
return HttpResponse("You prefer to read another language.")
Note that, with static (middleware-less) translation, the language is in
``settings.LANGUAGE_CODE``, while with dynamic (middleware) translation, it's
in ``request.LANGUAGE_CODE``.
.. _request object: http://www.djangoproject.com/documentation/request_response/#httprequest-objects
Creating language files
=======================
So, you've tagged all of your strings for later translation. But you need to
write the translations themselves.
They need to be in a format grokable by ``gettext``. You need to update them.
You may need to create new ones for new languages. This section shows you how
to do it.
Creating message files
----------------------
The first step is to create a message file for a new language. Django comes
with a tool, ``make-messages.py``, that automates this.
To run it on the Django source tree, navigate to the ``django`` directory
itself -- not a Subversion check out, but the one linked to via ``$PYTHONPATH``
or located somewhere on that path.
Then run this command::
bin/make-messages.py -l de
...where ``de`` is the language code for the message file you want to create.
This script runs over the entire Django source tree and pulls out all strings
marked for translation, creating or updating the language's message file.
When it's done, it will have created (or updated) a message file under the
directory ``conf/locale``. In this example, the file will be
``conf/locale/de/LC_MESSAGES/django.po``.
If you don't have the ``gettext`` utilities installed, ``make-messages.py``
will create empty files. If that's the case, either install the ``gettext``
utilities or just copy the English message file
(``conf/locale/en/LC_MESSAGES/django.po``) and use it as a starting point; it's
just an empty translation file.
Once you've created the ``.po`` file, edit the file with your favorite text
editor. First, edit the charset line (search for ``"CHARSET"``) and set it to
the charset you'll be using to edit the content. Then, proceed to write your
translations.
The language code for storage is in locale format -- so it's ``pt_BR`` for
Brazilian and ``de_AT`` for Austrian German.
Every message in the message file is in the same format:
* One line is the msgid. This is the actual string in the source. Don't
change it.
* The other line is msgstr. This is the translation. It starts out empty.
You change it.
Long messages are a special case. There, the first string directly after the
msgstr (or msgid) is an empty string. Then the content itself will be written
over the next few lines as one string per line. Those strings are directly
concatenated. Don't forget trailing spaces within the strings; otherwise,
they'll be tacked together without whitespace!
Compiling message files
-----------------------
After you create your message file, you'll need to transform it into a more
efficient form to be read by ``gettext``. Do this with the
``compile-messages.py`` utility. This tool runs over all available ``.po``
files and creates ``.mo`` files. Run it like this::
bin/compile-messages.py
That's it. You made your first translation. Now, if you configure your browser
to request your language, Django apps will use your language preference.
Another thing: Please submit the name of your newly-created language in that
native language, so we can add it to the global list of available languages
that is mirrored in ``settings.LANGUAGES`` (and the ``LANGUAGES`` template
variable).
Using translations in your own projects
=======================================
Of course, your own projects should make use of translations. Django makes this
simple, because it looks for message files in several locations.
Django looks for translations by following this algorithm:
* First, it looks for a ``locale`` directory in the application directory
of the view that's being called. If it finds a translation for the
selected language, the translation will be installed.
* Next, it looks for a ``locale`` directory in the project directory. If it
finds a translation, the translation will be installed.
* Finally, it checks the base translation in ``django/conf/locale``.
This way, you can write applications that include their own translations, and
you can override base translations in your project path if you want to do that.
Or, you can just build a big project out of several apps and put all
translations into one big project message file. The choice is yours.
All message file repositories are structured the same way. They are:
* ``$APPPATH/locale/<language>/LC_MESSAGES/django.(po|mo)``
* ``$PROJECTPATH/locale/<language>/LC_MESSAGES/django.(po|mo)``
* all paths listed in ``LOCALE_PATHS`` in your settings file are
searched in that order for ``<language>/LC_MESSAGES/django.(po|mo)``
* ``$PYTHONPATH/django/conf/locale/<language>/LC_MESSAGES/django.(po|mo)``
To create message files, you use the same ``make-messages.py`` tool as with the
Django message files. You only need to be in the right place -- in the directory
where either the ``conf/locale`` (in case of the source tree) or the ``locale/``
(in case of app messages or project messages) directory are located. And you
use the same ``compile-messages.py`` to produce the binary ``django.mo`` files that
are used by ``gettext``.
Application message files are a bit complicated to discover -- they need the
``LocaleMiddleware``. If you don't use the middleware, only the Django message
files and project message files will be processed.
Finally, you should give some thought to the structure of your translation
files. If your applications need to be delivered to other users and will
be used in other projects, you might want to use app-specific translations.
But using app-specific translations and project translations could produce
weird problems with ``make-messages``: ``make-messages`` will traverse all directories
below the current path and so might put message IDs into the project
message file that are already in application message files.
The easiest way out is to store applications that are not part of the project
(and so carry their own translations) outside the project tree. That way,
``make-messages`` on the project level will only translate strings that are
connected to your explicit project and not strings that are distributed
independently.
Specialities of Django translation
==================================
If you know ``gettext``, you might note these specialities in the way Django
does translation:
* The string domain is always ``django``. The string domain is used to
differentiate between different programs that store their data in a
common messagefile library (usually ``/usr/share/locale/``). In Django's
case, there are Django-specific locale libraries, so the domain itself
isn't used. We could store app message files with different names and put
them, say, in the project library, but we decided against this. With
message files in the application tree, apps can be distributed more
easily.
* Django only uses ``gettext`` and ``gettext_noop``. That's because Django
always uses ``DEFAULT_CHARSET`` strings internally. There isn't much use
in using ``ugettext``, because you'll always need to produce utf-8
anyway.
* Django doesn't use ``xgettext`` alone. It uses Python wrappers around
``xgettext`` and ``msgfmt``. That's mostly for convenience.

View File

@ -317,7 +317,7 @@ def run_tests(verbosity=0, standalone=False):
print "Template test: %s -- FAILED. Expected %r, got %r" % (name, vals[2], output) print "Template test: %s -- FAILED. Expected %r, got %r" % (name, vals[2], output)
failed_tests.append(name) failed_tests.append(name)
loader.template_source_loaders = old_template_loaders loader.template_source_loaders = old_template_loaders
deactivate()
if failed_tests and not standalone: if failed_tests and not standalone:
msg = "Template tests %s failed." % failed_tests msg = "Template tests %s failed." % failed_tests
if not verbosity: if not verbosity: