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:
commit
5abf214ea6
@ -70,7 +70,13 @@ for lang in languages:
|
||||
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"' % (
|
||||
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:
|
||||
old = '#: '+os.path.join(dirpath, thefile)[2:]
|
||||
new = '#: '+os.path.join(dirpath, file)[2:]
|
||||
@ -80,10 +86,22 @@ for lang in languages:
|
||||
if thefile != file:
|
||||
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)
|
||||
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)
|
||||
os.unlink(potfile)
|
||||
|
||||
|
@ -41,11 +41,12 @@ LANGUAGES = (
|
||||
('fr', _('French')),
|
||||
('gl', _('Galician')),
|
||||
('it', _('Italian')),
|
||||
('no-nb', _('Norwegian')),
|
||||
('no', _('Norwegian')),
|
||||
('pt-br', _('Brazilian')),
|
||||
('ru', _('Russian')),
|
||||
('sr', _('Serbian')),
|
||||
('zh-cn', _('Simplified Chinese')),
|
||||
('sk', _('Slovak')),
|
||||
)
|
||||
|
||||
# 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
|
||||
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 #
|
||||
##############
|
||||
@ -204,11 +225,3 @@ COMMENTS_FIRST_FEW = 0
|
||||
# A tuple of IP addresses that have been banned from participating in various
|
||||
# Django-powered features.
|
||||
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 = ''
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -16,36 +16,110 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/models/admin.py:6
|
||||
msgid "action time"
|
||||
#: 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/models/admin.py:9
|
||||
msgid "object id"
|
||||
#: 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/models/admin.py:10
|
||||
msgid "object repr"
|
||||
#: contrib/admin/views/main.py:210
|
||||
#, python-format
|
||||
msgid "Select %s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/models/admin.py:11
|
||||
msgid "action flag"
|
||||
#: contrib/admin/views/main.py:211
|
||||
#, python-format
|
||||
msgid "Select %s to change"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/models/admin.py:12
|
||||
msgid "change message"
|
||||
#: contrib/admin/views/main.py:570
|
||||
#, python-format
|
||||
msgid "The %(name)s \"%(obj)s\" was added successfully."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/models/admin.py:15
|
||||
msgid "log entry"
|
||||
#: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
|
||||
msgid "You may edit it again below."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/models/admin.py:16
|
||||
msgid "log entries"
|
||||
#: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
|
||||
#, python-format
|
||||
msgid "You may add another %s below."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templatetags/admin_list.py:256
|
||||
msgid "All dates"
|
||||
#: contrib/admin/views/main.py:600
|
||||
#, 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 ""
|
||||
|
||||
#: contrib/admin/views/decorators.py:22
|
||||
@ -74,112 +148,6 @@ msgstr ""
|
||||
msgid "Your e-mail address is not your username. Try '%s' instead."
|
||||
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:273 contrib/admin/views/doc.py:278
|
||||
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
|
||||
@ -243,7 +211,7 @@ msgstr ""
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:81
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:87
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
@ -255,6 +223,53 @@ msgstr ""
|
||||
msgid "XML text"
|
||||
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/change_form.html:14
|
||||
msgid "Add"
|
||||
@ -280,36 +295,6 @@ msgstr ""
|
||||
msgid "None available"
|
||||
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/change_form.html:19
|
||||
msgid "History"
|
||||
@ -337,14 +322,6 @@ msgid ""
|
||||
"admin site."
|
||||
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
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
@ -357,31 +334,16 @@ msgstr ""
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/404.html:4
|
||||
#: contrib/admin/templates/admin/404.html:8
|
||||
msgid "Page not found"
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/404.html:10
|
||||
msgid "We're sorry, but the requested page could not be found."
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
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:"
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
@ -403,16 +365,22 @@ msgstr ""
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
#: 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/base.html:23
|
||||
msgid "Log out"
|
||||
#: contrib/admin/templates/admin/change_form.html:48
|
||||
msgid "Order:"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/submit_line.html:3
|
||||
@ -543,6 +511,38 @@ msgstr ""
|
||||
msgid "The %(site_name)s team"
|
||||
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
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
@ -647,138 +647,138 @@ msgstr ""
|
||||
msgid "Dec."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:5
|
||||
#: models/core.py:7
|
||||
msgid "domain name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:6
|
||||
#: models/core.py:8
|
||||
msgid "display name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:8
|
||||
#: models/core.py:10
|
||||
msgid "site"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:9
|
||||
#: models/core.py:11
|
||||
msgid "sites"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:22
|
||||
#: models/core.py:28
|
||||
msgid "label"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:25
|
||||
#: models/core.py:31
|
||||
msgid "package"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:26
|
||||
#: models/core.py:32
|
||||
msgid "packages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:36
|
||||
#: models/core.py:42
|
||||
msgid "python module name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:38
|
||||
#: models/core.py:44
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:39
|
||||
#: models/core.py:45
|
||||
msgid "content types"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:62
|
||||
#: models/core.py:68
|
||||
msgid "redirect from"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:63
|
||||
#: models/core.py:69
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:64
|
||||
#: models/core.py:70
|
||||
msgid "redirect to"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:65
|
||||
#: models/core.py:71
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:67
|
||||
#: models/core.py:73
|
||||
msgid "redirect"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:68
|
||||
#: models/core.py:74
|
||||
msgid "redirects"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:82
|
||||
#: models/core.py:88
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:83
|
||||
#: models/core.py:89
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:84
|
||||
#: models/core.py:90
|
||||
msgid "content"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:85
|
||||
#: models/core.py:91
|
||||
msgid "enable comments"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:86
|
||||
#: models/core.py:92
|
||||
msgid "template name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:87
|
||||
#: models/core.py:93
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:88
|
||||
#: models/core.py:94
|
||||
msgid "registration required"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:92
|
||||
#: models/core.py:98
|
||||
msgid "flat page"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:93
|
||||
#: models/core.py:99
|
||||
msgid "flat pages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:114
|
||||
#: models/core.py:117
|
||||
msgid "session key"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:115
|
||||
#: models/core.py:118
|
||||
msgid "session data"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:116
|
||||
#: models/core.py:119
|
||||
msgid "expire date"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:118
|
||||
#: models/core.py:121
|
||||
msgid "session"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:119
|
||||
#: models/core.py:122
|
||||
msgid "sessions"
|
||||
msgstr ""
|
||||
|
||||
@ -920,165 +920,169 @@ msgstr ""
|
||||
msgid "Simplified Chinese"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:62
|
||||
#: core/validators.py:63
|
||||
msgid "This value must contain only letters, numbers, underscores and slashes."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:70
|
||||
#: core/validators.py:71
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:74
|
||||
#: core/validators.py:75
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:81
|
||||
#: core/validators.py:82
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:93
|
||||
#: core/validators.py:94
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:100
|
||||
#: core/validators.py:98
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:104
|
||||
#: core/validators.py:102
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:108
|
||||
#: core/validators.py:106
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:112
|
||||
#: core/validators.py:110
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:117
|
||||
#: core/validators.py:115
|
||||
msgid "Enter a whole number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:121
|
||||
#: core/validators.py:119
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:125
|
||||
#: core/validators.py:123
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:129
|
||||
#: core/validators.py:127
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:133
|
||||
#: core/validators.py:131
|
||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:137
|
||||
#: core/validators.py:135
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:149
|
||||
#: core/validators.py:147
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:156
|
||||
#: core/validators.py:154
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:160
|
||||
#: core/validators.py:158
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:168
|
||||
#: core/validators.py:166
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:172
|
||||
#: core/validators.py:170
|
||||
msgid "A valid URL is required."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:186
|
||||
#: core/validators.py:184
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:193
|
||||
#: core/validators.py:191
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:203
|
||||
#: core/validators.py:201
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:205
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:211
|
||||
#: core/validators.py:209
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:226
|
||||
#: core/validators.py:224
|
||||
#, python-format
|
||||
msgid "Watch your mouth! The word %s is not allowed here."
|
||||
msgid_plural "Watch your mouth! The words %s are not allowed here."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:233
|
||||
#: core/validators.py:231
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:252
|
||||
#: core/validators.py:250
|
||||
msgid "Please enter something for at least one field."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:279
|
||||
#: core/validators.py:277
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:291
|
||||
#: core/validators.py:289
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is not %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:310
|
||||
#: core/validators.py:308
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:333
|
||||
#: core/validators.py:331
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:344
|
||||
#: core/validators.py:342
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:346
|
||||
#: core/validators.py:344
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
@ -1086,7 +1090,7 @@ msgid_plural ""
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:349
|
||||
#: core/validators.py:347
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
@ -1094,71 +1098,71 @@ msgid_plural ""
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:359
|
||||
#: core/validators.py:357
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:360
|
||||
#: core/validators.py:358
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:373
|
||||
#: core/validators.py:371
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:388
|
||||
#: core/validators.py:386
|
||||
msgid "This field is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:423
|
||||
#: core/validators.py:421
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:426
|
||||
#: core/validators.py:424
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:459
|
||||
#: core/validators.py:457
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:463
|
||||
#: core/validators.py:461
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some text starting on line %(line)s is not allowed in that context. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:468
|
||||
#: core/validators.py:466
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:473
|
||||
#: core/validators.py:471
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:477
|
||||
#: core/validators.py:475
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A tag on line %(line)s is missing one or more required attributes. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:482
|
||||
#: core/validators.py:480
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
|
Binary file not shown.
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\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"
|
||||
"Last-Translator: Ricardo Javier Cárdenes Medina <ricardo.cardenes@gmail."
|
||||
"com>\n"
|
||||
@ -17,39 +17,112 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.10.2\n"
|
||||
|
||||
#: contrib/admin/models/admin.py:6
|
||||
#, fuzzy
|
||||
msgid "action time"
|
||||
msgstr "Fecha/hora"
|
||||
|
||||
#: contrib/admin/models/admin.py:9
|
||||
msgid "object id"
|
||||
#: 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/models/admin.py:10
|
||||
msgid "object repr"
|
||||
#: 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/models/admin.py:11
|
||||
msgid "action flag"
|
||||
#: contrib/admin/views/main.py:210
|
||||
#, python-format
|
||||
msgid "Select %s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/models/admin.py:12
|
||||
msgid "change message"
|
||||
#: contrib/admin/views/main.py:211
|
||||
#, 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 ""
|
||||
|
||||
#: contrib/admin/models/admin.py:15
|
||||
msgid "log entry"
|
||||
#: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
|
||||
msgid "You may edit it again below."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/models/admin.py:16
|
||||
msgid "log entries"
|
||||
#: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
|
||||
#, python-format
|
||||
msgid "You may add another %s below."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templatetags/admin_list.py:256
|
||||
msgid "All dates"
|
||||
#: contrib/admin/views/main.py:600
|
||||
#, fuzzy, python-format
|
||||
msgid "Add %s"
|
||||
msgstr "Agregar"
|
||||
|
||||
#: 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 "Cambiar clave"
|
||||
|
||||
#: contrib/admin/views/decorators.py:22
|
||||
#: contrib/admin/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
@ -76,112 +149,6 @@ msgstr ""
|
||||
msgid "Your e-mail address is not your username. Try '%s' instead."
|
||||
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:273 contrib/admin/views/doc.py:278
|
||||
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
|
||||
@ -249,7 +216,7 @@ msgstr ""
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:81
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:87
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
@ -261,35 +228,18 @@ msgstr ""
|
||||
msgid "XML text"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:27
|
||||
#: contrib/admin/templates/admin/change_form.html:14
|
||||
msgid "Add"
|
||||
msgstr "Agregar"
|
||||
#: contrib/admin/templates/admin/base_site.html:4
|
||||
msgid "Django site admin"
|
||||
msgstr "Sitio de administración de Django"
|
||||
|
||||
#: 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/base_site.html:7
|
||||
msgid "Django administration"
|
||||
msgstr "Administración de Django"
|
||||
|
||||
#: 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/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
|
||||
@ -320,6 +270,40 @@ msgstr ""
|
||||
"mediante correo electrónico y debería arreglarse en breve. Gracias por su "
|
||||
"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/change_form.html:19
|
||||
msgid "History"
|
||||
@ -349,14 +333,6 @@ msgstr ""
|
||||
"Este objeto no tiene histórico de cambios. Probablemente no fue añadido "
|
||||
"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
|
||||
msgid "Username:"
|
||||
msgstr "Usuario:"
|
||||
@ -369,32 +345,17 @@ msgstr "Clave:"
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr "¿Ha <a href=\"/password_reset/\">olvidado su clave</a>?"
|
||||
|
||||
#: 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/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Bienvenido,"
|
||||
|
||||
#: 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/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Cambiar clave"
|
||||
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Terminar"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
@ -420,17 +381,23 @@ msgstr ""
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Sí, estoy seguro"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Bienvenido,"
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Cambiar clave"
|
||||
#: 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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Terminar"
|
||||
#: 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/submit_line.html:3
|
||||
msgid "Delete"
|
||||
@ -566,6 +533,39 @@ msgstr "
|
||||
msgid "The %(site_name)s team"
|
||||
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
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
@ -670,139 +670,139 @@ msgstr ""
|
||||
msgid "Dec."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:5
|
||||
#: models/core.py:7
|
||||
msgid "domain name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:6
|
||||
#: models/core.py:8
|
||||
msgid "display name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:8
|
||||
#: models/core.py:10
|
||||
msgid "site"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:9
|
||||
#: models/core.py:11
|
||||
msgid "sites"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:22
|
||||
#: models/core.py:28
|
||||
msgid "label"
|
||||
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
|
||||
msgid "name"
|
||||
msgstr "Usuario:"
|
||||
|
||||
#: models/core.py:25
|
||||
#: models/core.py:31
|
||||
msgid "package"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:26
|
||||
#: models/core.py:32
|
||||
msgid "packages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:36
|
||||
#: models/core.py:42
|
||||
msgid "python module name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:38
|
||||
#: models/core.py:44
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:39
|
||||
#: models/core.py:45
|
||||
msgid "content types"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:62
|
||||
#: models/core.py:68
|
||||
msgid "redirect from"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:63
|
||||
#: models/core.py:69
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:64
|
||||
#: models/core.py:70
|
||||
msgid "redirect to"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:65
|
||||
#: models/core.py:71
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:67
|
||||
#: models/core.py:73
|
||||
msgid "redirect"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:68
|
||||
#: models/core.py:74
|
||||
msgid "redirects"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:82
|
||||
#: models/core.py:88
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:83
|
||||
#: models/core.py:89
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:84
|
||||
#: models/core.py:90
|
||||
msgid "content"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:85
|
||||
#: models/core.py:91
|
||||
msgid "enable comments"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:86
|
||||
#: models/core.py:92
|
||||
msgid "template name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:87
|
||||
#: models/core.py:93
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:88
|
||||
#: models/core.py:94
|
||||
msgid "registration required"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:92
|
||||
#: models/core.py:98
|
||||
msgid "flat page"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:93
|
||||
#: models/core.py:99
|
||||
msgid "flat pages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:114
|
||||
#: models/core.py:117
|
||||
msgid "session key"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:115
|
||||
#: models/core.py:118
|
||||
msgid "session data"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:116
|
||||
#: models/core.py:119
|
||||
msgid "expire date"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:118
|
||||
#: models/core.py:121
|
||||
msgid "session"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:119
|
||||
#: models/core.py:122
|
||||
msgid "sessions"
|
||||
msgstr ""
|
||||
|
||||
@ -948,167 +948,171 @@ msgstr ""
|
||||
msgid "Simplified Chinese"
|
||||
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."
|
||||
msgstr "Este valor debe contener sólo letras, números y guión bajo."
|
||||
|
||||
#: core/validators.py:62
|
||||
#: core/validators.py:63
|
||||
#, fuzzy
|
||||
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."
|
||||
|
||||
#: core/validators.py:70
|
||||
#: core/validators.py:71
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:74
|
||||
#: core/validators.py:75
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:81
|
||||
#: core/validators.py:82
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:93
|
||||
#: core/validators.py:94
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:100
|
||||
#: core/validators.py:98
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:104
|
||||
#: core/validators.py:102
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:108
|
||||
#: core/validators.py:106
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:112
|
||||
#: core/validators.py:110
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:117
|
||||
#: core/validators.py:115
|
||||
msgid "Enter a whole number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:121
|
||||
#: core/validators.py:119
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:125
|
||||
#: core/validators.py:123
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:129
|
||||
#: core/validators.py:127
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:133
|
||||
#: core/validators.py:131
|
||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:137
|
||||
#: core/validators.py:135
|
||||
#, fuzzy
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "Dirección de correo:"
|
||||
|
||||
#: core/validators.py:149
|
||||
#: core/validators.py:147
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:156
|
||||
#: core/validators.py:154
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:160
|
||||
#: core/validators.py:158
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:168
|
||||
#: core/validators.py:166
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:172
|
||||
#: core/validators.py:170
|
||||
msgid "A valid URL is required."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:186
|
||||
#: core/validators.py:184
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:193
|
||||
#: core/validators.py:191
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:203
|
||||
#: core/validators.py:201
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:205
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:211
|
||||
#: core/validators.py:209
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:226
|
||||
#: core/validators.py:224
|
||||
#, python-format
|
||||
msgid "Watch your mouth! The word %s is not allowed here."
|
||||
msgid_plural "Watch your mouth! The words %s are not allowed here."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:233
|
||||
#: core/validators.py:231
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:252
|
||||
#: core/validators.py:250
|
||||
msgid "Please enter something for at least one field."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:279
|
||||
#: core/validators.py:277
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:291
|
||||
#: core/validators.py:289
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is not %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:310
|
||||
#: core/validators.py:308
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:333
|
||||
#: core/validators.py:331
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:344
|
||||
#: core/validators.py:342
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:346
|
||||
#: core/validators.py:344
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
@ -1116,7 +1120,7 @@ msgid_plural ""
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:349
|
||||
#: core/validators.py:347
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
@ -1124,71 +1128,71 @@ msgid_plural ""
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:359
|
||||
#: core/validators.py:357
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:360
|
||||
#: core/validators.py:358
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:373
|
||||
#: core/validators.py:371
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:388
|
||||
#: core/validators.py:386
|
||||
msgid "This field is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:423
|
||||
#: core/validators.py:421
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:426
|
||||
#: core/validators.py:424
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:459
|
||||
#: core/validators.py:457
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:463
|
||||
#: core/validators.py:461
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some text starting on line %(line)s is not allowed in that context. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:468
|
||||
#: core/validators.py:466
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:473
|
||||
#: core/validators.py:471
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:477
|
||||
#: core/validators.py:475
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A tag on line %(line)s is missing one or more required attributes. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:482
|
||||
#: core/validators.py:480
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
|
Binary file not shown.
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\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"
|
||||
"Last-Translator: Laurent Rahuel <laurent.rahuel@gmail.com>\n"
|
||||
"Language-Team: français <fr@li.org>\n"
|
||||
@ -15,38 +15,112 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: 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:256
|
||||
msgid "All dates"
|
||||
#: 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: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/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
@ -73,112 +147,6 @@ msgstr ""
|
||||
msgid "Your e-mail address is not your username. Try '%s' instead."
|
||||
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:273 contrib/admin/views/doc.py:278
|
||||
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
|
||||
@ -248,7 +216,7 @@ msgstr ""
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:81
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:87
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
@ -260,35 +228,18 @@ msgstr ""
|
||||
msgid "XML text"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:27
|
||||
#: contrib/admin/templates/admin/change_form.html:14
|
||||
msgid "Add"
|
||||
msgstr "Ajouter"
|
||||
#: contrib/admin/templates/admin/base_site.html:4
|
||||
msgid "Django site admin"
|
||||
msgstr "Site d'administration de Django"
|
||||
|
||||
#: 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/base_site.html:7
|
||||
msgid "Django administration"
|
||||
msgstr "Administration de Django"
|
||||
|
||||
#: 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/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
|
||||
@ -319,6 +270,40 @@ msgstr ""
|
||||
"administrateurs du site et sera corrigée dans les meilleurs délais. Merci "
|
||||
"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/change_form.html:19
|
||||
msgid "History"
|
||||
@ -348,14 +333,6 @@ msgstr ""
|
||||
"Cet objet n'a pas d'historique de modification. Il n'a probablement pas été "
|
||||
"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
|
||||
msgid "Username:"
|
||||
msgstr "Nom d'utilisateur"
|
||||
@ -368,32 +345,17 @@ msgstr "Mot de passe"
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</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/404.html:8
|
||||
msgid "Page not found"
|
||||
msgstr "Cette page n'a pas été trouvée"
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Bienvenue,"
|
||||
|
||||
#: 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/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Modifier votre mot de passe"
|
||||
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Déconnection"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
@ -419,17 +381,23 @@ msgstr ""
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Oui, je suis certain"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Bienvenue,"
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Modifier votre mot de passe"
|
||||
#: 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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Déconnection"
|
||||
#: 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/submit_line.html:3
|
||||
msgid "Delete"
|
||||
@ -569,6 +537,38 @@ msgstr "Merci d'utiliser notre site!"
|
||||
msgid "The %(site_name)s team"
|
||||
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
|
||||
msgid "Monday"
|
||||
msgstr "Lundi"
|
||||
@ -673,55 +673,55 @@ msgstr "Nov."
|
||||
msgid "Dec."
|
||||
msgstr "Déc."
|
||||
|
||||
#: models/core.py:5
|
||||
#: models/core.py:7
|
||||
msgid "domain name"
|
||||
msgstr "nom de domaine"
|
||||
|
||||
#: models/core.py:6
|
||||
#: models/core.py:8
|
||||
msgid "display name"
|
||||
msgstr "nom à afficher"
|
||||
|
||||
#: models/core.py:8
|
||||
#: models/core.py:10
|
||||
msgid "site"
|
||||
msgstr "site"
|
||||
|
||||
#: models/core.py:9
|
||||
#: models/core.py:11
|
||||
msgid "sites"
|
||||
msgstr "sites"
|
||||
|
||||
#: models/core.py:22
|
||||
#: models/core.py:28
|
||||
msgid "label"
|
||||
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"
|
||||
msgstr "nom"
|
||||
|
||||
#: models/core.py:25
|
||||
#: models/core.py:31
|
||||
msgid "package"
|
||||
msgstr "paquetage"
|
||||
|
||||
#: models/core.py:26
|
||||
#: models/core.py:32
|
||||
msgid "packages"
|
||||
msgstr "paquetages"
|
||||
|
||||
#: models/core.py:36
|
||||
#: models/core.py:42
|
||||
msgid "python module name"
|
||||
msgstr "nom du module python"
|
||||
|
||||
#: models/core.py:38
|
||||
#: models/core.py:44
|
||||
msgid "content type"
|
||||
msgstr "type de contenu"
|
||||
|
||||
#: models/core.py:39
|
||||
#: models/core.py:45
|
||||
msgid "content types"
|
||||
msgstr "types de contenu"
|
||||
|
||||
#: models/core.py:62
|
||||
#: models/core.py:68
|
||||
msgid "redirect from"
|
||||
msgstr "redirigé depuis"
|
||||
|
||||
#: models/core.py:63
|
||||
#: models/core.py:69
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
@ -729,11 +729,11 @@ msgstr ""
|
||||
"Ceci doit être un chemin absolu, sans nom de domaine. Par exemple: '/events/"
|
||||
"search/'."
|
||||
|
||||
#: models/core.py:64
|
||||
#: models/core.py:70
|
||||
msgid "redirect to"
|
||||
msgstr "redirigé vers"
|
||||
|
||||
#: models/core.py:65
|
||||
#: models/core.py:71
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
@ -741,38 +741,38 @@ msgstr ""
|
||||
"Ceci peut être soit un chemin absolu (voir ci-dessus) soit une URL complète "
|
||||
"débutant par 'http://'."
|
||||
|
||||
#: models/core.py:67
|
||||
#: models/core.py:73
|
||||
msgid "redirect"
|
||||
msgstr "redirection"
|
||||
|
||||
#: models/core.py:68
|
||||
#: models/core.py:74
|
||||
msgid "redirects"
|
||||
msgstr "redirections"
|
||||
|
||||
#: models/core.py:82
|
||||
#: models/core.py:88
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
"Par exemple : '/about/contact/'. Vérifiez la présence du caractère '/' en "
|
||||
"début et en fin de chaine."
|
||||
|
||||
#: models/core.py:83
|
||||
#: models/core.py:89
|
||||
msgid "title"
|
||||
msgstr "titre"
|
||||
|
||||
#: models/core.py:84
|
||||
#: models/core.py:90
|
||||
msgid "content"
|
||||
msgstr "contenu"
|
||||
|
||||
#: models/core.py:85
|
||||
#: models/core.py:91
|
||||
msgid "enable comments"
|
||||
msgstr "autoriser les commentaires"
|
||||
|
||||
#: models/core.py:86
|
||||
#: models/core.py:92
|
||||
msgid "template name"
|
||||
msgstr "nom du template"
|
||||
|
||||
#: models/core.py:87
|
||||
#: models/core.py:93
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
@ -780,41 +780,41 @@ msgstr ""
|
||||
"Par exemple: 'flatfiles/contact_page'. Sans définition, le système utilisera "
|
||||
"'flatfiles/default'."
|
||||
|
||||
#: models/core.py:88
|
||||
#: models/core.py:94
|
||||
msgid "registration required"
|
||||
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."
|
||||
msgstr ""
|
||||
"Si coché, seuls les utilisateurs connectés auront la possibilité de voir "
|
||||
"cette page."
|
||||
|
||||
#: models/core.py:92
|
||||
#: models/core.py:98
|
||||
msgid "flat page"
|
||||
msgstr "page à plat"
|
||||
|
||||
#: models/core.py:93
|
||||
#: models/core.py:99
|
||||
msgid "flat pages"
|
||||
msgstr "pages à plat"
|
||||
|
||||
#: models/core.py:114
|
||||
#: models/core.py:117
|
||||
msgid "session key"
|
||||
msgstr "clé de session"
|
||||
|
||||
#: models/core.py:115
|
||||
#: models/core.py:118
|
||||
msgid "session data"
|
||||
msgstr "donnée de session"
|
||||
|
||||
#: models/core.py:116
|
||||
#: models/core.py:119
|
||||
msgid "expire date"
|
||||
msgstr "date d'expiration"
|
||||
|
||||
#: models/core.py:118
|
||||
#: models/core.py:121
|
||||
msgid "session"
|
||||
msgstr "session"
|
||||
|
||||
#: models/core.py:119
|
||||
#: models/core.py:122
|
||||
msgid "sessions"
|
||||
msgstr "sessions"
|
||||
|
||||
@ -961,74 +961,78 @@ msgstr "Serbe"
|
||||
msgid "Simplified Chinese"
|
||||
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."
|
||||
msgstr ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Ce champ ne doit contenir que des lettres, des nombres, des sous-tirets et "
|
||||
"des '/'."
|
||||
|
||||
#: core/validators.py:70
|
||||
#: core/validators.py:71
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
msgstr "Entrez une adresse IP valide."
|
||||
|
||||
#: core/validators.py:104
|
||||
#: core/validators.py:102
|
||||
msgid "Empty values are not allowed here."
|
||||
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."
|
||||
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."
|
||||
msgstr "Cette valeur ne peut contenir que des chiffres [0-9]."
|
||||
|
||||
#: core/validators.py:117
|
||||
#: core/validators.py:115
|
||||
msgid "Enter a whole number."
|
||||
msgstr "Entrez un nombre entier."
|
||||
|
||||
#: core/validators.py:121
|
||||
#: core/validators.py:119
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
msgstr "Entrez une adresse de courriel valide."
|
||||
|
||||
#: core/validators.py:149
|
||||
#: core/validators.py:147
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
@ -1036,28 +1040,28 @@ msgstr ""
|
||||
"Envoyez une image valide. Le fichier que vous avez transferé n'est pas une "
|
||||
"image ou bien est une image corrompue."
|
||||
|
||||
#: core/validators.py:156
|
||||
#: core/validators.py:154
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr "L'URL %s ne pointe pas vers une image valide."
|
||||
|
||||
#: core/validators.py:160
|
||||
#: core/validators.py:158
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
"Les numéros de téléphone doivent être au format XX XX XX XX XX. \"%s\" est "
|
||||
"incorrect."
|
||||
|
||||
#: core/validators.py:168
|
||||
#: core/validators.py:166
|
||||
#, python-format
|
||||
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."
|
||||
|
||||
#: core/validators.py:172
|
||||
#: core/validators.py:170
|
||||
msgid "A valid URL is required."
|
||||
msgstr "Une URL valide est requise."
|
||||
|
||||
#: core/validators.py:186
|
||||
#: core/validators.py:184
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
@ -1066,69 +1070,69 @@ msgstr ""
|
||||
"Du HTML valide est requis. Les erreurs spécifiques sont:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#: core/validators.py:191
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "XML mal formé: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#: core/validators.py:201
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "URL invalide: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr "L'URL %s est un lien cassé."
|
||||
|
||||
#: core/validators.py:211
|
||||
#: core/validators.py:209
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr "Entrez une abréviation d'état américain valide."
|
||||
|
||||
#: core/validators.py:226
|
||||
#: core/validators.py:224
|
||||
#, python-format
|
||||
msgid "Watch your mouth! The word %s is not allowed here."
|
||||
msgid_plural "Watch your mouth! The words %s are not allowed here."
|
||||
msgstr[0] "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."
|
||||
|
||||
#: core/validators.py:233
|
||||
#: core/validators.py:231
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
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."
|
||||
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."
|
||||
msgstr "S'il vous plaît, renseignez chaque champ ou laissez les deux vides."
|
||||
|
||||
#: core/validators.py:279
|
||||
#: core/validators.py:277
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr "Ce champ doit être renseigné si %(field)s vaut %(value)s"
|
||||
|
||||
#: core/validators.py:291
|
||||
#: core/validators.py:289
|
||||
#, python-format
|
||||
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"
|
||||
|
||||
#: core/validators.py:310
|
||||
#: core/validators.py:308
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "Des valeurs identiques ne sont pas autorisées."
|
||||
|
||||
#: core/validators.py:333
|
||||
#: core/validators.py:331
|
||||
#, python-format
|
||||
msgid "This value must be a power of %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."
|
||||
msgstr "S'il vous plaît, saisissez un nombre décimal valide."
|
||||
|
||||
#: core/validators.py:346
|
||||
#: core/validators.py:344
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
@ -1138,7 +1142,7 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
"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
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
@ -1148,32 +1152,32 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
"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
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr ""
|
||||
"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
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr ""
|
||||
"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."
|
||||
msgstr "Le format de ce champ est mauvais."
|
||||
|
||||
#: core/validators.py:388
|
||||
#: core/validators.py:386
|
||||
msgid "This field is invalid."
|
||||
msgstr "Ce champ est invalide."
|
||||
|
||||
#: core/validators.py:423
|
||||
#: core/validators.py:421
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr "Impossible de récupérer quoi que ce soit depuis %s."
|
||||
|
||||
#: core/validators.py:426
|
||||
#: core/validators.py:424
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"pas valide."
|
||||
|
||||
#: core/validators.py:459
|
||||
#: core/validators.py:457
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"\"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#: core/validators.py:461
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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. "
|
||||
"(Ligne débutant par \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:468
|
||||
#: core/validators.py:466
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(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 "
|
||||
"par \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#: core/validators.py:471
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(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 \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#: core/validators.py:475
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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. "
|
||||
"(Ligne débutant par \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:482
|
||||
#: core/validators.py:480
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
|
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -16,38 +16,112 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: 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:256
|
||||
msgid "All dates"
|
||||
#: 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: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/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
@ -74,112 +148,6 @@ msgstr ""
|
||||
msgid "Your e-mail address is not your username. Try '%s' instead."
|
||||
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:273 contrib/admin/views/doc.py:278
|
||||
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
|
||||
@ -249,7 +217,7 @@ msgstr ""
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:81
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:87
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
@ -261,35 +229,18 @@ msgstr ""
|
||||
msgid "XML text"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:27
|
||||
#: contrib/admin/templates/admin/change_form.html:14
|
||||
msgid "Add"
|
||||
msgstr "Aggiungi"
|
||||
#: contrib/admin/templates/admin/base_site.html:4
|
||||
msgid "Django site admin"
|
||||
msgstr "Amministrazione sito Django"
|
||||
|
||||
#: 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/base_site.html:7
|
||||
msgid "Django administration"
|
||||
msgstr "Amministrazione Django"
|
||||
|
||||
#: 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/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
|
||||
@ -319,6 +270,40 @@ msgstr ""
|
||||
"C'è stato un errore. E' stato riportato agli amministratori del sito via e-"
|
||||
"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/change_form.html:19
|
||||
msgid "History"
|
||||
@ -348,14 +333,6 @@ msgstr ""
|
||||
"Questo oggetto non ha cambiamenti storicizzati. Probabilmente non è stato "
|
||||
"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
|
||||
msgid "Username:"
|
||||
msgstr "Nome utente:"
|
||||
@ -368,32 +345,17 @@ msgstr "Password:"
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr "Hai <a href=\"/password_reset/\">dimenticato la tua password</a>?"
|
||||
|
||||
#: 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/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Benvenuto,"
|
||||
|
||||
#: 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/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Cambia la password"
|
||||
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Esci"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
@ -419,17 +381,23 @@ msgstr ""
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Sì, sono sicuro"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Benvenuto,"
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Cambia la password"
|
||||
#: 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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Esci"
|
||||
#: 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/submit_line.html:3
|
||||
msgid "Delete"
|
||||
@ -567,6 +535,38 @@ msgstr "Ti ringraziamo per l'utilizzo del nostro sito!"
|
||||
msgid "The %(site_name)s team"
|
||||
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
|
||||
msgid "Monday"
|
||||
msgstr "Lunedì"
|
||||
@ -671,55 +671,55 @@ msgstr "Nov."
|
||||
msgid "Dec."
|
||||
msgstr "Dic."
|
||||
|
||||
#: models/core.py:5
|
||||
#: models/core.py:7
|
||||
msgid "domain name"
|
||||
msgstr "nome a dominio"
|
||||
|
||||
#: models/core.py:6
|
||||
#: models/core.py:8
|
||||
msgid "display name"
|
||||
msgstr "nome visualizzato"
|
||||
|
||||
#: models/core.py:8
|
||||
#: models/core.py:10
|
||||
msgid "site"
|
||||
msgstr "sito"
|
||||
|
||||
#: models/core.py:9
|
||||
#: models/core.py:11
|
||||
msgid "sites"
|
||||
msgstr "siti"
|
||||
|
||||
#: models/core.py:22
|
||||
#: models/core.py:28
|
||||
msgid "label"
|
||||
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"
|
||||
msgstr "nome"
|
||||
|
||||
#: models/core.py:25
|
||||
#: models/core.py:31
|
||||
msgid "package"
|
||||
msgstr "pacchetto"
|
||||
|
||||
#: models/core.py:26
|
||||
#: models/core.py:32
|
||||
msgid "packages"
|
||||
msgstr "pacchetti"
|
||||
|
||||
#: models/core.py:36
|
||||
#: models/core.py:42
|
||||
msgid "python module name"
|
||||
msgstr "nome del modulo python"
|
||||
|
||||
#: models/core.py:38
|
||||
#: models/core.py:44
|
||||
msgid "content type"
|
||||
msgstr "tipo di contenuto"
|
||||
|
||||
#: models/core.py:39
|
||||
#: models/core.py:45
|
||||
msgid "content types"
|
||||
msgstr "tipo di contenuti"
|
||||
|
||||
#: models/core.py:62
|
||||
#: models/core.py:68
|
||||
msgid "redirect from"
|
||||
msgstr "redirigi da"
|
||||
|
||||
#: models/core.py:63
|
||||
#: models/core.py:69
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
@ -727,48 +727,48 @@ msgstr ""
|
||||
"Un percorso assoluto, senza nome a dominio. Esempio: '/events/search/'.Un "
|
||||
"percorso assoluto, senza nome a dominio. Esempio: '/events/search/'."
|
||||
|
||||
#: models/core.py:64
|
||||
#: models/core.py:70
|
||||
msgid "redirect to"
|
||||
msgstr "redirigi verso"
|
||||
|
||||
#: models/core.py:65
|
||||
#: models/core.py:71
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
"Un percorso assoluto (come sopra) o un URL completa che inizi con 'http://'."
|
||||
|
||||
#: models/core.py:67
|
||||
#: models/core.py:73
|
||||
msgid "redirect"
|
||||
msgstr "redirigi"
|
||||
|
||||
#: models/core.py:68
|
||||
#: models/core.py:74
|
||||
msgid "redirects"
|
||||
msgstr "redirezioni"
|
||||
|
||||
#: models/core.py:82
|
||||
#: models/core.py:88
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
"Esempio: '/about/contact/'. Attenzione alla barra ('/') iniziale e finale."
|
||||
|
||||
#: models/core.py:83
|
||||
#: models/core.py:89
|
||||
msgid "title"
|
||||
msgstr "titolo"
|
||||
|
||||
#: models/core.py:84
|
||||
#: models/core.py:90
|
||||
msgid "content"
|
||||
msgstr "contenuto"
|
||||
|
||||
#: models/core.py:85
|
||||
#: models/core.py:91
|
||||
msgid "enable comments"
|
||||
msgstr "abilita commenti"
|
||||
|
||||
#: models/core.py:86
|
||||
#: models/core.py:92
|
||||
msgid "template name"
|
||||
msgstr "nome modello"
|
||||
|
||||
#: models/core.py:87
|
||||
#: models/core.py:93
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
@ -776,39 +776,39 @@ msgstr ""
|
||||
"Esempio: 'flatfiles/contact_page'. Se non specificato, il sistema userà "
|
||||
"'flatfiles/default'."
|
||||
|
||||
#: models/core.py:88
|
||||
#: models/core.py:94
|
||||
msgid "registration required"
|
||||
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."
|
||||
msgstr "Se selezionata, solo gli utenti registrati potranno vedere la pagina."
|
||||
|
||||
#: models/core.py:92
|
||||
#: models/core.py:98
|
||||
msgid "flat page"
|
||||
msgstr "pagina statica"
|
||||
|
||||
#: models/core.py:93
|
||||
#: models/core.py:99
|
||||
msgid "flat pages"
|
||||
msgstr "pagine statiche"
|
||||
|
||||
#: models/core.py:114
|
||||
#: models/core.py:117
|
||||
msgid "session key"
|
||||
msgstr "chiave di sessione"
|
||||
|
||||
#: models/core.py:115
|
||||
#: models/core.py:118
|
||||
msgid "session data"
|
||||
msgstr "dati di sessione"
|
||||
|
||||
#: models/core.py:116
|
||||
#: models/core.py:119
|
||||
msgid "expire date"
|
||||
msgstr "data di scadenza"
|
||||
|
||||
#: models/core.py:118
|
||||
#: models/core.py:121
|
||||
msgid "session"
|
||||
msgstr "sessione"
|
||||
|
||||
#: models/core.py:119
|
||||
#: models/core.py:122
|
||||
msgid "sessions"
|
||||
msgstr "sessioni"
|
||||
|
||||
@ -953,99 +953,103 @@ msgstr "Serbo"
|
||||
msgid "Simplified Chinese"
|
||||
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."
|
||||
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."
|
||||
msgstr "Sono ammesse solo lettere, numeri, sottolineature ('_') e barre ('/')."
|
||||
|
||||
#: core/validators.py:70
|
||||
#: core/validators.py:71
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr "Non sono ammesse lettere maiuscole."
|
||||
|
||||
#: core/validators.py:74
|
||||
#: core/validators.py:75
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr "Non sono ammesse lettere minuscole."
|
||||
|
||||
#: core/validators.py:81
|
||||
#: core/validators.py:82
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr "Inserire solo numeri separati da virgole."
|
||||
|
||||
#: core/validators.py:93
|
||||
#: core/validators.py:94
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr "Inserire indirizzi e-mail validi separati da virgole."
|
||||
|
||||
#: core/validators.py:100
|
||||
#: core/validators.py:98
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr "Inserire un indirizzo IP valido."
|
||||
|
||||
#: core/validators.py:104
|
||||
#: core/validators.py:102
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr "E' necessario inserire un valore."
|
||||
|
||||
#: core/validators.py:108
|
||||
#: core/validators.py:106
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr "Sono ammessi soltanto caratteri alfabetici."
|
||||
|
||||
#: core/validators.py:112
|
||||
#: core/validators.py:110
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr "Il valore non può essere composto solo da cifre."
|
||||
|
||||
#: core/validators.py:117
|
||||
#: core/validators.py:115
|
||||
msgid "Enter a whole number."
|
||||
msgstr "Inserire un numero."
|
||||
|
||||
#: core/validators.py:121
|
||||
#: core/validators.py:119
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr "Sono ammessi solo caratteri alfabetici."
|
||||
|
||||
#: core/validators.py:125
|
||||
#: core/validators.py:123
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
msgstr "Inserire un indirizzo e-mail valido."
|
||||
|
||||
#: core/validators.py:149
|
||||
#: core/validators.py:147
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
"Caricare un'immagine valida. Il file inserito non è un'immagine o è corrotto."
|
||||
|
||||
#: core/validators.py:156
|
||||
#: core/validators.py:154
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr "L'URL %s non punta ad un'immagine valida."
|
||||
|
||||
#: core/validators.py:160
|
||||
#: core/validators.py:158
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
"I numeri di telefono devono essere in formato XXX-XXX-XXXX. \"%s\" non è "
|
||||
"valido."
|
||||
|
||||
#: core/validators.py:168
|
||||
#: core/validators.py:166
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
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."
|
||||
msgstr "Inserire un URL valido."
|
||||
|
||||
#: core/validators.py:186
|
||||
#: core/validators.py:184
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
@ -1054,69 +1058,69 @@ msgstr ""
|
||||
"E' richiesto HTML valido. Gli errori sono i seguenti:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#: core/validators.py:191
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "XML malformato: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#: core/validators.py:201
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "URL non valida: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr "L'URL %s è un link rotto."
|
||||
|
||||
#: core/validators.py:211
|
||||
#: core/validators.py:209
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr "Inserire un nome di stato americano abbreviato valido."
|
||||
|
||||
#: core/validators.py:226
|
||||
#: core/validators.py:224
|
||||
#, python-format
|
||||
msgid "Watch your mouth! The word %s is not allowed here."
|
||||
msgid_plural "Watch your mouth! The words %s are not allowed here."
|
||||
msgstr[0] "Attenzione! La parola %s non è ammessa qui."
|
||||
msgstr[1] "Attenzione! Le parole %s non sono ammesse qui."
|
||||
|
||||
#: core/validators.py:233
|
||||
#: core/validators.py:231
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
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."
|
||||
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."
|
||||
msgstr "Inserire entrambi i campi o lasciarli entrambi vuoti."
|
||||
|
||||
#: core/validators.py:279
|
||||
#: core/validators.py:277
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr "Il campo è obbligatorio se %(field)s è %(value)s"
|
||||
|
||||
#: core/validators.py:291
|
||||
#: core/validators.py:289
|
||||
#, python-format
|
||||
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"
|
||||
|
||||
#: core/validators.py:310
|
||||
#: core/validators.py:308
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "Non sono ammessi valori duplicati."
|
||||
|
||||
#: core/validators.py:333
|
||||
#: core/validators.py:331
|
||||
#, python-format
|
||||
msgid "This value must be a power of %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."
|
||||
msgstr "Inserire un numero decimale valido."
|
||||
|
||||
#: core/validators.py:346
|
||||
#: core/validators.py:344
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
@ -1124,7 +1128,7 @@ msgid_plural ""
|
||||
msgstr[0] "Inserire un numero decimale con non più di %s cifre totali."
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:349
|
||||
#: core/validators.py:347
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
@ -1132,30 +1136,30 @@ msgid_plural ""
|
||||
msgstr[0] "Inserire un decimale con non più di %s cifre decimali."
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:359
|
||||
#: core/validators.py:357
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr "Verifica che il file inserito sia almeno di %s byte."
|
||||
|
||||
#: core/validators.py:360
|
||||
#: core/validators.py:358
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
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."
|
||||
msgstr "Formato del file non valido."
|
||||
|
||||
#: core/validators.py:388
|
||||
#: core/validators.py:386
|
||||
msgid "This field is invalid."
|
||||
msgstr "Il campo non è valido."
|
||||
|
||||
#: core/validators.py:423
|
||||
#: core/validators.py:421
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr "Impossibile recuperare alcunchè da %s."
|
||||
|
||||
#: core/validators.py:426
|
||||
#: core/validators.py:424
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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)"
|
||||
"s'."
|
||||
|
||||
#: core/validators.py:459
|
||||
#: core/validators.py:457
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#: core/validators.py:461
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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. "
|
||||
"(La linea comincia con \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:468
|
||||
#: core/validators.py:466
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(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 "
|
||||
"con \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#: core/validators.py:471
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(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 \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#: core/validators.py:475
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"comincia con \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:482
|
||||
#: core/validators.py:480
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
|
BIN
django/conf/locale/no/LC_MESSAGES/django.mo
Normal file
BIN
django/conf/locale/no/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: Espen Grndhaug <espen@grindhaug.org>\n"
|
||||
"Language-Team: Norwegian\n"
|
||||
@ -16,38 +16,112 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: 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:256
|
||||
msgid "All dates"
|
||||
#: 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: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/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
@ -74,112 +148,6 @@ msgstr ""
|
||||
msgid "Your e-mail address is not your username. Try '%s' instead."
|
||||
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:273 contrib/admin/views/doc.py:278
|
||||
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
|
||||
@ -249,7 +217,7 @@ msgstr ""
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:81
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:87
|
||||
msgid "URL"
|
||||
msgstr "Internettadresse"
|
||||
|
||||
@ -261,35 +229,18 @@ msgstr ""
|
||||
msgid "XML text"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:27
|
||||
#: contrib/admin/templates/admin/change_form.html:14
|
||||
msgid "Add"
|
||||
msgstr "Legg til"
|
||||
#: contrib/admin/templates/admin/base_site.html:4
|
||||
msgid "Django site admin"
|
||||
msgstr "Django administrasjonsside"
|
||||
|
||||
#: 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/base_site.html:7
|
||||
msgid "Django administration"
|
||||
msgstr "Django administrasjon"
|
||||
|
||||
#: 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/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
|
||||
@ -318,6 +269,40 @@ msgstr ""
|
||||
"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."
|
||||
|
||||
#: 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/change_form.html:19
|
||||
msgid "History"
|
||||
@ -347,14 +332,6 @@ msgstr ""
|
||||
"Dette objektet har ingen endrings historie. Den var sannsynligvis ikke laget "
|
||||
"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
|
||||
msgid "Username:"
|
||||
msgstr "Brukernavn:"
|
||||
@ -367,32 +344,17 @@ msgstr "Passord:"
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr "Har du <a href=\"/password_reset/\">glemt passordet ditt</a>?"
|
||||
|
||||
#: 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/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Velkommen"
|
||||
|
||||
#: 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/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Endre passord"
|
||||
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Log ut"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, python-format
|
||||
@ -417,17 +379,23 @@ msgstr ""
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Ja, jeg er sikker"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Velkommen"
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Endre passord"
|
||||
#: 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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Log ut"
|
||||
#: 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/submit_line.html:3
|
||||
msgid "Delete"
|
||||
@ -565,6 +533,38 @@ msgstr "Takk for at du bruker vår side!"
|
||||
msgid "The %(site_name)s team"
|
||||
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
|
||||
msgid "Monday"
|
||||
msgstr "Mondag"
|
||||
@ -669,55 +669,55 @@ msgstr "Nov."
|
||||
msgid "Dec."
|
||||
msgstr "Des."
|
||||
|
||||
#: models/core.py:5
|
||||
#: models/core.py:7
|
||||
msgid "domain name"
|
||||
msgstr "domene navn"
|
||||
|
||||
#: models/core.py:6
|
||||
#: models/core.py:8
|
||||
msgid "display name"
|
||||
msgstr "vist navn"
|
||||
|
||||
#: models/core.py:8
|
||||
#: models/core.py:10
|
||||
msgid "site"
|
||||
msgstr "side"
|
||||
|
||||
#: models/core.py:9
|
||||
#: models/core.py:11
|
||||
msgid "sites"
|
||||
msgstr "sider"
|
||||
|
||||
#: models/core.py:22
|
||||
#: models/core.py:28
|
||||
msgid "label"
|
||||
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"
|
||||
msgstr "navn"
|
||||
|
||||
#: models/core.py:25
|
||||
#: models/core.py:31
|
||||
msgid "package"
|
||||
msgstr "pakke"
|
||||
|
||||
#: models/core.py:26
|
||||
#: models/core.py:32
|
||||
msgid "packages"
|
||||
msgstr "pakker"
|
||||
|
||||
#: models/core.py:36
|
||||
#: models/core.py:42
|
||||
msgid "python module name"
|
||||
msgstr "python modul navn"
|
||||
|
||||
#: models/core.py:38
|
||||
#: models/core.py:44
|
||||
msgid "content type"
|
||||
msgstr "innholds type"
|
||||
|
||||
#: models/core.py:39
|
||||
#: models/core.py:45
|
||||
msgid "content types"
|
||||
msgstr "innholds typer"
|
||||
|
||||
#: models/core.py:62
|
||||
#: models/core.py:68
|
||||
msgid "redirect from"
|
||||
msgstr "videresend fra"
|
||||
msgstr "omadresser fra"
|
||||
|
||||
#: models/core.py:63
|
||||
#: models/core.py:69
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
@ -725,11 +725,11 @@ msgstr ""
|
||||
"Denne burde vær en fullstendig sti, uten domene navnet. Foreksempel: '/"
|
||||
"nyheter/les/"
|
||||
|
||||
#: models/core.py:64
|
||||
#: models/core.py:70
|
||||
msgid "redirect to"
|
||||
msgstr "videresend til"
|
||||
msgstr "omadresser til"
|
||||
|
||||
#: models/core.py:65
|
||||
#: models/core.py:71
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
@ -737,37 +737,37 @@ msgstr ""
|
||||
"Denne kan enten være en fullstendig sti (som over), eller en hel "
|
||||
"internettadresse som starter med 'http://'"
|
||||
|
||||
#: models/core.py:67
|
||||
#: models/core.py:73
|
||||
msgid "redirect"
|
||||
msgstr "videresend"
|
||||
msgstr "omadressering"
|
||||
|
||||
#: models/core.py:68
|
||||
#: models/core.py:74
|
||||
msgid "redirects"
|
||||
msgstr "vidersesendelser"
|
||||
msgstr "omadresserelser"
|
||||
|
||||
#: models/core.py:82
|
||||
#: models/core.py:88
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
"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"
|
||||
msgstr "tittel"
|
||||
|
||||
#: models/core.py:84
|
||||
#: models/core.py:90
|
||||
msgid "content"
|
||||
msgstr "innhold"
|
||||
|
||||
#: models/core.py:85
|
||||
#: models/core.py:91
|
||||
msgid "enable comments"
|
||||
msgstr "tillat kommentarer"
|
||||
|
||||
#: models/core.py:86
|
||||
#: models/core.py:92
|
||||
msgid "template name"
|
||||
msgstr "mal navn"
|
||||
|
||||
#: models/core.py:87
|
||||
#: models/core.py:93
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
@ -775,41 +775,41 @@ msgstr ""
|
||||
"Eksempel: 'flatfiler/kontakt_side'. Vist denne ikke denne er gitt, vill "
|
||||
"'flatfiles/default' bli brukt."
|
||||
|
||||
#: models/core.py:88
|
||||
#: models/core.py:94
|
||||
msgid "registration required"
|
||||
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."
|
||||
msgstr ""
|
||||
"Vist denne er krysset av er det bare brukere som er logget inn som kan se "
|
||||
"siden."
|
||||
|
||||
#: models/core.py:92
|
||||
#: models/core.py:98
|
||||
msgid "flat page"
|
||||
msgstr "flatside"
|
||||
|
||||
#: models/core.py:93
|
||||
#: models/core.py:99
|
||||
msgid "flat pages"
|
||||
msgstr "flatsider"
|
||||
|
||||
#: models/core.py:114
|
||||
#: models/core.py:117
|
||||
msgid "session key"
|
||||
msgstr "sesjon nøkkel"
|
||||
|
||||
#: models/core.py:115
|
||||
#: models/core.py:118
|
||||
msgid "session data"
|
||||
msgstr "sesjon data"
|
||||
|
||||
#: models/core.py:116
|
||||
#: models/core.py:119
|
||||
msgid "expire date"
|
||||
msgstr "utløpsdato"
|
||||
|
||||
#: models/core.py:118
|
||||
#: models/core.py:121
|
||||
msgid "session"
|
||||
msgstr "sesjon"
|
||||
|
||||
#: models/core.py:119
|
||||
#: models/core.py:122
|
||||
msgid "sessions"
|
||||
msgstr "sesjoner"
|
||||
|
||||
@ -935,7 +935,7 @@ msgstr "Italiensk"
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Norwegian"
|
||||
msgstr ""
|
||||
msgstr "Norsk"
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Brazilian"
|
||||
@ -951,75 +951,79 @@ msgstr "Serbisk"
|
||||
|
||||
#: conf/global_settings.py:48
|
||||
msgid "Simplified Chinese"
|
||||
msgstr "Simpel Kinesisk"
|
||||
|
||||
#: conf/global_settings.py:49
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:58
|
||||
#: core/validators.py:59
|
||||
msgid "This value must contain only letters, numbers and underscores."
|
||||
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."
|
||||
msgstr ""
|
||||
"Dette feltet må bare inneholde bokstaver, nummer, understreker og "
|
||||
"skråstreker."
|
||||
|
||||
#: core/validators.py:70
|
||||
#: core/validators.py:71
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr "Tor skrift er ikke tillatt her."
|
||||
|
||||
#: core/validators.py:74
|
||||
#: core/validators.py:75
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr "Små bokstaver er ikke tillatt her."
|
||||
|
||||
#: core/validators.py:81
|
||||
#: core/validators.py:82
|
||||
msgid "Enter only digits separated by commas."
|
||||
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."
|
||||
msgstr "Skriv inn e-post adresser skilt med kommaer."
|
||||
|
||||
#: core/validators.py:100
|
||||
#: core/validators.py:98
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr "Vennligst skriv inn en godkjent IP adresse."
|
||||
|
||||
#: core/validators.py:104
|
||||
#: core/validators.py:102
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr "Dette felte kan ikke være tomt."
|
||||
|
||||
#: core/validators.py:108
|
||||
#: core/validators.py:106
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
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."
|
||||
msgstr "Dette feltet kan ikke bare bestå av nummer."
|
||||
|
||||
#: core/validators.py:117
|
||||
#: core/validators.py:115
|
||||
msgid "Enter a whole number."
|
||||
msgstr "Skriv inn et helt nummer."
|
||||
|
||||
#: core/validators.py:121
|
||||
#: core/validators.py:119
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
msgstr "Skriv inn en godkjent e-post adresse."
|
||||
|
||||
#: core/validators.py:149
|
||||
#: core/validators.py:147
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
@ -1027,27 +1031,27 @@ msgstr ""
|
||||
"Lastopp et bilde. Filen du lastet opp var ikke et bilde, eller så var det et "
|
||||
"ødelagt bilde"
|
||||
|
||||
#: core/validators.py:156
|
||||
#: core/validators.py:154
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr "Internettadressen %s peker ikke til et godkjent bilde."
|
||||
|
||||
#: core/validators.py:160
|
||||
#: core/validators.py:158
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
"Telefon nummeret må være i XXX-XXX-XXXX formatet. \"%s\" er ikke godkjent."
|
||||
|
||||
#: core/validators.py:168
|
||||
#: core/validators.py:166
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr "Internettadressen %s peker ikke til en godkjent QuickTime film."
|
||||
|
||||
#: core/validators.py:172
|
||||
#: core/validators.py:170
|
||||
msgid "A valid URL is required."
|
||||
msgstr "En godkjent internettadresse er påbudt."
|
||||
|
||||
#: core/validators.py:186
|
||||
#: core/validators.py:184
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
@ -1056,69 +1060,69 @@ msgstr ""
|
||||
"Godkjent HTML er påbudt. Feilene var:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#: core/validators.py:191
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "Ikke godkjent XML: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#: core/validators.py:201
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "Ikke godkjent internettadresse: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
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."
|
||||
msgstr "Skriv inn en godkjent amerikansk stats forkortelse."
|
||||
|
||||
#: core/validators.py:226
|
||||
#: core/validators.py:224
|
||||
#, python-format
|
||||
msgid "Watch your mouth! The word %s is not allowed here."
|
||||
msgid_plural "Watch your mouth! The words %s are not allowed here."
|
||||
msgstr[0] "Pass munnen din! Ordet %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
|
||||
msgid "This field must match the '%s' field."
|
||||
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."
|
||||
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."
|
||||
msgstr "Vennligst skriv inn noe i begge felta, eller la dem stå blanke."
|
||||
|
||||
#: core/validators.py:279
|
||||
#: core/validators.py:277
|
||||
#, python-format
|
||||
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"
|
||||
|
||||
#: core/validators.py:291
|
||||
#: core/validators.py:289
|
||||
#, python-format
|
||||
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"
|
||||
|
||||
#: core/validators.py:310
|
||||
#: core/validators.py:308
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "Like verdier er ikke tillatt."
|
||||
|
||||
#: core/validators.py:333
|
||||
#: core/validators.py:331
|
||||
#, python-format
|
||||
msgid "This value must be a power of %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."
|
||||
msgstr "Vennligst skriv inn et godkjent desimal tall."
|
||||
|
||||
#: core/validators.py:346
|
||||
#: core/validators.py:344
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
@ -1126,7 +1130,7 @@ msgid_plural ""
|
||||
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."
|
||||
|
||||
#: core/validators.py:349
|
||||
#: core/validators.py:347
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
@ -1134,32 +1138,32 @@ msgid_plural ""
|
||||
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. "
|
||||
|
||||
#: core/validators.py:359
|
||||
#: core/validators.py:357
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr ""
|
||||
"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
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr ""
|
||||
"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."
|
||||
msgstr "Formatet i dette feltet er feil."
|
||||
|
||||
#: core/validators.py:388
|
||||
#: core/validators.py:386
|
||||
msgid "This field is invalid."
|
||||
msgstr "Dette feltet er feil."
|
||||
|
||||
#: core/validators.py:423
|
||||
#: core/validators.py:421
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr "Klarte ikke å motta noe fra %s."
|
||||
|
||||
#: core/validators.py:426
|
||||
#: core/validators.py:424
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 '%"
|
||||
"(contenttype)s'."
|
||||
|
||||
#: core/validators.py:459
|
||||
#: core/validators.py:457
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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)"
|
||||
"s\".)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#: core/validators.py:461
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"med \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:468
|
||||
#: core/validators.py:466
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(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 "
|
||||
"med \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#: core/validators.py:471
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(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 "
|
||||
"\"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#: core/validators.py:475
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"med \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:482
|
||||
#: core/validators.py:480
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
Binary file not shown.
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\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"
|
||||
"Last-Translator: João Paulo Farias <jpaulofarias@gmail.com>\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-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: 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:256
|
||||
msgid "All dates"
|
||||
#: 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: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/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
@ -74,112 +148,6 @@ msgstr ""
|
||||
msgid "Your e-mail address is not your username. Try '%s' instead."
|
||||
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:273 contrib/admin/views/doc.py:278
|
||||
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
|
||||
@ -249,7 +217,7 @@ msgstr ""
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:81
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:87
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
@ -261,35 +229,18 @@ msgstr ""
|
||||
msgid "XML text"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:27
|
||||
#: contrib/admin/templates/admin/change_form.html:14
|
||||
msgid "Add"
|
||||
msgstr "Adicionar"
|
||||
#: contrib/admin/templates/admin/base_site.html:4
|
||||
msgid "Django site admin"
|
||||
msgstr "Site de administração do Django"
|
||||
|
||||
#: 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/base_site.html:7
|
||||
msgid "Django administration"
|
||||
msgstr "Administração do Django"
|
||||
|
||||
#: 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/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
|
||||
@ -319,6 +270,40 @@ msgstr ""
|
||||
"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."
|
||||
|
||||
#: 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/change_form.html:19
|
||||
msgid "History"
|
||||
@ -348,14 +333,6 @@ msgstr ""
|
||||
"Este objeto não tem um histórico de alterações. Ele provavelmente não foi "
|
||||
"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
|
||||
msgid "Username:"
|
||||
msgstr "Usuário:"
|
||||
@ -368,32 +345,17 @@ msgstr "Senha:"
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr "Você <a href=\"/password_reset/\"esqueceu a senha</a>?"
|
||||
|
||||
#: 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/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Bem vindo,"
|
||||
|
||||
#: 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/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Alterar senha"
|
||||
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Encerrar sessão"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
@ -419,17 +381,23 @@ msgstr ""
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Sim, tenho certeza"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Bem vindo,"
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Alterar senha"
|
||||
#: 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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Encerrar sessão"
|
||||
#: 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/submit_line.html:3
|
||||
msgid "Delete"
|
||||
@ -566,6 +534,38 @@ msgstr "Obrigado por usar nosso site!"
|
||||
msgid "The %(site_name)s team"
|
||||
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
|
||||
msgid "Monday"
|
||||
msgstr "Segunda Feira"
|
||||
@ -670,56 +670,56 @@ msgstr "Nov."
|
||||
msgid "Dec."
|
||||
msgstr "Dez."
|
||||
|
||||
#: models/core.py:5
|
||||
#: models/core.py:7
|
||||
msgid "domain name"
|
||||
msgstr "nome do domínio"
|
||||
|
||||
#: models/core.py:6
|
||||
#: models/core.py:8
|
||||
msgid "display name"
|
||||
msgstr "nome para exibição"
|
||||
|
||||
#: models/core.py:8
|
||||
#: models/core.py:10
|
||||
msgid "site"
|
||||
msgstr "site"
|
||||
|
||||
#: models/core.py:9
|
||||
#: models/core.py:11
|
||||
msgid "sites"
|
||||
msgstr "sites"
|
||||
|
||||
#: models/core.py:22
|
||||
#: models/core.py:28
|
||||
msgid "label"
|
||||
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
|
||||
msgid "name"
|
||||
msgstr "nome:"
|
||||
|
||||
#: models/core.py:25
|
||||
#: models/core.py:31
|
||||
msgid "package"
|
||||
msgstr "pacote"
|
||||
|
||||
#: models/core.py:26
|
||||
#: models/core.py:32
|
||||
msgid "packages"
|
||||
msgstr "pacotes"
|
||||
|
||||
#: models/core.py:36
|
||||
#: models/core.py:42
|
||||
msgid "python module name"
|
||||
msgstr "nome do módulo python"
|
||||
|
||||
#: models/core.py:38
|
||||
#: models/core.py:44
|
||||
msgid "content type"
|
||||
msgstr "tipo de conteúdo"
|
||||
|
||||
#: models/core.py:39
|
||||
#: models/core.py:45
|
||||
msgid "content types"
|
||||
msgstr "tipos de conteúdo"
|
||||
|
||||
#: models/core.py:62
|
||||
#: models/core.py:68
|
||||
msgid "redirect from"
|
||||
msgstr "redirecionar de"
|
||||
|
||||
#: models/core.py:63
|
||||
#: models/core.py:69
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
@ -727,11 +727,11 @@ msgstr ""
|
||||
"Deve conter um caminho absoluto, excluindo o nome de domínio. Exemplo: '/"
|
||||
"eventos/busca/'."
|
||||
|
||||
#: models/core.py:64
|
||||
#: models/core.py:70
|
||||
msgid "redirect to"
|
||||
msgstr "redirecionar para"
|
||||
|
||||
#: models/core.py:65
|
||||
#: models/core.py:71
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
@ -739,36 +739,36 @@ msgstr ""
|
||||
"Deve conter um caminho absoluto (como acima) ou uma URL completa, começando "
|
||||
"com 'http://'."
|
||||
|
||||
#: models/core.py:67
|
||||
#: models/core.py:73
|
||||
msgid "redirect"
|
||||
msgstr "redirecionar"
|
||||
|
||||
#: models/core.py:68
|
||||
#: models/core.py:74
|
||||
msgid "redirects"
|
||||
msgstr "redirecionamentos"
|
||||
|
||||
#: models/core.py:82
|
||||
#: models/core.py:88
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: models/core.py:83
|
||||
#: models/core.py:89
|
||||
msgid "title"
|
||||
msgstr "título"
|
||||
|
||||
#: models/core.py:84
|
||||
#: models/core.py:90
|
||||
msgid "content"
|
||||
msgstr "conteúdo"
|
||||
|
||||
#: models/core.py:85
|
||||
#: models/core.py:91
|
||||
msgid "enable comments"
|
||||
msgstr "habilitar comentários"
|
||||
|
||||
#: models/core.py:86
|
||||
#: models/core.py:92
|
||||
msgid "template name"
|
||||
msgstr "nome do modelo"
|
||||
|
||||
#: models/core.py:87
|
||||
#: models/core.py:93
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
@ -776,39 +776,39 @@ msgstr ""
|
||||
"Exemplo: 'flatfiles/contact_page'. Se não for informado, será utilizado "
|
||||
"'flatfiles/default'."
|
||||
|
||||
#: models/core.py:88
|
||||
#: models/core.py:94
|
||||
msgid "registration required"
|
||||
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."
|
||||
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"
|
||||
msgstr "página plana"
|
||||
|
||||
#: models/core.py:93
|
||||
#: models/core.py:99
|
||||
msgid "flat pages"
|
||||
msgstr "páginas planas"
|
||||
|
||||
#: models/core.py:114
|
||||
#: models/core.py:117
|
||||
msgid "session key"
|
||||
msgstr "chave da sessão"
|
||||
|
||||
#: models/core.py:115
|
||||
#: models/core.py:118
|
||||
msgid "session data"
|
||||
msgstr "dados da sessão"
|
||||
|
||||
#: models/core.py:116
|
||||
#: models/core.py:119
|
||||
msgid "expire date"
|
||||
msgstr "data de expiração"
|
||||
|
||||
#: models/core.py:118
|
||||
#: models/core.py:121
|
||||
msgid "session"
|
||||
msgstr "sessão"
|
||||
|
||||
#: models/core.py:119
|
||||
#: models/core.py:122
|
||||
msgid "sessions"
|
||||
msgstr "sessões"
|
||||
|
||||
@ -957,71 +957,75 @@ msgstr "Sérvio"
|
||||
msgid "Simplified Chinese"
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
msgstr "Informe um endereço IP válido."
|
||||
|
||||
#: core/validators.py:104
|
||||
#: core/validators.py:102
|
||||
msgid "Empty values are not allowed here."
|
||||
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."
|
||||
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."
|
||||
msgstr "Este valor não pode conter apenas dígitos."
|
||||
|
||||
#: core/validators.py:117
|
||||
#: core/validators.py:115
|
||||
msgid "Enter a whole number."
|
||||
msgstr "Informe um número inteiro."
|
||||
|
||||
#: core/validators.py:121
|
||||
#: core/validators.py:119
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
msgstr "Informe um endereço de email válido."
|
||||
|
||||
#: core/validators.py:149
|
||||
#: core/validators.py:147
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
@ -1029,27 +1033,27 @@ msgstr ""
|
||||
"Envie uma imagem válida. O arquivo enviado não é uma imagem ou está "
|
||||
"corrompido."
|
||||
|
||||
#: core/validators.py:156
|
||||
#: core/validators.py:154
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr "A URL %s não aponta para um imagem válida."
|
||||
|
||||
#: core/validators.py:160
|
||||
#: core/validators.py:158
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
"Números de telefone deves estar no formato XXX-XXX-XXXX.\"%s\" é inválido."
|
||||
|
||||
#: core/validators.py:168
|
||||
#: core/validators.py:166
|
||||
#, python-format
|
||||
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."
|
||||
|
||||
#: core/validators.py:172
|
||||
#: core/validators.py:170
|
||||
msgid "A valid URL is required."
|
||||
msgstr "Uma URL válida é exigida."
|
||||
|
||||
#: core/validators.py:186
|
||||
#: core/validators.py:184
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#: core/validators.py:191
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "XML mal formado: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#: core/validators.py:201
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "URL inválida: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr "A URL %s é um link quebrado."
|
||||
|
||||
#: core/validators.py:211
|
||||
#: core/validators.py:209
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr "Informe uma abreviação válida de nome de um estado dos EUA."
|
||||
|
||||
#: core/validators.py:226
|
||||
#: core/validators.py:224
|
||||
#, python-format
|
||||
msgid "Watch your mouth! The word %s is not allowed here."
|
||||
msgid_plural "Watch your mouth! The words %s are not allowed here."
|
||||
msgstr[0] "Lave sua boca! A palavra %s não é permitida 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
|
||||
msgid "This field must match the '%s' field."
|
||||
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."
|
||||
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."
|
||||
msgstr "Informe ambos os campos ou deixe ambos vazios."
|
||||
|
||||
#: core/validators.py:279
|
||||
#: core/validators.py:277
|
||||
#, python-format
|
||||
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."
|
||||
|
||||
#: core/validators.py:291
|
||||
#: core/validators.py:289
|
||||
#, python-format
|
||||
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."
|
||||
|
||||
#: core/validators.py:310
|
||||
#: core/validators.py:308
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "Valores duplicados não são permitidos."
|
||||
|
||||
#: core/validators.py:333
|
||||
#: core/validators.py:331
|
||||
#, python-format
|
||||
msgid "This value must be a power of %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."
|
||||
msgstr "Informe um número decimal."
|
||||
|
||||
#: core/validators.py:346
|
||||
#: core/validators.py:344
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
@ -1128,7 +1132,7 @@ msgid_plural ""
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:349
|
||||
#: core/validators.py:347
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
@ -1136,30 +1140,30 @@ msgid_plural ""
|
||||
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."
|
||||
|
||||
#: core/validators.py:359
|
||||
#: core/validators.py:357
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr "Verifique se o arquivo enviado tem pelo menos %s bytes."
|
||||
|
||||
#: core/validators.py:360
|
||||
#: core/validators.py:358
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
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."
|
||||
msgstr "O formato deste campo está errado."
|
||||
|
||||
#: core/validators.py:388
|
||||
#: core/validators.py:386
|
||||
msgid "This field is invalid."
|
||||
msgstr "Este campo é inválido."
|
||||
|
||||
#: core/validators.py:423
|
||||
#: core/validators.py:421
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr "Não foi possível receber dados de %s."
|
||||
|
||||
#: core/validators.py:426
|
||||
#: core/validators.py:424
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"inválido."
|
||||
|
||||
#: core/validators.py:459
|
||||
#: core/validators.py:457
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#: core/validators.py:461
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"começa com \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:468
|
||||
#: core/validators.py:466
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(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 "
|
||||
"\"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#: core/validators.py:471
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(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 \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#: core/validators.py:475
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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."
|
||||
"(Linha começa com \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:482
|
||||
#: core/validators.py:480
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
|
Binary file not shown.
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\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"
|
||||
"Last-Translator: Dmitry Sorokin <ds@@dial.com.ru>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -15,39 +15,112 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=koi8-r\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/models/admin.py:6
|
||||
#, fuzzy
|
||||
msgid "action time"
|
||||
msgstr "äÁÔÁ/×ÒÅÍÑ"
|
||||
|
||||
#: contrib/admin/models/admin.py:9
|
||||
msgid "object id"
|
||||
#: 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/models/admin.py:10
|
||||
msgid "object repr"
|
||||
#: 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/models/admin.py:11
|
||||
msgid "action flag"
|
||||
#: contrib/admin/views/main.py:210
|
||||
#, python-format
|
||||
msgid "Select %s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/models/admin.py:12
|
||||
msgid "change message"
|
||||
#: contrib/admin/views/main.py:211
|
||||
#, 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 ""
|
||||
|
||||
#: contrib/admin/models/admin.py:15
|
||||
msgid "log entry"
|
||||
#: contrib/admin/views/main.py:575 contrib/admin/views/main.py:651
|
||||
msgid "You may edit it again below."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/models/admin.py:16
|
||||
msgid "log entries"
|
||||
#: contrib/admin/views/main.py:583 contrib/admin/views/main.py:660
|
||||
#, python-format
|
||||
msgid "You may add another %s below."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templatetags/admin_list.py:256
|
||||
msgid "All dates"
|
||||
#: 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/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
@ -74,112 +147,6 @@ msgstr ""
|
||||
msgid "Your e-mail address is not your username. Try '%s' instead."
|
||||
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:273 contrib/admin/views/doc.py:278
|
||||
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
|
||||
@ -247,7 +214,7 @@ msgstr ""
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:81
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:87
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
@ -259,35 +226,18 @@ msgstr ""
|
||||
msgid "XML text"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:27
|
||||
#: contrib/admin/templates/admin/change_form.html:14
|
||||
msgid "Add"
|
||||
msgstr "äÏÂÁ×ÉÔØ"
|
||||
#: contrib/admin/templates/admin/base_site.html:4
|
||||
msgid "Django site admin"
|
||||
msgstr "áÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÊ ÓÁÊÔ Django"
|
||||
|
||||
#: 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/base_site.html:7
|
||||
msgid "Django administration"
|
||||
msgstr "áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ Django"
|
||||
|
||||
#: 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/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
|
||||
@ -317,6 +267,40 @@ msgstr ""
|
||||
"ðÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ. ïÔÞÅÔ Ï ÏÛÉÂËÅ ÏÔÐÒÁ×ÌÅÎ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁÍ ÓÁÊÔÁ ÐÏ 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/change_form.html:19
|
||||
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
|
||||
msgid "Username:"
|
||||
msgstr "éÍÑ:"
|
||||
@ -366,32 +342,17 @@ msgstr "
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr "÷Ù <a href=\"/password_reset/\">ÚÁÂÙÌÉ ÐÁÒÏÌØ</a>?"
|
||||
|
||||
#: contrib/admin/templates/admin/404.html:4
|
||||
#: contrib/admin/templates/admin/404.html:8
|
||||
msgid "Page not found"
|
||||
msgstr "óÔÒÁÎÉÃÁ ÎÅ ÎÁÊÄÅÎÁ"
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
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/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "éÚÍÅÎÅÎÉÅ ÐÁÒÏÌÑ"
|
||||
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "÷ÙÈÏÄ"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
@ -417,17 +378,23 @@ msgstr ""
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "äÁ, Ñ Õ×ÅÒÅÎ"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ,"
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "÷ÙÈÏÄ"
|
||||
#: 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/submit_line.html:3
|
||||
msgid "Delete"
|
||||
@ -563,6 +530,39 @@ msgstr "
|
||||
msgid "The %(site_name)s team"
|
||||
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
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
@ -667,139 +667,139 @@ msgstr ""
|
||||
msgid "Dec."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:5
|
||||
#: models/core.py:7
|
||||
msgid "domain name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:6
|
||||
#: models/core.py:8
|
||||
msgid "display name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:8
|
||||
#: models/core.py:10
|
||||
msgid "site"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:9
|
||||
#: models/core.py:11
|
||||
msgid "sites"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:22
|
||||
#: models/core.py:28
|
||||
msgid "label"
|
||||
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
|
||||
msgid "name"
|
||||
msgstr "éÍÑ:"
|
||||
|
||||
#: models/core.py:25
|
||||
#: models/core.py:31
|
||||
msgid "package"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:26
|
||||
#: models/core.py:32
|
||||
msgid "packages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:36
|
||||
#: models/core.py:42
|
||||
msgid "python module name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:38
|
||||
#: models/core.py:44
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:39
|
||||
#: models/core.py:45
|
||||
msgid "content types"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:62
|
||||
#: models/core.py:68
|
||||
msgid "redirect from"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:63
|
||||
#: models/core.py:69
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:64
|
||||
#: models/core.py:70
|
||||
msgid "redirect to"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:65
|
||||
#: models/core.py:71
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:67
|
||||
#: models/core.py:73
|
||||
msgid "redirect"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:68
|
||||
#: models/core.py:74
|
||||
msgid "redirects"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:82
|
||||
#: models/core.py:88
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:83
|
||||
#: models/core.py:89
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:84
|
||||
#: models/core.py:90
|
||||
msgid "content"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:85
|
||||
#: models/core.py:91
|
||||
msgid "enable comments"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:86
|
||||
#: models/core.py:92
|
||||
msgid "template name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:87
|
||||
#: models/core.py:93
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:88
|
||||
#: models/core.py:94
|
||||
msgid "registration required"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:92
|
||||
#: models/core.py:98
|
||||
msgid "flat page"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:93
|
||||
#: models/core.py:99
|
||||
msgid "flat pages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:114
|
||||
#: models/core.py:117
|
||||
msgid "session key"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:115
|
||||
#: models/core.py:118
|
||||
msgid "session data"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:116
|
||||
#: models/core.py:119
|
||||
msgid "expire date"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:118
|
||||
#: models/core.py:121
|
||||
msgid "session"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:119
|
||||
#: models/core.py:122
|
||||
msgid "sessions"
|
||||
msgstr ""
|
||||
|
||||
@ -945,167 +945,171 @@ msgstr ""
|
||||
msgid "Simplified Chinese"
|
||||
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."
|
||||
msgstr "úÎÁÞÅÎÉÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÔÏÌØËÏ ÂÕË×Ù, ÃÉÆÒÙ É ÐÏÄÞÅÒËÉ×ÁÎÉÑ."
|
||||
|
||||
#: core/validators.py:62
|
||||
#: core/validators.py:63
|
||||
#, fuzzy
|
||||
msgid "This value must contain only letters, numbers, underscores and slashes."
|
||||
msgstr "úÎÁÞÅÎÉÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÔÏÌØËÏ ÂÕË×Ù, ÃÉÆÒÙ É ÐÏÄÞÅÒËÉ×ÁÎÉÑ."
|
||||
|
||||
#: core/validators.py:70
|
||||
#: core/validators.py:71
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:74
|
||||
#: core/validators.py:75
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:81
|
||||
#: core/validators.py:82
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:93
|
||||
#: core/validators.py:94
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:100
|
||||
#: core/validators.py:98
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:104
|
||||
#: core/validators.py:102
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:108
|
||||
#: core/validators.py:106
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:112
|
||||
#: core/validators.py:110
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:117
|
||||
#: core/validators.py:115
|
||||
msgid "Enter a whole number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:121
|
||||
#: core/validators.py:119
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:125
|
||||
#: core/validators.py:123
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:129
|
||||
#: core/validators.py:127
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:133
|
||||
#: core/validators.py:131
|
||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:137
|
||||
#: core/validators.py:135
|
||||
#, fuzzy
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "E-mail ÁÄÒÅÓ:"
|
||||
|
||||
#: core/validators.py:149
|
||||
#: core/validators.py:147
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:156
|
||||
#: core/validators.py:154
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:160
|
||||
#: core/validators.py:158
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:168
|
||||
#: core/validators.py:166
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:172
|
||||
#: core/validators.py:170
|
||||
msgid "A valid URL is required."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:186
|
||||
#: core/validators.py:184
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:193
|
||||
#: core/validators.py:191
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:203
|
||||
#: core/validators.py:201
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:205
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:211
|
||||
#: core/validators.py:209
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:226
|
||||
#: core/validators.py:224
|
||||
#, python-format
|
||||
msgid "Watch your mouth! The word %s is not allowed here."
|
||||
msgid_plural "Watch your mouth! The words %s are not allowed here."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:233
|
||||
#: core/validators.py:231
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:252
|
||||
#: core/validators.py:250
|
||||
msgid "Please enter something for at least one field."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:279
|
||||
#: core/validators.py:277
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:291
|
||||
#: core/validators.py:289
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is not %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:310
|
||||
#: core/validators.py:308
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:333
|
||||
#: core/validators.py:331
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:344
|
||||
#: core/validators.py:342
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:346
|
||||
#: core/validators.py:344
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
@ -1113,7 +1117,7 @@ msgid_plural ""
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:349
|
||||
#: core/validators.py:347
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
@ -1121,71 +1125,71 @@ msgid_plural ""
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:359
|
||||
#: core/validators.py:357
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:360
|
||||
#: core/validators.py:358
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:373
|
||||
#: core/validators.py:371
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:388
|
||||
#: core/validators.py:386
|
||||
msgid "This field is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:423
|
||||
#: core/validators.py:421
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:426
|
||||
#: core/validators.py:424
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:459
|
||||
#: core/validators.py:457
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:463
|
||||
#: core/validators.py:461
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some text starting on line %(line)s is not allowed in that context. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:468
|
||||
#: core/validators.py:466
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:473
|
||||
#: core/validators.py:471
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:477
|
||||
#: core/validators.py:475
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A tag on line %(line)s is missing one or more required attributes. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:482
|
||||
#: core/validators.py:480
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
|
BIN
django/conf/locale/sk/LC_MESSAGES/django.mo
Normal file
BIN
django/conf/locale/sk/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
1234
django/conf/locale/sk/LC_MESSAGES/django.po
Normal file
1234
django/conf/locale/sk/LC_MESSAGES/django.po
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django Serbian (latin) translation v1.0\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"
|
||||
"Last-Translator: Petar Marić <petar.maric@gmail.com>\n"
|
||||
"Language-Team: Nesh <nesh@studioquatro.co.yu> & Petar <petar.maric@gmail."
|
||||
@ -17,38 +17,112 @@ msgstr ""
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
"X-Poedit-Basepath: ../../../../\n"
|
||||
|
||||
#: 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:256
|
||||
msgid "All dates"
|
||||
#: 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: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/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
@ -75,112 +149,6 @@ msgstr ""
|
||||
msgid "Your e-mail address is not your username. Try '%s' instead."
|
||||
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:273 contrib/admin/views/doc.py:278
|
||||
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
|
||||
@ -252,7 +220,7 @@ msgstr ""
|
||||
|
||||
# nesh: ovo se valjda ne prevodi
|
||||
# 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"
|
||||
msgstr ""
|
||||
|
||||
@ -264,35 +232,18 @@ msgstr ""
|
||||
msgid "XML text"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:27
|
||||
#: contrib/admin/templates/admin/change_form.html:14
|
||||
msgid "Add"
|
||||
msgstr "Dodaj"
|
||||
#: contrib/admin/templates/admin/base_site.html:4
|
||||
msgid "Django site admin"
|
||||
msgstr "Django administracija sajta"
|
||||
|
||||
#: 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/base_site.html:7
|
||||
msgid "Django administration"
|
||||
msgstr "Django administracija"
|
||||
|
||||
#: 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/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
|
||||
@ -322,6 +273,40 @@ msgstr ""
|
||||
"Dogodila se greška koja je prijavljena administratorima i biće popravljena "
|
||||
"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/change_form.html:19
|
||||
msgid "History"
|
||||
@ -351,14 +336,6 @@ msgstr ""
|
||||
"Ovaj objekat nema istoriju promena. Najverovatnije nije dodat korišćenjem "
|
||||
"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
|
||||
msgid "Username:"
|
||||
msgstr "Korisničko ime:"
|
||||
@ -371,33 +348,17 @@ msgstr "Lozinka:"
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</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/404.html:8
|
||||
msgid "Page not found"
|
||||
msgstr "Strana nije pronađena"
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Dobrodošli,"
|
||||
|
||||
#: 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/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Izmeni lozinku"
|
||||
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
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] ""
|
||||
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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Odjavi se"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
@ -422,17 +383,24 @@ msgstr ""
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Da, siguran sam"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Dobrodošli,"
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Izmeni lozinku"
|
||||
#: 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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Odjavi se"
|
||||
#: 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/submit_line.html:3
|
||||
msgid "Delete"
|
||||
@ -569,6 +537,38 @@ msgstr "Hvala Vam na poseti!"
|
||||
msgid "The %(site_name)s team"
|
||||
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
|
||||
msgid "Monday"
|
||||
msgstr "Ponedeljak"
|
||||
@ -673,55 +673,55 @@ msgstr "Nov."
|
||||
msgid "Dec."
|
||||
msgstr "Dec."
|
||||
|
||||
#: models/core.py:5
|
||||
#: models/core.py:7
|
||||
msgid "domain name"
|
||||
msgstr "ime domena"
|
||||
|
||||
#: models/core.py:6
|
||||
#: models/core.py:8
|
||||
msgid "display name"
|
||||
msgstr "naziv"
|
||||
|
||||
#: models/core.py:8
|
||||
#: models/core.py:10
|
||||
msgid "site"
|
||||
msgstr "sajt"
|
||||
|
||||
#: models/core.py:9
|
||||
#: models/core.py:11
|
||||
msgid "sites"
|
||||
msgstr "sajtovi"
|
||||
|
||||
#: models/core.py:22
|
||||
#: models/core.py:28
|
||||
msgid "label"
|
||||
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"
|
||||
msgstr "ime"
|
||||
|
||||
#: models/core.py:25
|
||||
#: models/core.py:31
|
||||
msgid "package"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:26
|
||||
#: models/core.py:32
|
||||
msgid "packages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:36
|
||||
#: models/core.py:42
|
||||
msgid "python module name"
|
||||
msgstr "ime python modula"
|
||||
|
||||
#: models/core.py:38
|
||||
#: models/core.py:44
|
||||
msgid "content type"
|
||||
msgstr "tip sadržaja"
|
||||
|
||||
#: models/core.py:39
|
||||
#: models/core.py:45
|
||||
msgid "content types"
|
||||
msgstr "tipovi sadržaja"
|
||||
|
||||
#: models/core.py:62
|
||||
#: models/core.py:68
|
||||
msgid "redirect from"
|
||||
msgstr "redirekcija od"
|
||||
|
||||
#: models/core.py:63
|
||||
#: models/core.py:69
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
@ -729,11 +729,11 @@ msgstr ""
|
||||
"Ovde treba upisati apsolutnu putanju bez imena domena. Primer: '/events/"
|
||||
"search/'."
|
||||
|
||||
#: models/core.py:64
|
||||
#: models/core.py:70
|
||||
msgid "redirect to"
|
||||
msgstr "redirekcija na"
|
||||
|
||||
#: models/core.py:65
|
||||
#: models/core.py:71
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
@ -741,38 +741,38 @@ msgstr ""
|
||||
"Ovo može biti apsolutna putanja (kao gore) ili puni URL koji počinje sa "
|
||||
"'http://'."
|
||||
|
||||
#: models/core.py:67
|
||||
#: models/core.py:73
|
||||
msgid "redirect"
|
||||
msgstr "redirekcija"
|
||||
|
||||
#: models/core.py:68
|
||||
#: models/core.py:74
|
||||
msgid "redirects"
|
||||
msgstr "redirekcije"
|
||||
|
||||
#: models/core.py:82
|
||||
#: models/core.py:88
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
"Primer: '/about/contact/'. Proverite da li ste uneli početnu i kranju kosu "
|
||||
"crtu."
|
||||
|
||||
#: models/core.py:83
|
||||
#: models/core.py:89
|
||||
msgid "title"
|
||||
msgstr "naslov"
|
||||
|
||||
#: models/core.py:84
|
||||
#: models/core.py:90
|
||||
msgid "content"
|
||||
msgstr "sadržaj"
|
||||
|
||||
#: models/core.py:85
|
||||
#: models/core.py:91
|
||||
msgid "enable comments"
|
||||
msgstr "omogućite komentare"
|
||||
|
||||
#: models/core.py:86
|
||||
#: models/core.py:92
|
||||
msgid "template name"
|
||||
msgstr "ime templejta"
|
||||
|
||||
#: models/core.py:87
|
||||
#: models/core.py:93
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
@ -780,41 +780,41 @@ msgstr ""
|
||||
"Primer: 'flatfiles/contact-page'. Ako nije dato sistem će koristiti "
|
||||
"'flatfiles/default'."
|
||||
|
||||
#: models/core.py:88
|
||||
#: models/core.py:94
|
||||
msgid "registration required"
|
||||
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."
|
||||
msgstr ""
|
||||
"Ako izaberete ovu opciju samo prijavljeni korisnici će imati pristup datoj "
|
||||
"strani."
|
||||
|
||||
#: models/core.py:92
|
||||
#: models/core.py:98
|
||||
msgid "flat page"
|
||||
msgstr "statična strana"
|
||||
|
||||
#: models/core.py:93
|
||||
#: models/core.py:99
|
||||
msgid "flat pages"
|
||||
msgstr "statične strane"
|
||||
|
||||
#: models/core.py:114
|
||||
#: models/core.py:117
|
||||
msgid "session key"
|
||||
msgstr "ključ sesije"
|
||||
|
||||
#: models/core.py:115
|
||||
#: models/core.py:118
|
||||
msgid "session data"
|
||||
msgstr "podaci sesije"
|
||||
|
||||
#: models/core.py:116
|
||||
#: models/core.py:119
|
||||
msgid "expire date"
|
||||
msgstr "datum prestanka važenja sesije"
|
||||
|
||||
#: models/core.py:118
|
||||
#: models/core.py:121
|
||||
msgid "session"
|
||||
msgstr "sesija"
|
||||
|
||||
#: models/core.py:119
|
||||
#: models/core.py:122
|
||||
msgid "sessions"
|
||||
msgstr "sesije"
|
||||
|
||||
@ -957,73 +957,77 @@ msgstr "Srpski"
|
||||
msgid "Simplified Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:49
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
|
||||
# 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."
|
||||
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."
|
||||
msgstr ""
|
||||
"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."
|
||||
msgstr "Velika slova ovde nisu dozvoljena."
|
||||
|
||||
#: core/validators.py:74
|
||||
#: core/validators.py:75
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr "Mala slova ovde nisu dozvoljena."
|
||||
|
||||
#: core/validators.py:81
|
||||
#: core/validators.py:82
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr "Unesite samo brojeve razdvojene zarezima."
|
||||
|
||||
#: core/validators.py:93
|
||||
#: core/validators.py:94
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr "Unesite ispravne e-mail adrese razdvojene zarezima."
|
||||
|
||||
#: core/validators.py:100
|
||||
#: core/validators.py:98
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr "Unesite ispravnu IP adresu."
|
||||
|
||||
#: core/validators.py:104
|
||||
#: core/validators.py:102
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr "Prazne vrednosti ovde nisu dozvoljene."
|
||||
|
||||
#: core/validators.py:108
|
||||
#: core/validators.py:106
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
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."
|
||||
msgstr "Podatak se ne može sastojati samo od brojeva."
|
||||
|
||||
#: core/validators.py:117
|
||||
#: core/validators.py:115
|
||||
msgid "Enter a whole number."
|
||||
msgstr "Unesite celi broj."
|
||||
|
||||
#: core/validators.py:121
|
||||
#: core/validators.py:119
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
msgstr "Unesite ispravnu e-mail adresu."
|
||||
|
||||
#: core/validators.py:149
|
||||
#: core/validators.py:147
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
@ -1031,27 +1035,27 @@ msgstr ""
|
||||
"Pošaljite ispravnu sliku. Fajl koji ste poslali ili nije slika ili je sam "
|
||||
"fajl oštećen."
|
||||
|
||||
#: core/validators.py:156
|
||||
#: core/validators.py:154
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
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
|
||||
#: core/validators.py:160
|
||||
#: core/validators.py:158
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:168
|
||||
#: core/validators.py:166
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr "URL %s ne pokazuje na ispravni QuickTime video fajl."
|
||||
|
||||
#: core/validators.py:172
|
||||
#: core/validators.py:170
|
||||
msgid "A valid URL is required."
|
||||
msgstr "Unesite ispravan URL."
|
||||
|
||||
#: core/validators.py:186
|
||||
#: core/validators.py:184
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
@ -1060,27 +1064,27 @@ msgstr ""
|
||||
"Unesite ispravan HTML. Greške su:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#: core/validators.py:191
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "Neispravan XML: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#: core/validators.py:201
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "Neispravan URL: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr "URL %s je neispravan link."
|
||||
|
||||
# nesh: Ni ovo nije interesantno za i18n
|
||||
#: core/validators.py:211
|
||||
#: core/validators.py:209
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:226
|
||||
#: core/validators.py:224
|
||||
#, python-format
|
||||
msgid "Watch your mouth! The word %s is not allowed here."
|
||||
msgid_plural "Watch your mouth! The words %s are not allowed here."
|
||||
@ -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[2] "Pripazi na jezik! %s reči nisu ovde dozvoljene."
|
||||
|
||||
#: core/validators.py:233
|
||||
#: core/validators.py:231
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
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."
|
||||
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."
|
||||
msgstr "Popunite oba polja ili oba ostavite prazna."
|
||||
|
||||
#: core/validators.py:279
|
||||
#: core/validators.py:277
|
||||
#, python-format
|
||||
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"
|
||||
|
||||
#: core/validators.py:291
|
||||
#: core/validators.py:289
|
||||
#, python-format
|
||||
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"
|
||||
|
||||
#: core/validators.py:310
|
||||
#: core/validators.py:308
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "Duple vrednosti nisu dozvoljene."
|
||||
|
||||
#: core/validators.py:333
|
||||
#: core/validators.py:331
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr "Vrednost mora biti stepena %s."
|
||||
|
||||
#: core/validators.py:344
|
||||
#: core/validators.py:342
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr "Unesite ispravan decimalni broj."
|
||||
|
||||
#: core/validators.py:346
|
||||
#: core/validators.py:344
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
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[2] "Unesite ispravan decimalni broj sa %s cifara."
|
||||
|
||||
#: core/validators.py:349
|
||||
#: core/validators.py:347
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
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[2] "Unesite decimalni broj sa najviše %s decimalnih mesta."
|
||||
|
||||
#: core/validators.py:359
|
||||
#: core/validators.py:357
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr "Veličina fajla mora biti najmanje %s bajtova."
|
||||
|
||||
#: core/validators.py:360
|
||||
#: core/validators.py:358
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
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."
|
||||
msgstr "Pogrešan format polja."
|
||||
|
||||
#: core/validators.py:388
|
||||
#: core/validators.py:386
|
||||
msgid "This field is invalid."
|
||||
msgstr "Neispravno polje."
|
||||
|
||||
#: core/validators.py:423
|
||||
#: core/validators.py:421
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr "Ništa nije moglo da se skine sa URL-a %s."
|
||||
|
||||
#: core/validators.py:426
|
||||
#: core/validators.py:424
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr ""
|
||||
"Sa URL-a %(url)s se vratio pogrešan Content-Type header '%(contenttype)s'."
|
||||
|
||||
#: core/validators.py:459
|
||||
#: core/validators.py:457
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#: core/validators.py:461
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"počinje sa \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:468
|
||||
#: core/validators.py:466
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(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)"
|
||||
"s\".)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#: core/validators.py:471
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
@ -1207,7 +1211,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Tag \"<%(tag)s>\" u redu %(line)s je neispravan. (Red počinje \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#: core/validators.py:475
|
||||
#, python-format
|
||||
msgid ""
|
||||
"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 \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:482
|
||||
#: core/validators.py:480
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
|
Binary file not shown.
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django v1.0\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"
|
||||
"Last-Translator: limodou <limodou@gmail.com>\n"
|
||||
"Language-Team: Simplified Chinese <limodou@gmail.com>\n"
|
||||
@ -18,38 +18,112 @@ msgstr ""
|
||||
"X-Poedit-Country: CHINA\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#: 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:256
|
||||
msgid "All dates"
|
||||
#: 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: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/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
@ -76,112 +150,6 @@ msgstr ""
|
||||
msgid "Your e-mail address is not your username. Try '%s' instead."
|
||||
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:273 contrib/admin/views/doc.py:278
|
||||
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:281
|
||||
@ -251,7 +219,7 @@ msgstr ""
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:81
|
||||
#: contrib/admin/views/doc.py:284 models/core.py:87
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
@ -263,35 +231,18 @@ msgstr ""
|
||||
msgid "XML text"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:27
|
||||
#: contrib/admin/templates/admin/change_form.html:14
|
||||
msgid "Add"
|
||||
msgstr "增加"
|
||||
#: contrib/admin/templates/admin/base_site.html:4
|
||||
msgid "Django site admin"
|
||||
msgstr "Django管理站点"
|
||||
|
||||
#: 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/base_site.html:7
|
||||
msgid "Django administration"
|
||||
msgstr "Django管理员"
|
||||
|
||||
#: 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/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
|
||||
@ -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/change_form.html:19
|
||||
msgid "History"
|
||||
@ -348,14 +333,6 @@ msgid ""
|
||||
"admin site."
|
||||
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
|
||||
msgid "Username:"
|
||||
msgstr "用户名:"
|
||||
@ -368,32 +345,17 @@ msgstr "口令:"
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr "<a href=\"/password_reset/\">忘记你的密码</a>?"
|
||||
|
||||
#: contrib/admin/templates/admin/404.html:4
|
||||
#: contrib/admin/templates/admin/404.html:8
|
||||
msgid "Page not found"
|
||||
msgstr "页面没有找到"
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
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/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "修改口令"
|
||||
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "注销"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
@ -417,17 +379,23 @@ msgstr ""
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "是的,我确定"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "欢迎,"
|
||||
#: contrib/admin/templates/admin/change_form.html:20
|
||||
msgid "View on site"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
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/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "注销"
|
||||
#: 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/submit_line.html:3
|
||||
msgid "Delete"
|
||||
@ -563,6 +531,38 @@ msgstr "感谢使用我们的站点!"
|
||||
msgid "The %(site_name)s team"
|
||||
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
|
||||
msgid "Monday"
|
||||
msgstr "星期一"
|
||||
@ -667,139 +667,139 @@ msgstr "十一月"
|
||||
msgid "Dec."
|
||||
msgstr "十二月"
|
||||
|
||||
#: models/core.py:5
|
||||
#: models/core.py:7
|
||||
msgid "domain name"
|
||||
msgstr "域名"
|
||||
|
||||
#: models/core.py:6
|
||||
#: models/core.py:8
|
||||
msgid "display name"
|
||||
msgstr "显示名"
|
||||
|
||||
#: models/core.py:8
|
||||
#: models/core.py:10
|
||||
msgid "site"
|
||||
msgstr "站点"
|
||||
|
||||
#: models/core.py:9
|
||||
#: models/core.py:11
|
||||
msgid "sites"
|
||||
msgstr "站点"
|
||||
|
||||
#: models/core.py:22
|
||||
#: models/core.py:28
|
||||
msgid "label"
|
||||
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"
|
||||
msgstr "名称"
|
||||
|
||||
#: models/core.py:25
|
||||
#: models/core.py:31
|
||||
msgid "package"
|
||||
msgstr "包"
|
||||
|
||||
#: models/core.py:26
|
||||
#: models/core.py:32
|
||||
msgid "packages"
|
||||
msgstr "包"
|
||||
|
||||
#: models/core.py:36
|
||||
#: models/core.py:42
|
||||
msgid "python module name"
|
||||
msgstr "python模块名"
|
||||
|
||||
#: models/core.py:38
|
||||
#: models/core.py:44
|
||||
msgid "content type"
|
||||
msgstr "内容类型"
|
||||
|
||||
#: models/core.py:39
|
||||
#: models/core.py:45
|
||||
msgid "content types"
|
||||
msgstr "内容类型"
|
||||
|
||||
#: models/core.py:62
|
||||
#: models/core.py:68
|
||||
msgid "redirect from"
|
||||
msgstr "重定向自"
|
||||
|
||||
#: models/core.py:63
|
||||
#: models/core.py:69
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr "应该是一个绝对路径,不包括域名。例如:'/events/search/'。"
|
||||
|
||||
#: models/core.py:64
|
||||
#: models/core.py:70
|
||||
msgid "redirect to"
|
||||
msgstr "重定向到"
|
||||
|
||||
#: models/core.py:65
|
||||
#: models/core.py:71
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr "可以是绝对路径(同上)或以'http://'开始的全URL。"
|
||||
|
||||
#: models/core.py:67
|
||||
#: models/core.py:73
|
||||
msgid "redirect"
|
||||
msgstr "重定向"
|
||||
|
||||
#: models/core.py:68
|
||||
#: models/core.py:74
|
||||
msgid "redirects"
|
||||
msgstr "重定向"
|
||||
|
||||
#: models/core.py:82
|
||||
#: models/core.py:88
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr "例如:'/about/contact/'。请确保前导和结尾的除号。"
|
||||
|
||||
#: models/core.py:83
|
||||
#: models/core.py:89
|
||||
msgid "title"
|
||||
msgstr "标题"
|
||||
|
||||
#: models/core.py:84
|
||||
#: models/core.py:90
|
||||
msgid "content"
|
||||
msgstr "内容"
|
||||
|
||||
#: models/core.py:85
|
||||
#: models/core.py:91
|
||||
msgid "enable comments"
|
||||
msgstr "允许评论"
|
||||
|
||||
#: models/core.py:86
|
||||
#: models/core.py:92
|
||||
msgid "template name"
|
||||
msgstr "模板名称"
|
||||
|
||||
#: models/core.py:87
|
||||
#: models/core.py:93
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
"例如:'flatfiles/contact_page'。如果未提供,系统将使用'flatfiles/default'。"
|
||||
|
||||
#: models/core.py:88
|
||||
#: models/core.py:94
|
||||
msgid "registration required"
|
||||
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."
|
||||
msgstr "如果被选中,仅登录用户才可以查看此页。"
|
||||
|
||||
#: models/core.py:92
|
||||
#: models/core.py:98
|
||||
msgid "flat page"
|
||||
msgstr "简单页面"
|
||||
|
||||
#: models/core.py:93
|
||||
#: models/core.py:99
|
||||
msgid "flat pages"
|
||||
msgstr "简单页面"
|
||||
|
||||
#: models/core.py:114
|
||||
#: models/core.py:117
|
||||
msgid "session key"
|
||||
msgstr "session键字"
|
||||
|
||||
#: models/core.py:115
|
||||
#: models/core.py:118
|
||||
msgid "session data"
|
||||
msgstr "session数据"
|
||||
|
||||
#: models/core.py:116
|
||||
#: models/core.py:119
|
||||
msgid "expire date"
|
||||
msgstr "过期日期"
|
||||
|
||||
#: models/core.py:118
|
||||
#: models/core.py:121
|
||||
msgid "session"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:119
|
||||
#: models/core.py:122
|
||||
msgid "sessions"
|
||||
msgstr ""
|
||||
|
||||
@ -943,96 +943,100 @@ msgstr "塞尔维亚语"
|
||||
msgid "Simplified Chinese"
|
||||
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."
|
||||
msgstr "此值只能包含字母、数字和下划线。"
|
||||
|
||||
#: core/validators.py:62
|
||||
#: core/validators.py:63
|
||||
msgid "This value must contain only letters, numbers, underscores and slashes."
|
||||
msgstr "此值只能包含字母、数字、下划线和斜线。"
|
||||
|
||||
#: core/validators.py:70
|
||||
#: core/validators.py:71
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr "这里不允许大写字母。"
|
||||
|
||||
#: core/validators.py:74
|
||||
#: core/validators.py:75
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr "这里不允许小写字母。"
|
||||
|
||||
#: core/validators.py:81
|
||||
#: core/validators.py:82
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr "只能输入用逗号分隔的数字。"
|
||||
|
||||
#: core/validators.py:93
|
||||
#: core/validators.py:94
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr "输入用逗号分隔的有效邮件地址。"
|
||||
|
||||
#: core/validators.py:100
|
||||
#: core/validators.py:98
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr "请输入一个有效的IP地址。"
|
||||
|
||||
#: core/validators.py:104
|
||||
#: core/validators.py:102
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr "这里不允许输入空值。"
|
||||
|
||||
#: core/validators.py:108
|
||||
#: core/validators.py:106
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr "这里不允许非数字字符。"
|
||||
|
||||
#: core/validators.py:112
|
||||
#: core/validators.py:110
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr "此值不能全部由数字组成。"
|
||||
|
||||
#: core/validators.py:117
|
||||
#: core/validators.py:115
|
||||
msgid "Enter a whole number."
|
||||
msgstr "输入整数。"
|
||||
|
||||
#: core/validators.py:121
|
||||
#: core/validators.py:119
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr "这里只允许字母。"
|
||||
|
||||
#: core/validators.py:125
|
||||
#: core/validators.py:123
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr "输入一个 YYYY-MM-DD 格式的有效日期。"
|
||||
|
||||
#: core/validators.py:129
|
||||
#: core/validators.py:127
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr "输入一个 HH:MM 格式的有效时间。"
|
||||
|
||||
#: core/validators.py:133
|
||||
#: core/validators.py:131
|
||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||
msgstr "输入一个 YYYY-MM-DD HH:MM 格式的有效日期/时间。"
|
||||
|
||||
#: core/validators.py:137
|
||||
#: core/validators.py:135
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "输入一个有效的邮件地址。"
|
||||
|
||||
#: core/validators.py:149
|
||||
#: core/validators.py:147
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr "上传一个有效的图片。您所上传的文件或者不是图片或是一个破坏的图片。"
|
||||
|
||||
#: core/validators.py:156
|
||||
#: core/validators.py:154
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr "URL %s 指向的不是一个有效的图片。"
|
||||
|
||||
#: core/validators.py:160
|
||||
#: core/validators.py:158
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr "电话号码必须为 XXX-XXX-XXXX 格式。\"%s\"是无效的。"
|
||||
|
||||
#: core/validators.py:168
|
||||
#: core/validators.py:166
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr "URL %s 指向的不是一个有效的 QuickTime 视频。"
|
||||
|
||||
#: core/validators.py:172
|
||||
#: core/validators.py:170
|
||||
msgid "A valid URL is required."
|
||||
msgstr "需要是一个有效的URL。"
|
||||
|
||||
#: core/validators.py:186
|
||||
#: core/validators.py:184
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
@ -1041,69 +1045,69 @@ msgstr ""
|
||||
"需要有效的HTML。详细的错误是:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#: core/validators.py:191
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "格式错误的 XML: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#: core/validators.py:201
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "无效 URL: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr "URL %s 是一个断开的链接。"
|
||||
|
||||
#: core/validators.py:211
|
||||
#: core/validators.py:209
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr "输入一个有效的 U.S. 州缩写。"
|
||||
|
||||
#: core/validators.py:226
|
||||
#: core/validators.py:224
|
||||
#, fuzzy, python-format
|
||||
msgid "Watch your mouth! The word %s is not allowed here."
|
||||
msgid_plural "Watch your mouth! The words %s are not allowed here."
|
||||
msgstr[0] "小心你的嘴!%s 不允许在这里出现。"
|
||||
msgstr[1] "小心你的嘴!%s 不允许在这里出现。"
|
||||
|
||||
#: core/validators.py:233
|
||||
#: core/validators.py:231
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr "这个字段必须与 '%s' 字段相匹配。"
|
||||
|
||||
#: core/validators.py:252
|
||||
#: core/validators.py:250
|
||||
msgid "Please enter something for at least one field."
|
||||
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."
|
||||
msgstr "请要么两个字段都输入或者两个字段都空着。"
|
||||
|
||||
#: core/validators.py:279
|
||||
#: core/validators.py:277
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr "如果 %(field)s 是 %(value)s 时这个字段必须给出"
|
||||
|
||||
#: core/validators.py:291
|
||||
#: core/validators.py:289
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is not %(value)s"
|
||||
msgstr "如果 %(field)s 不是 %(value)s 时这个字段必须给出"
|
||||
|
||||
#: core/validators.py:310
|
||||
#: core/validators.py:308
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "重复值不允许。"
|
||||
|
||||
#: core/validators.py:333
|
||||
#: core/validators.py:331
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr "这个值必须是 %s 的乘方。"
|
||||
|
||||
#: core/validators.py:344
|
||||
#: core/validators.py:342
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr "请输入一个有效的小数。"
|
||||
|
||||
#: core/validators.py:346
|
||||
#: core/validators.py:344
|
||||
#, fuzzy, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
@ -1111,7 +1115,7 @@ msgid_plural ""
|
||||
msgstr[0] "请输入一个有效的小数,最多 %s 个数字。"
|
||||
msgstr[1] "请输入一个有效的小数,最多 %s 个数字。"
|
||||
|
||||
#: core/validators.py:349
|
||||
#: core/validators.py:347
|
||||
#, fuzzy, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
@ -1119,36 +1123,36 @@ msgid_plural ""
|
||||
msgstr[0] "请输入一个有效的小数,最多 %s 个小数位。"
|
||||
msgstr[1] "请输入一个有效的小数,最多 %s 个小数位。"
|
||||
|
||||
#: core/validators.py:359
|
||||
#: core/validators.py:357
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr "请确保你上传的文件至少 %s 字节大。"
|
||||
|
||||
#: core/validators.py:360
|
||||
#: core/validators.py:358
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr "请确保你上传的文件至多 %s 字节大。"
|
||||
|
||||
#: core/validators.py:373
|
||||
#: core/validators.py:371
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr "这个字段的格式不正确。"
|
||||
|
||||
#: core/validators.py:388
|
||||
#: core/validators.py:386
|
||||
msgid "This field is invalid."
|
||||
msgstr "这个字段无效。"
|
||||
|
||||
#: core/validators.py:423
|
||||
#: core/validators.py:421
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr "不能从 %s 得到任何东西。"
|
||||
|
||||
#: core/validators.py:426
|
||||
#: core/validators.py:424
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr "URL %(url)s 返回了无效的 Content-Type 头 '%(contenttype)s'。"
|
||||
|
||||
#: core/validators.py:459
|
||||
#: core/validators.py:457
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
@ -1156,7 +1160,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"请关闭未关闭的 %(tag)s 标签从第 %(line)s 行。(行开始于 \"%(start)s\"。)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#: core/validators.py:461
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some text starting on line %(line)s is not allowed in that context. (Line "
|
||||
@ -1164,7 +1168,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"在 %(line)s 行开始的一些文本不允许在那个上下文中。(行开始于 \"%(start)s\"。)"
|
||||
|
||||
#: core/validators.py:468
|
||||
#: core/validators.py:466
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
@ -1172,7 +1176,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"在 %(line)s 行的\"%(attr)s\"不是一个有效的属性。(行开始于 \"%(start)s\"。)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#: core/validators.py:471
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
@ -1180,7 +1184,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"在 %(line)s 行的\"<%(tag)s>\"不是一个有效的标签。(行开始于 \"%(start)s\"。)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#: core/validators.py:475
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A tag on line %(line)s is missing one or more required attributes. (Line "
|
||||
@ -1188,7 +1192,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"在行 %(line)s 的标签少了一个或多个必须的属性。(行开始于 \"%(start)s\"。)"
|
||||
|
||||
#: core/validators.py:482
|
||||
#: core/validators.py:480
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
|
@ -7,7 +7,7 @@ function URLify(s, num_chars) {
|
||||
"with"];
|
||||
r = new RegExp('\\b(' + removelist.join('|') + ')\\b', 'gi');
|
||||
s = s.replace(r, '');
|
||||
s = s.replace(/[^\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+/g, '-'); // convert spaces to hyphens
|
||||
s = s.toLowerCase(); // convert to lowercase
|
||||
|
@ -2,7 +2,7 @@
|
||||
{% trans "You're receiving this e-mail because you requested a password reset" %}
|
||||
{% 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:" %}
|
||||
|
||||
@ -12,4 +12,4 @@ http://{{ domain }}/password_change/
|
||||
|
||||
{% trans "Thanks for using our site!" %}
|
||||
|
||||
{% trans "The %(site_name)s team" %}
|
||||
{% blocktrans %}The {{ site_name }} team{% endblocktrans %}
|
||||
|
@ -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, \
|
||||
MONTHS
|
||||
|
||||
from django.settings import DATE_FORMAT, TIME_FORMAT, DATETIME_FORMAT
|
||||
|
||||
from django.core import meta
|
||||
from django.utils.text import capfirst
|
||||
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)()
|
||||
else:
|
||||
result_repr = EMPTY_CHANGELIST_VALUE
|
||||
# Dates are special: They're formatted in a certain way.
|
||||
elif isinstance(f, meta.DateField):
|
||||
# Dates and times are special: They're formatted in a certain way.
|
||||
elif isinstance(f, meta.DateField) or isinstance(f, meta.TimeField):
|
||||
if field_val:
|
||||
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:
|
||||
result_repr = dateformat.format(field_val, 'N j, Y')
|
||||
result_repr = capfirst(dateformat.format(field_val, DATE_FORMAT))
|
||||
else:
|
||||
result_repr = EMPTY_CHANGELIST_VALUE
|
||||
row_class = ' class="nowrap"'
|
||||
|
@ -356,15 +356,18 @@ class ChangeList(object):
|
||||
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
|
||||
# relationship.
|
||||
for field_name in lookup_opts.admin.list_display:
|
||||
try:
|
||||
f = lookup_opts.get_field(field_name)
|
||||
except meta.FieldDoesNotExist:
|
||||
pass
|
||||
else:
|
||||
if isinstance(f.rel, meta.ManyToOne):
|
||||
lookup_params['select_related'] = True
|
||||
break
|
||||
if lookup_opts.admin.list_select_related:
|
||||
lookup_params['select_related'] = True
|
||||
else:
|
||||
for field_name in lookup_opts.admin.list_display:
|
||||
try:
|
||||
f = lookup_opts.get_field(field_name)
|
||||
except meta.FieldDoesNotExist:
|
||||
pass
|
||||
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,)
|
||||
if lookup_opts.admin.search_fields and query:
|
||||
or_queries = []
|
||||
|
@ -1723,7 +1723,7 @@ def manipulator_save(opts, klass, add, change, self, new_data):
|
||||
for f in related.opts.fields:
|
||||
if child_follow.get(f.name, None):
|
||||
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.
|
||||
if change:
|
||||
|
@ -899,7 +899,7 @@ class FieldSet(object):
|
||||
|
||||
class Admin:
|
||||
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.js = js or []
|
||||
self.list_display = list_display or ['__repr__']
|
||||
@ -908,6 +908,7 @@ class Admin:
|
||||
self.save_as, self.ordering = save_as, ordering
|
||||
self.search_fields = search_fields or []
|
||||
self.save_on_top = save_on_top
|
||||
self.list_select_related = list_select_related
|
||||
|
||||
def get_field_sets(self, opts):
|
||||
if self.fields is None:
|
||||
|
@ -406,15 +406,12 @@ else:
|
||||
|
||||
class TokenParser:
|
||||
"""
|
||||
You need to subclass this class and implement the
|
||||
top method to parse your template line. When instantiating
|
||||
the parser, you pass in the line from the django template
|
||||
parser.
|
||||
Subclass this and implement the top() method to parse a template line. When
|
||||
instantiating the parser, pass in the line from the Django template parser.
|
||||
|
||||
If your tag needs to know what tag name it was called with,
|
||||
you find it in the tagname instance variable of the parser.
|
||||
The parser's "tagname" instance-variable stores the name of the tag that
|
||||
the filter was called with.
|
||||
"""
|
||||
|
||||
def __init__(self, subject):
|
||||
self.subject = subject
|
||||
self.pointer = 0
|
||||
@ -422,31 +419,21 @@ class TokenParser:
|
||||
self.tagname = self.tag()
|
||||
|
||||
def top(self):
|
||||
"""
|
||||
You need to overload this method to do the actual parsing
|
||||
and return the result.
|
||||
"""
|
||||
"Overload this method to do the actual parsing and return the result."
|
||||
raise NotImplemented
|
||||
|
||||
def more(self):
|
||||
"""
|
||||
This returns True if there is more stuff in the tag.
|
||||
"""
|
||||
"Returns True if there is more stuff in the tag."
|
||||
return self.pointer < len(self.subject)
|
||||
|
||||
def back(self):
|
||||
"""
|
||||
This method undos the last microparser. This can be
|
||||
used for lookahead and backtracking.
|
||||
"""
|
||||
"Undoes the last microparser. Use this for lookahead and backtracking."
|
||||
if not len(self.backout):
|
||||
raise TemplateSyntaxError, "back called without some previous parsing"
|
||||
self.pointer = self.backout.pop()
|
||||
|
||||
def tag(self):
|
||||
"""
|
||||
This microparser just returns the next tag from the line.
|
||||
"""
|
||||
"A microparser that just returns the next tag from the line."
|
||||
subject = self.subject
|
||||
i = self.pointer
|
||||
if i >= len(subject):
|
||||
@ -462,21 +449,18 @@ class TokenParser:
|
||||
return s
|
||||
|
||||
def value(self):
|
||||
"""
|
||||
This microparser parses for a value - some string constant or
|
||||
variable name.
|
||||
"""
|
||||
"A microparser that parses for a value: some string constant or variable name."
|
||||
subject = self.subject
|
||||
i = self.pointer
|
||||
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 ('"', "'"):
|
||||
p = i
|
||||
i += 1
|
||||
while i < len(subject) and subject[i] != subject[p]:
|
||||
i += 1
|
||||
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
|
||||
res = subject[p:i]
|
||||
while i < len(subject) and subject[i] in (' ', '\t'):
|
||||
@ -496,18 +480,19 @@ class TokenParser:
|
||||
return s
|
||||
|
||||
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.
|
||||
Sample:
|
||||
>>> token = 'variable|default:"Default value"|date:"Y-m-d"'
|
||||
>>> p = FilterParser(token)
|
||||
>>> p.filters
|
||||
[('default', 'Default value'), ('date', 'Y-m-d')]
|
||||
>>> p.var
|
||||
'variable'
|
||||
"""
|
||||
Parses a variable token and its optional filters (all as a single string),
|
||||
and return a list of tuples of the filter name and arguments.
|
||||
Sample:
|
||||
>>> token = 'variable|default:"Default value"|date:"Y-m-d"'
|
||||
>>> p = FilterParser(token)
|
||||
>>> p.filters
|
||||
[('default', 'Default value'), ('date', 'Y-m-d')]
|
||||
>>> p.var
|
||||
'variable'
|
||||
|
||||
This class should never be instantiated outside of the
|
||||
get_filters_from_token helper function.
|
||||
This class should never be instantiated outside of the
|
||||
get_filters_from_token helper function.
|
||||
"""
|
||||
def __init__(self, s):
|
||||
self.s = s
|
||||
@ -516,8 +501,8 @@ class FilterParser:
|
||||
self.filters = []
|
||||
self.current_filter_name = None
|
||||
self.current_filter_arg = None
|
||||
# First read the variable part - decide on wether we need
|
||||
# to parse a string or a variable by peeking into the stream
|
||||
# First read the variable part. Decide whether we need to parse a
|
||||
# string or a variable by peeking into the stream.
|
||||
if self.peek_char() in ('_', '"', "'"):
|
||||
self.var = self.read_constant_string_token()
|
||||
else:
|
||||
@ -548,15 +533,17 @@ class FilterParser:
|
||||
self.current = None
|
||||
|
||||
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 = ''
|
||||
qchar = None
|
||||
i18n = False
|
||||
self.next_char()
|
||||
if self.current == '_':
|
||||
i18n = True
|
||||
self.next_char()
|
||||
self.next_char()
|
||||
if self.current != '(':
|
||||
raise TemplateSyntaxError, "Bad character (expecting '(') '%s'" % self.current
|
||||
self.next_char()
|
||||
@ -579,8 +566,10 @@ class FilterParser:
|
||||
return val
|
||||
|
||||
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 = ''
|
||||
while 1:
|
||||
self.next_char()
|
||||
|
@ -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 TemplateSyntaxError, VariableDoesNotExist, BLOCK_TAG_START, BLOCK_TAG_END, VARIABLE_TAG_START, VARIABLE_TAG_END, register_tag
|
||||
from django.utils import translation
|
||||
|
||||
import sys
|
||||
import re
|
||||
|
||||
class CommentNode(Node):
|
||||
def render(self, context):
|
||||
@ -532,12 +529,10 @@ def do_if(parser, token):
|
||||
{% endif %}
|
||||
|
||||
{% if not athlete_list or coach_list %}
|
||||
There are no athletes or there are some coaches (OK, so
|
||||
writing English translations of boolean logic sounds
|
||||
stupid; it's not my fault).
|
||||
There are no athletes, or there are some coaches.
|
||||
{% 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::
|
||||
|
||||
{% if athlete_list %}
|
||||
|
@ -17,9 +17,10 @@ alnumurl_re = re.compile(r'^[\w/]+$')
|
||||
ansi_date_re = re.compile('^%s$' % _datere)
|
||||
ansi_time_re = re.compile('^%s$' % _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+$')
|
||||
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)
|
||||
slug_re = re.compile(r'^[-\w]+$')
|
||||
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.")
|
||||
|
||||
def isValidIPAddress4(field_data, all_data):
|
||||
if ip4_re.search(field_data):
|
||||
valid_parts = [el for el in field_data.split('.') if 0 <= int(el) <= 255]
|
||||
if len(valid_parts) == 4:
|
||||
return
|
||||
raise validators.ValidationError, _("Please enter a valid IP address.")
|
||||
if not ip4_re.search(field_data):
|
||||
raise ValidationError, _("Please enter a valid IP address.")
|
||||
|
||||
def isNotEmpty(field_data, all_data):
|
||||
if field_data.strip() == '':
|
||||
|
@ -11,15 +11,14 @@ class CommonMiddleware:
|
||||
|
||||
- Forbids access to User-Agents in settings.DISALLOWED_USER_AGENTS
|
||||
|
||||
- URL rewriting: based on the APPEND_SLASH and PREPEND_WWW settings,
|
||||
this middleware will -- shocking, isn't it -- append missing slashes
|
||||
and/or prepend missing "www."s.
|
||||
- URL rewriting: Based on the APPEND_SLASH and PREPEND_WWW settings,
|
||||
this middleware appends missing slashes and/or prepends 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
|
||||
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.
|
||||
"""
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
import base64, md5, random, sys
|
||||
import cPickle as pickle
|
||||
from django.core import meta, validators
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
@ -9,6 +11,10 @@ class Site(meta.Model):
|
||||
verbose_name_plural = _('sites')
|
||||
db_table = 'sites'
|
||||
ordering = ('domain',)
|
||||
admin = meta.Admin(
|
||||
list_display = ('domain', 'name'),
|
||||
search_fields = ('domain', 'name'),
|
||||
)
|
||||
|
||||
def __repr__(self):
|
||||
return self.domain
|
||||
@ -107,9 +113,6 @@ class FlatFile(meta.Model):
|
||||
def get_absolute_url(self):
|
||||
return self.url
|
||||
|
||||
import base64, md5, random, sys
|
||||
import cPickle as pickle
|
||||
|
||||
class Session(meta.Model):
|
||||
session_key = meta.CharField(_('session key'), maxlength=40, primary_key=True)
|
||||
session_data = meta.TextField(_('session data'))
|
||||
@ -132,7 +135,12 @@ class Session(meta.Model):
|
||||
if md5.new(pickled + SECRET_KEY).hexdigest() != tamper_check:
|
||||
from django.core.exceptions import SuspiciousOperation
|
||||
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):
|
||||
"Returns the given session dictionary pickled and encoded as a string."
|
||||
|
@ -13,7 +13,7 @@ Usage:
|
||||
|
||||
from django.utils.dates import MONTHS, MONTHS_AP, WEEKDAYS
|
||||
from django.utils.tzinfo import LocalTimezone
|
||||
from calendar import isleap
|
||||
from calendar import isleap, monthrange
|
||||
import re, time
|
||||
|
||||
re_formatchars = re.compile(r'(?<!\\)([aABdDfFgGhHiIjlLmMnNOPrsStTUwWyYzZ])')
|
||||
@ -122,10 +122,6 @@ class DateFormat(TimeFormat):
|
||||
"Month, textual, long; e.g. 'January'"
|
||||
return MONTHS[self.data.month]
|
||||
|
||||
def I(self):
|
||||
"'1' if Daylight Savings Time, '0' otherwise."
|
||||
raise NotImplementedError
|
||||
|
||||
def I(self):
|
||||
"'1' if Daylight Savings Time, '0' otherwise."
|
||||
if self.timezone.dst(self.data):
|
||||
@ -185,7 +181,7 @@ class DateFormat(TimeFormat):
|
||||
|
||||
def t(self):
|
||||
"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):
|
||||
"Time zone of this machine; e.g. 'EST' or 'MDT'"
|
||||
|
@ -4,24 +4,17 @@ def curry(*args, **kwargs):
|
||||
return _curried
|
||||
|
||||
def lazy(func, *resultclasses):
|
||||
|
||||
"""
|
||||
lazy turns any callable passed in into a lazy evaluated callable.
|
||||
you need to give result classes or types - at least one is needed
|
||||
so that the automatic forcing of the lazy evaluation code is
|
||||
triggered. Results are not memoized - the function is evaluated
|
||||
on every access.
|
||||
Turns any callable into a lazy evaluated callable. You need to give result
|
||||
classes or types -- at least one is needed so that the automatic forcing of
|
||||
the lazy evaluation code is triggered. Results are not memoized; the
|
||||
function is evaluated on every access.
|
||||
"""
|
||||
|
||||
class __proxy__:
|
||||
|
||||
"""
|
||||
This inner class encapsulates the code that should be evaluated
|
||||
lazyly. On calling of one of the magic methods it will force
|
||||
the evaluation and store the result - afterwards the result
|
||||
is delivered directly. So the result is memoized.
|
||||
"""
|
||||
|
||||
# This inner class encapsulates the code that should be evaluated
|
||||
# lazily. On calling of one of the magic methods it will force
|
||||
# the evaluation and store the result. Afterwards, the result
|
||||
# is delivered directly. So the result is memoized.
|
||||
def __init__(self, args, kw):
|
||||
self.__func = func
|
||||
self.__args = args
|
||||
@ -31,35 +24,23 @@ def lazy(func, *resultclasses):
|
||||
self.__dispatch[resultclass] = {}
|
||||
for (k, v) in resultclass.__dict__.items():
|
||||
setattr(self, k, self.__promise__(resultclass, k, v))
|
||||
|
||||
|
||||
def __promise__(self, klass, funcname, func):
|
||||
|
||||
"""
|
||||
This function builds a wrapper around some magic method and
|
||||
registers that magic method for the given type and methodname.
|
||||
"""
|
||||
|
||||
# Builds a wrapper around some magic method and registers that magic
|
||||
# method for the given type and method name.
|
||||
def __wrapper__(*args, **kw):
|
||||
"""
|
||||
This wrapper function automatically triggers the evaluation of
|
||||
a lazy value. It then applies the given magic method of the
|
||||
result type.
|
||||
"""
|
||||
# Automatically triggers the evaluation of a lazy value and
|
||||
# applies the given magic method of the result type.
|
||||
res = self.__func(*self.__args, **self.__kw)
|
||||
return self.__dispatch[type(res)][funcname](res, *args, **kw)
|
||||
|
||||
|
||||
if not self.__dispatch.has_key(klass):
|
||||
self.__dispatch[klass] = {}
|
||||
self.__dispatch[klass][funcname] = func
|
||||
return __wrapper__
|
||||
|
||||
|
||||
def __wrapper__(*args, **kw):
|
||||
"""
|
||||
This wrapper function just creates the proxy object that is returned
|
||||
instead of the actual value.
|
||||
"""
|
||||
# Creates the proxy object, instead of the actual value.
|
||||
return __proxy__(args, kw)
|
||||
|
||||
return __wrapper__
|
||||
|
||||
|
||||
|
@ -1,11 +1,8 @@
|
||||
"translation helper functions"
|
||||
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import os, re, sys
|
||||
import gettext as gettext_module
|
||||
from cStringIO import StringIO
|
||||
|
||||
from django.utils.functional import lazy
|
||||
|
||||
try:
|
||||
@ -20,22 +17,20 @@ else:
|
||||
def currentThread():
|
||||
return 'no threading'
|
||||
|
||||
# translations are cached in a dictionary for
|
||||
# every language+app tuple. The active translations
|
||||
# are stored by threadid to make them thread local.
|
||||
# Translations are cached in a dictionary for every language+app tuple.
|
||||
# The active translations are stored by threadid to make them thread local.
|
||||
_translations = {}
|
||||
_active = {}
|
||||
|
||||
# the default translation is based on the settings file
|
||||
# The default translation is based on the settings file.
|
||||
_default = None
|
||||
|
||||
# this is a cache for accept-header to translation
|
||||
# object mappings to prevent the accept parser to
|
||||
# run multiple times for one user
|
||||
# This is a cache for accept-header to translation object mappings to prevent
|
||||
# the accept parser to run multiple times for one user.
|
||||
_accepted = {}
|
||||
|
||||
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('-')
|
||||
if p >= 0:
|
||||
return language[:p].lower()+'_'+language[p+1:].upper()
|
||||
@ -43,7 +38,7 @@ def to_locale(language):
|
||||
return language.lower()
|
||||
|
||||
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('_')
|
||||
if p >= 0:
|
||||
return locale[:p].lower()+'-'+locale[p+1:].lower()
|
||||
@ -52,16 +47,14 @@ def to_language(locale):
|
||||
|
||||
class DjangoTranslation(gettext_module.GNUTranslations):
|
||||
"""
|
||||
This class sets up the GNUTranslations context with
|
||||
regard to output charset. Django uses a defined
|
||||
DEFAULT_CHARSET as the output charset on Python 2.4 -
|
||||
with Python 2.3, you need to use DjangoTranslation23.
|
||||
This class sets up the GNUTranslations context with regard to output
|
||||
charset. Django uses a defined DEFAULT_CHARSET as the output charset on
|
||||
Python 2.4. With Python 2.3, use DjangoTranslation23.
|
||||
"""
|
||||
|
||||
def __init__(self, *args, **kw):
|
||||
from django.conf import settings
|
||||
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
|
||||
# identical with the translation file charset.
|
||||
try:
|
||||
@ -73,29 +66,25 @@ class DjangoTranslation(gettext_module.GNUTranslations):
|
||||
|
||||
def merge(self, other):
|
||||
self._catalog.update(other._catalog)
|
||||
|
||||
|
||||
def set_language(self, language):
|
||||
self.__language = language
|
||||
|
||||
def language(self):
|
||||
return self.__language
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
return "<DjangoTranslation lang:%s>" % self.__language
|
||||
|
||||
|
||||
class DjangoTranslation23(DjangoTranslation):
|
||||
|
||||
"""
|
||||
This is a compatibility class that is only used with Python 2.3.
|
||||
The reason is, Python 2.3 doesn't support set_output_charset on
|
||||
translation objects and so needs this wrapper class to make sure
|
||||
that input charsets from translation files are correctly translated
|
||||
to output charsets.
|
||||
Compatibility class that is only used with Python 2.3.
|
||||
Python 2.3 doesn't support set_output_charset on translation objects and
|
||||
needs this wrapper class to make sure input charsets from translation files
|
||||
are correctly translated to output charsets.
|
||||
|
||||
With a full switch to Python 2.4, this can be removed from the source.
|
||||
"""
|
||||
|
||||
def gettext(self, msgid):
|
||||
res = self.ugettext(msgid)
|
||||
return res.encode(self.django_output_charset)
|
||||
@ -106,20 +95,19 @@ class DjangoTranslation23(DjangoTranslation):
|
||||
|
||||
def translation(language):
|
||||
"""
|
||||
This function returns a translation object. app must be the fully
|
||||
qualified name of the application.
|
||||
Returns a translation object.
|
||||
|
||||
This translation object will be constructed out of multiple GNUTranslations
|
||||
objects by merging their catalogs. It will construct a object for the requested
|
||||
language and add a fallback to the default language, if that is different
|
||||
from the requested language.
|
||||
objects by merging their catalogs. It will construct a object for the
|
||||
requested language and add a fallback to the default language, if it's
|
||||
different from the requested language.
|
||||
"""
|
||||
global _translations
|
||||
|
||||
t = _translations.get(language, None)
|
||||
if t is not None:
|
||||
return t
|
||||
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
# set up the right translation class
|
||||
@ -150,7 +138,7 @@ def translation(language):
|
||||
return t
|
||||
except IOError, e:
|
||||
return None
|
||||
|
||||
|
||||
res = _translation(globalpath)
|
||||
|
||||
def _merge(path):
|
||||
@ -181,7 +169,7 @@ def translation(language):
|
||||
|
||||
if os.path.isdir(apppath):
|
||||
res = _merge(apppath)
|
||||
|
||||
|
||||
if res is None:
|
||||
if fallback is not None:
|
||||
res = fallback
|
||||
@ -197,49 +185,41 @@ def translation(language):
|
||||
|
||||
def activate(language):
|
||||
"""
|
||||
This function fetches the translation object for a given
|
||||
tuple of application name and language and installs it as
|
||||
the current translation object for the current thread.
|
||||
Fetches the translation object for a given tuple of application name and
|
||||
language and installs it as the current translation object for the current
|
||||
thread.
|
||||
"""
|
||||
_active[currentThread()] = translation(language)
|
||||
|
||||
def deactivate():
|
||||
"""
|
||||
This function deinstalls the currently active translation
|
||||
object so that further _ calls will resolve against the
|
||||
default translation object, again.
|
||||
Deinstalls the currently active translation object so that further _ calls
|
||||
will resolve against the default translation object, again.
|
||||
"""
|
||||
global _active
|
||||
|
||||
if _active.has_key(currentThread()):
|
||||
del _active[currentThread()]
|
||||
|
||||
def get_language():
|
||||
"""
|
||||
This function returns the currently selected language.
|
||||
"""
|
||||
"Returns the currently selected language."
|
||||
t = _active.get(currentThread(), None)
|
||||
if t is not None:
|
||||
try:
|
||||
return to_language(t.language())
|
||||
except AttributeError:
|
||||
pass
|
||||
# if we don't have a real translation object, we assume
|
||||
# it's the default language.
|
||||
# If we don't have a real translation object, assume it's the default language.
|
||||
from django.conf.settings import LANGUAGE_CODE
|
||||
return LANGUAGE_CODE
|
||||
|
||||
def gettext(message):
|
||||
"""
|
||||
This function will be patched into the builtins module to
|
||||
provide the _ helper function. It will use the current
|
||||
thread as a discriminator to find the translation object
|
||||
to use. If no current translation is activated, the
|
||||
message will be run through the default translation
|
||||
object.
|
||||
This function will be patched into the builtins module to provide the _
|
||||
helper function. It will use the current thread as a discriminator to find
|
||||
the translation object to use. If no current translation is activated, the
|
||||
message will be run through the default translation object.
|
||||
"""
|
||||
global _default, _active
|
||||
|
||||
t = _active.get(currentThread(), None)
|
||||
if t is not None:
|
||||
return t.gettext(message)
|
||||
@ -250,18 +230,15 @@ def gettext(message):
|
||||
|
||||
def gettext_noop(message):
|
||||
"""
|
||||
This function is used to just mark strings for translation
|
||||
but to not translate them now. This can be used to store
|
||||
strings in global variables that should stay in the base
|
||||
language (because they might be used externally) and will
|
||||
be translated later on.
|
||||
Marks strings for translation but doesn't translate them now. This can be
|
||||
used to store strings in global variables that should stay in the base
|
||||
language (because they might be used externally) and will be translated later.
|
||||
"""
|
||||
return message
|
||||
|
||||
def ngettext(singular, plural, number):
|
||||
"""
|
||||
This function returns the translation of either the singular
|
||||
or plural, based on the number.
|
||||
Returns the translation of either the singular or plural, based on the number.
|
||||
"""
|
||||
global _default, _active
|
||||
|
||||
@ -278,9 +255,8 @@ ngettext_lazy = lazy(ngettext, str)
|
||||
|
||||
def check_for_language(lang_code):
|
||||
"""
|
||||
This function checks wether there is a global language
|
||||
file for the given language code. This is used to decide
|
||||
wether a user-provided language is available.
|
||||
Checks whether there is a global language file for the given language code.
|
||||
This is used to decide whether a user-provided language is available.
|
||||
"""
|
||||
from django.conf import settings
|
||||
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):
|
||||
"""
|
||||
analyze the request to find what language the user
|
||||
wants the system to show.
|
||||
Analyzes the request to find what language the user wants the system to show.
|
||||
"""
|
||||
global _accepted
|
||||
|
||||
from django.conf import settings
|
||||
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)
|
||||
if lang_code is not None and check_for_language(lang_code):
|
||||
return lang_code
|
||||
|
||||
|
||||
lang_code = request.COOKIES.get('django_language', None)
|
||||
if lang_code is not None and check_for_language(lang_code):
|
||||
return lang_code
|
||||
|
||||
|
||||
accept = request.META.get('HTTP_ACCEPT_LANGUAGE', None)
|
||||
if accept is not None:
|
||||
|
||||
@ -338,25 +312,24 @@ def get_language_from_request(request):
|
||||
# filename, because otherwise we might incorrectly
|
||||
# report de_DE if we only have de available, but
|
||||
# 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
|
||||
return lang
|
||||
|
||||
|
||||
return settings.LANGUAGE_CODE
|
||||
|
||||
def install():
|
||||
"""
|
||||
This installs the gettext function as the default
|
||||
translation function under the name _.
|
||||
Installs the gettext function as the default translation function under
|
||||
the name _.
|
||||
"""
|
||||
__builtins__['_'] = gettext
|
||||
|
||||
|
||||
dot_re = re.compile(r'\S')
|
||||
def blankout(src, char):
|
||||
"""
|
||||
This is used in the templateize function and changes every
|
||||
non-whitespace character to the given char.
|
||||
Changes every non-whitespace character to the given char.
|
||||
Used in the templateize function.
|
||||
"""
|
||||
return dot_re.sub(char, src)
|
||||
|
||||
@ -368,9 +341,9 @@ constant_re = re.compile(r"""_\(((?:".*?")|(?:'.*?'))\)""")
|
||||
def templateize(src):
|
||||
from django.core.template import Lexer, TOKEN_TEXT, TOKEN_VAR, TOKEN_BLOCK
|
||||
"""
|
||||
This function turns a django template into something that is
|
||||
understood by xgettext. It does so by translating the django
|
||||
translation tags into standard gettext function invocations.
|
||||
Turns a Django template into something that is understood by xgettext. It
|
||||
does so by translating the Django translation tags into standard gettext
|
||||
function invocations.
|
||||
"""
|
||||
out = StringIO()
|
||||
intrans = False
|
||||
@ -400,7 +373,7 @@ def templateize(src):
|
||||
elif pluralmatch:
|
||||
inplural = True
|
||||
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:
|
||||
if inplural:
|
||||
plural.append('%%(%s)s' % t.contents)
|
||||
@ -444,4 +417,3 @@ def templateize(src):
|
||||
else:
|
||||
out.write(blankout(t.contents, 'X'))
|
||||
return out.getvalue()
|
||||
|
||||
|
@ -10,25 +10,25 @@ from django.core.template import Template, Context, TemplateDoesNotExist
|
||||
def serve(request, path, document_root=None, show_indexes=False):
|
||||
"""
|
||||
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/'})
|
||||
|
||||
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
|
||||
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
|
||||
``static/directory_index``.
|
||||
"""
|
||||
|
||||
|
||||
# Clean up given path to only allow serving files below document_root.
|
||||
path = posixpath.normpath(urllib.unquote(path))
|
||||
newpath = ''
|
||||
for part in path.split('/'):
|
||||
if not part:
|
||||
# strip empty path components
|
||||
continue
|
||||
continue
|
||||
drive, part = os.path.splitdrive(part)
|
||||
head, part = os.path.split(part)
|
||||
if part in (os.curdir, os.pardir):
|
||||
@ -67,7 +67,7 @@ DEFAULT_DIRECTORY_INDEX_TEMPLATE = """
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
|
||||
|
||||
def directory_index(path, fullpath):
|
||||
try:
|
||||
t = template_loader.get_template('static/directory_index')
|
||||
|
@ -88,6 +88,13 @@ install [modelmodule modelmodule ...]
|
||||
|
||||
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]
|
||||
------------------------------------------------
|
||||
|
||||
|
556
docs/i18n.txt
Normal file
556
docs/i18n.txt
Normal 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.
|
@ -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
|
||||
the life of an Apache process, which leads to significant performance gains
|
||||
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
|
||||
mod_python once you have it installed.
|
||||
|
@ -244,7 +244,7 @@ Here are all available field types:
|
||||
|
||||
``EmailField``
|
||||
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``
|
||||
A file-upload field.
|
||||
@ -387,7 +387,10 @@ Here are all available field types:
|
||||
|
||||
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``
|
||||
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).
|
||||
|
||||
``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``
|
||||
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
|
||||
|
@ -2,7 +2,7 @@
|
||||
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.
|
||||
|
||||
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
|
||||
other server arrangements.
|
||||
|
||||
Django requires Apache 2.x and mod_python 3.x.
|
||||
|
||||
.. _Apache: http://httpd.apache.org/
|
||||
.. _mod_python: http://www.modpython.org/
|
||||
.. _mod_perl: http://perl.apache.org/
|
||||
@ -110,12 +112,11 @@ revoke your Django privileges.
|
||||
Serving media files
|
||||
===================
|
||||
|
||||
Django doesn't serve media files itself. It'd be inefficient to flow media
|
||||
files through a (relatively) complex framework when much, much more well-tuned
|
||||
solutions are better.
|
||||
Django doesn't serve media files itself; it leaves that job to whichever Web
|
||||
server you choose.
|
||||
|
||||
We recommend using a separate Web server for serving media. Here are some good
|
||||
choices:
|
||||
We recommend using a separate Web server -- i.e., one that's not also running
|
||||
Django -- for serving media. Here are some good choices:
|
||||
|
||||
* lighttpd_
|
||||
* TUX_
|
||||
@ -129,11 +130,49 @@ particular part of the site::
|
||||
SetHandler None
|
||||
</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/
|
||||
.. _TUX: http://en.wikipedia.org/wiki/TUX_web_server
|
||||
.. _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.
|
||||
|
@ -258,6 +258,32 @@ Default: ``''`` (Empty string)
|
||||
|
||||
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
|
||||
-----
|
||||
|
||||
@ -355,12 +381,13 @@ See http://www.thaiopensource.com/relaxng/jing.html .
|
||||
LANGUAGE_CODE
|
||||
-------------
|
||||
|
||||
Default: ``'en'``
|
||||
Default: ``'en-us'``
|
||||
|
||||
A string representing the language code for this installation. This should
|
||||
be in locale format, that's 'en_US' for us-english. If you want to send
|
||||
out the language in your HTML code, use the LANGUAGE_CODE attribute of the
|
||||
request, instead, as the chosen language will depend on the browsers settings.
|
||||
A string representing the language code for this installation. This should be
|
||||
in standard language format. For example, U.S. English is ``"en-us"``. See the
|
||||
`internationalization docs`_.
|
||||
|
||||
.. _internationalization docs: http://www.djangoproject.com/documentation/i18n/
|
||||
|
||||
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
|
||||
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
|
||||
---------
|
||||
|
||||
|
1009
docs/templates.txt
1009
docs/templates.txt
File diff suppressed because it is too large
Load Diff
@ -611,7 +611,7 @@ Registering the tag
|
||||
Finally, use a ``register_tag`` call, as in ``register_filter`` above. Example::
|
||||
|
||||
from django.core import template
|
||||
template.register_tag('cycle', do_cycle)
|
||||
template.register_tag('current_time', do_current_time)
|
||||
|
||||
``register_tag`` takes two arguments:
|
||||
|
||||
|
@ -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.
|
@ -317,7 +317,7 @@ def run_tests(verbosity=0, standalone=False):
|
||||
print "Template test: %s -- FAILED. Expected %r, got %r" % (name, vals[2], output)
|
||||
failed_tests.append(name)
|
||||
loader.template_source_loaders = old_template_loaders
|
||||
|
||||
deactivate()
|
||||
if failed_tests and not standalone:
|
||||
msg = "Template tests %s failed." % failed_tests
|
||||
if not verbosity:
|
||||
|
Loading…
x
Reference in New Issue
Block a user