Merged i18n branch into the trunk! Fixes #65, and perhaps some others. NB: this means that the i18n branch is now obsolete and will be made read-only.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@1068 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
cb45fd0ae2
commit
5cf8f68423
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import os
|
||||
import sys
|
||||
import getopt
|
||||
|
||||
basedir = None
|
||||
|
||||
if os.path.isdir(os.path.join('conf', 'locale')):
|
||||
basedir = os.path.abspath(os.path.join('conf', 'locale'))
|
||||
elif os.path.isdir('locale'):
|
||||
basedir = os.path.abspath('locale')
|
||||
else:
|
||||
print "this script should be run from the django svn tree or your project or app tree"
|
||||
sys.exit(1)
|
||||
|
||||
for (dirpath, dirnames, filenames) in os.walk(basedir):
|
||||
for file in filenames:
|
||||
if file.endswith('.po'):
|
||||
sys.stderr.write('processing file %s in %s\n' % (file, dirpath))
|
||||
pf = os.path.splitext(os.path.join(dirpath, file))[0]
|
||||
cmd = 'msgfmt -o %s.mo %s.po' % (pf, pf)
|
||||
os.system(cmd)
|
||||
|
|
@ -3,6 +3,14 @@ from django.core import management
|
|||
from optparse import OptionParser
|
||||
import os, sys
|
||||
|
||||
# switch to english, because django-admin creates database content
|
||||
# like permissions, and those shouldn't contain any translations
|
||||
try:
|
||||
from django.utils import translation
|
||||
translation.activate('en-us')
|
||||
except:
|
||||
pass
|
||||
|
||||
ACTION_MAPPING = {
|
||||
'adminindex': management.get_admin_index,
|
||||
'createsuperuser': management.createsuperuser,
|
||||
|
@ -129,3 +137,4 @@ def main():
|
|||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import re
|
||||
import os
|
||||
import sys
|
||||
import getopt
|
||||
|
||||
from django.utils.translation import templateize
|
||||
|
||||
localedir = None
|
||||
|
||||
if os.path.isdir(os.path.join('conf', 'locale')):
|
||||
localedir = os.path.abspath(os.path.join('conf', 'locale'))
|
||||
elif os.path.isdir('locale'):
|
||||
localedir = os.path.abspath('locale')
|
||||
else:
|
||||
print "this script should be run from the django svn tree or your project or app tree"
|
||||
sys.exit(1)
|
||||
|
||||
(opts, args) = getopt.getopt(sys.argv[1:], 'l:d:va')
|
||||
|
||||
lang = None
|
||||
domain = 'django'
|
||||
verbose = False
|
||||
all = False
|
||||
|
||||
for o, v in opts:
|
||||
if o == '-l':
|
||||
lang = v
|
||||
elif o == '-d':
|
||||
domain = v
|
||||
elif o == '-v':
|
||||
verbose = True
|
||||
elif o == '-a':
|
||||
all = True
|
||||
|
||||
if (lang is None and not all) or domain is None:
|
||||
print "usage: make-messages.py -l <language>"
|
||||
print " or: make-messages.py -a"
|
||||
sys.exit(1)
|
||||
|
||||
languages = []
|
||||
|
||||
if lang is not None:
|
||||
languages.append(lang)
|
||||
elif all:
|
||||
languages = [el for el in os.listdir(localedir) if not el.startswith('.')]
|
||||
|
||||
for lang in languages:
|
||||
|
||||
print "processing language", lang
|
||||
basedir = os.path.join(localedir, lang, 'LC_MESSAGES')
|
||||
if not os.path.isdir(basedir):
|
||||
os.makedirs(basedir)
|
||||
|
||||
pofile = os.path.join(basedir, '%s.po' % domain)
|
||||
potfile = os.path.join(basedir, '%s.pot' % domain)
|
||||
|
||||
if os.path.exists(potfile):
|
||||
os.unlink(potfile)
|
||||
|
||||
for (dirpath, dirnames, filenames) in os.walk("."):
|
||||
for file in filenames:
|
||||
if file.endswith('.py') or file.endswith('.html'):
|
||||
thefile = file
|
||||
if file.endswith('.html'):
|
||||
src = open(os.path.join(dirpath, file), "rb").read()
|
||||
open(os.path.join(dirpath, '%s.py' % file), "wb").write(templateize(src))
|
||||
thefile = '%s.py' % file
|
||||
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()
|
||||
if thefile != file:
|
||||
old = '#: '+os.path.join(dirpath, thefile)[2:]
|
||||
new = '#: '+os.path.join(dirpath, file)[2:]
|
||||
msgs = msgs.replace(old, new)
|
||||
if msgs:
|
||||
open(potfile, 'ab').write(msgs)
|
||||
if thefile != file:
|
||||
os.unlink(os.path.join(dirpath, thefile))
|
||||
|
||||
msgs = os.popen('msguniq %s' % potfile, 'r').read()
|
||||
open(potfile, 'w').write(msgs)
|
||||
if os.path.exists(pofile):
|
||||
msgs = os.popen('msgmerge %s %s' % (pofile, potfile), 'r').read()
|
||||
open(pofile, 'wb').write(msgs)
|
||||
os.unlink(potfile)
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
# Default Django settings. Override these with settings in the module
|
||||
# pointed-to by the DJANGO_SETTINGS_MODULE environment variable.
|
||||
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
####################
|
||||
# CORE #
|
||||
####################
|
||||
|
@ -28,6 +30,23 @@ TIME_ZONE = 'America/Chicago'
|
|||
# http://blogs.law.harvard.edu/tech/stories/storyReader$15
|
||||
LANGUAGE_CODE = 'en-us'
|
||||
|
||||
# Languages we provide translations for out of the base. The
|
||||
# language name should be the utf-8 encoded local name for the
|
||||
# language.
|
||||
LANGUAGES = (
|
||||
('cs', _('Czech')),
|
||||
('de', _('German')),
|
||||
('en', _('English')),
|
||||
('es', _('Spanish')),
|
||||
('fr', _('French')),
|
||||
('gl', _('Galician')),
|
||||
('it', _('Italian')),
|
||||
('pt-br', _('Brazilian')),
|
||||
('ru', _('Russian')),
|
||||
('sr', _('Serbian')),
|
||||
('zh-cn', _('Traditional Chinese')),
|
||||
)
|
||||
|
||||
# Not-necessarily-technical managers of the site. They get broken link
|
||||
# notifications and other various e-mails.
|
||||
MANAGERS = ADMINS
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,978 @@
|
|||
# Translation of django.po to Czech
|
||||
# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the DJANGO package.
|
||||
# Radek Svarz <translate@svarz.cz>, 2005.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-11-03 12:26+0100\n"
|
||||
"PO-Revision-Date: 2005-10-31 19:42+0100\n"
|
||||
"Last-Translator: Radek Svarz <translate@svarz.cz>\n"
|
||||
"Language-Team: Czech\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#: 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 "Domů"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
msgid "History"
|
||||
msgstr "Historie"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:18
|
||||
msgid "Date/time"
|
||||
msgstr "Datum/čas"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47
|
||||
msgid "User"
|
||||
msgstr "Uživatel"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:20
|
||||
msgid "Action"
|
||||
msgstr "Akce"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:26
|
||||
msgid "DATE_WITH_TIME_FULL"
|
||||
msgstr "Plné datum s časem"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:36
|
||||
msgid ""
|
||||
"This object doesn't have a change history. It probably wasn't added via this "
|
||||
"admin site."
|
||||
msgstr ""
|
||||
"Tento objekt nemá historii změn. Pravděpodobně nebyl přidán přes "
|
||||
"administrátorské rozhraní."
|
||||
|
||||
#: contrib/admin/templates/admin/base_site.html:4
|
||||
msgid "Django site admin"
|
||||
msgstr "Django správa webu"
|
||||
|
||||
#: contrib/admin/templates/admin/base_site.html:7
|
||||
msgid "Django administration"
|
||||
msgstr "Django správa"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#, fuzzy
|
||||
msgid "Server error"
|
||||
msgstr "Chyba serveru (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:6
|
||||
msgid "Server error (500)"
|
||||
msgstr "Chyba serveru (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:9
|
||||
msgid "Server Error <em>(500)</em>"
|
||||
msgstr "Chyba serveru <em>(500)</em>"
|
||||
|
||||
#: 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 ""
|
||||
"Nastala chyba. Ta byla oznámena administrátorovi serveru pomocí e-mailu a "
|
||||
"měla by být brzy odstraněna. Děkujeme za trpělivost."
|
||||
|
||||
#: contrib/admin/templates/admin/404.html:4
|
||||
#: contrib/admin/templates/admin/404.html:8
|
||||
msgid "Page not found"
|
||||
msgstr "Stránka nenalezena"
|
||||
|
||||
#: contrib/admin/templates/admin/404.html:10
|
||||
msgid "We're sorry, but the requested page could not be found."
|
||||
msgstr "Je nám líto, ale vyžádaná stránka nebyla nalezena."
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:27
|
||||
msgid "Add"
|
||||
msgstr "Přidat"
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:33
|
||||
msgid "Change"
|
||||
msgstr "Změnit"
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:43
|
||||
msgid "You don't have permission to edit anything."
|
||||
msgstr "Nemáte oprávnění nic měnit."
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:51
|
||||
msgid "Recent Actions"
|
||||
msgstr "Poslední akce"
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:52
|
||||
msgid "My Actions"
|
||||
msgstr "Mé akce"
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:56
|
||||
msgid "None available"
|
||||
msgstr "Nic"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:15
|
||||
msgid "Username:"
|
||||
msgstr "Uživatelské jméno:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:18
|
||||
msgid "Password:"
|
||||
msgstr "Heslo:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:20
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr "<a href=\"/password_reset/\">Zapomněl(a) jste své heslo?</a>"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
msgstr "Přihlášení"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Vítejte,"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Změnit heslo"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Odhlásit se"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
msgid ""
|
||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||
"objects, but your account doesn't have permission to delete the following "
|
||||
"types of objects:"
|
||||
msgstr ""
|
||||
"Mazání %(object_name)s '%(object)s' by vyústilo v mazání souvisejících "
|
||||
"objektů, ale Váš účet nemá oprávnění pro mazání následujících typů objektů:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||
"the following related items will be deleted:"
|
||||
msgstr ""
|
||||
"Jste si jist(á), že chcete smazat %(object_name)s \"%(object)s\"? Všechny "
|
||||
"následující související položky budou smazány:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:18
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Ano, jsem si jist"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:6
|
||||
#: contrib/admin/templates/registration/password_change_form.html:10
|
||||
msgid "Password change"
|
||||
msgstr "Změna hesla"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:6
|
||||
#: contrib/admin/templates/registration/password_change_done.html:10
|
||||
msgid "Password change successful"
|
||||
msgstr "Změna hesla byla úspěšná"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||
msgid "Your password was changed."
|
||||
msgstr "Vaše heslo bylo změněno."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:4
|
||||
msgid "Password reset"
|
||||
msgstr "Obnovení hesla"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:12
|
||||
msgid ""
|
||||
"Forgotten your password? Enter your e-mail address below, and we'll reset "
|
||||
"your password and e-mail the new one to you."
|
||||
msgstr ""
|
||||
"Zapomněl(a) jste heslo? Vložte níže Vaši e-mailovou adresu a my Vaše heslo "
|
||||
"obnovíme a zašleme Vám e-mailem nové."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "E-mail address:"
|
||||
msgstr "E-mailová adresa:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "Reset my password"
|
||||
msgstr "Obnovit mé heslo"
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:8
|
||||
msgid "Thanks for spending some quality time with the Web site today."
|
||||
msgstr "Děkujeme Vám za Váš strávený čas na našich webových stránkách."
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:10
|
||||
msgid "Log in again"
|
||||
msgstr "Přihlašte se znova"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:10
|
||||
msgid "Password reset successful"
|
||||
msgstr "Obnovení hesla bylo úspěšné"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:12
|
||||
msgid ""
|
||||
"We've e-mailed a new password to the e-mail address you submitted. You "
|
||||
"should be receiving it shortly."
|
||||
msgstr ""
|
||||
"Poslali jsme Vám e-mailem nové heslo na adresu, kterou jste zadal(a). Měl(a) "
|
||||
"byste ji dostat během okamžiku."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:12
|
||||
msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
"Prosíme, pro zabezpečení vložte svoje staré heslo a poté vložte dvakrát nové "
|
||||
"heslo, takže můžeme ověřit, že jste ho napsal(a) správně."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||
msgid "Old password:"
|
||||
msgstr "Staré heslo:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||
msgid "New password:"
|
||||
msgstr "Nové heslo:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||
msgid "Confirm password:"
|
||||
msgstr "Potvrdit heslo:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:23
|
||||
msgid "Change my password"
|
||||
msgstr "Změnit mé heslo:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:2
|
||||
msgid "You're receiving this e-mail because you requested a password reset"
|
||||
msgstr "Dostal(a) jste tento e-mail, protože jste požádal(a) o obnovení hesla"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:3
|
||||
#, python-format
|
||||
msgid "for your user account at %(site_name)s"
|
||||
msgstr "pro Váš uživatelský účet na %(site_name)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:5
|
||||
#, python-format
|
||||
msgid "Your new password is: %(new_password)s"
|
||||
msgstr "Vaše nové heslo je: %(new_password)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:7
|
||||
msgid "Feel free to change this password by going to this page:"
|
||||
msgstr "Můžete změnit toto heslo na následující stránce: "
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:11
|
||||
msgid "Your username, in case you've forgotten:"
|
||||
msgstr "Vaše uživatelské jméno, pro případ, že jste zapomněl(a):"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:13
|
||||
msgid "Thanks for using our site!"
|
||||
msgstr "Děkujeme za používání našeho webu!"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:15
|
||||
#, python-format
|
||||
msgid "The %(site_name)s team"
|
||||
msgstr "Tým %(site_name)s"
|
||||
|
||||
#: contrib/admin/models/admin.py:6
|
||||
msgid "action time"
|
||||
msgstr "čas akce"
|
||||
|
||||
#: contrib/admin/models/admin.py:9
|
||||
msgid "object id"
|
||||
msgstr "object id"
|
||||
|
||||
#: contrib/admin/models/admin.py:10
|
||||
msgid "object repr"
|
||||
msgstr "object repr"
|
||||
|
||||
#: contrib/admin/models/admin.py:11
|
||||
msgid "action flag"
|
||||
msgstr "příznak akce"
|
||||
|
||||
#: contrib/admin/models/admin.py:12
|
||||
msgid "change message"
|
||||
msgstr "zpráva změny"
|
||||
|
||||
#: contrib/admin/models/admin.py:15
|
||||
msgid "log entry"
|
||||
msgstr "log záznam"
|
||||
|
||||
#: contrib/admin/models/admin.py:16
|
||||
msgid "log entries"
|
||||
msgstr "log záznamy"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Monday"
|
||||
msgstr "Pondělí"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Tuesday"
|
||||
msgstr "Úterý"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Wednesday"
|
||||
msgstr "Středa"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Thursday"
|
||||
msgstr "Čtvrtek"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Friday"
|
||||
msgstr "Pátek"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Saturday"
|
||||
msgstr "Sobota"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Sunday"
|
||||
msgstr "Neděle"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "January"
|
||||
msgstr "Leden"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "February"
|
||||
msgstr "Únor"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "March"
|
||||
msgstr "Březen"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "April"
|
||||
msgstr "Duben"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "May"
|
||||
msgstr "Květen"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "June"
|
||||
msgstr "Červen"
|
||||
|
||||
#: utils/dates.py:15 utils/dates.py:27
|
||||
msgid "July"
|
||||
msgstr "Červenec"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "August"
|
||||
msgstr "Srpen"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "September"
|
||||
msgstr "Září"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "October"
|
||||
msgstr "Říjen"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "November"
|
||||
msgstr "Listopad"
|
||||
|
||||
#: utils/dates.py:16
|
||||
msgid "December"
|
||||
msgstr "Prosinec"
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Jan."
|
||||
msgstr "Led."
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Feb."
|
||||
msgstr "Ún."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Aug."
|
||||
msgstr "Srp."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Sept."
|
||||
msgstr "Zář."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Oct."
|
||||
msgstr "Říj."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Nov."
|
||||
msgstr "List."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Dec."
|
||||
msgstr "Pros."
|
||||
|
||||
#: models/core.py:5
|
||||
msgid "domain name"
|
||||
msgstr "jméno domény"
|
||||
|
||||
#: models/core.py:6
|
||||
msgid "display name"
|
||||
msgstr "zobrazené jméno"
|
||||
|
||||
#: models/core.py:8
|
||||
msgid "site"
|
||||
msgstr "web"
|
||||
|
||||
#: models/core.py:9
|
||||
msgid "sites"
|
||||
msgstr "weby"
|
||||
|
||||
#: models/core.py:22
|
||||
msgid "label"
|
||||
msgstr "nadpis"
|
||||
|
||||
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
|
||||
msgid "name"
|
||||
msgstr "jméno"
|
||||
|
||||
#: models/core.py:25
|
||||
msgid "package"
|
||||
msgstr "balík"
|
||||
|
||||
#: models/core.py:26
|
||||
msgid "packages"
|
||||
msgstr "balíky"
|
||||
|
||||
#: models/core.py:36
|
||||
msgid "python module name"
|
||||
msgstr "jméno modulu Pythonu"
|
||||
|
||||
#: models/core.py:38
|
||||
msgid "content type"
|
||||
msgstr "typ obsahu"
|
||||
|
||||
#: models/core.py:39
|
||||
msgid "content types"
|
||||
msgstr "typy obsahu"
|
||||
|
||||
#: models/core.py:62
|
||||
msgid "redirect from"
|
||||
msgstr "přesměrovat z"
|
||||
|
||||
#: models/core.py:63
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
"Toto by měla být absolutní cesta, bez domény. Např. '/udalosti/hledat/'."
|
||||
|
||||
#: models/core.py:64
|
||||
msgid "redirect to"
|
||||
msgstr "přesměrovat na"
|
||||
|
||||
#: models/core.py:65
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
"Toto může být buď absolutní cesta (jako nahoře) nebo plné URL začínající na "
|
||||
"'http://'."
|
||||
|
||||
#: models/core.py:67
|
||||
msgid "redirect"
|
||||
msgstr "přesměrovat"
|
||||
|
||||
#: models/core.py:68
|
||||
msgid "redirects"
|
||||
msgstr "přesměrování"
|
||||
|
||||
#: models/core.py:81
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: models/core.py:82
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
"Příklad: '/o/kontakt/'. Ujistěte se, že máte počáteční a konečná lomítka."
|
||||
|
||||
#: models/core.py:83
|
||||
msgid "title"
|
||||
msgstr "titulek"
|
||||
|
||||
#: models/core.py:84
|
||||
msgid "content"
|
||||
msgstr "obsah"
|
||||
|
||||
#: models/core.py:85
|
||||
msgid "enable comments"
|
||||
msgstr "povolit komentáře"
|
||||
|
||||
#: models/core.py:86
|
||||
msgid "template name"
|
||||
msgstr "jméno šablony"
|
||||
|
||||
#: models/core.py:87
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
"Například: 'flatfiles/kontaktni_stranka'. Pokud toto není zadáno, systém "
|
||||
"použije 'flatfiles/default'."
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "registration required"
|
||||
msgstr "nutná registrace"
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "If this is checked, only logged-in users will be able to view the page."
|
||||
msgstr ""
|
||||
"Pokud je zaškrtnuto, pouze přihlášení uživatelé budou moci prohlížet tuto "
|
||||
"stránku."
|
||||
|
||||
#: models/core.py:92
|
||||
#, fuzzy
|
||||
msgid "flat page"
|
||||
msgstr "plochá strana"
|
||||
|
||||
#: models/core.py:93
|
||||
#, fuzzy
|
||||
msgid "flat pages"
|
||||
msgstr "ploché stránky"
|
||||
|
||||
#: models/core.py:114
|
||||
msgid "session key"
|
||||
msgstr "klíč sezení"
|
||||
|
||||
#: models/core.py:115
|
||||
msgid "session data"
|
||||
msgstr "data sezení"
|
||||
|
||||
#: models/core.py:116
|
||||
msgid "expire date"
|
||||
msgstr "datum expirace"
|
||||
|
||||
#: models/core.py:118
|
||||
msgid "session"
|
||||
msgstr "sezení"
|
||||
|
||||
#: models/core.py:119
|
||||
msgid "sessions"
|
||||
msgstr "sezení"
|
||||
|
||||
#: models/auth.py:8
|
||||
msgid "codename"
|
||||
msgstr "codename"
|
||||
|
||||
#: models/auth.py:10
|
||||
msgid "Permission"
|
||||
msgstr "Oprávnění"
|
||||
|
||||
#: models/auth.py:11 models/auth.py:58
|
||||
msgid "Permissions"
|
||||
msgstr "Oprávnění"
|
||||
|
||||
#: models/auth.py:22
|
||||
msgid "Group"
|
||||
msgstr "Skupina"
|
||||
|
||||
#: models/auth.py:23 models/auth.py:60
|
||||
msgid "Groups"
|
||||
msgstr "Skupiny"
|
||||
|
||||
#: models/auth.py:33
|
||||
msgid "username"
|
||||
msgstr "uživatelské jméno"
|
||||
|
||||
#: models/auth.py:34
|
||||
msgid "first name"
|
||||
msgstr "křestní jméno"
|
||||
|
||||
#: models/auth.py:35
|
||||
msgid "last name"
|
||||
msgstr "příjmení"
|
||||
|
||||
#: models/auth.py:36
|
||||
msgid "e-mail address"
|
||||
msgstr "e-mailová adresa"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "password"
|
||||
msgstr "heslo"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "Use an MD5 hash -- not the raw password."
|
||||
msgstr "Použije se MD5 hash -- ne čisté heslo."
|
||||
|
||||
#: models/auth.py:38
|
||||
#, fuzzy
|
||||
msgid "staff status"
|
||||
msgstr "stav pracovníků"
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Rozhodne, zda se může uživatel přihlásit do správy webu."
|
||||
|
||||
#: models/auth.py:39
|
||||
msgid "active"
|
||||
msgstr "aktivní"
|
||||
|
||||
#: models/auth.py:40
|
||||
msgid "superuser status"
|
||||
msgstr "stav superuživatel"
|
||||
|
||||
#: models/auth.py:41
|
||||
msgid "last login"
|
||||
msgstr "poslední přihlášení"
|
||||
|
||||
#: models/auth.py:42
|
||||
msgid "date joined"
|
||||
msgstr "datum zaregistrování"
|
||||
|
||||
#: models/auth.py:44
|
||||
msgid ""
|
||||
"In addition to the permissions manually assigned, this user will also get "
|
||||
"all permissions granted to each group he/she is in."
|
||||
msgstr ""
|
||||
"Kromě manuálně přidělených oprávnění uživatel dostane všechna oprávnění pro "
|
||||
"každou skupinu, ve které je."
|
||||
|
||||
#: models/auth.py:48
|
||||
msgid "Users"
|
||||
msgstr "Uživatelé"
|
||||
|
||||
#: models/auth.py:57
|
||||
msgid "Personal info"
|
||||
msgstr "Osobní informace"
|
||||
|
||||
#: models/auth.py:59
|
||||
msgid "Important dates"
|
||||
msgstr "Důležitá data"
|
||||
|
||||
#: models/auth.py:182
|
||||
msgid "Message"
|
||||
msgstr "Zpráva"
|
||||
|
||||
#: conf/global_settings.py:37
|
||||
msgid "Czech"
|
||||
msgstr "Česky"
|
||||
|
||||
#: conf/global_settings.py:38
|
||||
msgid "German"
|
||||
msgstr "Německy"
|
||||
|
||||
#: conf/global_settings.py:39
|
||||
msgid "English"
|
||||
msgstr "Anglicky"
|
||||
|
||||
#: conf/global_settings.py:40
|
||||
msgid "Spanish"
|
||||
msgstr "Španělsky"
|
||||
|
||||
#: conf/global_settings.py:41
|
||||
msgid "French"
|
||||
msgstr "Francouzsky"
|
||||
|
||||
#: conf/global_settings.py:42
|
||||
#, fuzzy
|
||||
msgid "Galician"
|
||||
msgstr "Galicijský"
|
||||
|
||||
#: conf/global_settings.py:43
|
||||
msgid "Italian"
|
||||
msgstr "Italsky"
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Brazilian"
|
||||
msgstr "Brazilsky"
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Russian"
|
||||
msgstr "Rusky"
|
||||
|
||||
#: conf/global_settings.py:46
|
||||
#, fuzzy
|
||||
msgid "Serbian"
|
||||
msgstr "Srbsky"
|
||||
|
||||
#: conf/global_settings.py:47
|
||||
msgid "Traditional Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:58
|
||||
msgid "This value must contain only letters, numbers and underscores."
|
||||
msgstr "Tato hodnota musí obsahovat pouze znaky, čísla nebo podtržítka."
|
||||
|
||||
#: core/validators.py:62
|
||||
msgid "This value must contain only letters, numbers, underscores and slashes."
|
||||
msgstr ""
|
||||
"Tato hodnota musí obsahovat pouze znaky, čísla, podtržítka nebo lomítka."
|
||||
|
||||
#: core/validators.py:70
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr "Velká písmena zde nejsou povolená."
|
||||
|
||||
#: core/validators.py:74
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr "Malá písmena zde nejsou povolená."
|
||||
|
||||
#: core/validators.py:81
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr "Vložte pouze cifry oddělené čárkami."
|
||||
|
||||
#: core/validators.py:93
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr "Vložte platné e-mailové adresy oddělené čárkami."
|
||||
|
||||
#: core/validators.py:100
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr "Prosíme, zadejte platnou IP adresu."
|
||||
|
||||
#: core/validators.py:104
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr "Zde nejsou povolené prázdné hodnoty."
|
||||
|
||||
#: core/validators.py:108
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr "Znaky, které nejsou čísla, nejsou zde povoleny."
|
||||
|
||||
#: core/validators.py:112
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr "Tato hodnota nemůže být složená pouze z cifer."
|
||||
|
||||
#: core/validators.py:117
|
||||
msgid "Enter a whole number."
|
||||
msgstr "Vložte celé číslo."
|
||||
|
||||
#: core/validators.py:121
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr "Zde jsou povoleny pouze alfanumerické znaky."
|
||||
|
||||
#: core/validators.py:125
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr "Vložte platné datum ve formátu RRRR-MM-DD."
|
||||
|
||||
#: core/validators.py:129
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr "Vložte platný čas ve formátu HH:MM."
|
||||
|
||||
#: core/validators.py:133
|
||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||
msgstr "Vložte platné datum a čas ve formátu RRRR-MM-DD HH:MM."
|
||||
|
||||
#: core/validators.py:137
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "Vložte platnou e-mailovou adresu."
|
||||
|
||||
#: core/validators.py:149
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
"Nahrajte na server platný obrázek. Soubor, který jste nahrál(a) nebyl "
|
||||
"obrázek, nebo byl porušen."
|
||||
|
||||
#: core/validators.py:156
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr "URL %s neukazuje na platný obrázek."
|
||||
|
||||
#: core/validators.py:160
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr "Telefonní čísla musí být ve formátu XXX-XXX-XXXX. \"%s\" není platné."
|
||||
|
||||
#: core/validators.py:168
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr "URL %s neodkazuje na platné video ve formátu QuickTime."
|
||||
|
||||
#: core/validators.py:172
|
||||
msgid "A valid URL is required."
|
||||
msgstr "Je vyžadováno platné URL."
|
||||
|
||||
#: core/validators.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"Je vyžadováno platné HTML. Konkrétní chyby jsou:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "Špatně formované XML: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "Neplatné URL: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr "Odkaz na URL %s je rozbitý."
|
||||
|
||||
#: core/validators.py:211
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr "Vložte platnou zkraku U.S. státu."
|
||||
|
||||
#: core/validators.py:226
|
||||
#, 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] "Mluvte slušně! Slovo %s zde není přípustné."
|
||||
msgstr[1] "Mluvte slušně! Slova %s zde nejsou přípustná."
|
||||
|
||||
#: core/validators.py:233
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr "Toto pole se musí shodovat s polem '%s'."
|
||||
|
||||
#: core/validators.py:252
|
||||
msgid "Please enter something for at least one field."
|
||||
msgstr "Prosíme, vložte něco alespoň pro jedno pole."
|
||||
|
||||
#: core/validators.py:261 core/validators.py:272
|
||||
msgid "Please enter both fields or leave them both empty."
|
||||
msgstr "Prosíme, vložte obě pole, nebo je nechte obě prázdná."
|
||||
|
||||
#: core/validators.py:279
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr "Toto pole musí být vyplněno, když %(field)s má %(value)s"
|
||||
|
||||
#: core/validators.py:291
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is not %(value)s"
|
||||
msgstr "Toto pole musí být vyplněno, když %(field)s nemá %(value)s"
|
||||
|
||||
#: core/validators.py:310
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "Duplikátní hodnoty nejsou povolené."
|
||||
|
||||
#: core/validators.py:333
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr "Tato hodnota musí být mocninou %s."
|
||||
|
||||
#: core/validators.py:344
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr "Prosíme, vložte platné číslo."
|
||||
|
||||
#: core/validators.py:346
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s total digits."
|
||||
msgstr[0] "Prosíme, vložte platné číslo s nejvíce %s cifrou celkem."
|
||||
msgstr[1] "Prosíme, vložte platné číslo s nejvíce %s ciframi celkem."
|
||||
|
||||
#: core/validators.py:349
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s decimal places."
|
||||
msgstr[0] ""
|
||||
"Prosíme, vložte platné číslo s nejvíce %s cifrou za desetinnou čárkou celkem."
|
||||
msgstr[1] ""
|
||||
"Prosíme, vložte platné číslo s nejvíce %s ciframi za desetinnou čárkou "
|
||||
"celkem."
|
||||
|
||||
#: core/validators.py:359
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr "Ujistěte se, že posílaný soubor je velký nejméně %s bytů."
|
||||
|
||||
#: core/validators.py:360
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr "Ujistěte se, že posílaný soubor je velký nejvíce %s bytů."
|
||||
|
||||
#: core/validators.py:373
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr "Formát pro toto pole je špatný."
|
||||
|
||||
#: core/validators.py:388
|
||||
msgid "This field is invalid."
|
||||
msgstr "Toto pole není platné."
|
||||
|
||||
#: core/validators.py:423
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr "Nemohl jsem získat nic z %s."
|
||||
|
||||
#: core/validators.py:426
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr "URL %(url)s vrátilo neplatnou hlavičku Content-Type '%(contenttype)s'."
|
||||
|
||||
#: core/validators.py:459
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Prosíme, zavřete nezavřenou značku %(tag)s z řádky %(line)s. (Řádka začíná s "
|
||||
"\"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some text starting on line %(line)s is not allowed in that context. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Nějaký text začínající na řádce %(line)s není povolen v tomto kontextu. "
|
||||
"(Řádka začíná s \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:468
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"\"%(attr)s\" na řádce %(line)s je neplatný atribut. (Řádka začíná s \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"\"<%(tag)s>\" na řádce %(line)s je neplatná značka. (Řádka začíná s \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A tag on line %(line)s is missing one or more required attributes. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Značce na řádce %(line)s schází jeden nebo více požadovaných atributů. "
|
||||
"(Řádka začíná s \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:482
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Atribut \"%(attr)s\" na řádce %(line)s má neplatnou hodnotu. (Řádka začína s "
|
||||
"\"%(start)s\".)"
|
||||
|
||||
#: core/meta/fields.py:95
|
||||
msgid " Separate multiple IDs with commas."
|
||||
msgstr "Oddělte více identifikátorů čárkami."
|
||||
|
||||
#: core/meta/fields.py:98
|
||||
msgid ""
|
||||
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||
msgstr ""
|
||||
"Podržte \"Control\", nebo \"Command\" na Macu pro vybrání více jak jedné "
|
||||
"položky."
|
Binary file not shown.
|
@ -0,0 +1,984 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django 1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-11-03 12:26+0100\n"
|
||||
"PO-Revision-Date: 2005-10-08 00:03+0200\n"
|
||||
"Last-Translator: Georg Bauer <gb@bofh.ms>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#: 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 "Start"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
msgid "History"
|
||||
msgstr "Geschichte"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:18
|
||||
msgid "Date/time"
|
||||
msgstr "Datum/Zeit"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47
|
||||
msgid "User"
|
||||
msgstr "Benutzer"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:20
|
||||
msgid "Action"
|
||||
msgstr "Aktion"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:26
|
||||
msgid "DATE_WITH_TIME_FULL"
|
||||
msgstr "j. N Y, H:i"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:36
|
||||
msgid ""
|
||||
"This object doesn't have a change history. It probably wasn't added via this "
|
||||
"admin site."
|
||||
msgstr ""
|
||||
"Dieses Objekt hat keine Änderungsgeschichte. Es wurde möglicherweise nicht "
|
||||
"über diese Verwaltungsseiten angelegt."
|
||||
|
||||
#: contrib/admin/templates/admin/base_site.html:4
|
||||
msgid "Django site admin"
|
||||
msgstr "Django Systemverwaltung"
|
||||
|
||||
#: contrib/admin/templates/admin/base_site.html:7
|
||||
msgid "Django administration"
|
||||
msgstr "Django Verwaltung"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
msgid "Server error"
|
||||
msgstr "Serverfehler"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:6
|
||||
msgid "Server error (500)"
|
||||
msgstr "Serverfehler (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:9
|
||||
msgid "Server Error <em>(500)</em>"
|
||||
msgstr "Serverfehler <em>(500)</em>"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:10
|
||||
msgid ""
|
||||
"There's been an error. It's been reported to the site administrators via e-"
|
||||
"mail and should be fixed shortly. Thanks for your patience."
|
||||
msgstr ""
|
||||
"Es hat einen Fehler gegeben. Dieser Fehler wurde an die Serververwalter per "
|
||||
"eMail weitergegeben und sollte bald behoben sein. Vielen Dank für Ihr "
|
||||
"Verständnis."
|
||||
|
||||
#: contrib/admin/templates/admin/404.html:4
|
||||
#: contrib/admin/templates/admin/404.html:8
|
||||
msgid "Page not found"
|
||||
msgstr "Seite nicht gefunden"
|
||||
|
||||
#: contrib/admin/templates/admin/404.html:10
|
||||
msgid "We're sorry, but the requested page could not be found."
|
||||
msgstr ""
|
||||
"Es tut uns leid, aber die angeforderte Seite kann nicht gefunden werden."
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:27
|
||||
msgid "Add"
|
||||
msgstr "Zufügen"
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:33
|
||||
msgid "Change"
|
||||
msgstr "Ändern"
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:43
|
||||
msgid "You don't have permission to edit anything."
|
||||
msgstr "Sie haben keine Berechtigung irgendwas zu ändern."
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:51
|
||||
msgid "Recent Actions"
|
||||
msgstr "Kürzliche Aktionen"
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:52
|
||||
msgid "My Actions"
|
||||
msgstr "Meine Aktionen"
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:56
|
||||
msgid "None available"
|
||||
msgstr "Keine vorhanden"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:15
|
||||
msgid "Username:"
|
||||
msgstr "Benutzername:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:18
|
||||
msgid "Password:"
|
||||
msgstr "Passwort:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:20
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr "Haben Sie <a href=\"/password_reset/\">ihr Passwort vergessen</a>?"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
msgstr "Anmelden"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Willkommen,"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Passwort ändern"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Abmelden"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||
"objects, but your account doesn't have permission to delete the following "
|
||||
"types of objects:"
|
||||
msgstr ""
|
||||
"Die Löschung des %(object_name)s '%(object)s' hätte die Löschung von "
|
||||
"abhängigen Daten zur Folge, aber Sie haben nicht die nötigen Rechte um die "
|
||||
"folgenden abhängigen Daten zu löschen:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||
"the following related items will be deleted:"
|
||||
msgstr ""
|
||||
"Sind Sie sicher, das Sie %(object_name)s \"%(object)s\" löschen wollen? Es "
|
||||
"werden zusätzlich die folgenden abhängigen Daten mit gelöscht:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:18
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Ja, ich bin sicher"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:6
|
||||
#: contrib/admin/templates/registration/password_change_form.html:10
|
||||
msgid "Password change"
|
||||
msgstr "Kennwort ändern"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:6
|
||||
#: contrib/admin/templates/registration/password_change_done.html:10
|
||||
msgid "Password change successful"
|
||||
msgstr "Erfolgreiche Kennwortänderung"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||
msgid "Your password was changed."
|
||||
msgstr "Ihr Kennwort wurde geändert."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:4
|
||||
msgid "Password reset"
|
||||
msgstr "Kennwort zurücksetzen"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:12
|
||||
msgid ""
|
||||
"Forgotten your password? Enter your e-mail address below, and we'll reset "
|
||||
"your password and e-mail the new one to you."
|
||||
msgstr ""
|
||||
"Sie haben Ihr Kennwort vergessen? Geben Sie bitte Ihre eMail-Adresse ein und "
|
||||
"wir setzen das Kennwort auf einen neuen Wert und schicken den per eMail an "
|
||||
"Sie raus."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "E-mail address:"
|
||||
msgstr "eMail-Adresse:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "Reset my password"
|
||||
msgstr "Mein Kennwort zurücksetzen"
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:8
|
||||
msgid "Thanks for spending some quality time with the Web site today."
|
||||
msgstr "Danke, dass Sie eine Weile bei uns waren."
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:10
|
||||
msgid "Log in again"
|
||||
msgstr "Neu anmelden"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:10
|
||||
msgid "Password reset successful"
|
||||
msgstr "Erfolgreich Kennwort zurückgesetzt"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:12
|
||||
msgid ""
|
||||
"We've e-mailed a new password to the e-mail address you submitted. You "
|
||||
"should be receiving it shortly."
|
||||
msgstr ""
|
||||
"Wir haben Ihnen ein neues Kennwort per eMail zugeschickt an die Adresse, die "
|
||||
"Sie uns gegeben haben. Es sollte in Kürze ankommen."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:12
|
||||
msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
"Bitte geben Sie aus Sicherheitsgründen erst Ihr altes Kennwort und darunter "
|
||||
"dann zweimal (um sicherzustellen, das Sie es korrekt eingegeben haben) das "
|
||||
"neue Kennwort ein."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||
msgid "Old password:"
|
||||
msgstr "altes Kennwort:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||
msgid "New password:"
|
||||
msgstr "neues Kennwort:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||
msgid "Confirm password:"
|
||||
msgstr "Kennwortwiederholung:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:23
|
||||
msgid "Change my password"
|
||||
msgstr "Mein Kennwort ändern"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:2
|
||||
msgid "You're receiving this e-mail because you requested a password reset"
|
||||
msgstr "Sie erhalten diese Mail, weil Sie ein neues Kennwort"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:3
|
||||
#, python-format
|
||||
msgid "for your user account at %(site_name)s"
|
||||
msgstr "für ihren Benutzer bei %(site_name)s angefordert haben."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:5
|
||||
#, python-format
|
||||
msgid "Your new password is: %(new_password)s"
|
||||
msgstr "Ihr neues Kennwort ist: %(new_password)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:7
|
||||
msgid "Feel free to change this password by going to this page:"
|
||||
msgstr "Sie können das Kennwort auf folgender Seite ändern:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:11
|
||||
msgid "Your username, in case you've forgotten:"
|
||||
msgstr "Ihr Benutzername, falls Sie ihn vergessen haben:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:13
|
||||
msgid "Thanks for using our site!"
|
||||
msgstr "Vielen Dank, das Sie unsere Seiten benutzen!"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:15
|
||||
#, python-format
|
||||
msgid "The %(site_name)s team"
|
||||
msgstr "Das Team von %(site_name)s"
|
||||
|
||||
#: contrib/admin/models/admin.py:6
|
||||
msgid "action time"
|
||||
msgstr "Zeit der Aktion"
|
||||
|
||||
#: contrib/admin/models/admin.py:9
|
||||
msgid "object id"
|
||||
msgstr "Objekt ID"
|
||||
|
||||
#: contrib/admin/models/admin.py:10
|
||||
msgid "object repr"
|
||||
msgstr "Objekt Darst."
|
||||
|
||||
#: contrib/admin/models/admin.py:11
|
||||
msgid "action flag"
|
||||
msgstr "Aktionskennzeichen"
|
||||
|
||||
#: contrib/admin/models/admin.py:12
|
||||
msgid "change message"
|
||||
msgstr "Änderungsmeldung"
|
||||
|
||||
#: contrib/admin/models/admin.py:15
|
||||
msgid "log entry"
|
||||
msgstr "Logeintrag"
|
||||
|
||||
#: contrib/admin/models/admin.py:16
|
||||
msgid "log entries"
|
||||
msgstr "Logeinträge"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Monday"
|
||||
msgstr "Montag"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Tuesday"
|
||||
msgstr "Dienstag"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Wednesday"
|
||||
msgstr "Mittwoch"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Thursday"
|
||||
msgstr "Donnerstag"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Friday"
|
||||
msgstr "Freitag"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Saturday"
|
||||
msgstr "Samstag"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Sunday"
|
||||
msgstr "Sonntag"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "January"
|
||||
msgstr "Januar"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "February"
|
||||
msgstr "Februa"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "March"
|
||||
msgstr "März"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "April"
|
||||
msgstr "April"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "May"
|
||||
msgstr "Mai"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "June"
|
||||
msgstr "Juni"
|
||||
|
||||
#: utils/dates.py:15 utils/dates.py:27
|
||||
msgid "July"
|
||||
msgstr "Juli"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "August"
|
||||
msgstr "August"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "September"
|
||||
msgstr "September"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "October"
|
||||
msgstr "Oktober"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "November"
|
||||
msgstr "November"
|
||||
|
||||
#: utils/dates.py:16
|
||||
msgid "December"
|
||||
msgstr "Dezember"
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Jan."
|
||||
msgstr "Jan."
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Feb."
|
||||
msgstr "Feb."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Aug."
|
||||
msgstr "Aug."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Sept."
|
||||
msgstr "Sept."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Oct."
|
||||
msgstr "Okt."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Nov."
|
||||
msgstr "Nov."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Dec."
|
||||
msgstr "Dez."
|
||||
|
||||
#: models/core.py:5
|
||||
msgid "domain name"
|
||||
msgstr "Domainname"
|
||||
|
||||
#: models/core.py:6
|
||||
msgid "display name"
|
||||
msgstr "Anzeigename"
|
||||
|
||||
#: models/core.py:8
|
||||
msgid "site"
|
||||
msgstr "Website"
|
||||
|
||||
#: models/core.py:9
|
||||
msgid "sites"
|
||||
msgstr "Websites"
|
||||
|
||||
#: models/core.py:22
|
||||
msgid "label"
|
||||
msgstr "Label"
|
||||
|
||||
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
|
||||
msgid "name"
|
||||
msgstr "Name"
|
||||
|
||||
#: models/core.py:25
|
||||
msgid "package"
|
||||
msgstr "Paket"
|
||||
|
||||
#: models/core.py:26
|
||||
msgid "packages"
|
||||
msgstr "Pakete"
|
||||
|
||||
#: models/core.py:36
|
||||
msgid "python module name"
|
||||
msgstr "Python Modulname"
|
||||
|
||||
#: models/core.py:38
|
||||
msgid "content type"
|
||||
msgstr "Inhaltstyp"
|
||||
|
||||
#: models/core.py:39
|
||||
msgid "content types"
|
||||
msgstr "Inhaltstypen"
|
||||
|
||||
#: models/core.py:62
|
||||
msgid "redirect from"
|
||||
msgstr "Umleitung von"
|
||||
|
||||
#: models/core.py:63
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
"Hier sollte ein absoluter Pfad stehen, ohne den Domainnamen. Beispiel: '/"
|
||||
"events/search/'."
|
||||
|
||||
#: models/core.py:64
|
||||
msgid "redirect to"
|
||||
msgstr "Umleitung zu"
|
||||
|
||||
#: models/core.py:65
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
"Hier mus entweder ein absoluter Pfad oder eine komplette URL mit http:// am "
|
||||
"Anfang stehen."
|
||||
|
||||
#: models/core.py:67
|
||||
msgid "redirect"
|
||||
msgstr "Umleitung"
|
||||
|
||||
#: models/core.py:68
|
||||
msgid "redirects"
|
||||
msgstr "Umleitungen"
|
||||
|
||||
#: models/core.py:81
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: models/core.py:82
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
"Beispiel: '/about/contact/'. Wichtig: vorne und hinten muss ein / stehen."
|
||||
|
||||
#: models/core.py:83
|
||||
msgid "title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: models/core.py:84
|
||||
msgid "content"
|
||||
msgstr "Inhalt"
|
||||
|
||||
#: models/core.py:85
|
||||
msgid "enable comments"
|
||||
msgstr "Kommentare aktivieren"
|
||||
|
||||
#: models/core.py:86
|
||||
msgid "template name"
|
||||
msgstr "Name der Vorlage"
|
||||
|
||||
#: models/core.py:87
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
"Beispiel: 'flatfiles/contact_page'. Wenn dieses Feld nicht gefüllt ist, wird "
|
||||
"'flatfiles/default' als Standard gewählt."
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "registration required"
|
||||
msgstr "Registrierung erforderlich"
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "If this is checked, only logged-in users will be able to view the page."
|
||||
msgstr ""
|
||||
"Wenn hier ein Haken ist, können nur angemeldete Benutzer diese Seite sehen."
|
||||
|
||||
#: models/core.py:92
|
||||
msgid "flat page"
|
||||
msgstr "Webseite"
|
||||
|
||||
#: models/core.py:93
|
||||
msgid "flat pages"
|
||||
msgstr "Webseiten"
|
||||
|
||||
#: models/core.py:114
|
||||
msgid "session key"
|
||||
msgstr "Sitzungs-ID"
|
||||
|
||||
#: models/core.py:115
|
||||
msgid "session data"
|
||||
msgstr "Sitzungsdaten"
|
||||
|
||||
#: models/core.py:116
|
||||
msgid "expire date"
|
||||
msgstr "Ablaufdatum"
|
||||
|
||||
#: models/core.py:118
|
||||
msgid "session"
|
||||
msgstr "Sitzung"
|
||||
|
||||
#: models/core.py:119
|
||||
msgid "sessions"
|
||||
msgstr "Sitzungen"
|
||||
|
||||
#: models/auth.py:8
|
||||
msgid "codename"
|
||||
msgstr "Codename"
|
||||
|
||||
#: models/auth.py:10
|
||||
msgid "Permission"
|
||||
msgstr "Berechtigung"
|
||||
|
||||
#: models/auth.py:11 models/auth.py:58
|
||||
msgid "Permissions"
|
||||
msgstr "Berechtigungen"
|
||||
|
||||
#: models/auth.py:22
|
||||
msgid "Group"
|
||||
msgstr "Gruppe"
|
||||
|
||||
#: models/auth.py:23 models/auth.py:60
|
||||
msgid "Groups"
|
||||
msgstr "Gruppen"
|
||||
|
||||
#: models/auth.py:33
|
||||
msgid "username"
|
||||
msgstr "Benutzername"
|
||||
|
||||
#: models/auth.py:34
|
||||
msgid "first name"
|
||||
msgstr "Vorname"
|
||||
|
||||
#: models/auth.py:35
|
||||
msgid "last name"
|
||||
msgstr "Nachname"
|
||||
|
||||
#: models/auth.py:36
|
||||
msgid "e-mail address"
|
||||
msgstr "eMail-Adresse"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "password"
|
||||
msgstr "Passwort"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "Use an MD5 hash -- not the raw password."
|
||||
msgstr "Nicht das Passwort selber eintragen, sondern dessen MD5 signatur."
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "staff status"
|
||||
msgstr "Administrator"
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
"Gibt an, ob der Benutzer sich an der Administrationsseite anmelden kann."
|
||||
|
||||
#: models/auth.py:39
|
||||
msgid "active"
|
||||
msgstr "Aktiv"
|
||||
|
||||
#: models/auth.py:40
|
||||
msgid "superuser status"
|
||||
msgstr "Hauptadmin."
|
||||
|
||||
#: models/auth.py:41
|
||||
msgid "last login"
|
||||
msgstr "letzte Anmeldung"
|
||||
|
||||
#: models/auth.py:42
|
||||
msgid "date joined"
|
||||
msgstr "Mitglied seit"
|
||||
|
||||
#: models/auth.py:44
|
||||
msgid ""
|
||||
"In addition to the permissions manually assigned, this user will also get "
|
||||
"all permissions granted to each group he/she is in."
|
||||
msgstr ""
|
||||
"Zusätzlich zu den manuell angelegten Rechten erhält dieser Benutzer auch "
|
||||
"alle Rechte, die seine zugewiesenen Gruppen haben."
|
||||
|
||||
#: models/auth.py:48
|
||||
msgid "Users"
|
||||
msgstr "Benutzer"
|
||||
|
||||
#: models/auth.py:57
|
||||
msgid "Personal info"
|
||||
msgstr "Persönliche Infos"
|
||||
|
||||
#: models/auth.py:59
|
||||
msgid "Important dates"
|
||||
msgstr "Wichtige Daten"
|
||||
|
||||
#: models/auth.py:182
|
||||
msgid "Message"
|
||||
msgstr "Mitteilung"
|
||||
|
||||
#: conf/global_settings.py:37
|
||||
msgid "Czech"
|
||||
msgstr "Tschechisch"
|
||||
|
||||
#: conf/global_settings.py:38
|
||||
msgid "German"
|
||||
msgstr "Deutsch"
|
||||
|
||||
#: conf/global_settings.py:39
|
||||
msgid "English"
|
||||
msgstr "Englisch"
|
||||
|
||||
#: conf/global_settings.py:40
|
||||
msgid "Spanish"
|
||||
msgstr "Spanisch"
|
||||
|
||||
#: conf/global_settings.py:41
|
||||
msgid "French"
|
||||
msgstr "Französisch"
|
||||
|
||||
#: conf/global_settings.py:42
|
||||
msgid "Galician"
|
||||
msgstr "Galicisch"
|
||||
|
||||
#: conf/global_settings.py:43
|
||||
msgid "Italian"
|
||||
msgstr "Italienisch"
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Brazilian"
|
||||
msgstr "Brasilianisch"
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Russian"
|
||||
msgstr "Russisch"
|
||||
|
||||
#: conf/global_settings.py:46
|
||||
msgid "Serbian"
|
||||
msgstr "Serbisch"
|
||||
|
||||
#: conf/global_settings.py:47
|
||||
msgid "Traditional Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:58
|
||||
msgid "This value must contain only letters, numbers and underscores."
|
||||
msgstr "Der Wert darf nur Buchstaben, Ziffern und Unterstriche enthalten."
|
||||
|
||||
#: core/validators.py:62
|
||||
msgid "This value must contain only letters, numbers, underscores and slashes."
|
||||
msgstr ""
|
||||
"Der Wert darf nur Buchstaben, Ziffern, Unterstriche und Schrägstriche "
|
||||
"enthalten."
|
||||
|
||||
#: core/validators.py:70
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr "Großbuchstaben sind hier nicht erlaubt."
|
||||
|
||||
#: core/validators.py:74
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr "Kleinbuchstaben sind hier nicht erlaubt."
|
||||
|
||||
#: core/validators.py:81
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr "Hier sind nur durch Komma getrennte Ziffern erlaubt."
|
||||
|
||||
#: core/validators.py:93
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr "Bitte mit Komma getrennte, gültige eMail-Adressen eingeben."
|
||||
|
||||
#: core/validators.py:100
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr "Bitte eine gültige IP-Adresse eingeben."
|
||||
|
||||
#: core/validators.py:104
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr "Dieses Feld darf nicht leer sein."
|
||||
|
||||
#: core/validators.py:108
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr "Nichtnumerische Zeichen sind hier nicht erlaubt."
|
||||
|
||||
#: core/validators.py:112
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr "Dieser Wert darf nicht nur aus Ziffern bestehen."
|
||||
|
||||
#: core/validators.py:117
|
||||
msgid "Enter a whole number."
|
||||
msgstr "Bitte eine ganze Zahl eingeben."
|
||||
|
||||
#: core/validators.py:121
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr "Nur alphabetische Zeichen sind hier erlaubt."
|
||||
|
||||
#: core/validators.py:125
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr "Bitte ein gültiges Datum im Format JJJJ-MM-TT eingeben."
|
||||
|
||||
#: core/validators.py:129
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr "Bitte eine gültige Zeit im Format SS:MM eingeben."
|
||||
|
||||
#: core/validators.py:133
|
||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||
msgstr ""
|
||||
"Bitte eine gültige Datum+Zeit Angabe im Format JJJJ-MM-TT SS:MM eingeben."
|
||||
|
||||
#: core/validators.py:137
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "Bitte eine gültige eMail-Adresse eingeben"
|
||||
|
||||
#: core/validators.py:149
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
"Bitte ein Bild hochladen. Die Datei, die hochgeladen wurde, ist kein Bild "
|
||||
"oder ist defekt."
|
||||
|
||||
#: core/validators.py:156
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr "Die URL %s zeigt nicht auf ein gültiges Bild."
|
||||
|
||||
#: core/validators.py:160
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
"Telefonnummern müssen im Format XXX-XXX-XXXX sein. \"%s\" ist ungültig."
|
||||
|
||||
#: core/validators.py:168
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr "Die URL %s zeigt nicht auf ein gültiges QuickTime video."
|
||||
|
||||
#: core/validators.py:172
|
||||
msgid "A valid URL is required."
|
||||
msgstr "Eine gültige URL ist hier verlangt."
|
||||
|
||||
#: core/validators.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"Bitte gültiges HTML eingeben. Fehler sind:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "Ungültiges XML: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "Ungültige URL: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr "Die URL %s funktioniert nicht."
|
||||
|
||||
#: core/validators.py:211
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr "Bitte eine gültige Abkürzung für einen US-Staat eingeben."
|
||||
|
||||
#: core/validators.py:226
|
||||
#, 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] "Keine Schimpfworte! Das Wort %s ist hier nicht gern gesehen!"
|
||||
msgstr[1] "Keine Schimpfworte! Die Wörter %s sind hier nicht gern gesehen!"
|
||||
|
||||
#: core/validators.py:233
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr "Dieses Feld muss zum Feld '%s' passen."
|
||||
|
||||
#: core/validators.py:252
|
||||
msgid "Please enter something for at least one field."
|
||||
msgstr "Bitte mindestens eins der Felder ausfüllen."
|
||||
|
||||
#: core/validators.py:261 core/validators.py:272
|
||||
msgid "Please enter both fields or leave them both empty."
|
||||
msgstr "Bitte entweder beide Felder ausfüllen, oder beide leer lassen."
|
||||
|
||||
#: core/validators.py:279
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr ""
|
||||
"Dieses Feld muss gefüllt sein, wenn Feld %(field)s den Wert %(value)s hat."
|
||||
|
||||
#: core/validators.py:291
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is not %(value)s"
|
||||
msgstr ""
|
||||
"Dieses Feld muss gefüllt sein, wenn Feld %(field)s nicht %(value)s ist."
|
||||
|
||||
#: core/validators.py:310
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "Doppelte Werte sind hier nicht erlaubt."
|
||||
|
||||
#: core/validators.py:333
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr "Dieser Wert muss eine Potenz von %s sein."
|
||||
|
||||
#: core/validators.py:344
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr "Bitte eine gültige Dezimalzahl eingeben."
|
||||
|
||||
#: core/validators.py:346
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s total digits."
|
||||
msgstr[0] "Bitte eine gültige Dezimalzahl mit maximal %s Ziffer eingeben."
|
||||
msgstr[1] "Bitte eine gültige Dezimalzahl mit maximal %s Ziffern eingeben."
|
||||
|
||||
#: core/validators.py:349
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s decimal places."
|
||||
msgstr[0] ""
|
||||
"Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstelle eingeben."
|
||||
msgstr[1] ""
|
||||
"Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstellen eingeben."
|
||||
|
||||
#: core/validators.py:359
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr ""
|
||||
"Bitte sicherstellen, daß die hochgeladene Datei mindestens %s Bytes gross "
|
||||
"ist."
|
||||
|
||||
#: core/validators.py:360
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr ""
|
||||
"Bitte sicherstellen, daß die hochgeladene Datei maximal %s Bytes gross ist."
|
||||
|
||||
#: core/validators.py:373
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr "Das Format für dieses Feld ist falsch."
|
||||
|
||||
#: core/validators.py:388
|
||||
msgid "This field is invalid."
|
||||
msgstr "Dieses Feld ist ungültig."
|
||||
|
||||
#: core/validators.py:423
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr "Konnte nichts von %s empfangen."
|
||||
|
||||
#: core/validators.py:426
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr "Die URL %(url)s lieferte den falschen Content-Type '%(contenttype)s'."
|
||||
|
||||
#: core/validators.py:459
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Bitte das ungeschlossene %(tag)s Tag in Zeile %(line)s schließen. Die Zeile "
|
||||
"beginnt mit \"%(start)s\"."
|
||||
|
||||
#: core/validators.py:463
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some text starting on line %(line)s is not allowed in that context. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"In Zeile %(line)s ist Text, der nicht in dem Kontext erlaubt ist. Die Zeile "
|
||||
"beginnt mit \"%(start)s\"."
|
||||
|
||||
#: core/validators.py:468
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"Das Attribute %(attr)s in Zeile %(line)s ist ungültig. Die Zeile beginnt mit "
|
||||
"\"%(start)s\"."
|
||||
|
||||
#: core/validators.py:473
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"<%(tag)s> in Zeile %(line)s ist ungültig. Die Zeile beginnt mit \"%(start)s"
|
||||
"\"."
|
||||
|
||||
#: core/validators.py:477
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A tag on line %(line)s is missing one or more required attributes. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Ein Tag in Zeile %(line)s hat eines oder mehrere Pflichtattribute nicht. Die "
|
||||
"Zeile beginnt mit \"%(start)s\"."
|
||||
|
||||
#: core/validators.py:482
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Das Attribut %(attr)s in Zeile %(line)s hat einen ungültigen Wert. Die Zeile "
|
||||
"beginnt mit \"%(start)s\"."
|
||||
|
||||
#: core/meta/fields.py:95
|
||||
msgid " Separate multiple IDs with commas."
|
||||
msgstr "Mehrere IDs können mit Komma getrennt werden."
|
||||
|
||||
#: core/meta/fields.py:98
|
||||
msgid ""
|
||||
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||
msgstr ""
|
||||
" Um mehr als eine Selektion zu treffen, \"Control\" oder auf dem Mac "
|
||||
"\"Command\" beim Klicken gedrückt halten."
|
Binary file not shown.
|
@ -0,0 +1,927 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-11-03 12:26+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#: 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/object_history.html:5
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:18
|
||||
msgid "Date/time"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:20
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:26
|
||||
msgid "DATE_WITH_TIME_FULL"
|
||||
msgstr "N j, Y, P"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:36
|
||||
msgid ""
|
||||
"This object doesn't have a change history. It probably wasn't added via this "
|
||||
"admin site."
|
||||
msgstr ""
|
||||
|
||||
#: 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
|
||||
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
|
||||
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/login.html:15
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:18
|
||||
msgid "Password:"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:20
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||
"objects, but your account doesn't have permission to delete the following "
|
||||
"types of objects:"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||
"the following related items will be deleted:"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:18
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:6
|
||||
#: contrib/admin/templates/registration/password_change_form.html:10
|
||||
msgid "Password change"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:6
|
||||
#: contrib/admin/templates/registration/password_change_done.html:10
|
||||
msgid "Password change successful"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||
msgid "Your password was changed."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:4
|
||||
msgid "Password reset"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:12
|
||||
msgid ""
|
||||
"Forgotten your password? Enter your e-mail address below, and we'll reset "
|
||||
"your password and e-mail the new one to you."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "E-mail address:"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "Reset my password"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:8
|
||||
msgid "Thanks for spending some quality time with the Web site today."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:10
|
||||
msgid "Log in again"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:10
|
||||
msgid "Password reset successful"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:12
|
||||
msgid ""
|
||||
"We've e-mailed a new password to the e-mail address you submitted. You "
|
||||
"should be receiving it shortly."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:12
|
||||
msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||
msgid "Old password:"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||
msgid "New password:"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||
msgid "Confirm password:"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:23
|
||||
msgid "Change my password"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:2
|
||||
msgid "You're receiving this e-mail because you requested a password reset"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:3
|
||||
#, python-format
|
||||
msgid "for your user account at %(site_name)s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:5
|
||||
#, python-format
|
||||
msgid "Your new password is: %(new_password)s"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:7
|
||||
msgid "Feel free to change this password by going to this page:"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:11
|
||||
msgid "Your username, in case you've forgotten:"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:13
|
||||
msgid "Thanks for using our site!"
|
||||
msgstr ""
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:15
|
||||
#, python-format
|
||||
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 ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Tuesday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Wednesday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Thursday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Friday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Saturday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Sunday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15 utils/dates.py:27
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:16
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Jan."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Feb."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Aug."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Sept."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Oct."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Nov."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Dec."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:5
|
||||
msgid "domain name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:6
|
||||
msgid "display name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:8
|
||||
msgid "site"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:9
|
||||
msgid "sites"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:22
|
||||
msgid "label"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:25
|
||||
msgid "package"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:26
|
||||
msgid "packages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:36
|
||||
msgid "python module name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:38
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:39
|
||||
msgid "content types"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:62
|
||||
msgid "redirect from"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:63
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:64
|
||||
msgid "redirect to"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:65
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:67
|
||||
msgid "redirect"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:68
|
||||
msgid "redirects"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:81
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:82
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:83
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:84
|
||||
msgid "content"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:85
|
||||
msgid "enable comments"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:86
|
||||
msgid "template name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:87
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "registration required"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "If this is checked, only logged-in users will be able to view the page."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:92
|
||||
msgid "flat page"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:93
|
||||
msgid "flat pages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:114
|
||||
msgid "session key"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:115
|
||||
msgid "session data"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:116
|
||||
msgid "expire date"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:118
|
||||
msgid "session"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:119
|
||||
msgid "sessions"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:8
|
||||
msgid "codename"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:10
|
||||
msgid "Permission"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:11 models/auth.py:58
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:22
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:23 models/auth.py:60
|
||||
msgid "Groups"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:33
|
||||
msgid "username"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:34
|
||||
msgid "first name"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:35
|
||||
msgid "last name"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:36
|
||||
msgid "e-mail address"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "password"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "Use an MD5 hash -- not the raw password."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "staff status"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:39
|
||||
msgid "active"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:40
|
||||
msgid "superuser status"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:41
|
||||
msgid "last login"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:42
|
||||
msgid "date joined"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:44
|
||||
msgid ""
|
||||
"In addition to the permissions manually assigned, this user will also get "
|
||||
"all permissions granted to each group he/she is in."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:48
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:57
|
||||
msgid "Personal info"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:59
|
||||
msgid "Important dates"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:182
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:37
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:38
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:39
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:40
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:41
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:42
|
||||
msgid "Galician"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:43
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Brazilian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:46
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:47
|
||||
msgid "Traditional Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:58
|
||||
msgid "This value must contain only letters, numbers and underscores."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:62
|
||||
msgid "This value must contain only letters, numbers, underscores and slashes."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:70
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:74
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:81
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:93
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:100
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:104
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:108
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:112
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:117
|
||||
msgid "Enter a whole number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:121
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:125
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:129
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:133
|
||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:137
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:149
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:156
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:160
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:168
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:172
|
||||
msgid "A valid URL is required."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:193
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:205
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:211
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:226
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:252
|
||||
msgid "Please enter something for at least one field."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:261 core/validators.py:272
|
||||
msgid "Please enter both fields or leave them both empty."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:279
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:291
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is not %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:310
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:333
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:344
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:346
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s total digits."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:349
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s decimal places."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:359
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:360
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:373
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:388
|
||||
msgid "This field is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:423
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:426
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:459
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:463
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:473
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:477
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/meta/fields.py:95
|
||||
msgid " Separate multiple IDs with commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/meta/fields.py:98
|
||||
msgid ""
|
||||
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||
msgstr ""
|
Binary file not shown.
|
@ -0,0 +1,959 @@
|
|||
# translation of django.po to Español
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
|
||||
# Ricardo Javier Cárdenes Medina <ricardo.cardenes@gmail.com>, 2005.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-11-03 12:26+0100\n"
|
||||
"PO-Revision-Date: 2005-10-04 20:59GMT\n"
|
||||
"Last-Translator: Ricardo Javier Cárdenes Medina <ricardo.cardenes@gmail."
|
||||
"com>\n"
|
||||
"Language-Team: Español <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.10.2\n"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#: 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 "Inicio"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
msgid "History"
|
||||
msgstr "Histórico"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:18
|
||||
msgid "Date/time"
|
||||
msgstr "Fecha/hora"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:20
|
||||
msgid "Action"
|
||||
msgstr "Acción"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:26
|
||||
msgid "DATE_WITH_TIME_FULL"
|
||||
msgstr "j. N Y, H:i"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:36
|
||||
msgid ""
|
||||
"This object doesn't have a change history. It probably wasn't added via this "
|
||||
"admin site."
|
||||
msgstr ""
|
||||
"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/500.html:4
|
||||
#, fuzzy
|
||||
msgid "Server error"
|
||||
msgstr "Error del servidor (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:6
|
||||
msgid "Server error (500)"
|
||||
msgstr "Error del servidor (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:9
|
||||
msgid "Server Error <em>(500)</em>"
|
||||
msgstr "Error de servidor <em>(500)</em>"
|
||||
|
||||
#: 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 ""
|
||||
"Ha ocurrido un error. Se ha informado a los administradores del sitio "
|
||||
"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
|
||||
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/login.html:15
|
||||
msgid "Username:"
|
||||
msgstr "Usuario:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:18
|
||||
msgid "Password:"
|
||||
msgstr "Clave:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:20
|
||||
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/login.html:24
|
||||
msgid "Log in"
|
||||
msgstr "Registrarse"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Bienvenido,"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Cambiar clave"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Terminar"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
msgid ""
|
||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||
"objects, but your account doesn't have permission to delete the following "
|
||||
"types of objects:"
|
||||
msgstr ""
|
||||
"Eliminar el %(object_name)s '%(object)s' provocaría la eliminación de "
|
||||
"objetos relacionados, pero su cuenta no tiene permiso para borrar los "
|
||||
"siguientes tipos de objetos:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||
"the following related items will be deleted:"
|
||||
msgstr ""
|
||||
"¿Está seguro de que quiere borrar los %(object_name)s \"%(object)s\"? Se "
|
||||
"borrarán los siguientes objetos relacionados:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:18
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Sí, estoy seguro"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:6
|
||||
#: contrib/admin/templates/registration/password_change_form.html:10
|
||||
msgid "Password change"
|
||||
msgstr "Cambiar clave"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:6
|
||||
#: contrib/admin/templates/registration/password_change_done.html:10
|
||||
msgid "Password change successful"
|
||||
msgstr "Cambio de clave con éxito"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||
msgid "Your password was changed."
|
||||
msgstr "Su clave ha cambiado."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:4
|
||||
msgid "Password reset"
|
||||
msgstr "Recuperar clave"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:12
|
||||
msgid ""
|
||||
"Forgotten your password? Enter your e-mail address below, and we'll reset "
|
||||
"your password and e-mail the new one to you."
|
||||
msgstr ""
|
||||
"¿Ha olvidado su clave? Introduzca su dirección de correo, y crearemos una "
|
||||
"nueva que le enviaremos por correo."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "E-mail address:"
|
||||
msgstr "Dirección de correo:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "Reset my password"
|
||||
msgstr "Recuperar mi clave"
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:8
|
||||
msgid "Thanks for spending some quality time with the Web site today."
|
||||
msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy."
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:10
|
||||
msgid "Log in again"
|
||||
msgstr "Registrarse de nuevo"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:10
|
||||
msgid "Password reset successful"
|
||||
msgstr "Recuperación de clave con éxito"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:12
|
||||
msgid ""
|
||||
"We've e-mailed a new password to the e-mail address you submitted. You "
|
||||
"should be receiving it shortly."
|
||||
msgstr ""
|
||||
"Le hemos enviado una clave nueva a la dirección que ha suministrado. Debería "
|
||||
"recibirla en breve."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:12
|
||||
msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
"Por favor, introduzca su clave antigua, por seguridad, y después introduzca "
|
||||
"la nueva clave dos veces para verificar que la ha escrito correctamente."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||
msgid "Old password:"
|
||||
msgstr "Clave antigua:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||
msgid "New password:"
|
||||
msgstr "Clave nueva:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||
msgid "Confirm password:"
|
||||
msgstr "Confirme clave:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:23
|
||||
msgid "Change my password"
|
||||
msgstr "Cambiar mi clave"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:2
|
||||
msgid "You're receiving this e-mail because you requested a password reset"
|
||||
msgstr "Recibe este mensaje debido a que solicitó recuperar la clave"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:3
|
||||
#, python-format
|
||||
msgid "for your user account at %(site_name)s"
|
||||
msgstr "de su cuenta de usuario en %(site_name)s."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:5
|
||||
#, python-format
|
||||
msgid "Your new password is: %(new_password)s"
|
||||
msgstr "Su nueva clave es: %(new_password)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:7
|
||||
msgid "Feel free to change this password by going to this page:"
|
||||
msgstr "Puede cambiarla accediendo a esta página:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:11
|
||||
msgid "Your username, in case you've forgotten:"
|
||||
msgstr "Su nombre de usuario, en caso de haberlo olvidado:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:13
|
||||
msgid "Thanks for using our site!"
|
||||
msgstr "¡Gracias por usar nuestro sitio!"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:15
|
||||
#, python-format
|
||||
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 ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Tuesday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Wednesday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Thursday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Friday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Saturday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Sunday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15 utils/dates.py:27
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:16
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Jan."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Feb."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Aug."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Sept."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Oct."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Nov."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Dec."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:5
|
||||
msgid "domain name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:6
|
||||
msgid "display name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:8
|
||||
msgid "site"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:9
|
||||
msgid "sites"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:22
|
||||
msgid "label"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
|
||||
#, fuzzy
|
||||
msgid "name"
|
||||
msgstr "Usuario:"
|
||||
|
||||
#: models/core.py:25
|
||||
msgid "package"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:26
|
||||
msgid "packages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:36
|
||||
msgid "python module name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:38
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:39
|
||||
msgid "content types"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:62
|
||||
msgid "redirect from"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:63
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:64
|
||||
msgid "redirect to"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:65
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:67
|
||||
msgid "redirect"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:68
|
||||
msgid "redirects"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:81
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:82
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:83
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:84
|
||||
msgid "content"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:85
|
||||
msgid "enable comments"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:86
|
||||
msgid "template name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:87
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "registration required"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "If this is checked, only logged-in users will be able to view the page."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:92
|
||||
msgid "flat page"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:93
|
||||
msgid "flat pages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:114
|
||||
msgid "session key"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:115
|
||||
msgid "session data"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:116
|
||||
msgid "expire date"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:118
|
||||
msgid "session"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:119
|
||||
msgid "sessions"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:8
|
||||
msgid "codename"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:10
|
||||
msgid "Permission"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:11 models/auth.py:58
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:22
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:23 models/auth.py:60
|
||||
msgid "Groups"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:33
|
||||
#, fuzzy
|
||||
msgid "username"
|
||||
msgstr "Usuario:"
|
||||
|
||||
#: models/auth.py:34
|
||||
msgid "first name"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:35
|
||||
msgid "last name"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:36
|
||||
#, fuzzy
|
||||
msgid "e-mail address"
|
||||
msgstr "Dirección de correo:"
|
||||
|
||||
#: models/auth.py:37
|
||||
#, fuzzy
|
||||
msgid "password"
|
||||
msgstr "Clave:"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "Use an MD5 hash -- not the raw password."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "staff status"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:39
|
||||
msgid "active"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:40
|
||||
msgid "superuser status"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:41
|
||||
msgid "last login"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:42
|
||||
msgid "date joined"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:44
|
||||
msgid ""
|
||||
"In addition to the permissions manually assigned, this user will also get "
|
||||
"all permissions granted to each group he/she is in."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:48
|
||||
#, fuzzy
|
||||
msgid "Users"
|
||||
msgstr "Usuario"
|
||||
|
||||
#: models/auth.py:57
|
||||
msgid "Personal info"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:59
|
||||
msgid "Important dates"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:182
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:37
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:38
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:39
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:40
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:41
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:42
|
||||
msgid "Galician"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:43
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Brazilian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:46
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:47
|
||||
msgid "Traditional Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:58
|
||||
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
|
||||
#, 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
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:74
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:81
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:93
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:100
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:104
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:108
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:112
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:117
|
||||
msgid "Enter a whole number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:121
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:125
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:129
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:133
|
||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:137
|
||||
#, fuzzy
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "Dirección de correo:"
|
||||
|
||||
#: core/validators.py:149
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:156
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:160
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:168
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:172
|
||||
msgid "A valid URL is required."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:193
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:205
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:211
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:226
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:252
|
||||
msgid "Please enter something for at least one field."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:261 core/validators.py:272
|
||||
msgid "Please enter both fields or leave them both empty."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:279
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:291
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is not %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:310
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:333
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:344
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:346
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s total digits."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:349
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s decimal places."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:359
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:360
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:373
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:388
|
||||
msgid "This field is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:423
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:426
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:459
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:463
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:473
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:477
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/meta/fields.py:95
|
||||
msgid " Separate multiple IDs with commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/meta/fields.py:98
|
||||
msgid ""
|
||||
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Server error <em>(500)</em>"
|
||||
#~ msgstr "Error del servidor <em>(500)</em>"
|
||||
|
||||
#~ msgid "Click to change"
|
||||
#~ msgstr "Cambie para modificar"
|
Binary file not shown.
|
@ -0,0 +1,995 @@
|
|||
# translation of django.po to french
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
|
||||
# Laurent Rahuel <laurent.rahuel@gmail.com>, 2005.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-11-03 12:26+0100\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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#: 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 "Accueil"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
msgid "History"
|
||||
msgstr "Historique"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:18
|
||||
msgid "Date/time"
|
||||
msgstr "Date/Heure"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47
|
||||
msgid "User"
|
||||
msgstr "Utilisateur"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:20
|
||||
msgid "Action"
|
||||
msgstr "Action"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:26
|
||||
msgid "DATE_WITH_TIME_FULL"
|
||||
msgstr "j. N Y, H:i"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:36
|
||||
msgid ""
|
||||
"This object doesn't have a change history. It probably wasn't added via this "
|
||||
"admin site."
|
||||
msgstr ""
|
||||
"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/500.html:4
|
||||
#, fuzzy
|
||||
msgid "Server error"
|
||||
msgstr "Erreur du serveur (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:6
|
||||
msgid "Server error (500)"
|
||||
msgstr "Erreur du serveur (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:9
|
||||
msgid "Server Error <em>(500)</em>"
|
||||
msgstr "Erreur du serveur <em>(500)</em>"
|
||||
|
||||
#: 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 ""
|
||||
"Une erreur est survenue. Elle a été transmise par courriel aux "
|
||||
"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
|
||||
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/login.html:15
|
||||
msgid "Username:"
|
||||
msgstr "Nom d'utilisateur"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:18
|
||||
msgid "Password:"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:20
|
||||
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/login.html:24
|
||||
msgid "Log in"
|
||||
msgstr "Connectez vous"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Bienvenue,"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Modifier votre mot de passe"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Déconnection"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
msgid ""
|
||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||
"objects, but your account doesn't have permission to delete the following "
|
||||
"types of objects:"
|
||||
msgstr ""
|
||||
"Supprimer %(object_name)s '%(object)s' provoquerait la suppression des "
|
||||
"objets qui lui sont liés mais votre compte ne possède pas la permission de "
|
||||
"supprimer les types d'objets suivants:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||
"the following related items will be deleted:"
|
||||
msgstr ""
|
||||
"Êtes vous certain de vouloir supprimer %(object_name)s \"%(object)s\"? Tous "
|
||||
"les éléments liés suivants seront supprimés:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:18
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Oui, je suis certain"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:6
|
||||
#: contrib/admin/templates/registration/password_change_form.html:10
|
||||
msgid "Password change"
|
||||
msgstr "Modification de votre mot de passe"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:6
|
||||
#: contrib/admin/templates/registration/password_change_done.html:10
|
||||
msgid "Password change successful"
|
||||
msgstr "Mot de passe modifié avec succés"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||
msgid "Your password was changed."
|
||||
msgstr "Votre mot de passe a été modifié."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:4
|
||||
msgid "Password reset"
|
||||
msgstr "Réinitialisation de votre mot de passe"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:12
|
||||
msgid ""
|
||||
"Forgotten your password? Enter your e-mail address below, and we'll reset "
|
||||
"your password and e-mail the new one to you."
|
||||
msgstr ""
|
||||
"Mot de passe perdu ? Saisissez votre adresse de courriel ci-dessous et nous "
|
||||
"annulerons votre mot de passe actuel avant de vous en faire parvenir un "
|
||||
"nouveau par courriel."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "E-mail address:"
|
||||
msgstr "Courriel:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "Reset my password"
|
||||
msgstr "Réinitialiser mon mot de passe"
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:8
|
||||
msgid "Thanks for spending some quality time with the Web site today."
|
||||
msgstr "Merci pour le temps que vous avez accordé au site aujourd'hui."
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:10
|
||||
msgid "Log in again"
|
||||
msgstr "Connectez vous à nouveau"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:10
|
||||
msgid "Password reset successful"
|
||||
msgstr "Mot de passe réinitialisé avec succés"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:12
|
||||
msgid ""
|
||||
"We've e-mailed a new password to the e-mail address you submitted. You "
|
||||
"should be receiving it shortly."
|
||||
msgstr ""
|
||||
"Nous vous avons envoyé par courriel un nouveau mot de passe. Vous devriez le "
|
||||
"recevoir rapidement."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:12
|
||||
msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
"Pour des raisons de sécurité, veuillez entrer votre ancien mot de passe puis "
|
||||
"saisissez deux fois votre nouveau mot de passe afin que nous puissions "
|
||||
"vérifier que vous l'avez tapé correctement."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||
msgid "Old password:"
|
||||
msgstr "Ancien mot de passe:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||
msgid "New password:"
|
||||
msgstr "Nouveau mot de passe:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||
msgid "Confirm password:"
|
||||
msgstr "Confirmation de votre nouveau mot de passe"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:23
|
||||
msgid "Change my password"
|
||||
msgstr "Modifier mon mot de passe"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:2
|
||||
msgid "You're receiving this e-mail because you requested a password reset"
|
||||
msgstr ""
|
||||
"Vous recevez ce courriel car vous avez demandé un changement de mot de passe"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:3
|
||||
#, python-format
|
||||
msgid "for your user account at %(site_name)s"
|
||||
msgstr "pour votre compte du site %(site_name)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:5
|
||||
#, python-format
|
||||
msgid "Your new password is: %(new_password)s"
|
||||
msgstr "Votre nouveau mot de passe est: %(new_password)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:7
|
||||
msgid "Feel free to change this password by going to this page:"
|
||||
msgstr "Vous pouvez modifier ce mot de passe à l'adresse suivante:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:11
|
||||
msgid "Your username, in case you've forgotten:"
|
||||
msgstr "Votre nom d'utilisateur, en cas d'oubli:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:13
|
||||
msgid "Thanks for using our site!"
|
||||
msgstr "Merci d'utiliser notre site!"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:15
|
||||
#, python-format
|
||||
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"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Monday"
|
||||
msgstr "Lundi"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Tuesday"
|
||||
msgstr "Mardi"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Wednesday"
|
||||
msgstr "Mercredi"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Thursday"
|
||||
msgstr "Jeudi"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Friday"
|
||||
msgstr "Vendredi"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Saturday"
|
||||
msgstr "Samedi"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Sunday"
|
||||
msgstr "Dimanche"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "January"
|
||||
msgstr "Janvier"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "February"
|
||||
msgstr "Février"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "March"
|
||||
msgstr "Mars"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "April"
|
||||
msgstr "Avril"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "May"
|
||||
msgstr "Mai"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "June"
|
||||
msgstr "Juin"
|
||||
|
||||
#: utils/dates.py:15 utils/dates.py:27
|
||||
msgid "July"
|
||||
msgstr "Juillet"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "August"
|
||||
msgstr "Aôut"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "September"
|
||||
msgstr "Septembre"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "October"
|
||||
msgstr "Octobre"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "November"
|
||||
msgstr "Novembre"
|
||||
|
||||
#: utils/dates.py:16
|
||||
msgid "December"
|
||||
msgstr "Décembre"
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Jan."
|
||||
msgstr "Jan."
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Feb."
|
||||
msgstr "Fév."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Aug."
|
||||
msgstr "Aôut"
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Sept."
|
||||
msgstr "Sept."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Oct."
|
||||
msgstr "Oct."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Nov."
|
||||
msgstr "Nov."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Dec."
|
||||
msgstr "Déc."
|
||||
|
||||
#: models/core.py:5
|
||||
msgid "domain name"
|
||||
msgstr "nom de domaine"
|
||||
|
||||
#: models/core.py:6
|
||||
msgid "display name"
|
||||
msgstr "nom à afficher"
|
||||
|
||||
#: models/core.py:8
|
||||
msgid "site"
|
||||
msgstr "site"
|
||||
|
||||
#: models/core.py:9
|
||||
msgid "sites"
|
||||
msgstr "sites"
|
||||
|
||||
#: models/core.py:22
|
||||
msgid "label"
|
||||
msgstr "intitulé"
|
||||
|
||||
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
|
||||
msgid "name"
|
||||
msgstr "nom"
|
||||
|
||||
#: models/core.py:25
|
||||
msgid "package"
|
||||
msgstr "paquetage"
|
||||
|
||||
#: models/core.py:26
|
||||
msgid "packages"
|
||||
msgstr "paquetages"
|
||||
|
||||
#: models/core.py:36
|
||||
msgid "python module name"
|
||||
msgstr "nom du module python"
|
||||
|
||||
#: models/core.py:38
|
||||
msgid "content type"
|
||||
msgstr "type de contenu"
|
||||
|
||||
#: models/core.py:39
|
||||
msgid "content types"
|
||||
msgstr "types de contenu"
|
||||
|
||||
#: models/core.py:62
|
||||
msgid "redirect from"
|
||||
msgstr "redirigé depuis"
|
||||
|
||||
#: models/core.py:63
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
"Ceci doit être un chemin absolu, sans nom de domaine. Par exemple: '/events/"
|
||||
"search/'."
|
||||
|
||||
#: models/core.py:64
|
||||
msgid "redirect to"
|
||||
msgstr "redirigé vers"
|
||||
|
||||
#: models/core.py:65
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
"Ceci peut être soit un chemin absolu (voir ci-dessus) soit une URL complète "
|
||||
"débutant par 'http://'."
|
||||
|
||||
#: models/core.py:67
|
||||
msgid "redirect"
|
||||
msgstr "redirection"
|
||||
|
||||
#: models/core.py:68
|
||||
msgid "redirects"
|
||||
msgstr "redirections"
|
||||
|
||||
#: models/core.py:81
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: models/core.py:82
|
||||
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
|
||||
msgid "title"
|
||||
msgstr "titre"
|
||||
|
||||
#: models/core.py:84
|
||||
msgid "content"
|
||||
msgstr "contenu"
|
||||
|
||||
#: models/core.py:85
|
||||
msgid "enable comments"
|
||||
msgstr "autoriser les commentaires"
|
||||
|
||||
#: models/core.py:86
|
||||
msgid "template name"
|
||||
msgstr "nom du template"
|
||||
|
||||
#: models/core.py:87
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
"Par exemple: 'flatfiles/contact_page'. Sans définition, le système utilisera "
|
||||
"'flatfiles/default'."
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "registration required"
|
||||
msgstr "enregistrement requis"
|
||||
|
||||
#: models/core.py:88
|
||||
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
|
||||
msgid "flat page"
|
||||
msgstr "page à plat"
|
||||
|
||||
#: models/core.py:93
|
||||
msgid "flat pages"
|
||||
msgstr "pages à plat"
|
||||
|
||||
#: models/core.py:114
|
||||
msgid "session key"
|
||||
msgstr "clé de session"
|
||||
|
||||
#: models/core.py:115
|
||||
msgid "session data"
|
||||
msgstr "donnée de session"
|
||||
|
||||
#: models/core.py:116
|
||||
msgid "expire date"
|
||||
msgstr "date d'expiration"
|
||||
|
||||
#: models/core.py:118
|
||||
msgid "session"
|
||||
msgstr "session"
|
||||
|
||||
#: models/core.py:119
|
||||
msgid "sessions"
|
||||
msgstr "sessions"
|
||||
|
||||
#: models/auth.py:8
|
||||
msgid "codename"
|
||||
msgstr "nom de code"
|
||||
|
||||
#: models/auth.py:10
|
||||
msgid "Permission"
|
||||
msgstr "Permission"
|
||||
|
||||
#: models/auth.py:11 models/auth.py:58
|
||||
msgid "Permissions"
|
||||
msgstr "Permissions"
|
||||
|
||||
#: models/auth.py:22
|
||||
msgid "Group"
|
||||
msgstr "Groupe"
|
||||
|
||||
#: models/auth.py:23 models/auth.py:60
|
||||
msgid "Groups"
|
||||
msgstr "Groupes"
|
||||
|
||||
#: models/auth.py:33
|
||||
msgid "username"
|
||||
msgstr "nom d'utilisateur"
|
||||
|
||||
#: models/auth.py:34
|
||||
msgid "first name"
|
||||
msgstr "prénom"
|
||||
|
||||
#: models/auth.py:35
|
||||
msgid "last name"
|
||||
msgstr "nom"
|
||||
|
||||
#: models/auth.py:36
|
||||
msgid "e-mail address"
|
||||
msgstr "courriel"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "password"
|
||||
msgstr "mot de passe"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "Use an MD5 hash -- not the raw password."
|
||||
msgstr "Utilisez une chaine cryptée MD5 -- pas un mot de passe en clair."
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "staff status"
|
||||
msgstr "statut staff"
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Précise si l'utilisateur peut se connecter à ce site d'administration."
|
||||
|
||||
#: models/auth.py:39
|
||||
msgid "active"
|
||||
msgstr "actif"
|
||||
|
||||
#: models/auth.py:40
|
||||
msgid "superuser status"
|
||||
msgstr "statut superuser"
|
||||
|
||||
#: models/auth.py:41
|
||||
msgid "last login"
|
||||
msgstr "dernière connection"
|
||||
|
||||
#: models/auth.py:42
|
||||
msgid "date joined"
|
||||
msgstr "date d'inscription"
|
||||
|
||||
#: models/auth.py:44
|
||||
msgid ""
|
||||
"In addition to the permissions manually assigned, this user will also get "
|
||||
"all permissions granted to each group he/she is in."
|
||||
msgstr ""
|
||||
"En plus des permissions qui lui sont manuellement assignées, cet utilisateur "
|
||||
"recevra aussi toutes les permissions de tous les groupes auquels il "
|
||||
"appartient. "
|
||||
|
||||
#: models/auth.py:48
|
||||
msgid "Users"
|
||||
msgstr "Utilisateurs"
|
||||
|
||||
#: models/auth.py:57
|
||||
msgid "Personal info"
|
||||
msgstr "Information personnelle"
|
||||
|
||||
#: models/auth.py:59
|
||||
msgid "Important dates"
|
||||
msgstr "Dates importantes"
|
||||
|
||||
#: models/auth.py:182
|
||||
msgid "Message"
|
||||
msgstr "Message"
|
||||
|
||||
#: conf/global_settings.py:37
|
||||
msgid "Czech"
|
||||
msgstr "Tchèque"
|
||||
|
||||
#: conf/global_settings.py:38
|
||||
msgid "German"
|
||||
msgstr "Allemand"
|
||||
|
||||
#: conf/global_settings.py:39
|
||||
msgid "English"
|
||||
msgstr "Anglais"
|
||||
|
||||
#: conf/global_settings.py:40
|
||||
msgid "Spanish"
|
||||
msgstr "Espagnol"
|
||||
|
||||
#: conf/global_settings.py:41
|
||||
msgid "French"
|
||||
msgstr "Français"
|
||||
|
||||
#: conf/global_settings.py:42
|
||||
msgid "Galician"
|
||||
msgstr "Galicien"
|
||||
|
||||
#: conf/global_settings.py:43
|
||||
#, fuzzy
|
||||
msgid "Italian"
|
||||
msgstr "Italien"
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Brazilian"
|
||||
msgstr "Brésilien"
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Russian"
|
||||
msgstr "Russe"
|
||||
|
||||
#: conf/global_settings.py:46
|
||||
#, fuzzy
|
||||
msgid "Serbian"
|
||||
msgstr "Serbe"
|
||||
|
||||
#: conf/global_settings.py:47
|
||||
msgid "Traditional Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:58
|
||||
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
|
||||
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
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr "Les lettres majuscules ne sont pas autorisées ici."
|
||||
|
||||
#: core/validators.py:74
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr "Les lettres minuscules ne sont pas autorisées ici."
|
||||
|
||||
#: core/validators.py:81
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr "Seulement des chiffres ([0-9]), séparés par des virgules."
|
||||
|
||||
#: core/validators.py:93
|
||||
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
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr "Entrez une adresse IP valide."
|
||||
|
||||
#: core/validators.py:104
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr "Vous ne pouvez pas laisser ce champ vide."
|
||||
|
||||
#: core/validators.py:108
|
||||
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
|
||||
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
|
||||
msgid "Enter a whole number."
|
||||
msgstr "Entrez un nombre entier."
|
||||
|
||||
#: core/validators.py:121
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr "Seules les lettres de l'alphabet sont autorisées ici."
|
||||
|
||||
#: core/validators.py:125
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr "Entrez une date valide au format AAAA-MM-JJ."
|
||||
|
||||
#: core/validators.py:129
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr "Entrez une heure valide au format HH:MM."
|
||||
|
||||
#: core/validators.py:133
|
||||
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
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "Entrez une adresse de courriel valide."
|
||||
|
||||
#: core/validators.py:149
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
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
|
||||
#, 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
|
||||
#, 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
|
||||
#, 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
|
||||
msgid "A valid URL is required."
|
||||
msgstr "Une URL valide est requise."
|
||||
|
||||
#: core/validators.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"Du HTML valide est requis. Les erreurs spécifiques sont:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "XML mal formé: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "URL invalide: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr "L'URL %s est un lien cassé."
|
||||
|
||||
#: core/validators.py:211
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr "Entrez une abréviation d'état américain valide."
|
||||
|
||||
#: core/validators.py:226
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr "Ce champ doit correspondre au champ '%s'."
|
||||
|
||||
#: core/validators.py:252
|
||||
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
|
||||
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
|
||||
#, 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
|
||||
#, 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
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "Des valeurs identiques ne sont pas autorisées."
|
||||
|
||||
#: core/validators.py:333
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr "Cette valeur doit être une puissance de %s."
|
||||
|
||||
#: core/validators.py:344
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr "S'il vous plaît, saisissez un nombre décimal valide."
|
||||
|
||||
#: core/validators.py:346
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s total digits."
|
||||
msgstr[0] ""
|
||||
"S'il vous plaît, saisissez un nombre décimal valide avec au plus %s chiffre."
|
||||
msgstr[1] ""
|
||||
"S'il vous plaît, saisissez un nombre décimal valide avec au plus %s chiffres."
|
||||
|
||||
#: core/validators.py:349
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s decimal places."
|
||||
msgstr[0] ""
|
||||
"S'il vous plaît, saisissez un nombre décimal valide avec au plus %s décimale"
|
||||
msgstr[1] ""
|
||||
"S'il vous plaît, saisissez un nombre décimal valide avec au plus %s décimales"
|
||||
|
||||
#: core/validators.py:359
|
||||
#, 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
|
||||
#, 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
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr "Le format de ce champ est mauvais."
|
||||
|
||||
#: core/validators.py:388
|
||||
msgid "This field is invalid."
|
||||
msgstr "Ce champ est invalide."
|
||||
|
||||
#: core/validators.py:423
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr ""
|
||||
"L'entête Content-Type '%(contenttype)s', renvoyée par l'url %(url)s n'est "
|
||||
"pas valide."
|
||||
|
||||
#: core/validators.py:459
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Veuillez fermer le tag %(tag)s de la ligne %(line)s. (La ligne débutant par "
|
||||
"\"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some text starting on line %(line)s is not allowed in that context. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"\"%(attr)s\" ligne %(line)s n'est pas un attribut valide. (Ligne débutant "
|
||||
"par \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"\"<%(tag)s>\" ligne %(line)s n'est pas un tag valide. (Ligne débutant par \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A tag on line %(line)s is missing one or more required attributes. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"La valeur de l'attribut \"%(attr)s\" de la ligne %(line)s n'est pas valide. "
|
||||
"(Ligne débutant par \"%(start)s\".)"
|
||||
|
||||
#: core/meta/fields.py:95
|
||||
msgid " Separate multiple IDs with commas."
|
||||
msgstr "Séparez les ID par des virgules."
|
||||
|
||||
#: core/meta/fields.py:98
|
||||
msgid ""
|
||||
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||
msgstr ""
|
||||
"Maintenez \"Control\", or \"Command\" sur un Mac, pour en sélectionner plus "
|
||||
"d'une."
|
||||
|
||||
#~ msgid "Messages"
|
||||
#~ msgstr "Messages"
|
Binary file not shown.
|
@ -0,0 +1,955 @@
|
|||
# Translation of django.po to Galego
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Afonso Fernández Nogueira <fonzzo.django@gmail.com>, 2005.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-11-03 12:26+0100\n"
|
||||
"PO-Revision-Date: 2005-10-16 14:29+0100\n"
|
||||
"Last-Translator: Afonso Fernández Nogueira <fonzzo.django@gmail.com>\n"
|
||||
"Language-Team: Galego\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-Language: Galician\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#: 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 "Inicio"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
msgid "History"
|
||||
msgstr "Histórico"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:18
|
||||
msgid "Date/time"
|
||||
msgstr "Data/hora"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:20
|
||||
msgid "Action"
|
||||
msgstr "Acción"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:26
|
||||
msgid "DATE_WITH_TIME_FULL"
|
||||
msgstr "j. N Y, H:i"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:36
|
||||
msgid ""
|
||||
"This object doesn't have a change history. It probably wasn't added via this "
|
||||
"admin site."
|
||||
msgstr ""
|
||||
"Este obxecto non ten histórico de cambios. Posibelmente non se creou usando "
|
||||
"este sitio de administración."
|
||||
|
||||
#: contrib/admin/templates/admin/base_site.html:4
|
||||
msgid "Django site admin"
|
||||
msgstr "Administración de sitio Django"
|
||||
|
||||
#: contrib/admin/templates/admin/base_site.html:7
|
||||
msgid "Django administration"
|
||||
msgstr "Administración de Django"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#, fuzzy
|
||||
msgid "Server error"
|
||||
msgstr "Erro do servidor (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:6
|
||||
msgid "Server error (500)"
|
||||
msgstr "Erro do servidor (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:9
|
||||
msgid "Server Error <em>(500)</em>"
|
||||
msgstr "Erro do servidor <em>(500)</em>"
|
||||
|
||||
#: 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 ""
|
||||
"Houbo un erro. Xa se informou aos administradores do sitio por correo "
|
||||
"electrónico e debería quedar arranxado pronto. Grazas pola súa paciencia."
|
||||
|
||||
#: contrib/admin/templates/admin/404.html:4
|
||||
#: contrib/admin/templates/admin/404.html:8
|
||||
msgid "Page not found"
|
||||
msgstr "Páxina non atopada"
|
||||
|
||||
#: contrib/admin/templates/admin/404.html:10
|
||||
msgid "We're sorry, but the requested page could not be found."
|
||||
msgstr "Sentímolo, pero non se atopou a páxina solicitada."
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:27
|
||||
msgid "Add"
|
||||
msgstr "Engadir"
|
||||
|
||||
#: 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 "Non ten permiso para editar nada."
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:51
|
||||
msgid "Recent Actions"
|
||||
msgstr "Accións recentes"
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:52
|
||||
msgid "My Actions"
|
||||
msgstr "As miñas accións"
|
||||
|
||||
#: contrib/admin/templates/admin/index.html:56
|
||||
msgid "None available"
|
||||
msgstr "Ningunha dispoñíbel"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:15
|
||||
msgid "Username:"
|
||||
msgstr "Usuario:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:18
|
||||
msgid "Password:"
|
||||
msgstr "Contrasinal:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:20
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr "<a href=\"/password_reset/\">Esqueceu o contrasinal</a>?"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
msgstr "Entrar"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Benvido,"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Cambiar contrasinal"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Saír"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
msgid ""
|
||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||
"objects, but your account doesn't have permission to delete the following "
|
||||
"types of objects:"
|
||||
msgstr ""
|
||||
"Borrar o %(object_name)s '%(object)s' resultaría na eliminación de obxectos "
|
||||
"relacionados, pero a súa conta non ten permiso para borrar os seguintes "
|
||||
"tipos de obxectos:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||
"the following related items will be deleted:"
|
||||
msgstr ""
|
||||
"Seguro que quere borrar o %(object_name)s \"%(object)s\"? Eliminaranse os "
|
||||
"seguintes obxectos relacionados:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:18
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Si, estou seguro"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:6
|
||||
#: contrib/admin/templates/registration/password_change_form.html:10
|
||||
msgid "Password change"
|
||||
msgstr "Cambiar o contrasinal"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:6
|
||||
#: contrib/admin/templates/registration/password_change_done.html:10
|
||||
msgid "Password change successful"
|
||||
msgstr "O seu contrasinal cambiouse correctamente."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||
msgid "Your password was changed."
|
||||
msgstr "Cambiouse o seu contrasinal."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:4
|
||||
msgid "Password reset"
|
||||
msgstr "Recuperar o contrasinal"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:12
|
||||
msgid ""
|
||||
"Forgotten your password? Enter your e-mail address below, and we'll reset "
|
||||
"your password and e-mail the new one to you."
|
||||
msgstr ""
|
||||
"Esqueceu o contrasinal? Introduza o seu enderezo de correo electrónico "
|
||||
"embaixo e enviarémoslle un novo contrasinal."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "E-mail address:"
|
||||
msgstr "Enderezo de correo electrónico:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "Reset my password"
|
||||
msgstr "Recuperar o meu contrasinal"
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:8
|
||||
msgid "Thanks for spending some quality time with the Web site today."
|
||||
msgstr "Grazas polo tempo que dedicou ao sitio web."
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:10
|
||||
msgid "Log in again"
|
||||
msgstr "Entrar de novo"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:10
|
||||
msgid "Password reset successful"
|
||||
msgstr "O contrasinal foi recuperado correctamente"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:12
|
||||
msgid ""
|
||||
"We've e-mailed a new password to the e-mail address you submitted. You "
|
||||
"should be receiving it shortly."
|
||||
msgstr ""
|
||||
"Acabamos de enviarlle un novo contrasinal ao enderezo de correo indicado. "
|
||||
"Debería recibilo en breve."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:12
|
||||
msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
"Por razóns de seguridade, introduza o contrasinal actual. Despois introduza "
|
||||
"dúas veces o contrasinal para verificarmos que o escribiu correctamente."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||
msgid "Old password:"
|
||||
msgstr "Contrasinal actual:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||
msgid "New password:"
|
||||
msgstr "Contrasinal novo:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||
msgid "Confirm password:"
|
||||
msgstr "Confirmar contrasinal:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:23
|
||||
msgid "Change my password"
|
||||
msgstr "Cambiar o contrasinal"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:2
|
||||
msgid "You're receiving this e-mail because you requested a password reset"
|
||||
msgstr "Recibe esta mensaxe porque solicitou recuperar o contrasinal"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:3
|
||||
#, python-format
|
||||
msgid "for your user account at %(site_name)s"
|
||||
msgstr "para a súa conta de usuario en %(site_name)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:5
|
||||
#, python-format
|
||||
msgid "Your new password is: %(new_password)s"
|
||||
msgstr "O seu novo contrasinal é: %(new_password)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:7
|
||||
msgid "Feel free to change this password by going to this page:"
|
||||
msgstr "Pode cambiar este contrasinal visitando esta páxina:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:11
|
||||
msgid "Your username, in case you've forgotten:"
|
||||
msgstr "No caso de que o esquecese, o seu nome de usuario é:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:13
|
||||
msgid "Thanks for using our site!"
|
||||
msgstr "Grazas por usar o noso sitio web!"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:15
|
||||
#, python-format
|
||||
msgid "The %(site_name)s team"
|
||||
msgstr "O equipo de %(site_name)s"
|
||||
|
||||
#: contrib/admin/models/admin.py:6
|
||||
#, fuzzy
|
||||
msgid "action time"
|
||||
msgstr "Data/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 ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Tuesday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Wednesday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Thursday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Friday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Saturday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Sunday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15 utils/dates.py:27
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:16
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Jan."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Feb."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Aug."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Sept."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Oct."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Nov."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Dec."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:5
|
||||
msgid "domain name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:6
|
||||
msgid "display name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:8
|
||||
msgid "site"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:9
|
||||
msgid "sites"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:22
|
||||
msgid "label"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
|
||||
#, fuzzy
|
||||
msgid "name"
|
||||
msgstr "Usuario:"
|
||||
|
||||
#: models/core.py:25
|
||||
msgid "package"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:26
|
||||
msgid "packages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:36
|
||||
msgid "python module name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:38
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:39
|
||||
msgid "content types"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:62
|
||||
msgid "redirect from"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:63
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:64
|
||||
msgid "redirect to"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:65
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:67
|
||||
msgid "redirect"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:68
|
||||
msgid "redirects"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:81
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:82
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:83
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:84
|
||||
msgid "content"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:85
|
||||
msgid "enable comments"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:86
|
||||
msgid "template name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:87
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "registration required"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "If this is checked, only logged-in users will be able to view the page."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:92
|
||||
msgid "flat page"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:93
|
||||
msgid "flat pages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:114
|
||||
msgid "session key"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:115
|
||||
msgid "session data"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:116
|
||||
msgid "expire date"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:118
|
||||
msgid "session"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:119
|
||||
msgid "sessions"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:8
|
||||
msgid "codename"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:10
|
||||
msgid "Permission"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:11 models/auth.py:58
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:22
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:23 models/auth.py:60
|
||||
msgid "Groups"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:33
|
||||
#, fuzzy
|
||||
msgid "username"
|
||||
msgstr "Usuario:"
|
||||
|
||||
#: models/auth.py:34
|
||||
msgid "first name"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:35
|
||||
msgid "last name"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:36
|
||||
#, fuzzy
|
||||
msgid "e-mail address"
|
||||
msgstr "Enderezo de correo electrónico:"
|
||||
|
||||
#: models/auth.py:37
|
||||
#, fuzzy
|
||||
msgid "password"
|
||||
msgstr "Contrasinal:"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "Use an MD5 hash -- not the raw password."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "staff status"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:39
|
||||
msgid "active"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:40
|
||||
msgid "superuser status"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:41
|
||||
msgid "last login"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:42
|
||||
msgid "date joined"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:44
|
||||
msgid ""
|
||||
"In addition to the permissions manually assigned, this user will also get "
|
||||
"all permissions granted to each group he/she is in."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:48
|
||||
#, fuzzy
|
||||
msgid "Users"
|
||||
msgstr "Usuario"
|
||||
|
||||
#: models/auth.py:57
|
||||
msgid "Personal info"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:59
|
||||
msgid "Important dates"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:182
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:37
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:38
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:39
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:40
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:41
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:42
|
||||
msgid "Galician"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:43
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Brazilian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:46
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:47
|
||||
msgid "Traditional Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:58
|
||||
msgid "This value must contain only letters, numbers and underscores."
|
||||
msgstr "Este valor soamente pode conter letras, números e guións baixos (_)."
|
||||
|
||||
#: core/validators.py:62
|
||||
#, fuzzy
|
||||
msgid "This value must contain only letters, numbers, underscores and slashes."
|
||||
msgstr "Este valor soamente pode conter letras, números e guións baixos (_)."
|
||||
|
||||
#: core/validators.py:70
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:74
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:81
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:93
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:100
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:104
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:108
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:112
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:117
|
||||
msgid "Enter a whole number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:121
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:125
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:129
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:133
|
||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:137
|
||||
#, fuzzy
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "Enderezo de correo electrónico:"
|
||||
|
||||
#: core/validators.py:149
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:156
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:160
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:168
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:172
|
||||
msgid "A valid URL is required."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:193
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:205
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:211
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:226
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:252
|
||||
msgid "Please enter something for at least one field."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:261 core/validators.py:272
|
||||
msgid "Please enter both fields or leave them both empty."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:279
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:291
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is not %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:310
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:333
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:344
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:346
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s total digits."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:349
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s decimal places."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:359
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:360
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:373
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:388
|
||||
msgid "This field is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:423
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:426
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:459
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:463
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:473
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:477
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/meta/fields.py:95
|
||||
msgid " Separate multiple IDs with commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/meta/fields.py:98
|
||||
msgid ""
|
||||
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Click to change"
|
||||
#~ msgstr "Faga clic para modificar"
|
Binary file not shown.
|
@ -0,0 +1,981 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-11-03 12:26+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#: 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 "Pagina iniziale"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
msgid "History"
|
||||
msgstr "Storia"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:18
|
||||
msgid "Date/time"
|
||||
msgstr "Data/ora"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47
|
||||
msgid "User"
|
||||
msgstr "Utente"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:20
|
||||
msgid "Action"
|
||||
msgstr "Azione"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:26
|
||||
msgid "DATE_WITH_TIME_FULL"
|
||||
msgstr "Data/ora"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:36
|
||||
msgid ""
|
||||
"This object doesn't have a change history. It probably wasn't added via this "
|
||||
"admin site."
|
||||
msgstr ""
|
||||
"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/500.html:4
|
||||
#, fuzzy
|
||||
msgid "Server error"
|
||||
msgstr "Errore del server (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:6
|
||||
msgid "Server error (500)"
|
||||
msgstr "Errore del server (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:9
|
||||
msgid "Server Error <em>(500)</em>"
|
||||
msgstr "Errore del Server <em>(500)</em>"
|
||||
|
||||
#: 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 ""
|
||||
"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
|
||||
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/login.html:15
|
||||
msgid "Username:"
|
||||
msgstr "Nome utente:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:18
|
||||
msgid "Password:"
|
||||
msgstr "Password:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:20
|
||||
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/login.html:24
|
||||
msgid "Log in"
|
||||
msgstr "Accedi"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Benvenuto,"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Cambia la password"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Esci"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
msgid ""
|
||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||
"objects, but your account doesn't have permission to delete the following "
|
||||
"types of objects:"
|
||||
msgstr ""
|
||||
"La rimozione di %(object_name)s '%(object)s' causerebbe la cancellazione "
|
||||
"degli oggetti relazionati, ma il tuo account non ha i permessi per rimuovere "
|
||||
"i seguenti tipi di oggetti:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||
"the following related items will be deleted:"
|
||||
msgstr ""
|
||||
"Sei sicuro di voler rimuovere %(object_name)s \"%(object)s\"? I seguenti "
|
||||
"oggetti relazionati saranno rimossi:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:18
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Sì, sono sicuro"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:6
|
||||
#: contrib/admin/templates/registration/password_change_form.html:10
|
||||
msgid "Password change"
|
||||
msgstr "Cambia la password"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:6
|
||||
#: contrib/admin/templates/registration/password_change_done.html:10
|
||||
msgid "Password change successful"
|
||||
msgstr "La password è stata cambiata con successo"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||
msgid "Your password was changed."
|
||||
msgstr "La tua password è stata cambiata."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:4
|
||||
msgid "Password reset"
|
||||
msgstr "Resetta la password"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:12
|
||||
msgid ""
|
||||
"Forgotten your password? Enter your e-mail address below, and we'll reset "
|
||||
"your password and e-mail the new one to you."
|
||||
msgstr ""
|
||||
"Hai dimenticato la tua password? Inserisci il tuo indirizzo e-mail qui "
|
||||
"sotto, la tua password sarà resettata e te ne verrà spedita una nuova."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "E-mail address:"
|
||||
msgstr "Indirizzo e-mail:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "Reset my password"
|
||||
msgstr "Resetta la mia password"
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:8
|
||||
msgid "Thanks for spending some quality time with the Web site today."
|
||||
msgstr "Grazie per aver speso il tuo tempo prezioso con questo sito."
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:10
|
||||
msgid "Log in again"
|
||||
msgstr "Accedi di nuovo"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:10
|
||||
msgid "Password reset successful"
|
||||
msgstr "Password resettata con successo"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:12
|
||||
msgid ""
|
||||
"We've e-mailed a new password to the e-mail address you submitted. You "
|
||||
"should be receiving it shortly."
|
||||
msgstr ""
|
||||
"Ti abbiamo inviato la nuova password all'indirizzo e-mail da te selezionato. "
|
||||
"Dovresti riceverla a breve."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:12
|
||||
msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
"Inserisci la tua vecchia password, per ragioni di sicurezza, e poi la tua "
|
||||
"nuova password due volte per verificare che tu l'abbia scritta correttamente."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||
msgid "Old password:"
|
||||
msgstr "Vecchia password:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||
msgid "New password:"
|
||||
msgstr "Nuova password:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||
msgid "Confirm password:"
|
||||
msgstr "Conferma password:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:23
|
||||
msgid "Change my password"
|
||||
msgstr "Cambia la mia password"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:2
|
||||
msgid "You're receiving this e-mail because you requested a password reset"
|
||||
msgstr ""
|
||||
"Hai ricevuto questa e-mail perché hai richesto di resettare la password"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:3
|
||||
#, python-format
|
||||
msgid "for your user account at %(site_name)s"
|
||||
msgstr "per il tuo account utente su %(site_name)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:5
|
||||
#, python-format
|
||||
msgid "Your new password is: %(new_password)s"
|
||||
msgstr "La tua nuova password è: %(new_password)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:7
|
||||
msgid "Feel free to change this password by going to this page:"
|
||||
msgstr "Puoi cambiare la tua password su questa pagina:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:11
|
||||
msgid "Your username, in case you've forgotten:"
|
||||
msgstr "Il tuo nome utente, in caso tu l'abbia dimenticato:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:13
|
||||
msgid "Thanks for using our site!"
|
||||
msgstr "Ti ringraziamo per l'utilizzo del nostro sito!"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:15
|
||||
#, python-format
|
||||
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"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Monday"
|
||||
msgstr "Lunedì"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Tuesday"
|
||||
msgstr "Martedì"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Wednesday"
|
||||
msgstr "Mercoledì"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Thursday"
|
||||
msgstr "Giovedì"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Friday"
|
||||
msgstr "Venerdì"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Saturday"
|
||||
msgstr "Sabato"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Sunday"
|
||||
msgstr "Domenica"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "January"
|
||||
msgstr "Gennaio"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "February"
|
||||
msgstr "Febbraio"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "March"
|
||||
msgstr "Marzo"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "April"
|
||||
msgstr "Aprile"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "May"
|
||||
msgstr "Maggio"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "June"
|
||||
msgstr "Giugno"
|
||||
|
||||
#: utils/dates.py:15 utils/dates.py:27
|
||||
msgid "July"
|
||||
msgstr "Luglio"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "August"
|
||||
msgstr "Agosto"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "September"
|
||||
msgstr "Settembre"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "October"
|
||||
msgstr "Ottobre"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "November"
|
||||
msgstr "Novembre"
|
||||
|
||||
#: utils/dates.py:16
|
||||
msgid "December"
|
||||
msgstr "Dicembre"
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Jan."
|
||||
msgstr "Gen."
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Feb."
|
||||
msgstr "Feb."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Aug."
|
||||
msgstr "Ago."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Sept."
|
||||
msgstr "Set."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Oct."
|
||||
msgstr "Ott."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Nov."
|
||||
msgstr "Nov."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Dec."
|
||||
msgstr "Dic."
|
||||
|
||||
#: models/core.py:5
|
||||
msgid "domain name"
|
||||
msgstr "nome a dominio"
|
||||
|
||||
#: models/core.py:6
|
||||
msgid "display name"
|
||||
msgstr "nome visualizzato"
|
||||
|
||||
#: models/core.py:8
|
||||
msgid "site"
|
||||
msgstr "sito"
|
||||
|
||||
#: models/core.py:9
|
||||
msgid "sites"
|
||||
msgstr "siti"
|
||||
|
||||
#: models/core.py:22
|
||||
msgid "label"
|
||||
msgstr "etichetta"
|
||||
|
||||
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
|
||||
msgid "name"
|
||||
msgstr "nome"
|
||||
|
||||
#: models/core.py:25
|
||||
msgid "package"
|
||||
msgstr "pacchetto"
|
||||
|
||||
#: models/core.py:26
|
||||
msgid "packages"
|
||||
msgstr "pacchetti"
|
||||
|
||||
#: models/core.py:36
|
||||
msgid "python module name"
|
||||
msgstr "nome del modulo python"
|
||||
|
||||
#: models/core.py:38
|
||||
msgid "content type"
|
||||
msgstr "tipo di contenuto"
|
||||
|
||||
#: models/core.py:39
|
||||
msgid "content types"
|
||||
msgstr "tipo di contenuti"
|
||||
|
||||
#: models/core.py:62
|
||||
msgid "redirect from"
|
||||
msgstr "redirigi da"
|
||||
|
||||
#: models/core.py:63
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
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
|
||||
msgid "redirect to"
|
||||
msgstr "redirigi verso"
|
||||
|
||||
#: models/core.py:65
|
||||
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
|
||||
msgid "redirect"
|
||||
msgstr "redirigi"
|
||||
|
||||
#: models/core.py:68
|
||||
msgid "redirects"
|
||||
msgstr "redirezioni"
|
||||
|
||||
#: models/core.py:81
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: models/core.py:82
|
||||
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
|
||||
msgid "title"
|
||||
msgstr "titolo"
|
||||
|
||||
#: models/core.py:84
|
||||
msgid "content"
|
||||
msgstr "contenuto"
|
||||
|
||||
#: models/core.py:85
|
||||
msgid "enable comments"
|
||||
msgstr "abilita commenti"
|
||||
|
||||
#: models/core.py:86
|
||||
msgid "template name"
|
||||
msgstr "nome modello"
|
||||
|
||||
#: models/core.py:87
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
"Esempio: 'flatfiles/contact_page'. Se non specificato, il sistema userà "
|
||||
"'flatfiles/default'."
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "registration required"
|
||||
msgstr "registrazione obbligatoria"
|
||||
|
||||
#: models/core.py:88
|
||||
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
|
||||
msgid "flat page"
|
||||
msgstr "pagina statica"
|
||||
|
||||
#: models/core.py:93
|
||||
msgid "flat pages"
|
||||
msgstr "pagine statiche"
|
||||
|
||||
#: models/core.py:114
|
||||
msgid "session key"
|
||||
msgstr "chiave di sessione"
|
||||
|
||||
#: models/core.py:115
|
||||
msgid "session data"
|
||||
msgstr "dati di sessione"
|
||||
|
||||
#: models/core.py:116
|
||||
msgid "expire date"
|
||||
msgstr "data di scadenza"
|
||||
|
||||
#: models/core.py:118
|
||||
msgid "session"
|
||||
msgstr "sessione"
|
||||
|
||||
#: models/core.py:119
|
||||
msgid "sessions"
|
||||
msgstr "sessioni"
|
||||
|
||||
#: models/auth.py:8
|
||||
msgid "codename"
|
||||
msgstr "nome in codice"
|
||||
|
||||
#: models/auth.py:10
|
||||
msgid "Permission"
|
||||
msgstr "Permesso"
|
||||
|
||||
#: models/auth.py:11 models/auth.py:58
|
||||
msgid "Permissions"
|
||||
msgstr "Permessi"
|
||||
|
||||
#: models/auth.py:22
|
||||
msgid "Group"
|
||||
msgstr "Gruppo"
|
||||
|
||||
#: models/auth.py:23 models/auth.py:60
|
||||
msgid "Groups"
|
||||
msgstr "Gruppi"
|
||||
|
||||
#: models/auth.py:33
|
||||
msgid "username"
|
||||
msgstr "nome utente"
|
||||
|
||||
#: models/auth.py:34
|
||||
msgid "first name"
|
||||
msgstr "nome"
|
||||
|
||||
#: models/auth.py:35
|
||||
msgid "last name"
|
||||
msgstr "cognome"
|
||||
|
||||
#: models/auth.py:36
|
||||
msgid "e-mail address"
|
||||
msgstr "indirizzo e-mail"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "password"
|
||||
msgstr "password"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "Use an MD5 hash -- not the raw password."
|
||||
msgstr "Usare il codice di controllo MD5 -- non la password."
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "staff status"
|
||||
msgstr "amministratore"
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Autorizza l'utente ad accedere a questo sito di amministrazione."
|
||||
|
||||
#: models/auth.py:39
|
||||
msgid "active"
|
||||
msgstr "attivo"
|
||||
|
||||
#: models/auth.py:40
|
||||
msgid "superuser status"
|
||||
msgstr "stato superutente"
|
||||
|
||||
#: models/auth.py:41
|
||||
msgid "last login"
|
||||
msgstr "ultimo accesso"
|
||||
|
||||
#: models/auth.py:42
|
||||
msgid "date joined"
|
||||
msgstr "iscritto da"
|
||||
|
||||
#: models/auth.py:44
|
||||
msgid ""
|
||||
"In addition to the permissions manually assigned, this user will also get "
|
||||
"all permissions granted to each group he/she is in."
|
||||
msgstr ""
|
||||
"In aggiunta ai permessi assegnati manualmente, l'utente riceverà anche tutti "
|
||||
"i permessi assegnati ad ogni gruppo cui appartiene."
|
||||
|
||||
#: models/auth.py:48
|
||||
msgid "Users"
|
||||
msgstr "Utenti"
|
||||
|
||||
#: models/auth.py:57
|
||||
msgid "Personal info"
|
||||
msgstr "Informazioni personali"
|
||||
|
||||
#: models/auth.py:59
|
||||
msgid "Important dates"
|
||||
msgstr "Date importanti"
|
||||
|
||||
#: models/auth.py:182
|
||||
msgid "Message"
|
||||
msgstr "Messaggio"
|
||||
|
||||
#: conf/global_settings.py:37
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:38
|
||||
msgid "German"
|
||||
msgstr "Tedesco"
|
||||
|
||||
#: conf/global_settings.py:39
|
||||
msgid "English"
|
||||
msgstr "Inglese"
|
||||
|
||||
#: conf/global_settings.py:40
|
||||
msgid "Spanish"
|
||||
msgstr "Spagnolo"
|
||||
|
||||
#: conf/global_settings.py:41
|
||||
msgid "French"
|
||||
msgstr "Francese"
|
||||
|
||||
#: conf/global_settings.py:42
|
||||
msgid "Galician"
|
||||
msgstr "Galiziano"
|
||||
|
||||
#: conf/global_settings.py:43
|
||||
msgid "Italian"
|
||||
msgstr "Italiano"
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Brazilian"
|
||||
msgstr "Brasiliano"
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Russian"
|
||||
msgstr "Russo"
|
||||
|
||||
#: conf/global_settings.py:46
|
||||
#, fuzzy
|
||||
msgid "Serbian"
|
||||
msgstr "Serbo"
|
||||
|
||||
#: conf/global_settings.py:47
|
||||
msgid "Traditional Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:58
|
||||
msgid "This value must contain only letters, numbers and underscores."
|
||||
msgstr "Sono ammesse solo lettere, numeri e sottolineature ('_')."
|
||||
|
||||
#: core/validators.py:62
|
||||
msgid "This value must contain only letters, numbers, underscores and slashes."
|
||||
msgstr "Sono ammesse solo lettere, numeri, sottolineature ('_') e barre ('/')."
|
||||
|
||||
#: core/validators.py:70
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr "Non sono ammesse lettere maiuscole."
|
||||
|
||||
#: core/validators.py:74
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr "Non sono ammesse lettere minuscole."
|
||||
|
||||
#: core/validators.py:81
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr "Inserire solo numeri separati da virgole."
|
||||
|
||||
#: core/validators.py:93
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr "Inserire indirizzi e-mail validi separati da virgole."
|
||||
|
||||
#: core/validators.py:100
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr "Inserire un indirizzo IP valido."
|
||||
|
||||
#: core/validators.py:104
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr "E' necessario inserire un valore."
|
||||
|
||||
#: core/validators.py:108
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr "Sono ammessi soltanto caratteri alfabetici."
|
||||
|
||||
#: core/validators.py:112
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr "Il valore non può essere composto solo da cifre."
|
||||
|
||||
#: core/validators.py:117
|
||||
msgid "Enter a whole number."
|
||||
msgstr "Inserire un numero."
|
||||
|
||||
#: core/validators.py:121
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr "Sono ammessi solo caratteri alfabetici."
|
||||
|
||||
#: core/validators.py:125
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr "Inserire un data valida in formato YYYY-MM-DD."
|
||||
|
||||
#: core/validators.py:129
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr "Inserire un orario valido in formato HH:MM."
|
||||
|
||||
#: core/validators.py:133
|
||||
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
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "Inserire un indirizzo e-mail valido."
|
||||
|
||||
#: core/validators.py:149
|
||||
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
|
||||
#, 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
|
||||
#, 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
|
||||
#, 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
|
||||
msgid "A valid URL is required."
|
||||
msgstr "Inserire un URL valido."
|
||||
|
||||
#: core/validators.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"E' richiesto HTML valido. Gli errori sono i seguenti:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "XML malformato: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "URL non valida: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr "L'URL %s è un link rotto."
|
||||
|
||||
#: core/validators.py:211
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr "Inserire un nome di stato americano abbreviato valido."
|
||||
|
||||
#: core/validators.py:226
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr "Questo campo deve corrispondere al campo '%s'."
|
||||
|
||||
#: core/validators.py:252
|
||||
msgid "Please enter something for at least one field."
|
||||
msgstr "Inserire almeno un campo."
|
||||
|
||||
#: core/validators.py:261 core/validators.py:272
|
||||
msgid "Please enter both fields or leave them both empty."
|
||||
msgstr "Inserire entrambi i campi o lasciarli entrambi vuoti."
|
||||
|
||||
#: core/validators.py:279
|
||||
#, 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
|
||||
#, 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
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "Non sono ammessi valori duplicati."
|
||||
|
||||
#: core/validators.py:333
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr "Il valore deve essere una potenza di %s."
|
||||
|
||||
#: core/validators.py:344
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr "Inserire un numero decimale valido."
|
||||
|
||||
#: core/validators.py:346
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s total digits."
|
||||
msgstr[0] "Inserire un numero decimale con non più di %s cifre totali."
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:349
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s decimal places."
|
||||
msgstr[0] "Inserire un decimale con non più di %s cifre decimali."
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:359
|
||||
#, 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
|
||||
#, 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
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr "Formato del file non valido."
|
||||
|
||||
#: core/validators.py:388
|
||||
msgid "This field is invalid."
|
||||
msgstr "Il campo non è valido."
|
||||
|
||||
#: core/validators.py:423
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr "Impossibile recuperare alcunchè da %s."
|
||||
|
||||
#: core/validators.py:426
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr ""
|
||||
"L'URL %(url)s restituisce un Content-Type header non valido '%(contenttype)"
|
||||
"s'."
|
||||
|
||||
#: core/validators.py:459
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Il tag %(tag)s alla linea %(line)s non è chiuso. (La linea comincia con \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some text starting on line %(line)s is not allowed in that context. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"\"%(attr)s\" alla linea %(line)s è un attributo invalido. (La linea comincia "
|
||||
"con \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"\"<%(tag)s>\" alla linea %(line)s tag non valido. (La linea comincia con \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A tag on line %(line)s is missing one or more required attributes. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Un tag alla linea %(line)s manca di uno o più attributi richiesti. (La linea "
|
||||
"comincia con \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:482
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"L'attributo \"%(attr)s\" alla linea %(line)s ha un valore non valido. (La "
|
||||
"linea comincia con \"%(start)s\".)"
|
||||
|
||||
#: core/meta/fields.py:95
|
||||
msgid " Separate multiple IDs with commas."
|
||||
msgstr " Separa ID multipli con virgole."
|
||||
|
||||
#: core/meta/fields.py:98
|
||||
msgid ""
|
||||
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||
msgstr " Premi \"Control\", o \"Command\" su Mac, per selezionarne più di uno."
|
||||
|
||||
#~ msgid "Itialian"
|
||||
#~ msgstr "Italiano"
|
||||
|
||||
#~ msgid "Server error <em>(500)</em>"
|
||||
#~ msgstr "Errore del server <em>(500)</em>"
|
||||
|
||||
#~ msgid "Click to change"
|
||||
#~ msgstr "Clicca per cambiare"
|
Binary file not shown.
|
@ -0,0 +1,981 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-11-03 12:26+0100\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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#: 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 "Início"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
msgid "History"
|
||||
msgstr "Histórico"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:18
|
||||
msgid "Date/time"
|
||||
msgstr "Data/hora"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47
|
||||
msgid "User"
|
||||
msgstr "Usuário"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:20
|
||||
msgid "Action"
|
||||
msgstr "Ação"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:26
|
||||
msgid "DATE_WITH_TIME_FULL"
|
||||
msgstr "j. N Y, H:i"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:36
|
||||
msgid ""
|
||||
"This object doesn't have a change history. It probably wasn't added via this "
|
||||
"admin site."
|
||||
msgstr ""
|
||||
"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/500.html:4
|
||||
#, fuzzy
|
||||
msgid "Server error"
|
||||
msgstr "Erro no servidor (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:6
|
||||
msgid "Server error (500)"
|
||||
msgstr "Erro no servidor (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:9
|
||||
msgid "Server Error <em>(500)</em>"
|
||||
msgstr "Erro no Servidor <em>(500)</em>"
|
||||
|
||||
#: 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 ""
|
||||
"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
|
||||
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/login.html:15
|
||||
msgid "Username:"
|
||||
msgstr "Usuário:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:18
|
||||
msgid "Password:"
|
||||
msgstr "Senha:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:20
|
||||
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/login.html:24
|
||||
msgid "Log in"
|
||||
msgstr "Acessar"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Bem vindo,"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Alterar senha"
|
||||
|
||||
#: 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
|
||||
msgid ""
|
||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||
"objects, but your account doesn't have permission to delete the following "
|
||||
"types of objects:"
|
||||
msgstr ""
|
||||
"A remoção de '%(object)s' %(object_name)s pode resultar na remoção de "
|
||||
"objetos relacionados, mas sua conta não tem a permissão para remoção dos "
|
||||
"seguintes tipos de objetos:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||
"the following related items will be deleted:"
|
||||
msgstr ""
|
||||
"Você tem certeza que quer remover o \"%(object)s\" %(object_name)s? Todos os "
|
||||
"seguintes itens relacionados serão removidos:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:18
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Sim, tenho certeza"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:6
|
||||
#: contrib/admin/templates/registration/password_change_form.html:10
|
||||
msgid "Password change"
|
||||
msgstr "Alterar senha"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:6
|
||||
#: contrib/admin/templates/registration/password_change_done.html:10
|
||||
msgid "Password change successful"
|
||||
msgstr "Senha alterada com sucesso"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||
msgid "Your password was changed."
|
||||
msgstr "Sua senha foi alterada."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:4
|
||||
msgid "Password reset"
|
||||
msgstr "Reinicializar senha"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:12
|
||||
msgid ""
|
||||
"Forgotten your password? Enter your e-mail address below, and we'll reset "
|
||||
"your password and e-mail the new one to you."
|
||||
msgstr ""
|
||||
"Esqueceu a senha? Digite seu e-mail abaixo e nós iremos enviar uma nova "
|
||||
"senha para você."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "E-mail address:"
|
||||
msgstr "Endereço de e-mail:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "Reset my password"
|
||||
msgstr "Reinicializar minha senha"
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:8
|
||||
msgid "Thanks for spending some quality time with the Web site today."
|
||||
msgstr "Obrigado por visitar nosso Web site hoje."
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:10
|
||||
msgid "Log in again"
|
||||
msgstr "Acessar novamente"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:10
|
||||
msgid "Password reset successful"
|
||||
msgstr "Senha inicializada com sucesso"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:12
|
||||
msgid ""
|
||||
"We've e-mailed a new password to the e-mail address you submitted. You "
|
||||
"should be receiving it shortly."
|
||||
msgstr ""
|
||||
"Nós enviamos uma nova senha para o e-mail que você informou. Você deve estar "
|
||||
"recebendo uma mensagem em breve."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:12
|
||||
msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
"Por favor, informe sua senha antiga, por segurança, e então informe sua nova "
|
||||
"senha duas vezes para que possamos verificar que se ela está correta."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||
msgid "Old password:"
|
||||
msgstr "Senha antiga:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||
msgid "New password:"
|
||||
msgstr "Nova senha:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||
msgid "Confirm password:"
|
||||
msgstr "Confirme a senha:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:23
|
||||
msgid "Change my password"
|
||||
msgstr "Alterar minha senha"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:2
|
||||
msgid "You're receiving this e-mail because you requested a password reset"
|
||||
msgstr "Você está recebendo este e-mail porque você pediu uma nova senha"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:3
|
||||
#, python-format
|
||||
msgid "for your user account at %(site_name)s"
|
||||
msgstr "para sua conta em %(site_name)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:5
|
||||
#, python-format
|
||||
msgid "Your new password is: %(new_password)s"
|
||||
msgstr "Sua nova senha é: %(new_password)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:7
|
||||
msgid "Feel free to change this password by going to this page:"
|
||||
msgstr "Sinta-se livre para alterar esta senha visitando esta página:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:11
|
||||
msgid "Your username, in case you've forgotten:"
|
||||
msgstr "Seu nome de usuário, caso tenha esquecido:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:13
|
||||
msgid "Thanks for using our site!"
|
||||
msgstr "Obrigado por usar nosso site!"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:15
|
||||
#, python-format
|
||||
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"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Monday"
|
||||
msgstr "Segunda Feira"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Tuesday"
|
||||
msgstr "Terça Feira"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Wednesday"
|
||||
msgstr "Quarta Feira"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Thursday"
|
||||
msgstr "Quinta Feira"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Friday"
|
||||
msgstr "Sexta Feira"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Saturday"
|
||||
msgstr "Sábado"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Sunday"
|
||||
msgstr "Domingo"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "January"
|
||||
msgstr "Janeiro"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "February"
|
||||
msgstr "Fevereiro"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "March"
|
||||
msgstr "Março"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "April"
|
||||
msgstr "Abril"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "May"
|
||||
msgstr "Maio"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "June"
|
||||
msgstr "Junho"
|
||||
|
||||
#: utils/dates.py:15 utils/dates.py:27
|
||||
msgid "July"
|
||||
msgstr "Julho"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "August"
|
||||
msgstr "Agosto"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "September"
|
||||
msgstr "Setembro"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "October"
|
||||
msgstr "Outubro"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "November"
|
||||
msgstr "Novembro"
|
||||
|
||||
#: utils/dates.py:16
|
||||
msgid "December"
|
||||
msgstr "Dezembro"
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Jan."
|
||||
msgstr "Jan."
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Feb."
|
||||
msgstr "Fev."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Aug."
|
||||
msgstr "Ago."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Sept."
|
||||
msgstr "Set."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Oct."
|
||||
msgstr "Out."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Nov."
|
||||
msgstr "Nov."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Dec."
|
||||
msgstr "Dez."
|
||||
|
||||
#: models/core.py:5
|
||||
msgid "domain name"
|
||||
msgstr "nome do domínio"
|
||||
|
||||
#: models/core.py:6
|
||||
msgid "display name"
|
||||
msgstr "nome para exibição"
|
||||
|
||||
#: models/core.py:8
|
||||
msgid "site"
|
||||
msgstr "site"
|
||||
|
||||
#: models/core.py:9
|
||||
msgid "sites"
|
||||
msgstr "sites"
|
||||
|
||||
#: models/core.py:22
|
||||
msgid "label"
|
||||
msgstr "etiqueta"
|
||||
|
||||
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
|
||||
#, fuzzy
|
||||
msgid "name"
|
||||
msgstr "nome:"
|
||||
|
||||
#: models/core.py:25
|
||||
msgid "package"
|
||||
msgstr "pacote"
|
||||
|
||||
#: models/core.py:26
|
||||
msgid "packages"
|
||||
msgstr "pacotes"
|
||||
|
||||
#: models/core.py:36
|
||||
msgid "python module name"
|
||||
msgstr "nome do módulo python"
|
||||
|
||||
#: models/core.py:38
|
||||
msgid "content type"
|
||||
msgstr "tipo de conteúdo"
|
||||
|
||||
#: models/core.py:39
|
||||
msgid "content types"
|
||||
msgstr "tipos de conteúdo"
|
||||
|
||||
#: models/core.py:62
|
||||
msgid "redirect from"
|
||||
msgstr "redirecionar de"
|
||||
|
||||
#: models/core.py:63
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
"Deve conter um caminho absoluto, excluindo o nome de domínio. Exemplo: '/"
|
||||
"eventos/busca/'."
|
||||
|
||||
#: models/core.py:64
|
||||
msgid "redirect to"
|
||||
msgstr "redirecionar para"
|
||||
|
||||
#: models/core.py:65
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
"Deve conter um caminho absoluto (como acima) ou uma URL completa, começando "
|
||||
"com 'http://'."
|
||||
|
||||
#: models/core.py:67
|
||||
msgid "redirect"
|
||||
msgstr "redirecionar"
|
||||
|
||||
#: models/core.py:68
|
||||
msgid "redirects"
|
||||
msgstr "redirecionamentos"
|
||||
|
||||
#: models/core.py:81
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: models/core.py:82
|
||||
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
|
||||
msgid "title"
|
||||
msgstr "título"
|
||||
|
||||
#: models/core.py:84
|
||||
msgid "content"
|
||||
msgstr "conteúdo"
|
||||
|
||||
#: models/core.py:85
|
||||
msgid "enable comments"
|
||||
msgstr "habilitar comentários"
|
||||
|
||||
#: models/core.py:86
|
||||
msgid "template name"
|
||||
msgstr "nome do modelo"
|
||||
|
||||
#: models/core.py:87
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
"Exemplo: 'flatfiles/contact_page'. Se não for informado, será utilizado "
|
||||
"'flatfiles/default'."
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "registration required"
|
||||
msgstr "é obrigatório registrar"
|
||||
|
||||
#: models/core.py:88
|
||||
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
|
||||
msgid "flat page"
|
||||
msgstr "página plana"
|
||||
|
||||
#: models/core.py:93
|
||||
msgid "flat pages"
|
||||
msgstr "páginas planas"
|
||||
|
||||
#: models/core.py:114
|
||||
msgid "session key"
|
||||
msgstr "chave da sessão"
|
||||
|
||||
#: models/core.py:115
|
||||
msgid "session data"
|
||||
msgstr "dados da sessão"
|
||||
|
||||
#: models/core.py:116
|
||||
msgid "expire date"
|
||||
msgstr "data de expiração"
|
||||
|
||||
#: models/core.py:118
|
||||
msgid "session"
|
||||
msgstr "sessão"
|
||||
|
||||
#: models/core.py:119
|
||||
msgid "sessions"
|
||||
msgstr "sessões"
|
||||
|
||||
#: models/auth.py:8
|
||||
msgid "codename"
|
||||
msgstr "nome código"
|
||||
|
||||
#: models/auth.py:10
|
||||
msgid "Permission"
|
||||
msgstr "Permissão"
|
||||
|
||||
#: models/auth.py:11 models/auth.py:58
|
||||
msgid "Permissions"
|
||||
msgstr "Permissões"
|
||||
|
||||
#: models/auth.py:22
|
||||
msgid "Group"
|
||||
msgstr "Grupo"
|
||||
|
||||
#: models/auth.py:23 models/auth.py:60
|
||||
msgid "Groups"
|
||||
msgstr "Grupos"
|
||||
|
||||
#: models/auth.py:33
|
||||
#, fuzzy
|
||||
msgid "username"
|
||||
msgstr "usuário"
|
||||
|
||||
#: models/auth.py:34
|
||||
msgid "first name"
|
||||
msgstr "primeiro nome"
|
||||
|
||||
#: models/auth.py:35
|
||||
msgid "last name"
|
||||
msgstr "último nome"
|
||||
|
||||
#: models/auth.py:36
|
||||
#, fuzzy
|
||||
msgid "e-mail address"
|
||||
msgstr "endereço de e-mail:"
|
||||
|
||||
#: models/auth.py:37
|
||||
#, fuzzy
|
||||
msgid "password"
|
||||
msgstr "senha"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "Use an MD5 hash -- not the raw password."
|
||||
msgstr "Usar um código MD5 -- não o texto da senha."
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "staff status"
|
||||
msgstr "status da equipe"
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Informa se o usuário pode acessar este site de administração."
|
||||
|
||||
#: models/auth.py:39
|
||||
msgid "active"
|
||||
msgstr "ativar"
|
||||
|
||||
#: models/auth.py:40
|
||||
msgid "superuser status"
|
||||
msgstr "status de superusuário"
|
||||
|
||||
#: models/auth.py:41
|
||||
msgid "last login"
|
||||
msgstr "último login"
|
||||
|
||||
#: models/auth.py:42
|
||||
msgid "date joined"
|
||||
msgstr "data de registro"
|
||||
|
||||
#: models/auth.py:44
|
||||
msgid ""
|
||||
"In addition to the permissions manually assigned, this user will also get "
|
||||
"all permissions granted to each group he/she is in."
|
||||
msgstr ""
|
||||
"Em adição às permissões atribuídas manualmente, este usuário também terá "
|
||||
"todas as permissões dadas a cada grupo que participar."
|
||||
|
||||
#: models/auth.py:48
|
||||
#, fuzzy
|
||||
msgid "Users"
|
||||
msgstr "Usuários"
|
||||
|
||||
#: models/auth.py:57
|
||||
msgid "Personal info"
|
||||
msgstr "Informações pessoais"
|
||||
|
||||
#: models/auth.py:59
|
||||
msgid "Important dates"
|
||||
msgstr "Datas importantes"
|
||||
|
||||
#: models/auth.py:182
|
||||
msgid "Message"
|
||||
msgstr "Mensagem"
|
||||
|
||||
#: conf/global_settings.py:37
|
||||
msgid "Czech"
|
||||
msgstr "Tcheco"
|
||||
|
||||
#: conf/global_settings.py:38
|
||||
msgid "German"
|
||||
msgstr "Alemão"
|
||||
|
||||
#: conf/global_settings.py:39
|
||||
msgid "English"
|
||||
msgstr "Inglês"
|
||||
|
||||
#: conf/global_settings.py:40
|
||||
msgid "Spanish"
|
||||
msgstr "Espanhol"
|
||||
|
||||
#: conf/global_settings.py:41
|
||||
msgid "French"
|
||||
msgstr "Francês"
|
||||
|
||||
#: conf/global_settings.py:42
|
||||
msgid "Galician"
|
||||
msgstr "Galiciano"
|
||||
|
||||
#: conf/global_settings.py:43
|
||||
msgid "Italian"
|
||||
msgstr "Italiano"
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Brazilian"
|
||||
msgstr "Brazileiro"
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Russian"
|
||||
msgstr "Russo"
|
||||
|
||||
#: conf/global_settings.py:46
|
||||
#, fuzzy
|
||||
msgid "Serbian"
|
||||
msgstr "Sérvio"
|
||||
|
||||
#: conf/global_settings.py:47
|
||||
msgid "Traditional Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:58
|
||||
msgid "This value must contain only letters, numbers and underscores."
|
||||
msgstr "Deve conter apenas letras, números e sublinhados (_)."
|
||||
|
||||
#: core/validators.py:62
|
||||
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
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr "Letras em maiúsculo não são permitidas aqui."
|
||||
|
||||
#: core/validators.py:74
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr "Letras em minúsculo não são permitidas aqui."
|
||||
|
||||
#: core/validators.py:81
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr "Informe apenas dígitos separados por vírgulas."
|
||||
|
||||
#: core/validators.py:93
|
||||
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
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr "Informe um endereço IP válido."
|
||||
|
||||
#: core/validators.py:104
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr "Valores em branco não são permitidos."
|
||||
|
||||
#: core/validators.py:108
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr "Caracteres não numéricos não são permitidos."
|
||||
|
||||
#: core/validators.py:112
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr "Este valor não pode conter apenas dígitos."
|
||||
|
||||
#: core/validators.py:117
|
||||
msgid "Enter a whole number."
|
||||
msgstr "Informe um número inteiro."
|
||||
|
||||
#: core/validators.py:121
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr "Apenas caracteres do alfabeto são permitidos aqui."
|
||||
|
||||
#: core/validators.py:125
|
||||
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
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr "Informe uma hora válida no formato HH:MM."
|
||||
|
||||
#: core/validators.py:133
|
||||
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
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "Informe um endereço de email válido."
|
||||
|
||||
#: core/validators.py:149
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
"Envie uma imagem válida. O arquivo enviado não é uma imagem ou está "
|
||||
"corrompido."
|
||||
|
||||
#: core/validators.py:156
|
||||
#, 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
|
||||
#, 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
|
||||
#, 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
|
||||
msgid "A valid URL is required."
|
||||
msgstr "Uma URL válida é exigida."
|
||||
|
||||
#: core/validators.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"HTML válido é exigido. Estes são os erros específicos:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "XML mal formado: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "URL inválida: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr "A URL %s é um link quebrado."
|
||||
|
||||
#: core/validators.py:211
|
||||
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
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr "Este campo deve ser igual ao campo '%s'."
|
||||
|
||||
#: core/validators.py:252
|
||||
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
|
||||
msgid "Please enter both fields or leave them both empty."
|
||||
msgstr "Informe ambos os campos ou deixe ambos vazios."
|
||||
|
||||
#: core/validators.py:279
|
||||
#, 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
|
||||
#, 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
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "Valores duplicados não são permitidos."
|
||||
|
||||
#: core/validators.py:333
|
||||
#, 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
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr "Informe um número decimal."
|
||||
|
||||
#: core/validators.py:346
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s total digits."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:349
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s decimal places."
|
||||
msgstr[0] "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
|
||||
#, 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
|
||||
#, 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
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr "O formato deste campo está errado."
|
||||
|
||||
#: core/validators.py:388
|
||||
msgid "This field is invalid."
|
||||
msgstr "Este campo é inválido."
|
||||
|
||||
#: core/validators.py:423
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr "Não foi possível receber dados de %s."
|
||||
|
||||
#: core/validators.py:426
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr ""
|
||||
"A URL %(url)s retornou um cabeçalho '%(contenttype)s' de Content-Type "
|
||||
"inválido."
|
||||
|
||||
#: core/validators.py:459
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Por favor, feche a tag %(tag)s na linha %(line)s. (A linha começa com \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some text starting on line %(line)s is not allowed in that context. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Algum texto começando na linha %(line)s não é permitido no contexto. (Linha "
|
||||
"começa com \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:468
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"\"%(attr)s\" na linha %(line)s não é um atributo válido. (Linha começa com "
|
||||
"\"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"\"<%(tag)s>\" na linha %(line)s é uma tag inválida. (Linha começa com \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A tag on line %(line)s is missing one or more required attributes. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"O atributo \"%(attr)s\" na linha %(line)s tem um valor inválido. (Linha "
|
||||
"começa com \"%(start)s\".)"
|
||||
|
||||
#: core/meta/fields.py:95
|
||||
msgid " Separate multiple IDs with commas."
|
||||
msgstr " Separe IDs múltiplos com vírgulas."
|
||||
|
||||
#: core/meta/fields.py:98
|
||||
msgid ""
|
||||
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||
msgstr ""
|
||||
" Mantenha pressionado \"Control\", ou \"Command\" num Mac para selecionar "
|
||||
"mais de uma opção."
|
||||
|
||||
#~ msgid "Click to change"
|
||||
#~ msgstr "Clique para alterar"
|
Binary file not shown.
|
@ -0,0 +1,956 @@
|
|||
# Translation of django.po to russian.
|
||||
# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Dmitry Sorokin <ds@dial.com.ru>, 2005.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-11-03 12:26+0100\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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=koi8-r\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#: 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/object_history.html:5
|
||||
msgid "History"
|
||||
msgstr "éÓÔÏÒÉÑ"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:18
|
||||
msgid "Date/time"
|
||||
msgstr "äÁÔÁ/×ÒÅÍÑ"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47
|
||||
msgid "User"
|
||||
msgstr "ðÏÌØÚÏ×ÁÔÅÌØ"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:20
|
||||
msgid "Action"
|
||||
msgstr "äÅÊÓÔ×ÉÅ"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:26
|
||||
msgid "DATE_WITH_TIME_FULL"
|
||||
msgstr "j. N Y, H:i"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:36
|
||||
msgid ""
|
||||
"This object doesn't have a change history. It probably wasn't added via this "
|
||||
"admin site."
|
||||
msgstr ""
|
||||
"äÁÎÎÙÊ ÏÂØÅËÔ ÎÅ ÉÍÅÅÔ ÉÓÔÏÒÉÉ ÉÚÍÅÎÅÎÉÑ. ÷ÏÚÍÏÖÎÏ ÏÎ ÎÅ ÂÙÌ ÄÏÂÁ×ÌÅÎ ÞÅÒÅÚ "
|
||||
"ÄÁÎÎÙÊ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÊ ÓÁÊÔ."
|
||||
|
||||
#: 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/500.html:4
|
||||
#, fuzzy
|
||||
msgid "Server error"
|
||||
msgstr "ïÛÉÂËÁ ÓÅÒ×ÅÒÁ (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:6
|
||||
msgid "Server error (500)"
|
||||
msgstr "ïÛÉÂËÁ ÓÅÒ×ÅÒÁ (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:9
|
||||
msgid "Server Error <em>(500)</em>"
|
||||
msgstr "ïÛÉÂËÁ ÓÅÒ×ÅÒÁ <em>(500)</em>"
|
||||
|
||||
#: 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 ""
|
||||
"ðÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ. ïÔÞÅÔ Ï ÏÛÉÂËÅ ÏÔÐÒÁ×ÌÅÎ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁÍ ÓÁÊÔÁ ÐÏ 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
|
||||
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/login.html:15
|
||||
msgid "Username:"
|
||||
msgstr "éÍÑ:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:18
|
||||
msgid "Password:"
|
||||
msgstr "ðÁÒÏÌØ:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:20
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr "÷Ù <a href=\"/password_reset/\">ÚÁÂÙÌÉ ÐÁÒÏÌØ</a>?"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
msgstr "÷ÈÏÄ"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ,"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "éÚÍÅÎÅÎÉÅ ÐÁÒÏÌÑ"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "÷ÙÈÏÄ"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
msgid ""
|
||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||
"objects, but your account doesn't have permission to delete the following "
|
||||
"types of objects:"
|
||||
msgstr ""
|
||||
"õÄÁÌÅÎÉÅ ÏÂØÅËÔÁ %(object_name)s '%(object)s' ÐÒÉ×ÅÄÅÔ Ë ÕÄÁÌÅÎÉÀ ÚÁ×ÉÓÉÍÙÈ "
|
||||
"ÎÏ, ÐÒÅÄÏÓÔÁ×ÌÅÎÎÙÈ ×ÁÍ ÐÒÁ× ÎÅÄÏÓÔÁÔÏÞÎÏ ÄÌÑ ÕÄÁÌÅÎÉÑ ÓÌÅÄÕÀÝÉÈÔÉÐÏ× "
|
||||
"ÏÂßÅËÔÏ×:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||
"the following related items will be deleted:"
|
||||
msgstr ""
|
||||
"÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ %(object_name)s \"%(object)s\"? ÷ÓÅ "
|
||||
"ÓÌÅÄÕÀÝÉÅÏÂßÅËÔÙ ÔÁËÖÅ ÂÕÄÕÔ ÕÄÁÌÅÎÙ:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:18
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "äÁ, Ñ Õ×ÅÒÅÎ"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:6
|
||||
#: contrib/admin/templates/registration/password_change_form.html:10
|
||||
msgid "Password change"
|
||||
msgstr "éÚÍÅÎÅÎÉÅ ÐÁÒÏÌÑ"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:6
|
||||
#: contrib/admin/templates/registration/password_change_done.html:10
|
||||
msgid "Password change successful"
|
||||
msgstr "La password è stata cambiata con successo"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||
msgid "Your password was changed."
|
||||
msgstr "÷ÁÛ ÐÁÒÏÌØ ÂÙÌ ÉÚÍÅÎÅÎ."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:4
|
||||
msgid "Password reset"
|
||||
msgstr "óÂÒÏÓ ÐÁÒÏÌÑ"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:12
|
||||
msgid ""
|
||||
"Forgotten your password? Enter your e-mail address below, and we'll reset "
|
||||
"your password and e-mail the new one to you."
|
||||
msgstr ""
|
||||
"úÁÂÙÌÉ ÐÁÒÏÌØ? ÷×ÅÄÉÔÅ ×ÁÛ e-mail ÁÄÒÅÓ ÎÉÖÅ É ÍÙ ÏÞÉÓÔÉÍ ×ÁÛ ÓÔÁÒÙÊ ÐÁÒÏÌØ, "
|
||||
"É ×ÙÛÌÅÍ ×ÁÍ ÐÏ e-mail ÎÏ×ÙÊ."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "E-mail address:"
|
||||
msgstr "E-mail ÁÄÒÅÓ:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "Reset my password"
|
||||
msgstr "ïÞÉÓÔËÁ ÐÁÒÏÌÑ"
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:8
|
||||
msgid "Thanks for spending some quality time with the Web site today."
|
||||
msgstr "âÌÁÇÏÄÁÒÉÍ ÚÁ ÐÒÏ×ÅÄÅÎÎÏÅ ×ÁÍÉ ÓÅÇÏÄÎÑ ×ÒÅÍÑ ÎÁ ÜÔÏÍ ÓÁÊÔÅ."
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:10
|
||||
msgid "Log in again"
|
||||
msgstr "ðÏ×ÔÏÒÎÙÊ ×ÈÏÄ"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:10
|
||||
msgid "Password reset successful"
|
||||
msgstr "õÓÐÅÛÎÁÑ ÏÞÉÓÔËÁ ÐÁÒÏÌÑ"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:12
|
||||
msgid ""
|
||||
"We've e-mailed a new password to the e-mail address you submitted. You "
|
||||
"should be receiving it shortly."
|
||||
msgstr ""
|
||||
"íÙ ÏÔÐÒÁ×ÉÌÉ ÎÏ×ÙÊ ÐÁÒÏÌØ ÐÏ ÕËÁÚÁÎÎÏÍÕ ×ÁÍÉ ÁÄÒÅÓÕ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÙ. ÷Ù "
|
||||
"ÄÏÌÖÎÙ ÐÏÌÕÞÉÔØ ÅÇÏ ÏÞÅÎØ ÂÙÓÔÒÏ."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:12
|
||||
msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
"÷ ÃÅÌÑÈ ÂÅÚÏÐÁÓÎÏÓÔÉ, ÐÏÖÁÌÕÊÓÔÁ, ××ÅÄÉÔÅ ×ÁÛ ÓÔÁÒÙÊ ÐÁÒÏÌØ, ÚÁÔÅÍ - ÎÏ×ÙÊ "
|
||||
"ÐÁÒÏÌØ Ä×ÁÖÄÙ, Ó ÔÅÍ, ÞÔÏÂÙ ÍÙ ÍÏÇÌÉ ÕÂÅÄÉÔØÓÑ × ÐÒÁ×ÉÌØÎÏÓÔÉ ÎÁÐÉÓÁÎÉÑ."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||
msgid "Old password:"
|
||||
msgstr "óÔÁÒÙÊ ÐÁÒÏÌØ:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||
msgid "New password:"
|
||||
msgstr "îÏ×ÙÊ ÐÁÒÏÌØ:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||
msgid "Confirm password:"
|
||||
msgstr "ðÏÄÔ×ÅÒÄÉÔÅ ÐÁÒÏÌØ:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:23
|
||||
msgid "Change my password"
|
||||
msgstr "éÚÍÅÎÅÎÉÅ ÐÁÒÏÌÑ"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:2
|
||||
msgid "You're receiving this e-mail because you requested a password reset"
|
||||
msgstr "÷Ù ÐÏÌÕÞÉÌÉ ÜÔÏ ÓÏÏÂÝÅÎÉÅ ÐÏÔÏÍÕ ÞÔÏ ÂÙÌÁ ÚÁÐÒÏÛÅÎÁ ÏÞÉÓÔËÁ ÐÁÒÏÌÑ"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:3
|
||||
#, python-format
|
||||
msgid "for your user account at %(site_name)s"
|
||||
msgstr "ÄÌÑ ×ÁÛÅÇÏ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÁËËÁÕÎÔÁ ÎÁ %(site_name)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:5
|
||||
#, python-format
|
||||
msgid "Your new password is: %(new_password)s"
|
||||
msgstr "÷ÁÛ ÎÏ×ÙÊ ÐÁÒÏÌØ: %(new_password)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:7
|
||||
msgid "Feel free to change this password by going to this page:"
|
||||
msgstr "÷Ù ×ÓÅÇÄÁ ÍÏÖÅÔÅ ÉÚÍÅÎÉÔØ ÜÔÏÔ ÐÁÒÏÌØ ÐÅÒÅÊÄÑ ÎÁ ÓÔÒÁÎÉÃÕ:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:11
|
||||
msgid "Your username, in case you've forgotten:"
|
||||
msgstr "÷ÁÛÅ ÉÍÑ, ÎÁ ÓÌÕÞÁÊ ÅÓÌÉ ×Ù ÅÇÏ ÚÁÂÙÌÉ:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:13
|
||||
msgid "Thanks for using our site!"
|
||||
msgstr "óÐÁÓÉÂÏ ÚÁ ÐÏÓÅÝÅÎÉÅ ÎÁÛÅÇÏ ÓÁÊÔÁ!"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:15
|
||||
#, python-format
|
||||
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 ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Tuesday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Wednesday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Thursday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Friday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Saturday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Sunday"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15 utils/dates.py:27
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:16
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Jan."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Feb."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Aug."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Sept."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Oct."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Nov."
|
||||
msgstr ""
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Dec."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:5
|
||||
msgid "domain name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:6
|
||||
msgid "display name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:8
|
||||
msgid "site"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:9
|
||||
msgid "sites"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:22
|
||||
msgid "label"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
|
||||
#, fuzzy
|
||||
msgid "name"
|
||||
msgstr "éÍÑ:"
|
||||
|
||||
#: models/core.py:25
|
||||
msgid "package"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:26
|
||||
msgid "packages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:36
|
||||
msgid "python module name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:38
|
||||
msgid "content type"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:39
|
||||
msgid "content types"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:62
|
||||
msgid "redirect from"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:63
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:64
|
||||
msgid "redirect to"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:65
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:67
|
||||
msgid "redirect"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:68
|
||||
msgid "redirects"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:81
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:82
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:83
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:84
|
||||
msgid "content"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:85
|
||||
msgid "enable comments"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:86
|
||||
msgid "template name"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:87
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "registration required"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "If this is checked, only logged-in users will be able to view the page."
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:92
|
||||
msgid "flat page"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:93
|
||||
msgid "flat pages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:114
|
||||
msgid "session key"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:115
|
||||
msgid "session data"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:116
|
||||
msgid "expire date"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:118
|
||||
msgid "session"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:119
|
||||
msgid "sessions"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:8
|
||||
msgid "codename"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:10
|
||||
msgid "Permission"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:11 models/auth.py:58
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:22
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:23 models/auth.py:60
|
||||
msgid "Groups"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:33
|
||||
#, fuzzy
|
||||
msgid "username"
|
||||
msgstr "éÍÑ:"
|
||||
|
||||
#: models/auth.py:34
|
||||
msgid "first name"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:35
|
||||
msgid "last name"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:36
|
||||
#, fuzzy
|
||||
msgid "e-mail address"
|
||||
msgstr "E-mail ÁÄÒÅÓ:"
|
||||
|
||||
#: models/auth.py:37
|
||||
#, fuzzy
|
||||
msgid "password"
|
||||
msgstr "ðÁÒÏÌØ:"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "Use an MD5 hash -- not the raw password."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "staff status"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:39
|
||||
msgid "active"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:40
|
||||
msgid "superuser status"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:41
|
||||
msgid "last login"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:42
|
||||
msgid "date joined"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:44
|
||||
msgid ""
|
||||
"In addition to the permissions manually assigned, this user will also get "
|
||||
"all permissions granted to each group he/she is in."
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:48
|
||||
#, fuzzy
|
||||
msgid "Users"
|
||||
msgstr "ðÏÌØÚÏ×ÁÔÅÌØ"
|
||||
|
||||
#: models/auth.py:57
|
||||
msgid "Personal info"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:59
|
||||
msgid "Important dates"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:182
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:37
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:38
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:39
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:40
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:41
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:42
|
||||
msgid "Galician"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:43
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Brazilian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:46
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:47
|
||||
msgid "Traditional Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:58
|
||||
msgid "This value must contain only letters, numbers and underscores."
|
||||
msgstr "úÎÁÞÅÎÉÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÔÏÌØËÏ ÂÕË×Ù, ÃÉÆÒÙ É ÐÏÄÞÅÒËÉ×ÁÎÉÑ."
|
||||
|
||||
#: core/validators.py:62
|
||||
#, fuzzy
|
||||
msgid "This value must contain only letters, numbers, underscores and slashes."
|
||||
msgstr "úÎÁÞÅÎÉÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÔÏÌØËÏ ÂÕË×Ù, ÃÉÆÒÙ É ÐÏÄÞÅÒËÉ×ÁÎÉÑ."
|
||||
|
||||
#: core/validators.py:70
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:74
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:81
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:93
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:100
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:104
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:108
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:112
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:117
|
||||
msgid "Enter a whole number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:121
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:125
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:129
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:133
|
||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:137
|
||||
#, fuzzy
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "E-mail ÁÄÒÅÓ:"
|
||||
|
||||
#: core/validators.py:149
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:156
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:160
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:168
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:172
|
||||
msgid "A valid URL is required."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:193
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:205
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:211
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:226
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:252
|
||||
msgid "Please enter something for at least one field."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:261 core/validators.py:272
|
||||
msgid "Please enter both fields or leave them both empty."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:279
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:291
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is not %(value)s"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:310
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:333
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:344
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:346
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s total digits."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:349
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s decimal places."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: core/validators.py:359
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:360
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:373
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:388
|
||||
msgid "This field is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:423
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:426
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:459
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:463
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:473
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:477
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
|
||||
#: core/meta/fields.py:95
|
||||
msgid " Separate multiple IDs with commas."
|
||||
msgstr ""
|
||||
|
||||
#: core/meta/fields.py:98
|
||||
msgid ""
|
||||
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Server error <em>(500)</em>"
|
||||
#~ msgstr "ïÛÉÂËÁ ÓÅÒ×ÅÒÁ <em>(500)</em>"
|
||||
|
||||
#~ msgid "Click to change"
|
||||
#~ msgstr "ýÅÌËÎÉÔÅ ÄÌÑ ÉÚÍÅÎÅÎÉÑ"
|
Binary file not shown.
|
@ -0,0 +1,981 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django Serbian (latin) translation v1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-11-03 12:26+0100\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."
|
||||
"com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
|
||||
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Poedit-Language: Serbian\n"
|
||||
"X-Poedit-Country: YUGOSLAVIA\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
"X-Poedit-Basepath: ../../../../\n"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#: 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 "Početna strana"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
msgid "History"
|
||||
msgstr "Istorija"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:18
|
||||
msgid "Date/time"
|
||||
msgstr "Datum/vreme"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47
|
||||
msgid "User"
|
||||
msgstr "Korisnik"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:20
|
||||
msgid "Action"
|
||||
msgstr "Akcija"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:26
|
||||
msgid "DATE_WITH_TIME_FULL"
|
||||
msgstr "j. N Y, H:i"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:36
|
||||
msgid ""
|
||||
"This object doesn't have a change history. It probably wasn't added via this "
|
||||
"admin site."
|
||||
msgstr ""
|
||||
"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/500.html:4
|
||||
#, fuzzy
|
||||
msgid "Server error"
|
||||
msgstr "Greška na serveru (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:6
|
||||
msgid "Server error (500)"
|
||||
msgstr "Greška na serveru (500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:9
|
||||
msgid "Server Error <em>(500)</em>"
|
||||
msgstr "Greška na serveru <em>(500)</em>"
|
||||
|
||||
#: 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 ""
|
||||
"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
|
||||
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/login.html:15
|
||||
msgid "Username:"
|
||||
msgstr "Korisničko ime:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:18
|
||||
msgid "Password:"
|
||||
msgstr "Lozinka:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:20
|
||||
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/login.html:24
|
||||
msgid "Log in"
|
||||
msgstr "Prijavi se"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "Dobrodošli,"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "Izmeni lozinku"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "Odjavi se"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
msgid ""
|
||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||
"objects, but your account doesn't have permission to delete the following "
|
||||
"types of objects:"
|
||||
msgstr ""
|
||||
"Brisanjem %(object_name)s '%(object)s' došlo bi do brisanja dodatnih "
|
||||
"podataka, ali nemate prava da brišete sledeće tipove podataka:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||
"the following related items will be deleted:"
|
||||
msgstr ""
|
||||
"Da li ste sigurni da želite da obrišete %(object_name)s \"%(object)s\"? Biće "
|
||||
"obrisani i sledeći pridruženi objekti:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:18
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "Da, siguran sam"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:6
|
||||
#: contrib/admin/templates/registration/password_change_form.html:10
|
||||
msgid "Password change"
|
||||
msgstr "Izmena lozinke"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:6
|
||||
#: contrib/admin/templates/registration/password_change_done.html:10
|
||||
msgid "Password change successful"
|
||||
msgstr "Lozinka je uspešno izmenjena"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||
msgid "Your password was changed."
|
||||
msgstr "Vaša lozinka je izmenjena."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:4
|
||||
msgid "Password reset"
|
||||
msgstr "Resetovanje lozinke"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:12
|
||||
msgid ""
|
||||
"Forgotten your password? Enter your e-mail address below, and we'll reset "
|
||||
"your password and e-mail the new one to you."
|
||||
msgstr ""
|
||||
"Zaboravili ste svoju lozinku? Unesite vašu e-mail adresu i dobićete novu "
|
||||
"lozinku na dati e-mail."
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "E-mail address:"
|
||||
msgstr "E-mail adresa:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "Reset my password"
|
||||
msgstr "Resetuj moju lozinku"
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:8
|
||||
msgid "Thanks for spending some quality time with the Web site today."
|
||||
msgstr "Hvala Vam na poseti."
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:10
|
||||
msgid "Log in again"
|
||||
msgstr "Prijavi se ponovo"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:10
|
||||
msgid "Password reset successful"
|
||||
msgstr "Vaša lozinka je uspešno resetovana"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:12
|
||||
msgid ""
|
||||
"We've e-mailed a new password to the e-mail address you submitted. You "
|
||||
"should be receiving it shortly."
|
||||
msgstr ""
|
||||
"Nova lozinka poslata vam je na zadatu e-mail adresu. E-mail bi trebao da "
|
||||
"stigne u narednih nekoliko minuta."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:12
|
||||
msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
"Unesite staru lozinku, nakon toga unesite novu lozinku dva puta, radi "
|
||||
"provere ispravnosti unosa."
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||
msgid "Old password:"
|
||||
msgstr "Stara lozinka:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||
msgid "New password:"
|
||||
msgstr "Nova lozinka:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||
msgid "Confirm password:"
|
||||
msgstr "Potvrdite novu lozinku:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:23
|
||||
msgid "Change my password"
|
||||
msgstr "Izmeni moju lozinku"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:2
|
||||
msgid "You're receiving this e-mail because you requested a password reset"
|
||||
msgstr "Primili ste ovaj e-mail jer ste tražili resetovanje lozinke"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:3
|
||||
#, python-format
|
||||
msgid "for your user account at %(site_name)s"
|
||||
msgstr "za vaš korisnički nalog na %(site_name)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:5
|
||||
#, python-format
|
||||
msgid "Your new password is: %(new_password)s"
|
||||
msgstr "Vaša nova lozinka je: %(new_password)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:7
|
||||
msgid "Feel free to change this password by going to this page:"
|
||||
msgstr "Lozinku možete izmeniti na sledećoj strani:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:11
|
||||
msgid "Your username, in case you've forgotten:"
|
||||
msgstr "Vaše korisničko ime, u slučaju da ste zaboravili:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:13
|
||||
msgid "Thanks for using our site!"
|
||||
msgstr "Hvala Vam na poseti!"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:15
|
||||
#, python-format
|
||||
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"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Monday"
|
||||
msgstr "Ponedeljak"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Tuesday"
|
||||
msgstr "Utorak"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Wednesday"
|
||||
msgstr "Sreda"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Thursday"
|
||||
msgstr "Četvrtak"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Friday"
|
||||
msgstr "Petak"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Saturday"
|
||||
msgstr "Subota"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Sunday"
|
||||
msgstr "Nedelja"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "January"
|
||||
msgstr "Januar"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "February"
|
||||
msgstr "Februar"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "March"
|
||||
msgstr "Mart"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "April"
|
||||
msgstr "April"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "May"
|
||||
msgstr "Maj"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "June"
|
||||
msgstr "Jun"
|
||||
|
||||
#: utils/dates.py:15 utils/dates.py:27
|
||||
msgid "July"
|
||||
msgstr "Jul"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "August"
|
||||
msgstr "Avgust"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "September"
|
||||
msgstr "Septembar"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "October"
|
||||
msgstr "Oktobar"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "November"
|
||||
msgstr "Novembar"
|
||||
|
||||
#: utils/dates.py:16
|
||||
msgid "December"
|
||||
msgstr "Decembar"
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Jan."
|
||||
msgstr "Jan."
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Feb."
|
||||
msgstr "Feb."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Aug."
|
||||
msgstr "Avg."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Sept."
|
||||
msgstr "Sept."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Oct."
|
||||
msgstr "Okt."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Nov."
|
||||
msgstr "Nov."
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Dec."
|
||||
msgstr "Dec."
|
||||
|
||||
#: models/core.py:5
|
||||
msgid "domain name"
|
||||
msgstr "ime domena"
|
||||
|
||||
#: models/core.py:6
|
||||
msgid "display name"
|
||||
msgstr "naziv"
|
||||
|
||||
#: models/core.py:8
|
||||
msgid "site"
|
||||
msgstr "sajt"
|
||||
|
||||
#: models/core.py:9
|
||||
msgid "sites"
|
||||
msgstr "sajtovi"
|
||||
|
||||
#: models/core.py:22
|
||||
msgid "label"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
|
||||
msgid "name"
|
||||
msgstr "ime"
|
||||
|
||||
#: models/core.py:25
|
||||
msgid "package"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:26
|
||||
msgid "packages"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:36
|
||||
msgid "python module name"
|
||||
msgstr "ime python modula"
|
||||
|
||||
#: models/core.py:38
|
||||
msgid "content type"
|
||||
msgstr "tip sadržaja"
|
||||
|
||||
#: models/core.py:39
|
||||
msgid "content types"
|
||||
msgstr "tipovi sadržaja"
|
||||
|
||||
#: models/core.py:62
|
||||
msgid "redirect from"
|
||||
msgstr "redirekcija od"
|
||||
|
||||
#: models/core.py:63
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr ""
|
||||
"Ovde treba upisati apsolutnu putanju bez imena domena. Primer: '/events/"
|
||||
"search/'."
|
||||
|
||||
#: models/core.py:64
|
||||
msgid "redirect to"
|
||||
msgstr "redirekcija na"
|
||||
|
||||
#: models/core.py:65
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr ""
|
||||
"Ovo može biti apsolutna putanja (kao gore) ili puni URL koji počinje sa "
|
||||
"'http://'."
|
||||
|
||||
#: models/core.py:67
|
||||
msgid "redirect"
|
||||
msgstr "redirekcija"
|
||||
|
||||
#: models/core.py:68
|
||||
msgid "redirects"
|
||||
msgstr "redirekcije"
|
||||
|
||||
# nesh: ovo se valjda ne prevodi
|
||||
# petar: ne prevodi se
|
||||
#: models/core.py:81
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:82
|
||||
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
|
||||
msgid "title"
|
||||
msgstr "naslov"
|
||||
|
||||
#: models/core.py:84
|
||||
msgid "content"
|
||||
msgstr "sadržaj"
|
||||
|
||||
#: models/core.py:85
|
||||
msgid "enable comments"
|
||||
msgstr "omogućite komentare"
|
||||
|
||||
#: models/core.py:86
|
||||
msgid "template name"
|
||||
msgstr "ime templejta"
|
||||
|
||||
#: models/core.py:87
|
||||
msgid ""
|
||||
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
|
||||
"use 'flatfiles/default'."
|
||||
msgstr ""
|
||||
"Primer: 'flatfiles/contact-page'. Ako nije dato sistem će koristiti "
|
||||
"'flatfiles/default'."
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "registration required"
|
||||
msgstr "samo za registrovane korisnike"
|
||||
|
||||
#: models/core.py:88
|
||||
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
|
||||
msgid "flat page"
|
||||
msgstr "statična strana"
|
||||
|
||||
#: models/core.py:93
|
||||
msgid "flat pages"
|
||||
msgstr "statične strane"
|
||||
|
||||
#: models/core.py:114
|
||||
msgid "session key"
|
||||
msgstr "ključ sesije"
|
||||
|
||||
#: models/core.py:115
|
||||
msgid "session data"
|
||||
msgstr "podaci sesije"
|
||||
|
||||
#: models/core.py:116
|
||||
msgid "expire date"
|
||||
msgstr "datum prestanka važenja sesije"
|
||||
|
||||
#: models/core.py:118
|
||||
msgid "session"
|
||||
msgstr "sesija"
|
||||
|
||||
#: models/core.py:119
|
||||
msgid "sessions"
|
||||
msgstr "sesije"
|
||||
|
||||
#: models/auth.py:8
|
||||
msgid "codename"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:10
|
||||
msgid "Permission"
|
||||
msgstr "Pravo"
|
||||
|
||||
#: models/auth.py:11 models/auth.py:58
|
||||
msgid "Permissions"
|
||||
msgstr "Prava"
|
||||
|
||||
#: models/auth.py:22
|
||||
msgid "Group"
|
||||
msgstr "Grupa"
|
||||
|
||||
#: models/auth.py:23 models/auth.py:60
|
||||
msgid "Groups"
|
||||
msgstr "Grupe"
|
||||
|
||||
#: models/auth.py:33
|
||||
msgid "username"
|
||||
msgstr "korisničko ime"
|
||||
|
||||
#: models/auth.py:34
|
||||
msgid "first name"
|
||||
msgstr "ime"
|
||||
|
||||
#: models/auth.py:35
|
||||
msgid "last name"
|
||||
msgstr "prezime"
|
||||
|
||||
#: models/auth.py:36
|
||||
msgid "e-mail address"
|
||||
msgstr "e-mail adresa"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "password"
|
||||
msgstr "lozinka"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "Use an MD5 hash -- not the raw password."
|
||||
msgstr "Unesite MD5 hash šifre -- ne unosite sam tekst šifre."
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "staff status"
|
||||
msgstr "dozvoli pristup administraciji sajta"
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "Određuje da li će korisnik imati pristup administratorskom delu sajta."
|
||||
|
||||
#: models/auth.py:39
|
||||
msgid "active"
|
||||
msgstr "aktivan"
|
||||
|
||||
#: models/auth.py:40
|
||||
msgid "superuser status"
|
||||
msgstr "da li je korisnik administrator"
|
||||
|
||||
#: models/auth.py:41
|
||||
msgid "last login"
|
||||
msgstr "vreme poslednje posete"
|
||||
|
||||
#: models/auth.py:42
|
||||
msgid "date joined"
|
||||
msgstr "datum otvaranja naloga"
|
||||
|
||||
#: models/auth.py:44
|
||||
msgid ""
|
||||
"In addition to the permissions manually assigned, this user will also get "
|
||||
"all permissions granted to each group he/she is in."
|
||||
msgstr ""
|
||||
"Uz ručno dodata prava, korisnik će dobiti sva prava iz grupa kojima pripada."
|
||||
|
||||
#: models/auth.py:48
|
||||
msgid "Users"
|
||||
msgstr "Korisnici"
|
||||
|
||||
#: models/auth.py:57
|
||||
msgid "Personal info"
|
||||
msgstr "Lične informacije"
|
||||
|
||||
#: models/auth.py:59
|
||||
msgid "Important dates"
|
||||
msgstr "Važni datumi"
|
||||
|
||||
#: models/auth.py:182
|
||||
msgid "Message"
|
||||
msgstr "Poruka"
|
||||
|
||||
#: conf/global_settings.py:37
|
||||
msgid "Czech"
|
||||
msgstr "Češki"
|
||||
|
||||
#: conf/global_settings.py:38
|
||||
msgid "German"
|
||||
msgstr "Nemački"
|
||||
|
||||
#: conf/global_settings.py:39
|
||||
msgid "English"
|
||||
msgstr "Engleski"
|
||||
|
||||
#: conf/global_settings.py:40
|
||||
msgid "Spanish"
|
||||
msgstr "Španski"
|
||||
|
||||
#: conf/global_settings.py:41
|
||||
msgid "French"
|
||||
msgstr "Francuski"
|
||||
|
||||
#: conf/global_settings.py:42
|
||||
msgid "Galician"
|
||||
msgstr ""
|
||||
|
||||
#: conf/global_settings.py:43
|
||||
msgid "Italian"
|
||||
msgstr "Italijanski"
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Brazilian"
|
||||
msgstr "Brazilski"
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Russian"
|
||||
msgstr "Ruski"
|
||||
|
||||
#: conf/global_settings.py:46
|
||||
msgid "Serbian"
|
||||
msgstr "Srpski"
|
||||
|
||||
#: conf/global_settings.py:47
|
||||
msgid "Traditional Chinese"
|
||||
msgstr ""
|
||||
|
||||
# nesh: Ovo je opis za stari SlugField
|
||||
#: core/validators.py:58
|
||||
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
|
||||
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
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr "Velika slova ovde nisu dozvoljena."
|
||||
|
||||
#: core/validators.py:74
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr "Mala slova ovde nisu dozvoljena."
|
||||
|
||||
#: core/validators.py:81
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr "Unesite samo brojeve razdvojene zarezima."
|
||||
|
||||
#: core/validators.py:93
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr "Unesite ispravne e-mail adrese razdvojene zarezima."
|
||||
|
||||
#: core/validators.py:100
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr "Unesite ispravnu IP adresu."
|
||||
|
||||
#: core/validators.py:104
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr "Prazne vrednosti ovde nisu dozvoljene."
|
||||
|
||||
#: core/validators.py:108
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr "Ovde možete uneti samo brojeve."
|
||||
|
||||
#: core/validators.py:112
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr "Podatak se ne može sastojati samo od brojeva."
|
||||
|
||||
#: core/validators.py:117
|
||||
msgid "Enter a whole number."
|
||||
msgstr "Unesite celi broj."
|
||||
|
||||
#: core/validators.py:121
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr "Ovde možete koristiti samo slova."
|
||||
|
||||
#: core/validators.py:125
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr "Unesite ispravan datum u YYYY-MM-DD formatu."
|
||||
|
||||
#: core/validators.py:129
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr "Unesite ispravno vreme u HH:MM formatu."
|
||||
|
||||
#: core/validators.py:133
|
||||
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
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "Unesite ispravnu e-mail adresu."
|
||||
|
||||
#: core/validators.py:149
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
"Pošaljite ispravnu sliku. Fajl koji ste poslali ili nije slika ili je sam "
|
||||
"fajl oštećen."
|
||||
|
||||
#: core/validators.py:156
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:168
|
||||
#, 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
|
||||
msgid "A valid URL is required."
|
||||
msgstr "Unesite ispravan URL."
|
||||
|
||||
#: core/validators.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"Unesite ispravan HTML. Greške su:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "Neispravan XML: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "Neispravan URL: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#, 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
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:226
|
||||
#, 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] "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
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr "Ovo polje mora biti jednako sa poljem '%s'."
|
||||
|
||||
#: core/validators.py:252
|
||||
msgid "Please enter something for at least one field."
|
||||
msgstr "Morate popuniti barem jedno polje."
|
||||
|
||||
#: core/validators.py:261 core/validators.py:272
|
||||
msgid "Please enter both fields or leave them both empty."
|
||||
msgstr "Popunite oba polja ili oba ostavite prazna."
|
||||
|
||||
#: core/validators.py:279
|
||||
#, 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
|
||||
#, 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
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "Duple vrednosti nisu dozvoljene."
|
||||
|
||||
#: core/validators.py:333
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr "Vrednost mora biti stepena %s."
|
||||
|
||||
#: core/validators.py:344
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr "Unesite ispravan decimalni broj."
|
||||
|
||||
#: core/validators.py:346
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s total digits."
|
||||
msgstr[0] "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
|
||||
#, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s decimal places."
|
||||
msgstr[0] "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
|
||||
#, 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
|
||||
#, 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
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr "Pogrešan format polja."
|
||||
|
||||
#: core/validators.py:388
|
||||
msgid "This field is invalid."
|
||||
msgstr "Neispravno polje."
|
||||
|
||||
#: core/validators.py:423
|
||||
#, 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
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Zatvorite nezatvoren tag \"%(tag)s\" iz reda %(line)s. (Red počinje sa \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some text starting on line %(line)s is not allowed in that context. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Tekst koji počinje u redu %(line)s nije dozvoljen u ovom kontekstu. (Red "
|
||||
"počinje sa \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:468
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"Atribut \"%(attr)s\" u red %(line)s je neispravan. (Red počinje sa \"%(start)"
|
||||
"s\".)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"Tag \"<%(tag)s>\" u redu %(line)s je neispravan. (Red počinje \"%(start)s\".)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A tag on line %(line)s is missing one or more required attributes. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Tag-u u redu %(line)s nedostaje jedan ili više atributa. (Red počinje sa \"%"
|
||||
"(start)s\".)"
|
||||
|
||||
#: core/validators.py:482
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"Atribut \"%(attr)s\" u redu %(line)s ima neispravnu vrednost. (Red počinje "
|
||||
"sa \"%(start)s\".)"
|
||||
|
||||
#: core/meta/fields.py:95
|
||||
msgid " Separate multiple IDs with commas."
|
||||
msgstr " Odvojite višestruke ID-ove zarezima."
|
||||
|
||||
#: core/meta/fields.py:98
|
||||
msgid ""
|
||||
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||
msgstr ""
|
||||
" Koristite \"Ctrl\" (PC) ili \"Jabuku\" (Mek) da bi ste selektovali više "
|
||||
"stavki."
|
Binary file not shown.
|
@ -0,0 +1,951 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: django v1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-11-03 12:26+0100\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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-Language: Chinese\n"
|
||||
"X-Poedit-Country: CHINA\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:5
|
||||
#: contrib/admin/templates/admin/500.html:4
|
||||
#: 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/object_history.html:5
|
||||
msgid "History"
|
||||
msgstr "历史"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:18
|
||||
msgid "Date/time"
|
||||
msgstr "日期/时间"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47
|
||||
msgid "User"
|
||||
msgstr "用户"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:20
|
||||
msgid "Action"
|
||||
msgstr "动作"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:26
|
||||
msgid "DATE_WITH_TIME_FULL"
|
||||
msgstr "N j, Y, P"
|
||||
|
||||
#: contrib/admin/templates/admin/object_history.html:36
|
||||
msgid ""
|
||||
"This object doesn't have a change history. It probably wasn't added via this "
|
||||
"admin site."
|
||||
msgstr "此对象没有修改历史。可能不能通过这个管理站点来增加。"
|
||||
|
||||
#: 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/500.html:4
|
||||
#, fuzzy
|
||||
msgid "Server error"
|
||||
msgstr "服务器错误(500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:6
|
||||
msgid "Server error (500)"
|
||||
msgstr "服务器错误(500)"
|
||||
|
||||
#: contrib/admin/templates/admin/500.html:9
|
||||
msgid "Server Error <em>(500)</em>"
|
||||
msgstr "服务器错误 <em>(500)</em>"
|
||||
|
||||
#: 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
|
||||
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/login.html:15
|
||||
msgid "Username:"
|
||||
msgstr "用户名:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:18
|
||||
msgid "Password:"
|
||||
msgstr "口令:"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:20
|
||||
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
|
||||
msgstr "<a href=\"/password_reset/\">忘记你的密码</a>?"
|
||||
|
||||
#: contrib/admin/templates/admin/login.html:24
|
||||
msgid "Log in"
|
||||
msgstr "登录"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Welcome,"
|
||||
msgstr "欢迎,"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Change password"
|
||||
msgstr "修改口令"
|
||||
|
||||
#: contrib/admin/templates/admin/base.html:23
|
||||
msgid "Log out"
|
||||
msgstr "注销"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:7
|
||||
#, fuzzy, python-format
|
||||
msgid ""
|
||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||
"objects, but your account doesn't have permission to delete the following "
|
||||
"types of objects:"
|
||||
msgstr ""
|
||||
"删除 %(object_name)s '%(object)s' 会导致删除相关的对象,但你的帐号无权删除下"
|
||||
"列类型的对象:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||
"the following related items will be deleted:"
|
||||
msgstr ""
|
||||
"你确信相要删除 %(object_name)s \"%(object)s\"?所有相关的项目都将被删除:"
|
||||
|
||||
#: contrib/admin/templates/admin/delete_confirmation.html:18
|
||||
msgid "Yes, I'm sure"
|
||||
msgstr "是的,我确定"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||
#: contrib/admin/templates/registration/password_change_form.html:6
|
||||
#: contrib/admin/templates/registration/password_change_form.html:10
|
||||
msgid "Password change"
|
||||
msgstr "口令修改"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:6
|
||||
#: contrib/admin/templates/registration/password_change_done.html:10
|
||||
msgid "Password change successful"
|
||||
msgstr "口令修改成功"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||
msgid "Your password was changed."
|
||||
msgstr "你的口令已经被修改。"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:4
|
||||
msgid "Password reset"
|
||||
msgstr "口令重设"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:12
|
||||
msgid ""
|
||||
"Forgotten your password? Enter your e-mail address below, and we'll reset "
|
||||
"your password and e-mail the new one to you."
|
||||
msgstr ""
|
||||
"忘记你的口令?在下面输入你的邮箱地址,我们将重设你的口令并且将新的口令通过邮"
|
||||
"件发送给你。"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "E-mail address:"
|
||||
msgstr "邮箱地址:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_form.html:16
|
||||
msgid "Reset my password"
|
||||
msgstr "重设我的口令"
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:8
|
||||
msgid "Thanks for spending some quality time with the Web site today."
|
||||
msgstr "感谢今天在本网站花费了您的一些宝贵时间。"
|
||||
|
||||
#: contrib/admin/templates/registration/logged_out.html:10
|
||||
msgid "Log in again"
|
||||
msgstr "重新登录"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:6
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:10
|
||||
msgid "Password reset successful"
|
||||
msgstr "口令重设成功"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_done.html:12
|
||||
msgid ""
|
||||
"We've e-mailed a new password to the e-mail address you submitted. You "
|
||||
"should be receiving it shortly."
|
||||
msgstr ""
|
||||
"我们已经按你所提交的邮箱地址发送了一个新的口令给你。你应该很会收到这封邮件。"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:12
|
||||
msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
"请输入你的旧口令,为了安全起见,接着要输入你的新口令两遍,这样我们可以校验你"
|
||||
"输入的是否正确。"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||
msgid "Old password:"
|
||||
msgstr "旧口令:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||
msgid "New password:"
|
||||
msgstr "新口令:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||
msgid "Confirm password:"
|
||||
msgstr "确认口令:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_change_form.html:23
|
||||
msgid "Change my password"
|
||||
msgstr "修改我的口令"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:2
|
||||
msgid "You're receiving this e-mail because you requested a password reset"
|
||||
msgstr "你所收到的这封邮件是由于你请求了口令重设"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:3
|
||||
#, python-format
|
||||
msgid "for your user account at %(site_name)s"
|
||||
msgstr "在 %(site_name)s 你的用户帐号"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:5
|
||||
#, python-format
|
||||
msgid "Your new password is: %(new_password)s"
|
||||
msgstr "你的新口令是: %(new_password)s"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:7
|
||||
msgid "Feel free to change this password by going to this page:"
|
||||
msgstr "到这个页面可以自由地修改口令:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:11
|
||||
msgid "Your username, in case you've forgotten:"
|
||||
msgstr "你的用户名,一旦你忘记了:"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:13
|
||||
msgid "Thanks for using our site!"
|
||||
msgstr "感谢使用我们的站点!"
|
||||
|
||||
#: contrib/admin/templates/registration/password_reset_email.html:15
|
||||
#, python-format
|
||||
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 "日志记录"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Monday"
|
||||
msgstr "星期一"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Tuesday"
|
||||
msgstr "星期二"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Wednesday"
|
||||
msgstr "星期三"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Thursday"
|
||||
msgstr "星期四"
|
||||
|
||||
#: utils/dates.py:6
|
||||
msgid "Friday"
|
||||
msgstr "星期五"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Saturday"
|
||||
msgstr "星期六"
|
||||
|
||||
#: utils/dates.py:7
|
||||
msgid "Sunday"
|
||||
msgstr "星期日"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "January"
|
||||
msgstr "一月"
|
||||
|
||||
#: utils/dates.py:14
|
||||
msgid "February"
|
||||
msgstr "二月"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "March"
|
||||
msgstr "三月"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "April"
|
||||
msgstr "四月"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "May"
|
||||
msgstr "五月"
|
||||
|
||||
#: utils/dates.py:14 utils/dates.py:27
|
||||
msgid "June"
|
||||
msgstr "六月"
|
||||
|
||||
#: utils/dates.py:15 utils/dates.py:27
|
||||
msgid "July"
|
||||
msgstr "七月"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "August"
|
||||
msgstr "八月"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "September"
|
||||
msgstr "九月"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "October"
|
||||
msgstr "十月"
|
||||
|
||||
#: utils/dates.py:15
|
||||
msgid "November"
|
||||
msgstr "十一月"
|
||||
|
||||
#: utils/dates.py:16
|
||||
msgid "December"
|
||||
msgstr "十二月"
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Jan."
|
||||
msgstr "一月"
|
||||
|
||||
#: utils/dates.py:27
|
||||
msgid "Feb."
|
||||
msgstr "二月"
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Aug."
|
||||
msgstr "八月"
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Sept."
|
||||
msgstr "九月"
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Oct."
|
||||
msgstr "十月"
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Nov."
|
||||
msgstr "十一月"
|
||||
|
||||
#: utils/dates.py:28
|
||||
msgid "Dec."
|
||||
msgstr "十二月"
|
||||
|
||||
#: models/core.py:5
|
||||
msgid "domain name"
|
||||
msgstr "域名"
|
||||
|
||||
#: models/core.py:6
|
||||
msgid "display name"
|
||||
msgstr "显示名"
|
||||
|
||||
#: models/core.py:8
|
||||
msgid "site"
|
||||
msgstr "站点"
|
||||
|
||||
#: models/core.py:9
|
||||
msgid "sites"
|
||||
msgstr "站点"
|
||||
|
||||
#: models/core.py:22
|
||||
msgid "label"
|
||||
msgstr "标签"
|
||||
|
||||
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
|
||||
msgid "name"
|
||||
msgstr "名称"
|
||||
|
||||
#: models/core.py:25
|
||||
msgid "package"
|
||||
msgstr "包"
|
||||
|
||||
#: models/core.py:26
|
||||
msgid "packages"
|
||||
msgstr "包"
|
||||
|
||||
#: models/core.py:36
|
||||
msgid "python module name"
|
||||
msgstr "python模块名"
|
||||
|
||||
#: models/core.py:38
|
||||
msgid "content type"
|
||||
msgstr "内容类型"
|
||||
|
||||
#: models/core.py:39
|
||||
msgid "content types"
|
||||
msgstr "内容类型"
|
||||
|
||||
#: models/core.py:62
|
||||
msgid "redirect from"
|
||||
msgstr "重定向自"
|
||||
|
||||
#: models/core.py:63
|
||||
msgid ""
|
||||
"This should be an absolute path, excluding the domain name. Example: '/"
|
||||
"events/search/'."
|
||||
msgstr "应该是一个绝对路径,不包括域名。例如:'/events/search/'。"
|
||||
|
||||
#: models/core.py:64
|
||||
msgid "redirect to"
|
||||
msgstr "重定向到"
|
||||
|
||||
#: models/core.py:65
|
||||
msgid ""
|
||||
"This can be either an absolute path (as above) or a full URL starting with "
|
||||
"'http://'."
|
||||
msgstr "可以是绝对路径(同上)或以'http://'开始的全URL。"
|
||||
|
||||
#: models/core.py:67
|
||||
msgid "redirect"
|
||||
msgstr "重定向"
|
||||
|
||||
#: models/core.py:68
|
||||
msgid "redirects"
|
||||
msgstr "重定向"
|
||||
|
||||
#: models/core.py:81
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:82
|
||||
msgid ""
|
||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||
msgstr "例如:'/about/contact/'。请确保前导和结尾的除号。"
|
||||
|
||||
#: models/core.py:83
|
||||
msgid "title"
|
||||
msgstr "标题"
|
||||
|
||||
#: models/core.py:84
|
||||
msgid "content"
|
||||
msgstr "内容"
|
||||
|
||||
#: models/core.py:85
|
||||
msgid "enable comments"
|
||||
msgstr "允许评论"
|
||||
|
||||
#: models/core.py:86
|
||||
msgid "template name"
|
||||
msgstr "模板名称"
|
||||
|
||||
#: models/core.py:87
|
||||
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
|
||||
msgid "registration required"
|
||||
msgstr "请先注册"
|
||||
|
||||
#: models/core.py:88
|
||||
msgid "If this is checked, only logged-in users will be able to view the page."
|
||||
msgstr "如果被选中,仅登录用户才可以查看此页。"
|
||||
|
||||
#: models/core.py:92
|
||||
msgid "flat page"
|
||||
msgstr "简单页面"
|
||||
|
||||
#: models/core.py:93
|
||||
msgid "flat pages"
|
||||
msgstr "简单页面"
|
||||
|
||||
#: models/core.py:114
|
||||
msgid "session key"
|
||||
msgstr "session键字"
|
||||
|
||||
#: models/core.py:115
|
||||
msgid "session data"
|
||||
msgstr "session数据"
|
||||
|
||||
#: models/core.py:116
|
||||
msgid "expire date"
|
||||
msgstr "过期日期"
|
||||
|
||||
#: models/core.py:118
|
||||
msgid "session"
|
||||
msgstr ""
|
||||
|
||||
#: models/core.py:119
|
||||
msgid "sessions"
|
||||
msgstr ""
|
||||
|
||||
#: models/auth.py:8
|
||||
msgid "codename"
|
||||
msgstr "代码名称"
|
||||
|
||||
#: models/auth.py:10
|
||||
msgid "Permission"
|
||||
msgstr "许可"
|
||||
|
||||
#: models/auth.py:11 models/auth.py:58
|
||||
msgid "Permissions"
|
||||
msgstr "许可"
|
||||
|
||||
#: models/auth.py:22
|
||||
msgid "Group"
|
||||
msgstr "组"
|
||||
|
||||
#: models/auth.py:23 models/auth.py:60
|
||||
msgid "Groups"
|
||||
msgstr "组"
|
||||
|
||||
#: models/auth.py:33
|
||||
msgid "username"
|
||||
msgstr "用户名"
|
||||
|
||||
#: models/auth.py:34
|
||||
msgid "first name"
|
||||
msgstr "名字"
|
||||
|
||||
#: models/auth.py:35
|
||||
msgid "last name"
|
||||
msgstr "姓"
|
||||
|
||||
#: models/auth.py:36
|
||||
msgid "e-mail address"
|
||||
msgstr "邮件地址"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "password"
|
||||
msgstr "口令"
|
||||
|
||||
#: models/auth.py:37
|
||||
msgid "Use an MD5 hash -- not the raw password."
|
||||
msgstr "使用MD5的哈希值 -- 不是原始的口令。"
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "staff status"
|
||||
msgstr "人员状态"
|
||||
|
||||
#: models/auth.py:38
|
||||
msgid "Designates whether the user can log into this admin site."
|
||||
msgstr "指定是否用户可以登录到这个管理站点。"
|
||||
|
||||
#: models/auth.py:39
|
||||
msgid "active"
|
||||
msgstr "活动"
|
||||
|
||||
#: models/auth.py:40
|
||||
msgid "superuser status"
|
||||
msgstr "超级用户状态"
|
||||
|
||||
#: models/auth.py:41
|
||||
msgid "last login"
|
||||
msgstr "上次登录"
|
||||
|
||||
#: models/auth.py:42
|
||||
msgid "date joined"
|
||||
msgstr "加入日期"
|
||||
|
||||
#: models/auth.py:44
|
||||
msgid ""
|
||||
"In addition to the permissions manually assigned, this user will also get "
|
||||
"all permissions granted to each group he/she is in."
|
||||
msgstr ""
|
||||
"除了手动设置权限以外,用户也会从他(她)所在的小组获得所赋组小组的所有权限。"
|
||||
|
||||
#: models/auth.py:48
|
||||
msgid "Users"
|
||||
msgstr "用户"
|
||||
|
||||
#: models/auth.py:57
|
||||
msgid "Personal info"
|
||||
msgstr "个人信息"
|
||||
|
||||
#: models/auth.py:59
|
||||
msgid "Important dates"
|
||||
msgstr "重要日期"
|
||||
|
||||
#: models/auth.py:182
|
||||
msgid "Message"
|
||||
msgstr "消息"
|
||||
|
||||
#: conf/global_settings.py:37
|
||||
msgid "Czech"
|
||||
msgstr "捷克语"
|
||||
|
||||
#: conf/global_settings.py:38
|
||||
msgid "German"
|
||||
msgstr "德语"
|
||||
|
||||
#: conf/global_settings.py:39
|
||||
msgid "English"
|
||||
msgstr "英语"
|
||||
|
||||
#: conf/global_settings.py:40
|
||||
msgid "Spanish"
|
||||
msgstr "西斑牙语"
|
||||
|
||||
#: conf/global_settings.py:41
|
||||
msgid "French"
|
||||
msgstr "法语"
|
||||
|
||||
#: conf/global_settings.py:42
|
||||
msgid "Galician"
|
||||
msgstr "加利西亚语"
|
||||
|
||||
#: conf/global_settings.py:43
|
||||
msgid "Italian"
|
||||
msgstr "意大利语"
|
||||
|
||||
#: conf/global_settings.py:44
|
||||
msgid "Brazilian"
|
||||
msgstr "巴西语"
|
||||
|
||||
#: conf/global_settings.py:45
|
||||
msgid "Russian"
|
||||
msgstr "俄语"
|
||||
|
||||
#: conf/global_settings.py:46
|
||||
#, fuzzy
|
||||
msgid "Serbian"
|
||||
msgstr "塞尔维亚语"
|
||||
|
||||
#: conf/global_settings.py:47
|
||||
msgid "Traditional Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: core/validators.py:58
|
||||
msgid "This value must contain only letters, numbers and underscores."
|
||||
msgstr "此值只能包含字母、数字和下划线。"
|
||||
|
||||
#: core/validators.py:62
|
||||
msgid "This value must contain only letters, numbers, underscores and slashes."
|
||||
msgstr "此值只能包含字母、数字、下划线和斜线。"
|
||||
|
||||
#: core/validators.py:70
|
||||
msgid "Uppercase letters are not allowed here."
|
||||
msgstr "这里不允许大写字母。"
|
||||
|
||||
#: core/validators.py:74
|
||||
msgid "Lowercase letters are not allowed here."
|
||||
msgstr "这里不允许小写字母。"
|
||||
|
||||
#: core/validators.py:81
|
||||
msgid "Enter only digits separated by commas."
|
||||
msgstr "只能输入用逗号分隔的数字。"
|
||||
|
||||
#: core/validators.py:93
|
||||
msgid "Enter valid e-mail addresses separated by commas."
|
||||
msgstr "输入用逗号分隔的有效邮件地址。"
|
||||
|
||||
#: core/validators.py:100
|
||||
msgid "Please enter a valid IP address."
|
||||
msgstr "请输入一个有效的IP地址。"
|
||||
|
||||
#: core/validators.py:104
|
||||
msgid "Empty values are not allowed here."
|
||||
msgstr "这里不允许输入空值。"
|
||||
|
||||
#: core/validators.py:108
|
||||
msgid "Non-numeric characters aren't allowed here."
|
||||
msgstr "这里不允许非数字字符。"
|
||||
|
||||
#: core/validators.py:112
|
||||
msgid "This value can't be comprised solely of digits."
|
||||
msgstr "此值不能全部由数字组成。"
|
||||
|
||||
#: core/validators.py:117
|
||||
msgid "Enter a whole number."
|
||||
msgstr "输入整数。"
|
||||
|
||||
#: core/validators.py:121
|
||||
msgid "Only alphabetical characters are allowed here."
|
||||
msgstr "这里只允许字母。"
|
||||
|
||||
#: core/validators.py:125
|
||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||
msgstr "输入一个 YYYY-MM-DD 格式的有效日期。"
|
||||
|
||||
#: core/validators.py:129
|
||||
msgid "Enter a valid time in HH:MM format."
|
||||
msgstr "输入一个 HH:MM 格式的有效时间。"
|
||||
|
||||
#: core/validators.py:133
|
||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||
msgstr "输入一个 YYYY-MM-DD HH:MM 格式的有效日期/时间。"
|
||||
|
||||
#: core/validators.py:137
|
||||
msgid "Enter a valid e-mail address."
|
||||
msgstr "输入一个有效的邮件地址。"
|
||||
|
||||
#: core/validators.py:149
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr "上传一个有效的图片。您所上传的文件或者不是图片或是一个破坏的图片。"
|
||||
|
||||
#: core/validators.py:156
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid image."
|
||||
msgstr "URL %s 指向的不是一个有效的图片。"
|
||||
|
||||
#: core/validators.py:160
|
||||
#, python-format
|
||||
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
|
||||
msgstr "电话号码必须为 XXX-XXX-XXXX 格式。\"%s\"是无效的。"
|
||||
|
||||
#: core/validators.py:168
|
||||
#, python-format
|
||||
msgid "The URL %s does not point to a valid QuickTime video."
|
||||
msgstr "URL %s 指向的不是一个有效的 QuickTime 视频。"
|
||||
|
||||
#: core/validators.py:172
|
||||
msgid "A valid URL is required."
|
||||
msgstr "需要是一个有效的URL。"
|
||||
|
||||
#: core/validators.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Valid HTML is required. Specific errors are:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"需要有效的HTML。详细的错误是:\n"
|
||||
"%s"
|
||||
|
||||
#: core/validators.py:193
|
||||
#, python-format
|
||||
msgid "Badly formed XML: %s"
|
||||
msgstr "格式错误的 XML: %s"
|
||||
|
||||
#: core/validators.py:203
|
||||
#, python-format
|
||||
msgid "Invalid URL: %s"
|
||||
msgstr "无效 URL: %s"
|
||||
|
||||
#: core/validators.py:205
|
||||
#, python-format
|
||||
msgid "The URL %s is a broken link."
|
||||
msgstr "URL %s 是一个断开的链接。"
|
||||
|
||||
#: core/validators.py:211
|
||||
msgid "Enter a valid U.S. state abbreviation."
|
||||
msgstr "输入一个有效的 U.S. 州缩写。"
|
||||
|
||||
#: core/validators.py:226
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid "This field must match the '%s' field."
|
||||
msgstr "这个字段必须与 '%s' 字段相匹配。"
|
||||
|
||||
#: core/validators.py:252
|
||||
msgid "Please enter something for at least one field."
|
||||
msgstr "请至少在一个字段上输入些什么。"
|
||||
|
||||
#: core/validators.py:261 core/validators.py:272
|
||||
msgid "Please enter both fields or leave them both empty."
|
||||
msgstr "请要么两个字段都输入或者两个字段都空着。"
|
||||
|
||||
#: core/validators.py:279
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is %(value)s"
|
||||
msgstr "如果 %(field)s 是 %(value)s 时这个字段必须给出"
|
||||
|
||||
#: core/validators.py:291
|
||||
#, python-format
|
||||
msgid "This field must be given if %(field)s is not %(value)s"
|
||||
msgstr "如果 %(field)s 不是 %(value)s 时这个字段必须给出"
|
||||
|
||||
#: core/validators.py:310
|
||||
msgid "Duplicate values are not allowed."
|
||||
msgstr "重复值不允许。"
|
||||
|
||||
#: core/validators.py:333
|
||||
#, python-format
|
||||
msgid "This value must be a power of %s."
|
||||
msgstr "这个值必须是 %s 的乘方。"
|
||||
|
||||
#: core/validators.py:344
|
||||
msgid "Please enter a valid decimal number."
|
||||
msgstr "请输入一个有效的小数。"
|
||||
|
||||
#: core/validators.py:346
|
||||
#, fuzzy, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s total digit."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s total digits."
|
||||
msgstr[0] "请输入一个有效的小数,最多 %s 个数字。"
|
||||
msgstr[1] "请输入一个有效的小数,最多 %s 个数字。"
|
||||
|
||||
#: core/validators.py:349
|
||||
#, fuzzy, python-format
|
||||
msgid "Please enter a valid decimal number with at most %s decimal place."
|
||||
msgid_plural ""
|
||||
"Please enter a valid decimal number with at most %s decimal places."
|
||||
msgstr[0] "请输入一个有效的小数,最多 %s 个小数位。"
|
||||
msgstr[1] "请输入一个有效的小数,最多 %s 个小数位。"
|
||||
|
||||
#: core/validators.py:359
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||
msgstr "请确保你上传的文件至少 %s 字节大。"
|
||||
|
||||
#: core/validators.py:360
|
||||
#, python-format
|
||||
msgid "Make sure your uploaded file is at most %s bytes big."
|
||||
msgstr "请确保你上传的文件至多 %s 字节大。"
|
||||
|
||||
#: core/validators.py:373
|
||||
msgid "The format for this field is wrong."
|
||||
msgstr "这个字段的格式不正确。"
|
||||
|
||||
#: core/validators.py:388
|
||||
msgid "This field is invalid."
|
||||
msgstr "这个字段无效。"
|
||||
|
||||
#: core/validators.py:423
|
||||
#, python-format
|
||||
msgid "Could not retrieve anything from %s."
|
||||
msgstr "不能从 %s 得到任何东西。"
|
||||
|
||||
#: core/validators.py:426
|
||||
#, 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
|
||||
"\"%(start)s\".)"
|
||||
msgstr ""
|
||||
"请关闭未关闭的 %(tag)s 标签从第 %(line)s 行。(行开始于 \"%(start)s\"。)"
|
||||
|
||||
#: core/validators.py:463
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Some text starting on line %(line)s is not allowed in that context. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"在 %(line)s 行开始的一些文本不允许在那个上下文中。(行开始于 \"%(start)s\"。)"
|
||||
|
||||
#: core/validators.py:468
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"在 %(line)s 行的\"%(attr)s\"不是一个有效的属性。(行开始于 \"%(start)s\"。)"
|
||||
|
||||
#: core/validators.py:473
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
|
||||
"(start)s\".)"
|
||||
msgstr ""
|
||||
"在 %(line)s 行的\"<%(tag)s>\"不是一个有效的标签。(行开始于 \"%(start)s\"。)"
|
||||
|
||||
#: core/validators.py:477
|
||||
#, python-format
|
||||
msgid ""
|
||||
"A tag on line %(line)s is missing one or more required attributes. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"在行 %(line)s 的标签少了一个或多个必须的属性。(行开始于 \"%(start)s\"。)"
|
||||
|
||||
#: core/validators.py:482
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
|
||||
"starts with \"%(start)s\".)"
|
||||
msgstr ""
|
||||
"在行 %(line)s 的\"%(attr)s\"属性有一个无效的值。(行开始于 \"%(start)s\"。)"
|
||||
|
||||
#: core/meta/fields.py:95
|
||||
msgid " Separate multiple IDs with commas."
|
||||
msgstr " 用逗号分隔多个ID。"
|
||||
|
||||
#: core/meta/fields.py:98
|
||||
msgid ""
|
||||
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||
msgstr " 按下 \"Control\",或者在Mac上按 \"Command\" 来选择一个或多个值。"
|
|
@ -55,3 +55,10 @@ for k in dir(me):
|
|||
if not k.startswith('_') and k != 'me' and k != k.upper():
|
||||
delattr(me, k)
|
||||
del me, k
|
||||
|
||||
# as the last step, install the translation machinery and
|
||||
# remove the module again to not clutter the namespace.
|
||||
from django.utils import translation
|
||||
translation.install()
|
||||
del translation
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
from django.conf.urls.defaults import *
|
||||
|
||||
urlpatterns = patterns('',
|
||||
(r'^setlang/$', 'django.views.i18n.set_language'),
|
||||
)
|
|
@ -1,17 +1,19 @@
|
|||
from django.core import meta
|
||||
from django.models import auth, core
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
class LogEntry(meta.Model):
|
||||
action_time = meta.DateTimeField(auto_now=True)
|
||||
action_time = meta.DateTimeField(_('action time'), auto_now=True)
|
||||
user = meta.ForeignKey(auth.User)
|
||||
content_type = meta.ForeignKey(core.ContentType, blank=True, null=True)
|
||||
object_id = meta.TextField(blank=True, null=True)
|
||||
object_repr = meta.CharField(maxlength=200)
|
||||
action_flag = meta.PositiveSmallIntegerField()
|
||||
change_message = meta.TextField(blank=True)
|
||||
object_id = meta.TextField(_('object id'), blank=True, null=True)
|
||||
object_repr = meta.CharField(_('object repr'), maxlength=200)
|
||||
action_flag = meta.PositiveSmallIntegerField(_('action flag'))
|
||||
change_message = meta.TextField(_('change message'), blank=True)
|
||||
class META:
|
||||
module_name = 'log'
|
||||
verbose_name_plural = 'log entries'
|
||||
verbose_name = _('log entry')
|
||||
verbose_name_plural = _('log entries')
|
||||
db_table = 'django_admin_log'
|
||||
ordering = ('-action_time',)
|
||||
module_constants = {
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
{% extends "admin/base_site" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}Page not found{% endblock %}
|
||||
{% block title %}{% trans 'Page not found' %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Page not found</h2>
|
||||
<h2>{% trans 'Page not found' %}</h2>
|
||||
|
||||
<p>We're sorry, but the requested page could not be found.</p>
|
||||
<p>{% trans "We're sorry, but the requested page could not be found." %}</p>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
{% extends "admin/base_site" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="/">Home</a> › Server error</div>{% endblock %}
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="/">{% trans "Home" %}</a> › {% trans "Server error" %}</div>{% endblock %}
|
||||
|
||||
{% block title %}Server error (500){% endblock %}
|
||||
{% block title %}{% trans 'Server error (500)' %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Server Error <em>(500)</em></h1>
|
||||
<p>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.</p>
|
||||
<h1>{% trans 'Server Error <em>(500)</em>' %}</h1>
|
||||
<p>{% trans "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." %}</p>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE }}" xml:lang="{{ LANGUAGE_CODE }}">
|
||||
<head>
|
||||
<title>{% block title %}{% endblock %}</title>
|
||||
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% load adminmedia %}{% admin_media_prefix %}css/base.css{% endblock %}" />
|
||||
{% block extrastyle %}{% endblock %}
|
||||
{% block extrahead %}{% endblock %}
|
||||
</head>
|
||||
{% load i18n %}
|
||||
|
||||
<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}">
|
||||
|
||||
|
@ -19,13 +20,13 @@
|
|||
{% block branding %}{% endblock %}
|
||||
</div>
|
||||
{% if not user.is_anonymous %}
|
||||
<div id="user-tools">Welcome, <strong>{% if user.first_name %}{{ user.first_name }}{% else %}{{ user.username }}{% endif %}</strong>. <br />{% block userlinks %}<a href="/admin/password_change/">Change password</a> / <a href="/admin/logout/">Log out</a>{% endblock %}</div>
|
||||
<div id="user-tools">{% trans 'Welcome,' %} <strong>{% if user.first_name %}{{ user.first_name }}{% else %}{{ user.username }}{% endif %}</strong>. <br />{% block userlinks %}<a href="/admin/password_change/">{% trans 'Change password' %}</a> / <a href="/admin/logout/">{% trans 'Log out' %}</a>{% endblock %}</div>
|
||||
{% endif %}
|
||||
{% block nav-global %}{% endblock %}
|
||||
<br class="clear" />
|
||||
</div>
|
||||
<!-- END Header -->
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="/">Home</a>{% if title %} › {{ title }}{% endif %}</div>{% endblock %}
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="/">{% trans 'Home' %}</a>{% if title %} › {{ title }}{% endif %}</div>{% endblock %}
|
||||
{% endif %}
|
||||
|
||||
{% if messages %}
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{% extends "admin/base" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}{{ title }} | Django site admin{% endblock %}
|
||||
{% block title %}{{ title }} | {% trans 'Django site admin' %}{% endblock %}
|
||||
|
||||
{% block branding %}
|
||||
<h1 id="site-name">Django administration</h1>
|
||||
<h1 id="site-name">{% trans 'Django administration' %}</h1>
|
||||
<h2 id="site-url"><a href="http://www.example.com/">example.com</a></h2>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
{% extends "admin/base_site" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% if perms_lacking %}
|
||||
<p>Deleting the {{ object_name }} "{{ object }}" would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:</p>
|
||||
<p>{% blocktrans %}Deleting the {{ object_name }} '{{ object }}' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktrans %}</p>
|
||||
<ul>
|
||||
{% for obj in perms_lacking %}
|
||||
<li>{{ obj }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
<p>Are you sure you want to delete the {{ object_name }} "{{ object }}"? All of the following related items will be deleted:</p>
|
||||
<p>{% blocktrans %}Are you sure you want to delete the {{ object_name }} "{{ object }}"? All of the following related items will be deleted:{% endblocktrans %}</p>
|
||||
<ul>{{ deleted_objects|unordered_list }}</ul>
|
||||
<form action="" method="post">
|
||||
<input type="hidden" name="post" value="yes" />
|
||||
<input type="submit" value="Yes, I'm sure" />
|
||||
<input type="submit" value="{% trans "Yes, I'm sure" %}" />
|
||||
</form>
|
||||
{% endif %}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{% extends "admin/base_site" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block coltype %}colMS{% endblock %}
|
||||
{% block bodyclass %}dashboard{% endblock %}
|
||||
|
@ -23,13 +24,13 @@
|
|||
{% endif %}
|
||||
|
||||
{% if model.perms.add %}
|
||||
<td class="x50"><a href="{{ model.admin_url }}add/" class="addlink">Add</a></td>
|
||||
<td class="x50"><a href="{{ model.admin_url }}add/" class="addlink">{% trans 'Add' %}</a></td>
|
||||
{% else %}
|
||||
<td class="x50"> </td>
|
||||
{% endif %}
|
||||
|
||||
{% if model.perms.change %}
|
||||
<td class="x75"><a href="{{ model.admin_url }}" class="changelink">Change</a></td>
|
||||
<td class="x75"><a href="{{ model.admin_url }}" class="changelink">{% trans 'Change' %}</a></td>
|
||||
{% else %}
|
||||
<td class="x75"> </td>
|
||||
{% endif %}
|
||||
|
@ -39,7 +40,7 @@
|
|||
</div>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<p>You don't have permission to edit anything.</p>
|
||||
<p>{% trans "You don't have permission to edit anything." %}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
@ -47,12 +48,12 @@
|
|||
{% block sidebar %}
|
||||
<div id="content-related">
|
||||
<div class="module" id="recent-actions-module">
|
||||
<h2>Recent Actions</h2>
|
||||
<h3>My Actions</h3>
|
||||
<h2>{% trans 'Recent Actions' %}</h2>
|
||||
<h3>{% trans 'My Actions' %}</h3>
|
||||
{% load log %}
|
||||
{% get_admin_log 10 as admin_log for_user user %}
|
||||
{% if not admin_log %}
|
||||
<p>None available</p>
|
||||
<p>{% trans 'None available' %}</p>
|
||||
{% else %}
|
||||
<ul class="actionlist">
|
||||
{% for entry in admin_log %}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{% extends "admin/base_site" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block breadcrumbs %}{% endblock %}
|
||||
|
||||
|
@ -11,16 +12,16 @@
|
|||
<form action="{{ app_path }}" method="post">
|
||||
|
||||
<p class="aligned">
|
||||
<label for="id_username">Username:</label> <input type="text" name="username" id="id_username" />
|
||||
<label for="id_username">{% trans 'Username:' %}</label> <input type="text" name="username" id="id_username" />
|
||||
</p>
|
||||
<p class="aligned">
|
||||
<label for="id_password">Password:</label> <input type="password" name="password" id="id_password" />
|
||||
<label for="id_password">{% trans 'Password:' %}</label> <input type="password" name="password" id="id_password" />
|
||||
<input type="hidden" name="this_is_the_login_form" value="1" />
|
||||
<input type="hidden" name="post_data" value="{{ post_data }}" />{% comment %} <span class="help">Have you <a href="/password_reset/">forgotten your password</a>?</span>{% endcomment %}
|
||||
<input type="hidden" name="post_data" value="{{ post_data }}" />{% comment %} <span class="help">{% trans 'Have you <a href="/password_reset/">forgotten your password</a>?' %}</span>{% endcomment %}
|
||||
</p>
|
||||
|
||||
<div class="aligned ">
|
||||
<label> </label><input type="submit" value="Log in" />
|
||||
<label> </label><input type="submit" value="{% trans 'Log in' %}" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{% extends "admin/base_site" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
<div class="breadcrumbs"><a href="../../../../">Home</a> › <a href="../../">{{ module_name }}</a> › <a href="../">{{ object|truncatewords:"18" }}</a> › History</div>
|
||||
<div class="breadcrumbs"><a href="../../../../">{% trans 'Home' %}</a> › <a href="../../">{{ module_name }}</a> › <a href="../">{{ object|truncatewords:"18" }}</a> › {% trans 'History' %}</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
@ -14,15 +15,15 @@
|
|||
<table id="change-history">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date/time</th>
|
||||
<th>User</th>
|
||||
<th>Action</th>
|
||||
<th>{% trans 'Date/time' %}</th>
|
||||
<th>{% trans 'User' %}</th>
|
||||
<th>{% trans 'Action' %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for action in action_list %}
|
||||
<tr>
|
||||
<th>{{ action.action_time|date:"N j, Y, P" }}</th>
|
||||
<th>{{ action.action_time|date:_("DATE_WITH_TIME_FULL") }}</th>
|
||||
<td>{{ action.get_user.username }}{% if action.get_user.first_name %} ({{ action.get_user.first_name }} {{ action.get_user.last_name }}){% endif %}</td>
|
||||
<td>{{ action.change_message}}</td>
|
||||
</tr>
|
||||
|
@ -32,7 +33,7 @@
|
|||
|
||||
{% else %}
|
||||
|
||||
<p>This object doesn't have a change history. It probably wasn't added via this admin site.</p>
|
||||
<p>{% trans "This object doesn't have a change history. It probably wasn't added via this admin site." %}</p>
|
||||
|
||||
{% endif %}
|
||||
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
{% extends "admin/base_site" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">Home</a></div>{% endblock %}
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a></div>{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<p>Thanks for spending some quality time with the Web site today.</p>
|
||||
<p>{% trans "Thanks for spending some quality time with the Web site today." %}</p>
|
||||
|
||||
<p><a href="../">Log in again</a></p>
|
||||
<p><a href="../">{% trans 'Log in again' %}</a></p>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
{% extends "admin/base_site" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">Home</a> › Password change</div>{% endblock %}
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a> › {% trans 'Password change' %}</div>{% endblock %}
|
||||
|
||||
{% block title %}Password change successful{% endblock %}
|
||||
{% block title %}{% trans 'Password change successful' %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h1>Password change successful</h1>
|
||||
<h1>{% trans 'Password change successful' %}</h1>
|
||||
|
||||
<p>Your password was changed.</p>
|
||||
<p>{% trans 'Your password was changed.' %}</p>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% extends "admin/base_site" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">Home</a> › Password change</div>{% endblock %}
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a> › {% trans 'Password change' %}</div>{% endblock %}
|
||||
|
||||
{% block title %}Password change{% endblock %}
|
||||
{% block title %}{% trans 'Password change' %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h1>Password change</h1>
|
||||
<h1>{% trans 'Password change' %}</h1>
|
||||
|
||||
<p>Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly.</p>
|
||||
<p>{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}</p>
|
||||
|
||||
<form action="" method="post">
|
||||
|
||||
{% if form.old_password.errors %}{{ form.old_password.html_error_list }}{% endif %}
|
||||
<p class="aligned wide"><label for="id_old_password">Old password:</label>{{ form.old_password }}</p>
|
||||
<p class="aligned wide"><label for="id_old_password">{% trans 'Old password:' %}</label>{{ form.old_password }}</p>
|
||||
{% if form.new_password1.errors %}{{ form.new_password1.html_error_list }}{% endif %}
|
||||
<p class="aligned wide"><label for="id_new_password1">New password:</label>{{ form.new_password1 }}</p>
|
||||
<p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p>
|
||||
{% if form.new_password2.errors %}{{ form.new_password2.html_error_list }}{% endif %}
|
||||
<p class="aligned wide"><label for="id_new_password2">Confirm password:</label>{{ form.new_password2 }}</p>
|
||||
<p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p>
|
||||
|
||||
<p><input type="submit" value="Change my password" /></p>
|
||||
<p><input type="submit" value="{% trans 'Change my password' %}" /></p>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
{% extends "admin/base_site" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">Home</a> › Password reset</div>{% endblock %}
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a> › {% trans 'Password reset' %}</div>{% endblock %}
|
||||
|
||||
{% block title %}Password reset successful{% endblock %}
|
||||
{% block title %}{% trans 'Password reset successful' %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h1>Password reset successful</h1>
|
||||
<h1>{% trans 'Password reset successful' %}</h1>
|
||||
|
||||
<p>We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly.</p>
|
||||
<p>{% trans "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly." %}</p>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
You're receiving this e-mail because you requested a password reset
|
||||
for your user account at {{ site_name }}.
|
||||
{% load i18n %}
|
||||
{% trans "You're receiving this e-mail because you requested a password reset" %}
|
||||
{% trans "for your user account at %(site_name)s" %}.
|
||||
|
||||
Your new password is: {{ new_password }}
|
||||
{% trans "Your new password is: %(new_password)s" %}
|
||||
|
||||
Feel free to change this password by going to this page:
|
||||
{% trans "Feel free to change this password by going to this page:" %}
|
||||
|
||||
http://{{ domain }}/password_change/
|
||||
|
||||
Your username, in case you've forgotten, is {{ user.username }}
|
||||
{% trans "Your username, in case you've forgotten:" %} {{ user.username }}
|
||||
|
||||
Thanks for using our site!
|
||||
{% trans "Thanks for using our site!" %}
|
||||
|
||||
The {{ site_name }} team
|
||||
{% trans "The %(site_name)s team" %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{% extends "admin/base_site" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">Home</a> › Password reset</div>{% endblock %}
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a> › {% trans 'Password reset' %}</div>{% endblock %}
|
||||
|
||||
{% block title %}Password reset{% endblock %}
|
||||
{% block title %}{% trans "Password reset" %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h1>Password reset</h1>
|
||||
<h1>{% trans "Password reset") }}</h1>
|
||||
|
||||
<p>Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you.</p>
|
||||
<p>{% trans "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you." %}</p>
|
||||
|
||||
<form action="" method="post">
|
||||
{% if form.email.errors %}{{ form.email.html_error_list }}{% endif %}
|
||||
<p><label for="id_email">E-mail address:</label> {{ form.email }} <input type="submit" value="Reset my password" /></p>
|
||||
<p><label for="id_email">{% trans 'E-mail address:' %}</label> {{ form.email }} <input type="submit" value="{% trans 'Reset my password' %}" /></p>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -33,6 +33,12 @@ class DjangoContext(Context):
|
|||
self['user'] = request.user
|
||||
self['messages'] = request.user.get_and_delete_messages()
|
||||
self['perms'] = PermWrapper(request.user)
|
||||
from django.conf import settings
|
||||
self['LANGUAGES'] = settings.LANGUAGES
|
||||
if hasattr(request, 'LANGUAGE_CODE'):
|
||||
self['LANGUAGE_CODE'] = request.LANGUAGE_CODE
|
||||
else:
|
||||
self['LANGUAGE_CODE'] = settings.LANGUAGE_CODE
|
||||
if DEBUG and request.META.get('REMOTE_ADDR') in INTERNAL_IPS:
|
||||
self['debug'] = True
|
||||
from django.core import db
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
from django.conf import settings
|
||||
from django.core import formfields, validators
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.utils.functional import curry
|
||||
from django.utils.functional import curry, lazy
|
||||
from django.utils.text import capfirst
|
||||
from django.utils.translation import gettext_lazy
|
||||
import datetime, os
|
||||
|
||||
# Random entropy string used by "default" param.
|
||||
|
@ -26,6 +27,16 @@ prep_for_like_query = lambda x: str(x).replace("%", "\%").replace("_", "\_")
|
|||
# returns the <ul> class for a given radio_admin value
|
||||
get_ul_class = lambda x: 'radiolist%s' % ((x == HORIZONTAL) and ' inline' or '')
|
||||
|
||||
def string_concat(*strings):
|
||||
""""
|
||||
lazy variant of string concatenation, needed for translations that are
|
||||
constructed from multiple parts. Handles lazy strings and non-strings by
|
||||
first turning all arguments to strings, before joining them.
|
||||
"""
|
||||
return ''.join([str(el) for el in strings])
|
||||
|
||||
string_concat = lazy(string_concat, str)
|
||||
|
||||
def manipulator_valid_rel_key(f, self, field_data, all_data):
|
||||
"Validates that the value is a valid foreign key"
|
||||
mod = f.rel.to.get_model_module()
|
||||
|
@ -80,9 +91,11 @@ class Field(object):
|
|||
self.db_column = db_column
|
||||
if rel and isinstance(rel, ManyToMany):
|
||||
if rel.raw_id_admin:
|
||||
self.help_text += ' Separate multiple IDs with commas.'
|
||||
self.help_text = string_concat(self.help_text,
|
||||
gettext_lazy(' Separate multiple IDs with commas.'))
|
||||
else:
|
||||
self.help_text += ' Hold down "Control", or "Command" on a Mac, to select more than one.'
|
||||
self.help_text = string_concat(self.help_text,
|
||||
gettext_lazy(' Hold down "Control", or "Command" on a Mac, to select more than one.'))
|
||||
|
||||
# Set db_index to True if the field has a relationship and doesn't explicitly set db_index.
|
||||
if db_index is None:
|
||||
|
|
|
@ -234,6 +234,97 @@ class Parser:
|
|||
def delete_first_token(self):
|
||||
del self.tokens[0]
|
||||
|
||||
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.
|
||||
|
||||
If your tag needs to know what tag name it was called with,
|
||||
you find it in the tagname instance variable of the parser.
|
||||
"""
|
||||
|
||||
def __init__(self, subject):
|
||||
self.subject = subject
|
||||
self.pointer = 0
|
||||
self.backout = []
|
||||
self.tagname = self.tag()
|
||||
|
||||
def top(self):
|
||||
"""
|
||||
You need to 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.
|
||||
"""
|
||||
return self.pointer < len(self.subject)
|
||||
|
||||
def back(self):
|
||||
"""
|
||||
This method undos the last microparser. This can be
|
||||
used 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.
|
||||
"""
|
||||
subject = self.subject
|
||||
i = self.pointer
|
||||
if i >= len(subject):
|
||||
raise TemplateSyntaxError, "expected another tag, found end of string: %s" % subject
|
||||
p = i
|
||||
while i < len(subject) and subject[i] not in (' ', '\t'):
|
||||
i += 1
|
||||
s = subject[p:i]
|
||||
while i < len(subject) and subject[i] in (' ', '\t'):
|
||||
i += 1
|
||||
self.backout.append(self.pointer)
|
||||
self.pointer = i
|
||||
return s
|
||||
|
||||
def value(self):
|
||||
"""
|
||||
This microparser 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
|
||||
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
|
||||
i += 1
|
||||
res = subject[p:i]
|
||||
while i < len(subject) and subject[i] in (' ', '\t'):
|
||||
i += 1
|
||||
self.backout.append(self.pointer)
|
||||
self.pointer = i
|
||||
return res
|
||||
else:
|
||||
p = i
|
||||
while i < len(subject) and subject[i] not in (' ', '\t'):
|
||||
i += 1
|
||||
s = subject[p:i]
|
||||
while i < len(subject) and subject[i] in (' ', '\t'):
|
||||
i += 1
|
||||
self.backout.append(self.pointer)
|
||||
self.pointer = i
|
||||
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.
|
||||
|
@ -255,8 +346,12 @@ class FilterParser:
|
|||
self.filters = []
|
||||
self.current_filter_name = None
|
||||
self.current_filter_arg = None
|
||||
# First read the variable part
|
||||
self.var = self.read_alphanumeric_token()
|
||||
# First read the variable part - decide on wether 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:
|
||||
self.var = self.read_alphanumeric_token()
|
||||
if not self.var:
|
||||
raise TemplateSyntaxError, "Could not read variable name: '%s'" % self.s
|
||||
if self.var.find(VARIABLE_ATTRIBUTE_SEPARATOR + '_') > -1 or self.var[0] == '_':
|
||||
|
@ -269,6 +364,12 @@ class FilterParser:
|
|||
# We have a filter separator; start reading the filters
|
||||
self.read_filters()
|
||||
|
||||
def peek_char(self):
|
||||
try:
|
||||
return self.s[self.i+1]
|
||||
except IndexError:
|
||||
return None
|
||||
|
||||
def next_char(self):
|
||||
self.i = self.i + 1
|
||||
try:
|
||||
|
@ -276,6 +377,37 @@ class FilterParser:
|
|||
except IndexError:
|
||||
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."""
|
||||
val = ''
|
||||
qchar = None
|
||||
i18n = False
|
||||
self.next_char()
|
||||
if self.current == '_':
|
||||
i18n = True
|
||||
self.next_char()
|
||||
if self.current != '(':
|
||||
raise TemplateSyntaxError, "Bad character (expecting '(') '%s'" % self.current
|
||||
self.next_char()
|
||||
if not self.current in ('"', "'"):
|
||||
raise TemplateSyntaxError, "Bad character (expecting '\"' or ''') '%s'" % self.current
|
||||
qchar = self.current
|
||||
val += qchar
|
||||
while 1:
|
||||
self.next_char()
|
||||
if self.current == qchar:
|
||||
break
|
||||
val += self.current
|
||||
val += self.current
|
||||
self.next_char()
|
||||
if i18n:
|
||||
if self.current != ')':
|
||||
raise TemplateSyntaxError, "Bad character (expecting ')') '%s'" % self.current
|
||||
self.next_char()
|
||||
val = qchar+_(val.strip(qchar))+qchar
|
||||
return val
|
||||
|
||||
def read_alphanumeric_token(self):
|
||||
"""Read a variable name or filter name, which are continuous strings of
|
||||
alphanumeric characters + the underscore"""
|
||||
|
@ -318,8 +450,15 @@ class FilterParser:
|
|||
return (self.current_filter_name, self.current_filter_arg)
|
||||
|
||||
def read_arg(self):
|
||||
# First read a "
|
||||
# First read a " or a _("
|
||||
self.next_char()
|
||||
translated = False
|
||||
if self.current == '_':
|
||||
self.next_char()
|
||||
if self.current != '(':
|
||||
raise TemplateSyntaxError, "Bad character (expecting '(') '%s'" % self.current
|
||||
translated = True
|
||||
self.next_char()
|
||||
if self.current != '"':
|
||||
raise TemplateSyntaxError, "Bad character (expecting '\"') '%s'" % self.current
|
||||
self.escaped = False
|
||||
|
@ -346,6 +485,11 @@ class FilterParser:
|
|||
arg += self.current
|
||||
# self.current must now be '"'
|
||||
self.next_char()
|
||||
if translated:
|
||||
if self.current != ')':
|
||||
raise TemplateSyntaxError, "Bad character (expecting ')') '%s'" % self.current
|
||||
self.next_char()
|
||||
arg = _(arg)
|
||||
return arg
|
||||
|
||||
def get_filters_from_token(token):
|
||||
|
|
|
@ -2,7 +2,10 @@
|
|||
|
||||
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):
|
||||
|
|
|
@ -25,6 +25,7 @@ slug_re = re.compile(r'^[-\w]+$')
|
|||
url_re = re.compile(r'^http://\S+$')
|
||||
|
||||
from django.conf.settings import JING_PATH
|
||||
from django.utils.translation import gettext_lazy, ngettext
|
||||
|
||||
class ValidationError(Exception):
|
||||
def __init__(self, message):
|
||||
|
@ -54,11 +55,11 @@ class CriticalValidationError(Exception):
|
|||
|
||||
def isAlphaNumeric(field_data, all_data):
|
||||
if not alnum_re.search(field_data):
|
||||
raise ValidationError, "This value must contain only letters, numbers and underscores."
|
||||
raise ValidationError, _("This value must contain only letters, numbers and underscores.")
|
||||
|
||||
def isAlphaNumericURL(field_data, all_data):
|
||||
if not alnumurl_re.search(field_data):
|
||||
raise ValidationError, "This value must contain only letters, numbers, underscores or slashes."
|
||||
raise ValidationError, _("This value must contain only letters, numbers, underscores and slashes.")
|
||||
|
||||
def isSlug(field_data, all_data):
|
||||
if not slug_re.search(field_data):
|
||||
|
@ -66,18 +67,18 @@ def isSlug(field_data, all_data):
|
|||
|
||||
def isLowerCase(field_data, all_data):
|
||||
if field_data.lower() != field_data:
|
||||
raise ValidationError, "Uppercase letters are not allowed here."
|
||||
raise ValidationError, _("Uppercase letters are not allowed here.")
|
||||
|
||||
def isUpperCase(field_data, all_data):
|
||||
if field_data.upper() != field_data:
|
||||
raise ValidationError, "Lowercase letters are not allowed here."
|
||||
raise ValidationError, _("Lowercase letters are not allowed here.")
|
||||
|
||||
def isCommaSeparatedIntegerList(field_data, all_data):
|
||||
for supposed_int in field_data.split(','):
|
||||
try:
|
||||
int(supposed_int)
|
||||
except ValueError:
|
||||
raise ValidationError, "Enter only digits separated by commas."
|
||||
raise ValidationError, _("Enter only digits separated by commas.")
|
||||
|
||||
def isCommaSeparatedEmailList(field_data, all_data):
|
||||
"""
|
||||
|
@ -89,51 +90,51 @@ def isCommaSeparatedEmailList(field_data, all_data):
|
|||
try:
|
||||
isValidEmail(supposed_email.strip(), '')
|
||||
except ValidationError:
|
||||
raise ValidationError, "Enter valid e-mail addresses separated by commas."
|
||||
raise ValidationError, _("Enter valid e-mail addresses separated by commas.")
|
||||
|
||||
def isValidIPAddress4(field_data, all_data):
|
||||
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."
|
||||
raise validators.ValidationError, _("Please enter a valid IP address.")
|
||||
|
||||
def isNotEmpty(field_data, all_data):
|
||||
if field_data.strip() == '':
|
||||
raise ValidationError, "Empty values are not allowed here."
|
||||
raise ValidationError, _("Empty values are not allowed here.")
|
||||
|
||||
def isOnlyDigits(field_data, all_data):
|
||||
if not field_data.isdigit():
|
||||
raise ValidationError, "Non-numeric characters aren't allowed here."
|
||||
raise ValidationError, _("Non-numeric characters aren't allowed here.")
|
||||
|
||||
def isNotOnlyDigits(field_data, all_data):
|
||||
if field_data.isdigit():
|
||||
raise ValidationError, "This value can't be comprised solely of digits."
|
||||
raise ValidationError, _("This value can't be comprised solely of digits.")
|
||||
|
||||
def isInteger(field_data, all_data):
|
||||
# This differs from isOnlyDigits because this accepts the negative sign
|
||||
if not integer_re.search(field_data):
|
||||
raise ValidationError, "Enter a whole number."
|
||||
raise ValidationError, _("Enter a whole number.")
|
||||
|
||||
def isOnlyLetters(field_data, all_data):
|
||||
if not field_data.isalpha():
|
||||
raise ValidationError, "Only alphabetical characters are allowed here."
|
||||
raise ValidationError, _("Only alphabetical characters are allowed here.")
|
||||
|
||||
def isValidANSIDate(field_data, all_data):
|
||||
if not ansi_date_re.search(field_data):
|
||||
raise ValidationError, 'Enter a valid date in YYYY-MM-DD format.'
|
||||
raise ValidationError, _('Enter a valid date in YYYY-MM-DD format.')
|
||||
|
||||
def isValidANSITime(field_data, all_data):
|
||||
if not ansi_time_re.search(field_data):
|
||||
raise ValidationError, 'Enter a valid time in HH:MM format.'
|
||||
raise ValidationError, _('Enter a valid time in HH:MM format.')
|
||||
|
||||
def isValidANSIDatetime(field_data, all_data):
|
||||
if not ansi_datetime_re.search(field_data):
|
||||
raise ValidationError, 'Enter a valid date/time in YYYY-MM-DD HH:MM format.'
|
||||
raise ValidationError, _('Enter a valid date/time in YYYY-MM-DD HH:MM format.')
|
||||
|
||||
def isValidEmail(field_data, all_data):
|
||||
if not email_re.search(field_data):
|
||||
raise ValidationError, 'Enter a valid e-mail address.'
|
||||
raise ValidationError, _('Enter a valid e-mail address.')
|
||||
|
||||
def isValidImage(field_data, all_data):
|
||||
"""
|
||||
|
@ -145,18 +146,18 @@ def isValidImage(field_data, all_data):
|
|||
try:
|
||||
Image.open(StringIO(field_data['content']))
|
||||
except IOError: # Python Imaging Library doesn't recognize it as an image
|
||||
raise ValidationError, "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
|
||||
raise ValidationError, _("Upload a valid image. The file you uploaded was either not an image or a corrupted image.")
|
||||
|
||||
def isValidImageURL(field_data, all_data):
|
||||
uc = URLMimeTypeCheck(('image/jpeg', 'image/gif', 'image/png'))
|
||||
try:
|
||||
uc(field_data, all_data)
|
||||
except URLMimeTypeCheck.InvalidContentType:
|
||||
raise ValidationError, "The URL %s does not point to a valid image." % field_data
|
||||
raise ValidationError, _("The URL %s does not point to a valid image.") % field_data
|
||||
|
||||
def isValidPhone(field_data, all_data):
|
||||
if not phone_re.search(field_data):
|
||||
raise ValidationError, 'Phone numbers must be in XXX-XXX-XXXX format. "%s" is invalid.' % field_data
|
||||
raise ValidationError, _('Phone numbers must be in XXX-XXX-XXXX format. "%s" is invalid.') % field_data
|
||||
|
||||
def isValidQuicktimeVideoURL(field_data, all_data):
|
||||
"Checks that the given URL is a video that can be played by QuickTime (qt, mpeg)"
|
||||
|
@ -164,11 +165,11 @@ def isValidQuicktimeVideoURL(field_data, all_data):
|
|||
try:
|
||||
uc(field_data, all_data)
|
||||
except URLMimeTypeCheck.InvalidContentType:
|
||||
raise ValidationError, "The URL %s does not point to a valid QuickTime video." % field_data
|
||||
raise ValidationError, _("The URL %s does not point to a valid QuickTime video.") % field_data
|
||||
|
||||
def isValidURL(field_data, all_data):
|
||||
if not url_re.search(field_data):
|
||||
raise ValidationError, "A valid URL is required."
|
||||
raise ValidationError, _("A valid URL is required.")
|
||||
|
||||
def isValidHTML(field_data, all_data):
|
||||
import urllib, urllib2
|
||||
|
@ -182,14 +183,14 @@ def isValidHTML(field_data, all_data):
|
|||
return
|
||||
from xml.dom.minidom import parseString
|
||||
error_messages = [e.firstChild.wholeText for e in parseString(u.read()).getElementsByTagName('messages')[0].getElementsByTagName('msg')]
|
||||
raise ValidationError, "Valid HTML is required. Specific errors are:\n%s" % "\n".join(error_messages)
|
||||
raise ValidationError, _("Valid HTML is required. Specific errors are:\n%s") % "\n".join(error_messages)
|
||||
|
||||
def isWellFormedXml(field_data, all_data):
|
||||
from xml.dom.minidom import parseString
|
||||
try:
|
||||
parseString(field_data)
|
||||
except Exception, e: # Naked except because we're not sure what will be thrown
|
||||
raise ValidationError, "Badly formed XML: %s" % str(e)
|
||||
raise ValidationError, _("Badly formed XML: %s") % str(e)
|
||||
|
||||
def isWellFormedXmlFragment(field_data, all_data):
|
||||
isWellFormedXml('<root>%s</root>' % field_data, all_data)
|
||||
|
@ -199,15 +200,15 @@ def isExistingURL(field_data, all_data):
|
|||
try:
|
||||
u = urllib2.urlopen(field_data)
|
||||
except ValueError:
|
||||
raise ValidationError, "Invalid URL: %s" % field_data
|
||||
raise ValidationError, _("Invalid URL: %s") % field_data
|
||||
except: # urllib2.HTTPError, urllib2.URLError, httplib.InvalidURL, etc.
|
||||
raise ValidationError, "The URL %s is a broken link." % field_data
|
||||
raise ValidationError, _("The URL %s is a broken link.") % field_data
|
||||
|
||||
def isValidUSState(field_data, all_data):
|
||||
"Checks that the given string is a valid two-letter U.S. state abbreviation"
|
||||
states = ['AA', 'AE', 'AK', 'AL', 'AP', 'AR', 'AS', 'AZ', 'CA', 'CO', 'CT', 'DC', 'DE', 'FL', 'FM', 'GA', 'GU', 'HI', 'IA', 'ID', 'IL', 'IN', 'KS', 'KY', 'LA', 'MA', 'MD', 'ME', 'MH', 'MI', 'MN', 'MO', 'MP', 'MS', 'MT', 'NC', 'ND', 'NE', 'NH', 'NJ', 'NM', 'NV', 'NY', 'OH', 'OK', 'OR', 'PA', 'PR', 'PW', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VA', 'VI', 'VT', 'WA', 'WI', 'WV', 'WY']
|
||||
if field_data.upper() not in states:
|
||||
raise ValidationError, "Enter a valid U.S. state abbreviation."
|
||||
raise ValidationError, _("Enter a valid U.S. state abbreviation.")
|
||||
|
||||
def hasNoProfanities(field_data, all_data):
|
||||
"""
|
||||
|
@ -222,15 +223,14 @@ def hasNoProfanities(field_data, all_data):
|
|||
if words_seen:
|
||||
from django.utils.text import get_text_list
|
||||
plural = len(words_seen) > 1
|
||||
raise ValidationError, "Watch your mouth! The word%s %s %s not allowed here." % \
|
||||
(plural and 's' or '',
|
||||
get_text_list(['"%s%s%s"' % (i[0], '-'*(len(i)-2), i[-1]) for i in words_seen], 'and'),
|
||||
plural and 'are' or 'is')
|
||||
raise ValidationError, ngettext("Watch your mouth! The word %s is not allowed here.",
|
||||
"Watch your mouth! The words %s are not allowed here.", plural) % \
|
||||
get_text_list(['"%s%s%s"' % (i[0], '-'*(len(i)-2), i[-1]) for i in words_seen], 'and')
|
||||
|
||||
class AlwaysMatchesOtherField:
|
||||
def __init__(self, other_field_name, error_message=None):
|
||||
self.other = other_field_name
|
||||
self.error_message = error_message or "This field must match the '%s' field." % self.other
|
||||
self.error_message = error_message or gettext_lazy("This field must match the '%s' field.") % self.other
|
||||
self.always_test = True
|
||||
|
||||
def __call__(self, field_data, all_data):
|
||||
|
@ -249,7 +249,7 @@ class ValidateIfOtherFieldEquals:
|
|||
v(field_data, all_data)
|
||||
|
||||
class RequiredIfOtherFieldNotGiven:
|
||||
def __init__(self, other_field_name, error_message="Please enter something for at least one field."):
|
||||
def __init__(self, other_field_name, error_message=gettext_lazy("Please enter something for at least one field.")):
|
||||
self.other, self.error_message = other_field_name, error_message
|
||||
self.always_test = True
|
||||
|
||||
|
@ -258,7 +258,7 @@ class RequiredIfOtherFieldNotGiven:
|
|||
raise ValidationError, self.error_message
|
||||
|
||||
class RequiredIfOtherFieldsGiven:
|
||||
def __init__(self, other_field_names, error_message="Please enter both fields or leave them both empty."):
|
||||
def __init__(self, other_field_names, error_message=gettext_lazy("Please enter both fields or leave them both empty.")):
|
||||
self.other, self.error_message = other_field_names, error_message
|
||||
self.always_test = True
|
||||
|
||||
|
@ -269,14 +269,15 @@ class RequiredIfOtherFieldsGiven:
|
|||
|
||||
class RequiredIfOtherFieldGiven(RequiredIfOtherFieldsGiven):
|
||||
"Like RequiredIfOtherFieldsGiven, but takes a single field name instead of a list."
|
||||
def __init__(self, other_field_name, error_message="Please enter both fields or leave them both empty."):
|
||||
def __init__(self, other_field_name, error_message=gettext_lazy("Please enter both fields or leave them both empty.")):
|
||||
RequiredIfOtherFieldsGiven.__init__(self, [other_field_name], error_message)
|
||||
|
||||
class RequiredIfOtherFieldEquals:
|
||||
def __init__(self, other_field, other_value, error_message=None):
|
||||
self.other_field = other_field
|
||||
self.other_value = other_value
|
||||
self.error_message = error_message or "This field must be given if %s is %s" % (other_field, other_value)
|
||||
self.error_message = error_message or gettext_lazy("This field must be given if %(field)s is %(value)s") % {
|
||||
'field': other_field, 'value': other_value}
|
||||
self.always_test = True
|
||||
|
||||
def __call__(self, field_data, all_data):
|
||||
|
@ -287,7 +288,8 @@ class RequiredIfOtherFieldDoesNotEqual:
|
|||
def __init__(self, other_field, other_value, error_message=None):
|
||||
self.other_field = other_field
|
||||
self.other_value = other_value
|
||||
self.error_message = error_message or "This field must be given if %s is not %s" % (other_field, other_value)
|
||||
self.error_message = error_message or gettext_lazy("This field must be given if %(field)s is not %(value)s") % {
|
||||
'field': other_field, 'value': other_value}
|
||||
self.always_test = True
|
||||
|
||||
def __call__(self, field_data, all_data):
|
||||
|
@ -305,7 +307,7 @@ class IsLessThanOtherField:
|
|||
class UniqueAmongstFieldsWithPrefix:
|
||||
def __init__(self, field_name, prefix, error_message):
|
||||
self.field_name, self.prefix = field_name, prefix
|
||||
self.error_message = error_message or "Duplicate values are not allowed."
|
||||
self.error_message = error_message or gettext_lazy("Duplicate values are not allowed.")
|
||||
|
||||
def __call__(self, field_data, all_data):
|
||||
for field_name, value in all_data.items():
|
||||
|
@ -328,7 +330,7 @@ class IsAPowerOf:
|
|||
from math import log
|
||||
val = log(int(field_data)) / log(self.power_of)
|
||||
if val != int(val):
|
||||
raise ValidationError, "This value must be a power of %s." % self.power_of
|
||||
raise ValidationError, _("This value must be a power of %s.") % self.power_of
|
||||
|
||||
class IsValidFloat:
|
||||
def __init__(self, max_digits, decimal_places):
|
||||
|
@ -339,13 +341,13 @@ class IsValidFloat:
|
|||
try:
|
||||
float(data)
|
||||
except ValueError:
|
||||
raise ValidationError, "Please enter a valid decimal number."
|
||||
raise ValidationError, _("Please enter a valid decimal number.")
|
||||
if len(data) > (self.max_digits + 1):
|
||||
raise ValidationError, "Please enter a valid decimal number with at most %s total digit%s." % \
|
||||
(self.max_digits, self.max_digits > 1 and 's' or '')
|
||||
raise ValidationError, ngettext( "Please enter a valid decimal number with at most %s total digit.",
|
||||
"Please enter a valid decimal number with at most %s total digits.", self.max_digits) % self.max_digits
|
||||
if '.' in data and len(data.split('.')[1]) > self.decimal_places:
|
||||
raise ValidationError, "Please enter a valid decimal number with at most %s decimal place%s." % \
|
||||
(self.decimal_places, self.decimal_places > 1 and 's' or '')
|
||||
raise ValidationError, ngettext("Please enter a valid decimal number with at most %s decimal place.",
|
||||
"Please enter a valid decimal number with at most %s decimal places.", self.decimal_places) % self.decimal_places
|
||||
|
||||
class HasAllowableSize:
|
||||
"""
|
||||
|
@ -354,8 +356,8 @@ class HasAllowableSize:
|
|||
"""
|
||||
def __init__(self, min_size=None, max_size=None, min_error_message=None, max_error_message=None):
|
||||
self.min_size, self.max_size = min_size, max_size
|
||||
self.min_error_message = min_error_message or "Make sure your uploaded file is at least %s bytes big." % min_size
|
||||
self.max_error_message = max_error_message or "Make sure your uploaded file is at most %s bytes big." % min_size
|
||||
self.min_error_message = min_error_message or gettext_lazy("Make sure your uploaded file is at least %s bytes big.") % min_size
|
||||
self.max_error_message = max_error_message or gettext_lazy("Make sure your uploaded file is at most %s bytes big.") % min_size
|
||||
|
||||
def __call__(self, field_data, all_data):
|
||||
if self.min_size is not None and len(field_data['content']) < self.min_size:
|
||||
|
@ -368,7 +370,7 @@ class MatchesRegularExpression:
|
|||
Checks that the field matches the given regular-expression. The regex
|
||||
should be in string format, not already compiled.
|
||||
"""
|
||||
def __init__(self, regexp, error_message="The format for this field is wrong."):
|
||||
def __init__(self, regexp, error_message=gettext_lazy("The format for this field is wrong.")):
|
||||
self.regexp = re.compile(regexp)
|
||||
self.error_message = error_message
|
||||
|
||||
|
@ -383,7 +385,7 @@ class AnyValidator:
|
|||
as a validation error. The message is rather unspecific, so it's best to
|
||||
specify one on instantiation.
|
||||
"""
|
||||
def __init__(self, validator_list=[], error_message="This field is invalid."):
|
||||
def __init__(self, validator_list=[], error_message=gettext_lazy("This field is invalid.")):
|
||||
self.validator_list = validator_list
|
||||
self.error_message = error_message
|
||||
for v in validator_list:
|
||||
|
@ -418,10 +420,11 @@ class URLMimeTypeCheck:
|
|||
try:
|
||||
info = urllib2.urlopen(field_data).info()
|
||||
except (urllib2.HTTPError, urllib2.URLError):
|
||||
raise URLMimeTypeCheck.CouldNotRetrieve, "Could not retrieve anything from %s." % field_data
|
||||
raise URLMimeTypeCheck.CouldNotRetrieve, _("Could not retrieve anything from %s.") % field_data
|
||||
content_type = info['content-type']
|
||||
if content_type not in self.mime_type_list:
|
||||
raise URLMimeTypeCheck.InvalidContentType, "The URL %s returned the invalid Content-Type header '%s'." % (field_data, content_type)
|
||||
raise URLMimeTypeCheck.InvalidContentType, _("The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'.") % {
|
||||
'url': field_data, 'contenttype': content_type}
|
||||
|
||||
class RelaxNGCompact:
|
||||
"Validate against a Relax NG compact schema"
|
||||
|
@ -453,31 +456,31 @@ class RelaxNGCompact:
|
|||
# Scrape the Jing error messages to reword them more nicely.
|
||||
m = re.search(r'Expected "(.*?)" to terminate element starting on line (\d+)', message)
|
||||
if m:
|
||||
display_errors.append('Please close the unclosed %s tag from line %s. (Line starts with "%s".)' % \
|
||||
(m.group(1).replace('/', ''), m.group(2), lines[int(m.group(2)) - 1][:30]))
|
||||
display_errors.append(_('Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "%(start)s".)') % \
|
||||
{'tag':m.group(1).replace('/', ''), 'line':m.group(2), 'start':lines[int(m.group(2)) - 1][:30]})
|
||||
continue
|
||||
if message.strip() == 'text not allowed here':
|
||||
display_errors.append('Some text starting on line %s is not allowed in that context. (Line starts with "%s".)' % \
|
||||
(line, lines[int(line) - 1][:30]))
|
||||
display_errors.append(_('Some text starting on line %(line)s is not allowed in that context. (Line starts with "%(start)s".)') % \
|
||||
{'line':line, 'start':lines[int(line) - 1][:30]})
|
||||
continue
|
||||
m = re.search(r'\s*attribute "(.*?)" not allowed at this point; ignored', message)
|
||||
if m:
|
||||
display_errors.append('"%s" on line %s is an invalid attribute. (Line starts with "%s".)' % \
|
||||
(m.group(1), line, lines[int(line) - 1][:30]))
|
||||
display_errors.append(_('"%(attr)s" on line %(line)s is an invalid attribute. (Line starts with "%(start)s".)') % \
|
||||
{'attr':m.group(1), 'line':line, 'start':lines[int(line) - 1][:30]})
|
||||
continue
|
||||
m = re.search(r'\s*unknown element "(.*?)"', message)
|
||||
if m:
|
||||
display_errors.append('"<%s>" on line %s is an invalid tag. (Line starts with "%s".)' % \
|
||||
(m.group(1), line, lines[int(line) - 1][:30]))
|
||||
display_errors.append(_('"<%(tag)s>" on line %(line)s is an invalid tag. (Line starts with "%(start)s".)') % \
|
||||
{'tag':m.group(1), 'line':line, 'start':lines[int(line) - 1][:30]})
|
||||
continue
|
||||
if message.strip() == 'required attributes missing':
|
||||
display_errors.append('A tag on line %s is missing one or more required attributes. (Line starts with "%s".)' % \
|
||||
(line, lines[int(line) - 1][:30]))
|
||||
display_errors.append(_('A tag on line %(line)s is missing one or more required attributes. (Line starts with "%(start)s".)') % \
|
||||
{'line':line, 'start':lines[int(line) - 1][:30]})
|
||||
continue
|
||||
m = re.search(r'\s*bad value for attribute "(.*?)"', message)
|
||||
if m:
|
||||
display_errors.append('The "%s" attribute on line %s has an invalid value. (Line starts with "%s".)' % \
|
||||
(m.group(1), line, lines[int(line) - 1][:30]))
|
||||
display_errors.append(_('The "%(attr)s" attribute on line %(line)s has an invalid value. (Line starts with "%(start)s".)') % \
|
||||
{'attr':m.group(1), 'line':line, 'start':lines[int(line) - 1][:30]})
|
||||
continue
|
||||
# Failing all those checks, use the default error message.
|
||||
display_error = 'Line %s: %s [%s]' % (line, message, level.strip())
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
"this is the locale selecting middleware that will look at accept headers"
|
||||
|
||||
from django.utils.cache import patch_vary_headers
|
||||
from django.utils import translation
|
||||
|
||||
class LocaleMiddleware:
|
||||
"""
|
||||
This is a very simple middleware that parses a request
|
||||
and decides what translation object to install in the current
|
||||
thread context. This allows pages to be dynamically
|
||||
translated to the language the user desires (if the language
|
||||
is available, of course).
|
||||
"""
|
||||
|
||||
def process_request(self, request):
|
||||
language = translation.get_language_from_request(request)
|
||||
translation.activate(language)
|
||||
request.LANGUAGE_CODE = translation.get_language()
|
||||
|
||||
def process_response(self, request, response):
|
||||
patch_vary_headers(response, ('Accept-Language',))
|
||||
translation.deactivate()
|
||||
return response
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
from django.core import meta, validators
|
||||
from django.models import core
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
class Permission(meta.Model):
|
||||
name = meta.CharField(maxlength=50)
|
||||
name = meta.CharField(_('name'), maxlength=50)
|
||||
package = meta.ForeignKey(core.Package, db_column='package')
|
||||
codename = meta.CharField(maxlength=100)
|
||||
codename = meta.CharField(_('codename'), maxlength=100)
|
||||
class META:
|
||||
verbose_name = _('Permission')
|
||||
verbose_name_plural = _('Permissions')
|
||||
unique_together = (('package', 'codename'),)
|
||||
ordering = ('package', 'codename')
|
||||
|
||||
|
@ -13,9 +16,11 @@ class Permission(meta.Model):
|
|||
return "%s | %s" % (self.package, self.name)
|
||||
|
||||
class Group(meta.Model):
|
||||
name = meta.CharField(maxlength=80, unique=True)
|
||||
name = meta.CharField(_('name'), maxlength=80, unique=True)
|
||||
permissions = meta.ManyToManyField(Permission, blank=True, filter_interface=meta.HORIZONTAL)
|
||||
class META:
|
||||
verbose_name = _('Group')
|
||||
verbose_name_plural = _('Groups')
|
||||
ordering = ('name',)
|
||||
admin = meta.Admin(
|
||||
search_fields = ('name',),
|
||||
|
@ -25,20 +30,22 @@ class Group(meta.Model):
|
|||
return self.name
|
||||
|
||||
class User(meta.Model):
|
||||
username = meta.CharField(maxlength=30, unique=True, validator_list=[validators.isAlphaNumeric])
|
||||
first_name = meta.CharField(maxlength=30, blank=True)
|
||||
last_name = meta.CharField(maxlength=30, blank=True)
|
||||
email = meta.EmailField('e-mail address', blank=True)
|
||||
password_md5 = meta.CharField('password', maxlength=32, help_text="Use an MD5 hash -- not the raw password.")
|
||||
is_staff = meta.BooleanField('staff status', help_text="Designates whether the user can log into this admin site.")
|
||||
is_active = meta.BooleanField('active', default=True)
|
||||
is_superuser = meta.BooleanField('superuser status')
|
||||
last_login = meta.DateTimeField(default=meta.LazyDate())
|
||||
date_joined = meta.DateTimeField(default=meta.LazyDate())
|
||||
username = meta.CharField(_('username'), maxlength=30, unique=True, validator_list=[validators.isAlphaNumeric])
|
||||
first_name = meta.CharField(_('first name'), maxlength=30, blank=True)
|
||||
last_name = meta.CharField(_('last name'), maxlength=30, blank=True)
|
||||
email = meta.EmailField(_('e-mail address'), blank=True)
|
||||
password_md5 = meta.CharField(_('password'), maxlength=32, help_text=_("Use an MD5 hash -- not the raw password."))
|
||||
is_staff = meta.BooleanField(_('staff status'), help_text=_("Designates whether the user can log into this admin site."))
|
||||
is_active = meta.BooleanField(_('active'), default=True)
|
||||
is_superuser = meta.BooleanField(_('superuser status'))
|
||||
last_login = meta.DateTimeField(_('last login'), default=meta.LazyDate())
|
||||
date_joined = meta.DateTimeField(_('date joined'), default=meta.LazyDate())
|
||||
groups = meta.ManyToManyField(Group, blank=True,
|
||||
help_text="In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in.")
|
||||
help_text=_("In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."))
|
||||
user_permissions = meta.ManyToManyField(Permission, blank=True, filter_interface=meta.HORIZONTAL)
|
||||
class META:
|
||||
verbose_name = _('User')
|
||||
verbose_name_plural = _('Users')
|
||||
module_constants = {
|
||||
'SESSION_KEY': '_auth_user_id',
|
||||
}
|
||||
|
@ -47,10 +54,10 @@ class User(meta.Model):
|
|||
admin = meta.Admin(
|
||||
fields = (
|
||||
(None, {'fields': ('username', 'password_md5')}),
|
||||
('Personal info', {'fields': ('first_name', 'last_name', 'email')}),
|
||||
('Permissions', {'fields': ('is_staff', 'is_active', 'is_superuser', 'user_permissions')}),
|
||||
('Important dates', {'fields': ('last_login', 'date_joined')}),
|
||||
('Groups', {'fields': ('groups',)}),
|
||||
(_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
|
||||
(_('Permissions'), {'fields': ('is_staff', 'is_active', 'is_superuser', 'user_permissions')}),
|
||||
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
|
||||
(_('Groups'), {'fields': ('groups',)}),
|
||||
),
|
||||
list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff'),
|
||||
list_filter = ('is_staff', 'is_superuser'),
|
||||
|
@ -172,7 +179,7 @@ class User(meta.Model):
|
|||
|
||||
class Message(meta.Model):
|
||||
user = meta.ForeignKey(User)
|
||||
message = meta.TextField()
|
||||
message = meta.TextField(_('Message'))
|
||||
|
||||
def __repr__(self):
|
||||
return self.message
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
from django.core import meta, validators
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
class Site(meta.Model):
|
||||
domain = meta.CharField('domain name', maxlength=100)
|
||||
name = meta.CharField('display name', maxlength=50)
|
||||
domain = meta.CharField(_('domain name'), maxlength=100)
|
||||
name = meta.CharField(_('display name'), maxlength=50)
|
||||
class META:
|
||||
verbose_name = _('site')
|
||||
verbose_name_plural = _('sites')
|
||||
db_table = 'sites'
|
||||
ordering = ('domain',)
|
||||
|
||||
|
@ -16,9 +19,11 @@ class Site(meta.Model):
|
|||
return get_object(pk=SITE_ID)
|
||||
|
||||
class Package(meta.Model):
|
||||
label = meta.CharField(maxlength=20, primary_key=True)
|
||||
name = meta.CharField(maxlength=30, unique=True)
|
||||
label = meta.CharField(_('label'), maxlength=20, primary_key=True)
|
||||
name = meta.CharField(_('name'), maxlength=30, unique=True)
|
||||
class META:
|
||||
verbose_name = _('package')
|
||||
verbose_name_plural = _('packages')
|
||||
db_table = 'packages'
|
||||
ordering = ('name',)
|
||||
|
||||
|
@ -26,10 +31,12 @@ class Package(meta.Model):
|
|||
return self.name
|
||||
|
||||
class ContentType(meta.Model):
|
||||
name = meta.CharField(maxlength=100)
|
||||
name = meta.CharField(_('name'), maxlength=100)
|
||||
package = meta.ForeignKey(Package, db_column='package')
|
||||
python_module_name = meta.CharField(maxlength=50)
|
||||
python_module_name = meta.CharField(_('python module name'), maxlength=50)
|
||||
class META:
|
||||
verbose_name = _('content type')
|
||||
verbose_name_plural = _('content types')
|
||||
db_table = 'content_types'
|
||||
ordering = ('package', 'name')
|
||||
unique_together = (('package', 'python_module_name'),)
|
||||
|
@ -52,11 +59,13 @@ class ContentType(meta.Model):
|
|||
|
||||
class Redirect(meta.Model):
|
||||
site = meta.ForeignKey(Site, radio_admin=meta.VERTICAL)
|
||||
old_path = meta.CharField('redirect from', maxlength=200, db_index=True,
|
||||
help_text="This should be an absolute path, excluding the domain name. Example: '/events/search/'.")
|
||||
new_path = meta.CharField('redirect to', maxlength=200, blank=True,
|
||||
help_text="This can be either an absolute path (as above) or a full URL starting with 'http://'.")
|
||||
old_path = meta.CharField(_('redirect from'), maxlength=200, db_index=True,
|
||||
help_text=_("This should be an absolute path, excluding the domain name. Example: '/events/search/'."))
|
||||
new_path = meta.CharField(_('redirect to'), maxlength=200, blank=True,
|
||||
help_text=_("This can be either an absolute path (as above) or a full URL starting with 'http://'."))
|
||||
class META:
|
||||
verbose_name = _('redirect')
|
||||
verbose_name_plural = _('redirects')
|
||||
db_table = 'redirects'
|
||||
unique_together=(('site', 'old_path'),)
|
||||
ordering = ('old_path',)
|
||||
|
@ -69,18 +78,19 @@ class Redirect(meta.Model):
|
|||
return "%s ---> %s" % (self.old_path, self.new_path)
|
||||
|
||||
class FlatFile(meta.Model):
|
||||
url = meta.CharField('URL', maxlength=100, validator_list=[validators.isAlphaNumericURL],
|
||||
help_text="Example: '/about/contact/'. Make sure to have leading and trailing slashes.")
|
||||
title = meta.CharField(maxlength=200)
|
||||
content = meta.TextField()
|
||||
enable_comments = meta.BooleanField()
|
||||
template_name = meta.CharField(maxlength=70, blank=True,
|
||||
help_text="Example: 'flatfiles/contact_page'. If this isn't provided, the system will use 'flatfiles/default'.")
|
||||
registration_required = meta.BooleanField(help_text="If this is checked, only logged-in users will be able to view the page.")
|
||||
url = meta.CharField(_('URL'), maxlength=100, validator_list=[validators.isAlphaNumericURL],
|
||||
help_text=_("Example: '/about/contact/'. Make sure to have leading and trailing slashes."))
|
||||
title = meta.CharField(_('title'), maxlength=200)
|
||||
content = meta.TextField(_('content'))
|
||||
enable_comments = meta.BooleanField(_('enable comments'))
|
||||
template_name = meta.CharField(_('template name'), maxlength=70, blank=True,
|
||||
help_text=_("Example: 'flatfiles/contact_page'. If this isn't provided, the system will use 'flatfiles/default'."))
|
||||
registration_required = meta.BooleanField(_('registration required'), help_text=_("If this is checked, only logged-in users will be able to view the page."))
|
||||
sites = meta.ManyToManyField(Site)
|
||||
class META:
|
||||
db_table = 'flatfiles'
|
||||
verbose_name = 'flat page'
|
||||
verbose_name = _('flat page')
|
||||
verbose_name_plural = _('flat pages')
|
||||
ordering = ('url',)
|
||||
admin = meta.Admin(
|
||||
fields = (
|
||||
|
@ -101,10 +111,12 @@ import base64, md5, random, sys
|
|||
import cPickle as pickle
|
||||
|
||||
class Session(meta.Model):
|
||||
session_key = meta.CharField(maxlength=40, primary_key=True)
|
||||
session_data = meta.TextField()
|
||||
expire_date = meta.DateTimeField()
|
||||
session_key = meta.CharField(_('session key'), maxlength=40, primary_key=True)
|
||||
session_data = meta.TextField(_('session data'))
|
||||
expire_date = meta.DateTimeField(_('expire date'))
|
||||
class META:
|
||||
verbose_name = _('session')
|
||||
verbose_name_plural = _('sessions')
|
||||
module_constants = {
|
||||
'base64': base64,
|
||||
'md5': md5,
|
||||
|
|
|
@ -0,0 +1,217 @@
|
|||
"Default tags used by the template system, available to all templates."
|
||||
|
||||
from django.core.template import Node, NodeList, Template, Context, resolve_variable, resolve_variable_with_filters, registered_filters
|
||||
from django.core.template import TemplateSyntaxError, register_tag, TokenParser
|
||||
from django.core.template import TOKEN_BLOCK, TOKEN_TEXT, TOKEN_VAR
|
||||
from django.utils import translation
|
||||
|
||||
import sys
|
||||
import re
|
||||
|
||||
class GetAvailableLanguagesNode(Node):
|
||||
|
||||
def __init__(self, variable):
|
||||
self.variable = variable
|
||||
|
||||
def render(self, context):
|
||||
from django.conf.settings import LANGUAGES
|
||||
context[self.variable] = LANGUAGES
|
||||
return ''
|
||||
|
||||
class GetCurrentLanguageNode(Node):
|
||||
|
||||
def __init__(self, variable):
|
||||
self.variable = variable
|
||||
|
||||
def render(self, context):
|
||||
context[self.variable] = translation.get_language()
|
||||
return ''
|
||||
|
||||
class TranslateNode(Node):
|
||||
|
||||
def __init__(self, value, noop):
|
||||
self.value = value
|
||||
self.noop = noop
|
||||
|
||||
def render(self, context):
|
||||
value = resolve_variable(self.value, context)
|
||||
if self.noop:
|
||||
return value
|
||||
else:
|
||||
return translation.gettext(value)
|
||||
|
||||
class BlockTranslateNode(Node):
|
||||
|
||||
def __init__(self, extra_context, singular, plural=None, countervar=None, counter=None):
|
||||
self.extra_context = extra_context
|
||||
self.singular = singular
|
||||
self.plural = plural
|
||||
self.countervar = countervar
|
||||
self.counter = counter
|
||||
|
||||
def render_token_list(self, tokens):
|
||||
result = []
|
||||
for token in tokens:
|
||||
if token.token_type == TOKEN_TEXT:
|
||||
result.append(token.contents)
|
||||
elif token.token_type == TOKEN_VAR:
|
||||
result.append('%%(%s)s' % token.contents)
|
||||
return ''.join(result)
|
||||
|
||||
def render(self, context):
|
||||
context.push()
|
||||
for var,val in self.extra_context.items():
|
||||
context[var] = resolve_variable_with_filters(val, context)
|
||||
singular = self.render_token_list(self.singular) % context
|
||||
if self.plural and self.countervar and self.counter:
|
||||
count = resolve_variable_with_filters(self.counter, context)
|
||||
context[self.countervar] = count
|
||||
plural = self.render_token_list(self.plural) % context
|
||||
result = translation.ngettext(singular, plural, count) % context
|
||||
else:
|
||||
result = translation.gettext(singular) % context
|
||||
context.pop()
|
||||
return result
|
||||
|
||||
def do_get_available_languages(parser, token):
|
||||
"""
|
||||
This will store a list of available languages
|
||||
in the context.
|
||||
|
||||
Usage is as follows::
|
||||
|
||||
{% get_available_languages as languages %}
|
||||
{% for language in languages %}
|
||||
...
|
||||
{% endfor %}
|
||||
|
||||
This will just pull the LANGUAGES setting from
|
||||
your setting file (or the default settings) and
|
||||
put it into the named variable.
|
||||
"""
|
||||
|
||||
args = token.contents.split()
|
||||
if len(args) != 3 or args[1] != 'as':
|
||||
raise TemplateSyntaxError, "'get_available_languages' requires 'as variable' (got %r)" % args
|
||||
return GetAvailableLanguagesNode(args[2])
|
||||
|
||||
def do_get_current_language(parser, token):
|
||||
"""
|
||||
This will store the current language in
|
||||
the context.
|
||||
|
||||
Usage is as follows::
|
||||
|
||||
{% get_current_language as language %}
|
||||
|
||||
This will fetch the currently active language and
|
||||
put it's value into the ``language`` context
|
||||
variable.
|
||||
"""
|
||||
|
||||
args = token.contents.split()
|
||||
if len(args) != 3 or args[1] != 'as':
|
||||
raise TemplateSyntaxError, "'get_available_languages' requires 'as variable' (got %r)" % args
|
||||
return GetCurrentLanguageNode(args[2])
|
||||
|
||||
def do_translate(parser, token):
|
||||
"""
|
||||
This will mark a string for translation and will
|
||||
translate the string for the current language.
|
||||
|
||||
Usage is like this::
|
||||
|
||||
{% trans "this is a test" %}
|
||||
|
||||
This will mark the string for translation so it will
|
||||
be pulled out by mark-messages.py into the .po files
|
||||
and will run the string through the translation engine.
|
||||
|
||||
There is a second form::
|
||||
|
||||
{% trans "this is a test" noop %}
|
||||
|
||||
This will only mark for translation, but will return
|
||||
the string unchanged. Use it when you need to store
|
||||
values into forms that should be translated later on.
|
||||
|
||||
You can use variables instead of constant strings
|
||||
to translate stuff you marked somewhere else::
|
||||
|
||||
{% trans variable %}
|
||||
|
||||
This will just try to translate the contents of
|
||||
the variable ``variable``. Make sure that the string
|
||||
in there is something that is in the .po file.
|
||||
"""
|
||||
|
||||
class TranslateParser(TokenParser):
|
||||
|
||||
def top(self):
|
||||
value = self.value()
|
||||
if self.more():
|
||||
if self.tag() == 'noop':
|
||||
noop = True
|
||||
else:
|
||||
raise TemplateSyntaxError, "only option for 'trans' is 'noop'"
|
||||
else:
|
||||
noop = False
|
||||
return (value, noop)
|
||||
|
||||
(value, noop) = TranslateParser(token.contents).top()
|
||||
return TranslateNode(value, noop)
|
||||
|
||||
def do_block_translate(parser, token):
|
||||
"""
|
||||
"""
|
||||
class BlockTranslateParser(TokenParser):
|
||||
|
||||
def top(self):
|
||||
countervar = None
|
||||
counter = None
|
||||
extra_context = {}
|
||||
while self.more():
|
||||
tag = self.tag()
|
||||
if tag == 'with' or tag == 'and':
|
||||
value = self.value()
|
||||
if self.tag() != 'as':
|
||||
raise TemplateSyntaxError, "variable bindings in 'blocktrans' must be 'with value as variable'"
|
||||
extra_context[self.tag()] = value
|
||||
elif tag == 'count':
|
||||
counter = self.value()
|
||||
if self.tag() != 'as':
|
||||
raise TemplateSyntaxError, "counter specification in 'blocktrans' must be 'count value as variable'"
|
||||
countervar = self.tag()
|
||||
else:
|
||||
raise TemplateSyntaxError, "unknown subtag %s for 'blocktrans' found" % tag
|
||||
return (countervar, counter, extra_context)
|
||||
|
||||
(countervar, counter, extra_context) = BlockTranslateParser(token.contents).top()
|
||||
|
||||
singular = []
|
||||
plural = []
|
||||
while parser.tokens:
|
||||
token = parser.next_token()
|
||||
if token.token_type in (TOKEN_VAR, TOKEN_TEXT):
|
||||
singular.append(token)
|
||||
else:
|
||||
break
|
||||
if countervar and counter:
|
||||
if token.contents.strip() != 'plural':
|
||||
raise TemplateSyntaxError, "'blocktrans' doesn't allow other block tags inside it" % tag
|
||||
while parser.tokens:
|
||||
token = parser.next_token()
|
||||
if token.token_type in (TOKEN_VAR, TOKEN_TEXT):
|
||||
plural.append(token)
|
||||
else:
|
||||
break
|
||||
if token.contents.strip() != 'endblocktrans':
|
||||
raise TemplateSyntaxError, "'blocktrans' doesn't allow other block tags (seen %r) inside it" % token.contents
|
||||
|
||||
return BlockTranslateNode(extra_context, singular, plural, countervar, counter)
|
||||
|
||||
register_tag('get_available_languages', do_get_available_languages)
|
||||
register_tag('get_current_language', do_get_current_language)
|
||||
register_tag('trans', do_translate)
|
||||
register_tag('blocktrans', do_block_translate)
|
||||
|
|
@ -1,17 +1,19 @@
|
|||
"Commonly-used date structures"
|
||||
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
WEEKDAYS = {
|
||||
0:'Monday', 1:'Tuesday', 2:'Wednesday', 3:'Thursday', 4:'Friday',
|
||||
5:'Saturday', 6:'Sunday'
|
||||
0:_('Monday'), 1:_('Tuesday'), 2:_('Wednesday'), 3:_('Thursday'), 4:_('Friday'),
|
||||
5:_('Saturday'), 6:_('Sunday')
|
||||
}
|
||||
WEEKDAYS_REV = {
|
||||
'monday':0, 'tuesday':1, 'wednesday':2, 'thursday':3, 'friday':4,
|
||||
'saturday':5, 'sunday':6
|
||||
}
|
||||
MONTHS = {
|
||||
1:'January', 2:'February', 3:'March', 4:'April', 5:'May', 6:'June',
|
||||
7:'July', 8:'August', 9:'September', 10:'October', 11:'November',
|
||||
12:'December'
|
||||
1:_('January'), 2:_('February'), 3:_('March'), 4:_('April'), 5:_('May'), 6:_('June'),
|
||||
7:_('July'), 8:_('August'), 9:_('September'), 10:_('October'), 11:_('November'),
|
||||
12:_('December')
|
||||
}
|
||||
MONTHS_3 = {
|
||||
1:'jan', 2:'feb', 3:'mar', 4:'apr', 5:'may', 6:'jun', 7:'jul', 8:'aug',
|
||||
|
@ -22,6 +24,6 @@ MONTHS_3_REV = {
|
|||
'sep':9, 'oct':10, 'nov':11, 'dec':12
|
||||
}
|
||||
MONTHS_AP = { # month names in Associated Press style
|
||||
1:'Jan.', 2:'Feb.', 3:'March', 4:'April', 5:'May', 6:'June', 7:'July',
|
||||
8:'Aug.', 9:'Sept.', 10:'Oct.', 11:'Nov.', 12:'Dec.'
|
||||
1:_('Jan.'), 2:_('Feb.'), 3:_('March'), 4:_('April'), 5:_('May'), 6:_('June'), 7:_('July'),
|
||||
8:_('Aug.'), 9:_('Sept.'), 10:_('Oct.'), 11:_('Nov.'), 12:_('Dec.')
|
||||
}
|
||||
|
|
|
@ -2,3 +2,64 @@ def curry(*args, **kwargs):
|
|||
def _curried(*moreargs, **morekwargs):
|
||||
return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items()))
|
||||
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.
|
||||
"""
|
||||
|
||||
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.
|
||||
"""
|
||||
|
||||
def __init__(self, args, kw):
|
||||
self.__func = func
|
||||
self.__args = args
|
||||
self.__kw = kw
|
||||
self.__dispatch = {}
|
||||
for resultclass in 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.
|
||||
"""
|
||||
|
||||
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.
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
return __proxy__(args, kw)
|
||||
|
||||
return __wrapper__
|
||||
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ def get_text_list(list_, last_word='or'):
|
|||
"""
|
||||
if len(list_) == 0: return ''
|
||||
if len(list_) == 1: return list_[0]
|
||||
return '%s %s %s' % (', '.join([i for i in list_][:-1]), last_word, list_[-1])
|
||||
return '%s %s %s' % (', '.join([str(i) for i in list_][:-1]), last_word, list_[-1])
|
||||
|
||||
def normalize_newlines(text):
|
||||
return re.sub(r'\r\n|\r|\n', '\n', text)
|
||||
|
|
|
@ -0,0 +1,447 @@
|
|||
"translation helper functions"
|
||||
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import gettext as gettext_module
|
||||
from cStringIO import StringIO
|
||||
|
||||
from django.utils.functional import lazy
|
||||
|
||||
try:
|
||||
import threading
|
||||
hasThreads = True
|
||||
except ImportError:
|
||||
hasThreads = False
|
||||
|
||||
if hasThreads:
|
||||
currentThread = threading.currentThread
|
||||
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 = {}
|
||||
_active = {}
|
||||
|
||||
# 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
|
||||
_accepted = {}
|
||||
|
||||
def to_locale(language):
|
||||
"turn 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()
|
||||
else:
|
||||
return language.lower()
|
||||
|
||||
def to_language(locale):
|
||||
"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()
|
||||
else:
|
||||
return locale.lower()
|
||||
|
||||
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.
|
||||
"""
|
||||
|
||||
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
|
||||
# the output charset. Before 2.4, the output charset is
|
||||
# identical with the translation file charset.
|
||||
try:
|
||||
self.set_output_charset(settings.DEFAULT_CHARSET)
|
||||
except AttributeError:
|
||||
pass
|
||||
self.django_output_charset = settings.DEFAULT_CHARSET
|
||||
self.__language = '??'
|
||||
|
||||
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.
|
||||
|
||||
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)
|
||||
|
||||
def ngettext(self, msgid1, msgid2, n):
|
||||
res = self.ungettext(msgid1, msgid2, n)
|
||||
return res.encode(self.django_output_charset)
|
||||
|
||||
def translation(language):
|
||||
"""
|
||||
This function returns a translation object. app must be the fully
|
||||
qualified name of the application.
|
||||
|
||||
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.
|
||||
"""
|
||||
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
|
||||
klass = DjangoTranslation
|
||||
if sys.version_info < (2, 4):
|
||||
klass = DjangoTranslation23
|
||||
|
||||
globalpath = os.path.join(os.path.dirname(settings.__file__), 'locale')
|
||||
|
||||
parts = os.environ['DJANGO_SETTINGS_MODULE'].split('.')
|
||||
project = __import__(parts[0], {}, {}, [])
|
||||
projectpath = os.path.join(os.path.dirname(project.__file__), 'locale')
|
||||
|
||||
def _fetch(lang, fallback=None):
|
||||
|
||||
global _translations
|
||||
|
||||
loc = to_locale(lang)
|
||||
|
||||
res = _translations.get(lang, None)
|
||||
if res is not None:
|
||||
return res
|
||||
|
||||
def _translation(path):
|
||||
try:
|
||||
t = gettext_module.translation('django', path, [loc], klass)
|
||||
t.set_language(lang)
|
||||
return t
|
||||
except IOError, e:
|
||||
return None
|
||||
|
||||
res = _translation(globalpath)
|
||||
|
||||
def _merge(path):
|
||||
t = _translation(path)
|
||||
if t is not None:
|
||||
if res is None:
|
||||
return t
|
||||
else:
|
||||
res.merge(t)
|
||||
return res
|
||||
|
||||
if hasattr(settings, 'LOCALE_PATHS'):
|
||||
for localepath in settings.LOCALE_PATHS:
|
||||
if os.path.isdir(localepath):
|
||||
res = _merge(localepath)
|
||||
|
||||
if os.path.isdir(projectpath):
|
||||
res = _merge(projectpath)
|
||||
|
||||
for appname in settings.INSTALLED_APPS:
|
||||
p = appname.rfind('.')
|
||||
if p >= 0:
|
||||
app = getattr(__import__(appname[:p], {}, {}, [appname[p+1:]]), appname[p+1:])
|
||||
else:
|
||||
app = __import__(appname, {}, {}, [])
|
||||
|
||||
apppath = os.path.join(os.path.dirname(app.__file__), 'locale')
|
||||
|
||||
if os.path.isdir(apppath):
|
||||
res = _merge(apppath)
|
||||
|
||||
if res is None:
|
||||
if fallback is not None:
|
||||
res = fallback
|
||||
else:
|
||||
return gettext_module.NullTranslations()
|
||||
_translations[lang] = res
|
||||
return res
|
||||
|
||||
default_translation = _fetch(settings.LANGUAGE_CODE)
|
||||
current_translation = _fetch(language, fallback=default_translation)
|
||||
|
||||
return current_translation
|
||||
|
||||
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.
|
||||
"""
|
||||
_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.
|
||||
"""
|
||||
global _active
|
||||
|
||||
if _active.has_key(currentThread()):
|
||||
del _active[currentThread()]
|
||||
|
||||
def get_language():
|
||||
"""
|
||||
This function 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.
|
||||
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.
|
||||
"""
|
||||
global _default, _active
|
||||
|
||||
t = _active.get(currentThread(), None)
|
||||
if t is not None:
|
||||
return t.gettext(message)
|
||||
if _default is None:
|
||||
from django.conf import settings
|
||||
_default = translation(settings.LANGUAGE_CODE)
|
||||
return _default.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.
|
||||
"""
|
||||
return message
|
||||
|
||||
def ngettext(singular, plural, number):
|
||||
"""
|
||||
This function returns the translation of either the singular
|
||||
or plural, based on the number.
|
||||
"""
|
||||
global _default, _active
|
||||
|
||||
t = _active.get(currentThread(), None)
|
||||
if t is not None:
|
||||
return t.ngettext(singular, plural, number)
|
||||
if _default is None:
|
||||
from django.conf import settings
|
||||
_default = translation('*', settings.LANGUAGE_CODE)
|
||||
return _default.ngettext(singular, plural, number)
|
||||
|
||||
gettext_lazy = lazy(gettext, str)
|
||||
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.
|
||||
"""
|
||||
from django.conf import settings
|
||||
globalpath = os.path.join(os.path.dirname(settings.__file__), 'locale')
|
||||
if gettext_module.find('django', globalpath, [to_locale(lang_code)]) is not None:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def get_language_from_request(request):
|
||||
"""
|
||||
analyze 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')
|
||||
|
||||
if hasattr(request, 'session'):
|
||||
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:
|
||||
|
||||
t = _accepted.get(accept, None)
|
||||
if t is not None:
|
||||
return t
|
||||
|
||||
def _parsed(el):
|
||||
p = el.find(';q=')
|
||||
if p >= 0:
|
||||
lang = el[:p].strip()
|
||||
order = int(float(el[p+3:].strip())*100)
|
||||
else:
|
||||
lang = el
|
||||
order = 100
|
||||
if lang.find('-') >= 0:
|
||||
(lang, sublang) = lang.split('-')
|
||||
lang = lang.lower() + '_' + sublang.upper()
|
||||
return (lang, order)
|
||||
|
||||
langs = [_parsed(el) for el in accept.split(',')]
|
||||
langs.sort(lambda a,b: -1*cmp(a[1], b[1]))
|
||||
|
||||
for lang, order in langs:
|
||||
langfile = gettext_module.find('django', globalpath, [to_locale(lang)])
|
||||
if langfile:
|
||||
# reconstruct the actual language from the language
|
||||
# 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]
|
||||
_accepted[accept] = lang
|
||||
return lang
|
||||
|
||||
return settings.LANGUAGE_CODE
|
||||
|
||||
def install():
|
||||
"""
|
||||
This 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.
|
||||
"""
|
||||
return dot_re.sub(char, src)
|
||||
|
||||
inline_re = re.compile(r"""^\s*trans\s+((?:".*?")|(?:'.*?'))\s*""")
|
||||
block_re = re.compile(r"""^\s*blocktrans(?:\s+|$)""")
|
||||
endblock_re = re.compile(r"""^\s*endblocktrans$""")
|
||||
plural_re = re.compile(r"""^\s*plural$""")
|
||||
constant_re = re.compile(r"""_\(((?:".*?")|(?:'.*?'))\)""")
|
||||
def templateize(src):
|
||||
from django.core.template import tokenize, 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.
|
||||
"""
|
||||
out = StringIO()
|
||||
intrans = False
|
||||
inplural = False
|
||||
singular = []
|
||||
plural = []
|
||||
for t in tokenize(src):
|
||||
if intrans:
|
||||
if t.token_type == TOKEN_BLOCK:
|
||||
endbmatch = endblock_re.match(t.contents)
|
||||
pluralmatch = plural_re.match(t.contents)
|
||||
if endbmatch:
|
||||
if inplural:
|
||||
out.write(' ngettext(%r,%r,count) ' % (''.join(singular), ''.join(plural)))
|
||||
for part in singular:
|
||||
out.write(blankout(part, 'S'))
|
||||
for part in plural:
|
||||
out.write(blankout(part, 'P'))
|
||||
else:
|
||||
out.write(' gettext(%r) ' % ''.join(singular))
|
||||
for part in singular:
|
||||
out.write(blankout(part, 'S'))
|
||||
intrans = False
|
||||
inplural = False
|
||||
singular = []
|
||||
plural = []
|
||||
elif pluralmatch:
|
||||
inplural = True
|
||||
else:
|
||||
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)
|
||||
else:
|
||||
singular.append('%%(%s)s' % t.contents)
|
||||
elif t.token_type == TOKEN_TEXT:
|
||||
if inplural:
|
||||
plural.append(t.contents)
|
||||
else:
|
||||
singular.append(t.contents)
|
||||
else:
|
||||
if t.token_type == TOKEN_BLOCK:
|
||||
imatch = inline_re.match(t.contents)
|
||||
bmatch = block_re.match(t.contents)
|
||||
cmatches = constant_re.findall(t.contents)
|
||||
if imatch:
|
||||
g = imatch.group(1)
|
||||
if g[0] == '"': g = g.strip('"')
|
||||
elif g[0] == "'": g = g.strip("'")
|
||||
out.write(' gettext(%r) ' % g)
|
||||
elif bmatch:
|
||||
intrans = True
|
||||
inplural = False
|
||||
singular = []
|
||||
plural = []
|
||||
elif cmatches:
|
||||
for cmatch in cmatches:
|
||||
out.write(' _(%s) ' % cmatch)
|
||||
else:
|
||||
out.write(blankout(t.contents, 'B'))
|
||||
elif t.token_type == TOKEN_VAR:
|
||||
parts = t.contents.split('|')
|
||||
cmatch = constant_re.match(parts[0])
|
||||
if cmatch:
|
||||
out.write(' _(%s) ' % cmatch.group(1))
|
||||
for p in parts[1:]:
|
||||
if p.find(':_(') >= 0:
|
||||
out.write(' %s ' % p.split(':',1)[1])
|
||||
else:
|
||||
out.write(blankout(p, 'F'))
|
||||
else:
|
||||
out.write(blankout(t.contents, 'X'))
|
||||
return out.getvalue()
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
from django.utils import httpwrappers
|
||||
from django.utils.translation import check_for_language
|
||||
|
||||
def set_language(request):
|
||||
"""
|
||||
Redirect to a given url while setting the chosen language in the
|
||||
session or cookie. The url and the language code need to be
|
||||
specified in the GET paramters.
|
||||
"""
|
||||
lang_code = request.GET['language']
|
||||
next = request.GET.get('next', None)
|
||||
if not next:
|
||||
next = request.META.get('HTTP_REFERER', None)
|
||||
if not next:
|
||||
next = '/'
|
||||
response = httpwrappers.HttpResponseRedirect(next)
|
||||
if check_for_language(lang_code):
|
||||
if hasattr(request, 'session'):
|
||||
request.session['django_language'] = lang_code
|
||||
else:
|
||||
response.set_cookie('django_language', lang_code)
|
||||
return response
|
|
@ -355,9 +355,12 @@ See http://www.thaiopensource.com/relaxng/jing.html .
|
|||
LANGUAGE_CODE
|
||||
-------------
|
||||
|
||||
Default: ``'en-us'``
|
||||
Default: ``'en'``
|
||||
|
||||
A string representing the language code for this installation.
|
||||
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.
|
||||
|
||||
MANAGERS
|
||||
--------
|
||||
|
|
|
@ -0,0 +1,438 @@
|
|||
======================
|
||||
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.
|
|
@ -1,5 +1,6 @@
|
|||
from django.core import template
|
||||
from django.core.template import loader
|
||||
from django.utils.translation import activate, deactivate
|
||||
|
||||
# Helper objects for template tests
|
||||
class SomeClass:
|
||||
|
@ -215,6 +216,45 @@ TEMPLATE_TESTS = {
|
|||
|
||||
# Raise exception for custom tags used in child with {% load %} tag in parent, not in child
|
||||
'exception04': ("{% extends 'inheritance17' %}{% block first %}{% echo 400 %}5678{% endblock %}", {}, template.TemplateSyntaxError),
|
||||
|
||||
# simple translation of a string delimited by '
|
||||
'i18n01': ("{% load i18n %}{% trans 'xxxyyyxxx' %}", {}, "xxxyyyxxx"),
|
||||
|
||||
# simple translation of a string delimited by "
|
||||
'i18n02': ('{% load i18n %}{% trans "xxxyyyxxx" %}', {}, "xxxyyyxxx"),
|
||||
|
||||
# simple translation of a variable
|
||||
'i18n03': ('{% load i18n %}{% blocktrans %}{{ anton }}{% endblocktrans %}', {'anton': 'xxxyyyxxx'}, "xxxyyyxxx"),
|
||||
|
||||
# simple translation of a variable and filter
|
||||
'i18n04': ('{% load i18n %}{% blocktrans with anton|lower as berta %}{{ berta }}{% endblocktrans %}', {'anton': 'XXXYYYXXX'}, "xxxyyyxxx"),
|
||||
|
||||
# simple translation of a string with interpolation
|
||||
'i18n05': ('{% load i18n %}{% blocktrans %}xxx{{ anton }}xxx{% endblocktrans %}', {'anton': 'yyy'}, "xxxyyyxxx"),
|
||||
|
||||
# simple translation of a string to german
|
||||
'i18n06': ('{% load i18n %}{% trans "Page not found" %}', {'LANGUAGE_CODE': 'de'}, "Seite nicht gefunden"),
|
||||
|
||||
# translation of singular form
|
||||
'i18n07': ('{% load i18n %}{% blocktrans count number as counter %}singular{% plural %}plural{% endblocktrans %}', {'number': 1}, "singular"),
|
||||
|
||||
# translation of plural form
|
||||
'i18n08': ('{% load i18n %}{% blocktrans count number as counter %}singular{% plural %}plural{% endblocktrans %}', {'number': 2}, "plural"),
|
||||
|
||||
# simple non-translation (only marking) of a string to german
|
||||
'i18n09': ('{% load i18n %}{% trans "Page not found" noop %}', {'LANGUAGE_CODE': 'de'}, "Page not found"),
|
||||
|
||||
# translation of a variable with a translated filter
|
||||
'i18n10': ('{{ bool|yesno:_("ja,nein") }}', {'bool': True}, 'ja'),
|
||||
|
||||
# translation of a variable with a non-translated filter
|
||||
'i18n11': ('{{ bool|yesno:"ja,nein" }}', {'bool': True}, 'ja'),
|
||||
|
||||
# usage of the get_available_languages tag
|
||||
'i18n12': ('{% load i18n %}{% get_available_languages as langs %}{% for lang in langs %}{% ifequal lang.0 "de" %}{{ lang.0 }}{% endifequal %}{% endfor %}', {}, 'de'),
|
||||
|
||||
# translation of a constant string
|
||||
'i18n13': ('{{ _("Page not found") }}', {'LANGUAGE_CODE': 'de'}, 'Seite nicht gefunden'),
|
||||
}
|
||||
|
||||
def test_template_loader(template_name, template_dirs=None):
|
||||
|
@ -233,6 +273,8 @@ def run_tests(verbosity=0, standalone=False):
|
|||
tests = TEMPLATE_TESTS.items()
|
||||
tests.sort()
|
||||
for name, vals in tests:
|
||||
if 'LANGUAGE_CODE' in vals[1]:
|
||||
activate(vals[1]['LANGUAGE_CODE'])
|
||||
try:
|
||||
output = loader.get_template(name).render(template.Context(vals[1]))
|
||||
except Exception, e:
|
||||
|
@ -244,6 +286,8 @@ def run_tests(verbosity=0, standalone=False):
|
|||
print "Template test: %s -- FAILED. Got %s, exception: %s" % (name, e.__class__, e)
|
||||
failed_tests.append(name)
|
||||
continue
|
||||
if 'LANGUAGE_CODE' in vals[1]:
|
||||
deactivate()
|
||||
if output == vals[2]:
|
||||
if verbosity:
|
||||
print "Template test: %s -- Passed" % name
|
||||
|
|
Loading…
Reference in New Issue