mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	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:
		
							
								
								
									
										24
									
								
								django/bin/compile-messages.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								django/bin/compile-messages.py
									
									
									
									
									
										Executable file
									
								
							| @@ -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() | ||||
|  | ||||
|   | ||||
							
								
								
									
										89
									
								
								django/bin/make-messages.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										89
									
								
								django/bin/make-messages.py
									
									
									
									
									
										Executable file
									
								
							| @@ -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 | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								django/conf/locale/cs/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								django/conf/locale/cs/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										978
									
								
								django/conf/locale/cs/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										978
									
								
								django/conf/locale/cs/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							| @@ -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." | ||||
							
								
								
									
										
											BIN
										
									
								
								django/conf/locale/de/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								django/conf/locale/de/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										984
									
								
								django/conf/locale/de/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										984
									
								
								django/conf/locale/de/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							| @@ -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 <20>nderungsgeschichte. Es wurde m<>glicherweise nicht " | ||||
| "<22>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<73>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<75>gen" | ||||
|  | ||||
| #: contrib/admin/templates/admin/index.html:33 | ||||
| msgid "Change" | ||||
| msgstr "<22>ndern" | ||||
|  | ||||
| #: contrib/admin/templates/admin/index.html:43 | ||||
| msgid "You don't have permission to edit anything." | ||||
| msgstr "Sie haben keine Berechtigung irgendwas zu <20>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 <20>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<62>ngigen Daten zur Folge, aber Sie haben nicht die n<>tigen Rechte um die " | ||||
| "folgenden abh<62>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<75>tzlich die folgenden abh<62>ngigen Daten mit gel<65>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 <20>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<72>nderung" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_change_done.html:12 | ||||
| msgid "Your password was changed." | ||||
| msgstr "Ihr Kennwort wurde ge<67>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<75>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<75>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<75>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<67>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 <20>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 <20>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 "<22>nderungsmeldung" | ||||
|  | ||||
| #: contrib/admin/models/admin.py:15 | ||||
| msgid "log entry" | ||||
| msgstr "Logeintrag" | ||||
|  | ||||
| #: contrib/admin/models/admin.py:16 | ||||
| msgid "log entries" | ||||
| msgstr "Logeintr<74>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<65>llt ist, wird " | ||||
| "'flatfiles/default' als Standard gew<65>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<75>tzlich zu den manuell angelegten Rechten erh<72>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<72>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<6E>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<68>gstriche " | ||||
| "enthalten." | ||||
|  | ||||
| #: core/validators.py:70 | ||||
| msgid "Uppercase letters are not allowed here." | ||||
| msgstr "Gro<72>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<6E>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<6E>ltiges XML: %s" | ||||
|  | ||||
| #: core/validators.py:203 | ||||
| #, python-format | ||||
| msgid "Invalid URL: %s" | ||||
| msgstr "Ung<6E>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<62>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<73>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<73>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<65>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<65>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<64> 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<64> 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<6E>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<69>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<6E>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<6E>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<6E>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<64>ckt halten." | ||||
							
								
								
									
										
											BIN
										
									
								
								django/conf/locale/en/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								django/conf/locale/en/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										927
									
								
								django/conf/locale/en/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										927
									
								
								django/conf/locale/en/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							| @@ -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 "" | ||||
							
								
								
									
										
											BIN
										
									
								
								django/conf/locale/es/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								django/conf/locale/es/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										959
									
								
								django/conf/locale/es/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										959
									
								
								django/conf/locale/es/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,959 @@ | ||||
| # translation of django.po to Espa<70>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<70>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<73>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<63>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<73>rico de cambios. Probablemente no fue a<>adido " | ||||
| "usando este sitio de administraci<63>n." | ||||
|  | ||||
| #: contrib/admin/templates/admin/base_site.html:4 | ||||
| msgid "Django site admin" | ||||
| msgstr "Sitio de administraci<63>n de Django" | ||||
|  | ||||
| #: contrib/admin/templates/admin/base_site.html:7 | ||||
| msgid "Django administration" | ||||
| msgstr "Administraci<63>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<74>nico y deber<65>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 "<22>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<61>a la eliminaci<63>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 "" | ||||
| "<22>Est<73> seguro de que quiere borrar los %(object_name)s \"%(object)s\"? Se " | ||||
| "borrar<61>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 <20>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 "" | ||||
| "<22>Ha olvidado su clave? Introduzca su direcci<63>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<63>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<63>n de clave con <20>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<63>n que ha suministrado. Deber<65>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<70>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<69> 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 "<22>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<63>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<75>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<75>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<63>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" | ||||
							
								
								
									
										
											BIN
										
									
								
								django/conf/locale/fr/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								django/conf/locale/fr/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										995
									
								
								django/conf/locale/fr/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										995
									
								
								django/conf/locale/fr/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							| @@ -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<61>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 <20>t<EFBFBD> " | ||||
| "ajout<75> 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 <20>t<EFBFBD> transmise par courriel aux " | ||||
| "administrateurs du site et sera corrig<69>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 <20>t<EFBFBD> trouv<75>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<6F>s, mais la page demand<6E>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'<27>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<6C>s mais votre compte ne poss<73>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 "" | ||||
| "<22>tes vous certain de vouloir supprimer %(object_name)s \"%(object)s\"? Tous " | ||||
| "les <20>l<EFBFBD>ments li<6C>s suivants seront supprim<69>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<66> avec succ<63>s" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_change_done.html:12 | ||||
| msgid "Your password was changed." | ||||
| msgstr "Votre mot de passe a <20>t<EFBFBD> modifi<66>." | ||||
|  | ||||
| #: 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<72> au site aujourd'hui." | ||||
|  | ||||
| #: contrib/admin/templates/registration/logged_out.html:10 | ||||
| msgid "Log in again" | ||||
| msgstr "Connectez vous <20> 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<69> avec succ<63>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<6F> 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<69>, 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<61> 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<6E> 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 <20> 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'<27>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<74>e de log" | ||||
|  | ||||
| #: contrib/admin/models/admin.py:16 | ||||
| msgid "log entries" | ||||
| msgstr "entr<74>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 <20> 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<75>" | ||||
|  | ||||
| #: 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<69> depuis" | ||||
|  | ||||
| #: models/core.py:63 | ||||
| msgid "" | ||||
| "This should be an absolute path, excluding the domain name. Example: '/" | ||||
| "events/search/'." | ||||
| msgstr "" | ||||
| "Ceci doit <20>tre un chemin absolu, sans nom de domaine. Par exemple: '/events/" | ||||
| "search/'." | ||||
|  | ||||
| #: models/core.py:64 | ||||
| msgid "redirect to" | ||||
| msgstr "redirig<69> 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 <20>tre soit un chemin absolu (voir ci-dessus) soit une URL compl<70>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<70>sence du caract<63>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<73>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<63>, seuls les utilisateurs connect<63>s auront la possibilit<69> de voir " | ||||
| "cette page." | ||||
|  | ||||
| #: models/core.py:92 | ||||
| msgid "flat page" | ||||
| msgstr "page <20> plat" | ||||
|  | ||||
| #: models/core.py:93 | ||||
| msgid "flat pages" | ||||
| msgstr "pages <20> plat" | ||||
|  | ||||
| #: models/core.py:114 | ||||
| msgid "session key" | ||||
| msgstr "cl<63> de session" | ||||
|  | ||||
| #: models/core.py:115 | ||||
| msgid "session data" | ||||
| msgstr "donn<6E>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<70>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<70>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<50>cise si l'utilisateur peut se connecter <20> 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<6E>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<67>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<63>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<61>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<42>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<69>es ici." | ||||
|  | ||||
| #: core/validators.py:74 | ||||
| msgid "Lowercase letters are not allowed here." | ||||
| msgstr "Les lettres minuscules ne sont pas autoris<69>es ici." | ||||
|  | ||||
| #: core/validators.py:81 | ||||
| msgid "Enter only digits separated by commas." | ||||
| msgstr "Seulement des chiffres ([0-9]), s<>par<61>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<61>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<63>res non num<75>riques ne sont pas autoris<69>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<69>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<65> 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<75>ros de t<>l<EFBFBD>phone doivent <20>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<69>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<73>cifiques sont:\n" | ||||
| "%s" | ||||
|  | ||||
| #: core/validators.py:193 | ||||
| #, python-format | ||||
| msgid "Badly formed XML: %s" | ||||
| msgstr "XML mal form<72>: %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<73>." | ||||
|  | ||||
| #: core/validators.py:211 | ||||
| msgid "Enter a valid U.S. state abbreviation." | ||||
| msgstr "Entrez une abr<62>viation d'<27>tat am<61>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 <20> votre langage,! Le mot %s n'est pas autoris<69> ici." | ||||
| msgstr[1] "Attention <20> votre langage,! Les mots %s ne sont pas autoris<69>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<6C>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<6C>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 <20>tre renseign<67> 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 <20>tre renseign<67> 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<69>es." | ||||
|  | ||||
| #: core/validators.py:333 | ||||
| #, python-format | ||||
| msgid "This value must be a power of %s." | ||||
| msgstr "Cette valeur doit <20>tre une puissance de %s." | ||||
|  | ||||
| #: core/validators.py:344 | ||||
| msgid "Please enter a valid decimal number." | ||||
| msgstr "S'il vous pla<6C>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<6C>t, saisissez un nombre d<>cimal valide avec au plus %s chiffre." | ||||
| msgstr[1] "" | ||||
| "S'il vous pla<6C>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<6C>t, saisissez un nombre d<>cimal valide avec au plus %s d<>cimale" | ||||
| msgstr[1] "" | ||||
| "S'il vous pla<6C>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<73>r<EFBFBD> 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<73>r<EFBFBD> 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<75>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<6E>te Content-Type '%(contenttype)s', renvoy<6F>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<65>ant <20> la ligne %(line)s n'est pas autoris<69> 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" | ||||
							
								
								
									
										
											BIN
										
									
								
								django/conf/locale/gl/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								django/conf/locale/gl/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										955
									
								
								django/conf/locale/gl/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										955
									
								
								django/conf/locale/gl/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							| @@ -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" | ||||
							
								
								
									
										
											BIN
										
									
								
								django/conf/locale/it/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								django/conf/locale/it/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										981
									
								
								django/conf/locale/it/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										981
									
								
								django/conf/locale/it/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							| @@ -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 <20> 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'<27> stato un errore. E' stato riportato agli amministratori del sito via e-" | ||||
| "mail e verr<72> 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 <20> stata cambiata con successo" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_change_done.html:12 | ||||
| msgid "Your password was changed." | ||||
| msgstr "La tua password <20> 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<61> resettata e te ne verr<72> 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<63> 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 <20>: %(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<65>" | ||||
|  | ||||
| #: utils/dates.py:6 | ||||
| msgid "Tuesday" | ||||
| msgstr "Marted<65>" | ||||
|  | ||||
| #: utils/dates.py:6 | ||||
| msgid "Wednesday" | ||||
| msgstr "Mercoled<65>" | ||||
|  | ||||
| #: utils/dates.py:6 | ||||
| msgid "Thursday" | ||||
| msgstr "Gioved<65>" | ||||
|  | ||||
| #: utils/dates.py:6 | ||||
| msgid "Friday" | ||||
| msgstr "Venerd<72>" | ||||
|  | ||||
| #: 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<65> " | ||||
| "'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<65> 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<70> 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 <20> un'immagine o <20> 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 <20> " | ||||
| "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 <20> 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 <20> 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 <20> obbligatorio se %(field)s <20> %(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<70> essere valorizzato se %(field)s non <20> %(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<70> 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<70> 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 <20> valido." | ||||
|  | ||||
| #: core/validators.py:423 | ||||
| #, python-format | ||||
| msgid "Could not retrieve anything from %s." | ||||
| msgstr "Impossibile recuperare alcunch<63> 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 <20> 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 <20> 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<70> 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<70> 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" | ||||
							
								
								
									
										
											BIN
										
									
								
								django/conf/locale/pt_BR/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								django/conf/locale/pt_BR/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										981
									
								
								django/conf/locale/pt_BR/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										981
									
								
								django/conf/locale/pt_BR/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							| @@ -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" | ||||
							
								
								
									
										
											BIN
										
									
								
								django/conf/locale/ru/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								django/conf/locale/ru/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										956
									
								
								django/conf/locale/ru/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										956
									
								
								django/conf/locale/ru/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							| @@ -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 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/object_history.html:5 | ||||
| msgid "History" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/object_history.html:18 | ||||
| msgid "Date/time" | ||||
| msgstr "<22><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47 | ||||
| msgid "User" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/object_history.html:20 | ||||
| msgid "Action" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: 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 "" | ||||
| "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> " | ||||
| "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>." | ||||
|  | ||||
| #: contrib/admin/templates/admin/base_site.html:4 | ||||
| msgid "Django site admin" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Django" | ||||
|  | ||||
| #: contrib/admin/templates/admin/base_site.html:7 | ||||
| msgid "Django administration" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Django" | ||||
|  | ||||
| #: contrib/admin/templates/admin/500.html:4 | ||||
| #, fuzzy | ||||
| msgid "Server error" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (500)" | ||||
|  | ||||
| #: contrib/admin/templates/admin/500.html:6 | ||||
| msgid "Server error (500)" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (500)" | ||||
|  | ||||
| #: contrib/admin/templates/admin/500.html:9 | ||||
| msgid "Server Error <em>(500)</em>" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <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 "" | ||||
| "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> e-mail<69> " | ||||
| "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." | ||||
|  | ||||
| #: contrib/admin/templates/admin/404.html:4 | ||||
| #: contrib/admin/templates/admin/404.html:8 | ||||
| msgid "Page not found" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/404.html:10 | ||||
| msgid "We're sorry, but the requested page could not be found." | ||||
| msgstr "<22> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." | ||||
|  | ||||
| #: contrib/admin/templates/admin/index.html:27 | ||||
| msgid "Add" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/index.html:33 | ||||
| msgid "Change" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/index.html:43 | ||||
| msgid "You don't have permission to edit anything." | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." | ||||
|  | ||||
| #: contrib/admin/templates/admin/index.html:51 | ||||
| msgid "Recent Actions" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/index.html:52 | ||||
| msgid "My Actions" | ||||
| msgstr "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/index.html:56 | ||||
| msgid "None available" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/login.html:15 | ||||
| msgid "Username:" | ||||
| msgstr "<22><><EFBFBD>:" | ||||
|  | ||||
| #: contrib/admin/templates/admin/login.html:18 | ||||
| msgid "Password:" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: contrib/admin/templates/admin/login.html:20 | ||||
| msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?" | ||||
| msgstr "<22><> <a href=\"/password_reset/\"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a>?" | ||||
|  | ||||
| #: contrib/admin/templates/admin/login.html:24 | ||||
| msgid "Log in" | ||||
| msgstr "<22><><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/base.html:23 | ||||
| msgid "Welcome," | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>," | ||||
|  | ||||
| #: contrib/admin/templates/admin/base.html:23 | ||||
| msgid "Change password" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/admin/base.html:23 | ||||
| msgid "Log out" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: 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 "" | ||||
| "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %(object_name)s '%(object)s' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> " | ||||
| "<22><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> " | ||||
| "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: 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 "" | ||||
| "<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>  %(object_name)s \"%(object)s\"? <20><><EFBFBD> " | ||||
| "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: contrib/admin/templates/admin/delete_confirmation.html:18 | ||||
| msgid "Yes, I'm sure" | ||||
| msgstr "<22><>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: 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 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: 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 <20> stata cambiata con successo" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_change_done.html:12 | ||||
| msgid "Your password was changed." | ||||
| msgstr "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." | ||||
|  | ||||
| #: 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 "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: 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 "" | ||||
| "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> e-mail <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, " | ||||
| "<22> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> e-mail <20><><EFBFBD><EFBFBD><EFBFBD>." | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_reset_form.html:16 | ||||
| msgid "E-mail address:" | ||||
| msgstr "E-mail <20><><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_reset_form.html:16 | ||||
| msgid "Reset my password" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/registration/logged_out.html:8 | ||||
| msgid "Thanks for spending some quality time with the Web site today." | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>." | ||||
|  | ||||
| #: contrib/admin/templates/registration/logged_out.html:10 | ||||
| msgid "Log in again" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_reset_done.html:6 | ||||
| #: contrib/admin/templates/registration/password_reset_done.html:10 | ||||
| msgid "Password reset successful" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: 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 "" | ||||
| "<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><> " | ||||
| "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." | ||||
|  | ||||
| #: 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 "" | ||||
| "<22> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD> " | ||||
| "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_change_form.html:17 | ||||
| msgid "Old password:" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_change_form.html:19 | ||||
| msgid "New password:" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_change_form.html:21 | ||||
| msgid "Confirm password:" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_change_form.html:23 | ||||
| msgid "Change my password" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_reset_email.html:2 | ||||
| msgid "You're receiving this e-mail because you requested a password reset" | ||||
| msgstr "<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_reset_email.html:3 | ||||
| #, python-format | ||||
| msgid "for your user account at %(site_name)s" | ||||
| msgstr "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> %(site_name)s" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_reset_email.html:5 | ||||
| #, python-format | ||||
| msgid "Your new password is: %(new_password)s" | ||||
| msgstr "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %(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 "<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_reset_email.html:11 | ||||
| msgid "Your username, in case you've forgotten:" | ||||
| msgstr "<22><><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_reset_email.html:13 | ||||
| msgid "Thanks for using our site!" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>!" | ||||
|  | ||||
| #: contrib/admin/templates/registration/password_reset_email.html:15 | ||||
| #, python-format | ||||
| msgid "The %(site_name)s team" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> di %(site_name)s" | ||||
|  | ||||
| #: contrib/admin/models/admin.py:6 | ||||
| #, fuzzy | ||||
| msgid "action time" | ||||
| msgstr "<22><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: 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 "<22><><EFBFBD>:" | ||||
|  | ||||
| #: 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 "<22><><EFBFBD>:" | ||||
|  | ||||
| #: 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 <20><><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: models/auth.py:37 | ||||
| #, fuzzy | ||||
| msgid "password" | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: 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 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|  | ||||
| #: 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 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." | ||||
|  | ||||
| #: core/validators.py:62 | ||||
| #, fuzzy | ||||
| msgid "This value must contain only letters, numbers, underscores and slashes." | ||||
| msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." | ||||
|  | ||||
| #: 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 <20><><EFBFBD><EFBFBD><EFBFBD>:" | ||||
|  | ||||
| #: 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 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <em>(500)</em>" | ||||
|  | ||||
| #~ msgid "Click to change" | ||||
| #~ msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
							
								
								
									
										
											BIN
										
									
								
								django/conf/locale/sr/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								django/conf/locale/sr/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										981
									
								
								django/conf/locale/sr/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										981
									
								
								django/conf/locale/sr/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							| @@ -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." | ||||
							
								
								
									
										
											BIN
										
									
								
								django/conf/locale/zh_CN/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								django/conf/locale/zh_CN/LC_MESSAGES/django.mo
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										951
									
								
								django/conf/locale/zh_CN/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										951
									
								
								django/conf/locale/zh_CN/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||
|  | ||||
|   | ||||
							
								
								
									
										5
									
								
								django/conf/urls/i18n.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								django/conf/urls/i18n.py
									
									
									
									
									
										Normal file
									
								
							| @@ -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()) | ||||
|   | ||||
							
								
								
									
										24
									
								
								django/middleware/locale.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								django/middleware/locale.py
									
									
									
									
									
										Normal file
									
								
							| @@ -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, | ||||
|   | ||||
							
								
								
									
										217
									
								
								django/templatetags/i18n.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										217
									
								
								django/templatetags/i18n.py
									
									
									
									
									
										Normal file
									
								
							| @@ -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) | ||||
|   | ||||
							
								
								
									
										447
									
								
								django/utils/translation.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										447
									
								
								django/utils/translation.py
									
									
									
									
									
										Normal file
									
								
							| @@ -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() | ||||
|  | ||||
							
								
								
									
										22
									
								
								django/views/i18n.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								django/views/i18n.py
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||
| -------- | ||||
|   | ||||
							
								
								
									
										438
									
								
								docs/translation.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										438
									
								
								docs/translation.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user