From 7a80b2cc985a40eac6deb8e4e6ec050a8274bc47 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Mon, 21 Nov 2005 01:39:18 +0000 Subject: [PATCH 01/28] Fixed bug for OneToOneFields in the admin -- the manipulator_validator_unique wasn't doing the correct lookup git-svn-id: http://code.djangoproject.com/svn/django/trunk@1322 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/admin/views/main.py | 7 ------- django/core/meta/fields.py | 6 +++--- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index fd2849ba5e..9c2927000a 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -79,13 +79,6 @@ def change_list(request, app_label, module_name): lookup_mod, lookup_opts = mod, opts - if opts.one_to_one_field: - lookup_mod = opts.one_to_one_field.rel.to.get_model_module() - lookup_opts = lookup_mod.Klass._meta - # If lookup_opts doesn't have admin set, give it the default meta.Admin(). - if not lookup_opts.admin: - lookup_opts.admin = meta.Admin() - # Get search parameters from the query string. try: page_num = int(request.GET.get(PAGE_VAR, 0)) diff --git a/django/core/meta/fields.py b/django/core/meta/fields.py index bf836c8390..27ce0670d5 100644 --- a/django/core/meta/fields.py +++ b/django/core/meta/fields.py @@ -48,11 +48,11 @@ def manipulator_valid_rel_key(f, self, field_data, all_data): def manipulator_validator_unique(f, opts, self, field_data, all_data): "Validates that the value is unique for this field." if f.rel and isinstance(f.rel, ManyToOne): - lookup_type = 'pk' + lookup_type = '%s__%s__exact' % (f.name, f.rel.get_related_field().name) else: - lookup_type = 'exact' + lookup_type = '%s__exact' % (f.name, lookup_type) try: - old_obj = opts.get_model_module().get_object(**{'%s__%s' % (f.name, lookup_type): field_data}) + old_obj = opts.get_model_module().get_object(**{lookup_type: field_data}) except ObjectDoesNotExist: return if hasattr(self, 'original_object') and getattr(self.original_object, opts.pk.attname) == getattr(old_obj, opts.pk.attname): From 270377cb37e3bbe5f2432cdab94fe955ace099ea Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Mon, 21 Nov 2005 01:45:15 +0000 Subject: [PATCH 02/28] Fixed #861 -- Model validator now validates unique_together git-svn-id: http://code.djangoproject.com/svn/django/trunk@1323 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/management.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/django/core/management.py b/django/core/management.py index 6b4f87b000..205cdec3e5 100644 --- a/django/core/management.py +++ b/django/core/management.py @@ -677,6 +677,17 @@ def get_validation_errors(outfile): e.add(rel_opts, "At least one field in %s should have core=True, because it's being edited inline by %s.%s." % (rel_opts.object_name, opts.module_name, opts.object_name)) except StopIteration: pass + + # Check unique_together. + for ut in opts.unique_together: + for field_name in ut: + try: + f = opts.get_field(field_name, many_to_many=True) + except meta.FieldDoesNotExist: + e.add(opts, '"unique_together" refers to %s, a field that doesn\'t exist. Check your syntax.' % field_name) + else: + if isinstance(f.rel, meta.ManyToMany): + e.add(opts, '"unique_together" refers to %s. ManyToManyFields are not supported in unique_together.' % f.name) return len(e.errors) def validate(outfile=sys.stdout): From db94402ea69fb3ba14288441cd28938c568586f5 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Mon, 21 Nov 2005 02:33:46 +0000 Subject: [PATCH 03/28] Added unit tests to verify #800. Refs #800 git-svn-id: http://code.djangoproject.com/svn/django/trunk@1324 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/testapp/models/lookup.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/testapp/models/lookup.py b/tests/testapp/models/lookup.py index 6d8ede1905..f8445c4f60 100644 --- a/tests/testapp/models/lookup.py +++ b/tests/testapp/models/lookup.py @@ -122,4 +122,19 @@ Article 7 Article 2 >>> a2.get_previous_by_pub_date() Article 1 + +# Underscores and percent signs have special meaning in the underlying +# database library, but Django handles the quoting of them automatically. +>>> a8 = articles.Article(headline='Article_ with underscore', pub_date=datetime(2005, 11, 20)) +>>> a8.save() +>>> articles.get_list(headline__startswith='Article') +[Article_ with underscore, Article 5, Article 6, Article 4, Article 2, Article 3, Article 7, Article 1] +>>> articles.get_list(headline__startswith='Article_') +[Article_ with underscore] +>>> a9 = articles.Article(headline='Article% with percent sign', pub_date=datetime(2005, 11, 21)) +>>> a9.save() +>>> articles.get_list(headline__startswith='Article') +[Article% with percent sign, Article_ with underscore, Article 5, Article 6, Article 4, Article 2, Article 3, Article 7, Article 1] +>>> articles.get_list(headline__startswith='Article%') +[Article% with percent sign] """ From 10ca90a2fd4a6e22d034e33e736ea2a2b21967c9 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Mon, 21 Nov 2005 02:34:05 +0000 Subject: [PATCH 04/28] Added unit tests to verify OneToOne deletion works git-svn-id: http://code.djangoproject.com/svn/django/trunk@1325 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/testapp/models/one_to_one.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/testapp/models/one_to_one.py b/tests/testapp/models/one_to_one.py index 5b384aa82b..b8f68836b3 100644 --- a/tests/testapp/models/one_to_one.py +++ b/tests/testapp/models/one_to_one.py @@ -74,4 +74,7 @@ Demon Dogs the restaurant >>> w.save() >>> w Joe the waiter at Demon Dogs the restaurant + +>>> r = restaurants.get_object(pk=1) +>>> r.delete() """ From f1a8869339a4d6d004028c1234aaf706e420b5dd Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Mon, 21 Nov 2005 02:46:15 +0000 Subject: [PATCH 05/28] Fixed #800 -- Fixed bug in treatement of underscores and percent signs in SQLite backend. In order to do this, changed OPERATOR_MAPPING in DB backends to include a format string of the field value, because ESCAPE comes after the field value. git-svn-id: http://code.djangoproject.com/svn/django/trunk@1326 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/db/backends/ado_mssql.py | 26 ++++++++++++------------ django/core/db/backends/mysql.py | 26 ++++++++++++------------ django/core/db/backends/postgresql.py | 26 ++++++++++++------------ django/core/db/backends/sqlite3.py | 29 +++++++++++++++------------ django/core/meta/__init__.py | 2 +- 5 files changed, 56 insertions(+), 53 deletions(-) diff --git a/django/core/db/backends/ado_mssql.py b/django/core/db/backends/ado_mssql.py index 709d35a583..be215ed7e9 100644 --- a/django/core/db/backends/ado_mssql.py +++ b/django/core/db/backends/ado_mssql.py @@ -116,19 +116,19 @@ def get_relations(cursor, table_name): raise NotImplementedError OPERATOR_MAPPING = { - 'exact': '=', - 'iexact': 'LIKE', - 'contains': 'LIKE', - 'icontains': 'LIKE', - 'ne': '!=', - 'gt': '>', - 'gte': '>=', - 'lt': '<', - 'lte': '<=', - 'startswith': 'LIKE', - 'endswith': 'LIKE', - 'istartswith': 'LIKE', - 'iendswith': 'LIKE', + 'exact': '= %s', + 'iexact': 'LIKE %s', + 'contains': 'LIKE %s', + 'icontains': 'LIKE %s', + 'ne': '!= %s', + 'gt': '> %s', + 'gte': '>= %s', + 'lt': '< %s', + 'lte': '<= %s', + 'startswith': 'LIKE %s', + 'endswith': 'LIKE %s', + 'istartswith': 'LIKE %s', + 'iendswith': 'LIKE %s', } DATA_TYPES = { diff --git a/django/core/db/backends/mysql.py b/django/core/db/backends/mysql.py index 27d166f8d1..10379f9538 100644 --- a/django/core/db/backends/mysql.py +++ b/django/core/db/backends/mysql.py @@ -128,19 +128,19 @@ def get_relations(cursor, table_name): raise NotImplementedError OPERATOR_MAPPING = { - 'exact': '=', - 'iexact': 'LIKE', - 'contains': 'LIKE BINARY', - 'icontains': 'LIKE', - 'ne': '!=', - 'gt': '>', - 'gte': '>=', - 'lt': '<', - 'lte': '<=', - 'startswith': 'LIKE BINARY', - 'endswith': 'LIKE BINARY', - 'istartswith': 'LIKE', - 'iendswith': 'LIKE', + 'exact': '= %s', + 'iexact': 'LIKE %s', + 'contains': 'LIKE BINARY %s', + 'icontains': 'LIKE %s', + 'ne': '!= %s', + 'gt': '> %s', + 'gte': '>= %s', + 'lt': '< %s', + 'lte': '<= %s', + 'startswith': 'LIKE BINARY %s', + 'endswith': 'LIKE BINARY %s', + 'istartswith': 'LIKE %s', + 'iendswith': 'LIKE %s', } # This dictionary maps Field objects to their associated MySQL column diff --git a/django/core/db/backends/postgresql.py b/django/core/db/backends/postgresql.py index 03864a5707..487dd0da68 100644 --- a/django/core/db/backends/postgresql.py +++ b/django/core/db/backends/postgresql.py @@ -133,19 +133,19 @@ Database.register_type(Database.new_type((1114,1184), "TIMESTAMP", typecasts.typ Database.register_type(Database.new_type((16,), "BOOLEAN", typecasts.typecast_boolean)) OPERATOR_MAPPING = { - 'exact': '=', - 'iexact': 'ILIKE', - 'contains': 'LIKE', - 'icontains': 'ILIKE', - 'ne': '!=', - 'gt': '>', - 'gte': '>=', - 'lt': '<', - 'lte': '<=', - 'startswith': 'LIKE', - 'endswith': 'LIKE', - 'istartswith': 'ILIKE', - 'iendswith': 'ILIKE', + 'exact': '= %s', + 'iexact': 'ILIKE %s', + 'contains': 'LIKE %s', + 'icontains': 'ILIKE %s', + 'ne': '!= %s', + 'gt': '> %s', + 'gte': '>= %s', + 'lt': '< %s', + 'lte': '<= %s', + 'startswith': 'LIKE %s', + 'endswith': 'LIKE %s', + 'istartswith': 'ILIKE %s', + 'iendswith': 'ILIKE %s', } # This dictionary maps Field objects to their associated PostgreSQL column diff --git a/django/core/db/backends/sqlite3.py b/django/core/db/backends/sqlite3.py index 6fa49131ee..930bb7c290 100644 --- a/django/core/db/backends/sqlite3.py +++ b/django/core/db/backends/sqlite3.py @@ -131,20 +131,23 @@ def get_relations(cursor, table_name): # Operators and fields ######################################################## +# SQLite requires LIKE statements to include an ESCAPE clause if the value +# being escaped has a percent or underscore in it. +# See http://www.sqlite.org/lang_expr.html for an explanation. OPERATOR_MAPPING = { - 'exact': '=', - 'iexact': 'LIKE', - 'contains': 'LIKE', - 'icontains': 'LIKE', - 'ne': '!=', - 'gt': '>', - 'gte': '>=', - 'lt': '<', - 'lte': '<=', - 'startswith': 'LIKE', - 'endswith': 'LIKE', - 'istartswith': 'LIKE', - 'iendswith': 'LIKE', + 'exact': '= %s', + 'iexact': "LIKE %s ESCAPE '\\'", + 'contains': "LIKE %s ESCAPE '\\'", + 'icontains': "LIKE %s ESCAPE '\\'", + 'ne': '!= %s', + 'gt': '> %s', + 'gte': '>= %s', + 'lt': '< %s', + 'lte': '<= %s', + 'startswith': "LIKE %s ESCAPE '\\'", + 'endswith': "LIKE %s ESCAPE '\\'", + 'istartswith': "LIKE %s ESCAPE '\\'", + 'iendswith': "LIKE %s ESCAPE '\\'", } # SQLite doesn't actually support most of these types, but it "does the right diff --git a/django/core/meta/__init__.py b/django/core/meta/__init__.py index e6114449c1..b6a148bcf6 100644 --- a/django/core/meta/__init__.py +++ b/django/core/meta/__init__.py @@ -1127,7 +1127,7 @@ def _get_where_clause(lookup_type, table_prefix, field_name, value): table_prefix = db.db.quote_name(table_prefix[:-1])+'.' field_name = db.db.quote_name(field_name) try: - return '%s%s %s %%s' % (table_prefix, field_name, db.OPERATOR_MAPPING[lookup_type]) + return '%s%s %s' % (table_prefix, field_name, (db.OPERATOR_MAPPING[lookup_type] % '%s')) except KeyError: pass if lookup_type == 'in': From a49fa746cdc056f0b660f47fbc55aa43fcd54bcc Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Mon, 21 Nov 2005 03:33:22 +0000 Subject: [PATCH 06/28] Fixed #273 -- BACKWARDS-INCOMPATIBLE CHANGE -- Changed auth.User.password field to add support for other password encryption algorithms. Renamed password_md5 to password and changed field length from 32 to 128. See http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges for upgrade information git-svn-id: http://code.djangoproject.com/svn/django/trunk@1327 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/models/auth.py | 41 +++++++++++++++++++++++++++++++---------- docs/authentication.txt | 28 +++++++++++++++++++++++++--- 2 files changed, 56 insertions(+), 13 deletions(-) diff --git a/django/models/auth.py b/django/models/auth.py index d0c13f66ce..21b4c2f146 100644 --- a/django/models/auth.py +++ b/django/models/auth.py @@ -34,7 +34,7 @@ class User(meta.Model): 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.")) + password = meta.CharField(_('password'), maxlength=128, help_text=_("Use '[algo]$[salt]$[hexdigest]")) 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')) @@ -53,7 +53,7 @@ class User(meta.Model): exceptions = ('SiteProfileNotAvailable',) admin = meta.Admin( fields = ( - (None, {'fields': ('username', 'password_md5')}), + (None, {'fields': ('username', 'password')}), (_('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')}), @@ -78,13 +78,35 @@ class User(meta.Model): return full_name.strip() def set_password(self, raw_password): - import md5 - self.password_md5 = md5.new(raw_password).hexdigest() + import sha, random + algo = 'sha1' + salt = sha.new(str(random.random())).hexdigest()[:5] + hsh = sha.new(salt+raw_password).hexdigest() + self.password = '%s$%s$%s' % (algo, salt, hsh) def check_password(self, raw_password): - "Returns a boolean of whether the raw_password was correct." - import md5 - return self.password_md5 == md5.new(raw_password).hexdigest() + """ + Returns a boolean of whether the raw_password was correct. Handles + encryption formats behind the scenes. + """ + # Backwards-compatibility check. Older passwords won't include the + # algorithm or salt. + if '$' not in self.password: + import md5 + is_correct = (self.password == md5.new(raw_password).hexdigest()) + if is_correct: + # Convert the password to the new, more secure format. + self.set_password(raw_password) + self.save() + return is_correct + algo, salt, hsh = self.password.split('$') + if algo == 'md5': + import md5 + return hsh == md5.new(salt+raw_password).hexdigest() + elif algo == 'sha1': + import sha + return hsh == sha.new(salt+raw_password).hexdigest() + raise ValueError, "Got unknown password algorithm type in password." def get_group_permissions(self): "Returns a list of permission strings that this user has through his/her groups." @@ -176,10 +198,9 @@ class User(meta.Model): def _module_create_user(username, email, password): "Creates and saves a User with the given username, e-mail and password." - import md5 - password_md5 = md5.new(password).hexdigest() now = datetime.datetime.now() - user = User(None, username, '', '', email.strip().lower(), password_md5, False, True, False, now, now) + user = User(None, username, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now) + user.set_password(password) user.save() return user diff --git a/docs/authentication.txt b/docs/authentication.txt index f9093c81e2..475595e972 100644 --- a/docs/authentication.txt +++ b/docs/authentication.txt @@ -44,9 +44,9 @@ Fields * ``first_name`` -- Optional. 30 characters or fewer. * ``last_name`` -- Optional. 30 characters or fewer. * ``email`` -- Optional. E-mail address. - * ``password_md5`` -- Required. An MD5 hash of the password. (Django - doesn't store the raw password.) Raw passwords can be arbitrarily long - and can contain any character. + * ``password`` -- Required. A hash of, and metadata about, the password. + (Django doesn't store the raw password.) Raw passwords can be arbitrarily + long and can contain any character. See the "Passwords" section below. * ``is_staff`` -- Boolean. Designates whether this user can access the admin site. * ``is_active`` -- Boolean. Designates whether this user can log into the @@ -167,6 +167,28 @@ Change a password with ``set_password()``:: >>> u.set_password('new password') >>> u.save() +Passwords +--------- + +**This only applies to the Django development version.** Previous versions, +such as Django 0.90, used simple MD5 hashes without password salts. + +The ``password`` field of a ``User`` object is a string in this format:: + + hashtype$salt$hash + +That's hashtype, salt and hash, separated by the dollar-sign character. + +Hashtype is either ``sha1`` (default) or ``md5``. Salt is a random string +used to salt the raw password to create the hash. + +For example:: + + sha1$a1976$a36cc8cbf81742a8fb52e221aaeab48ed7f58ab4 + +The ``User.set_password()`` and ``User.check_password()`` functions handle +the setting and checking of these values behind the scenes. + Anonymous users --------------- From e4e28d907aee9f0e3977e2c6237406d7746c5719 Mon Sep 17 00:00:00 2001 From: Georg Bauer Date: Mon, 21 Nov 2005 10:41:54 +0000 Subject: [PATCH 07/28] fixes #753 - ValidationError and CriticalValidationError now accept both strings and promises from gettext_lazy git-svn-id: http://code.djangoproject.com/svn/django/trunk@1328 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/validators.py | 5 +++-- django/utils/functional.py | 10 +++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/django/core/validators.py b/django/core/validators.py index b68fc0ade8..9889fadfd1 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -27,6 +27,7 @@ url_re = re.compile(r'^http://\S+$') from django.conf.settings import JING_PATH from django.utils.translation import gettext_lazy, ngettext +from django.utils.functional import Promise class ValidationError(Exception): def __init__(self, message): @@ -34,7 +35,7 @@ class ValidationError(Exception): if isinstance(message, list): self.messages = message else: - assert isinstance(message, basestring), ("%s should be a string" % repr(message)) + assert isinstance(message, (basestring, Promise)), ("%s should be a string" % repr(message)) self.messages = [message] def __str__(self): # This is needed because, without a __str__(), printing an exception @@ -49,7 +50,7 @@ class CriticalValidationError(Exception): if isinstance(message, list): self.messages = message else: - assert isinstance(message, basestring), ("'%s' should be a string" % message) + assert isinstance(message, (basestring, Promise)), ("'%s' should be a string" % message) self.messages = [message] def __str__(self): return str(self.messages) diff --git a/django/utils/functional.py b/django/utils/functional.py index f2ea12b1b2..69aeb81850 100644 --- a/django/utils/functional.py +++ b/django/utils/functional.py @@ -3,6 +3,14 @@ def curry(*args, **kwargs): return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items())) return _curried +class Promise: + """ + This is just a base class for the proxy class created in + the closure of the lazy function. It can be used to recognize + promises in code. + """ + pass + def lazy(func, *resultclasses): """ Turns any callable into a lazy evaluated callable. You need to give result @@ -10,7 +18,7 @@ def lazy(func, *resultclasses): the lazy evaluation code is triggered. Results are not memoized; the function is evaluated on every access. """ - class __proxy__: + class __proxy__(Promise): # This inner class encapsulates the code that should be evaluated # lazily. On calling of one of the magic methods it will force # the evaluation and store the result. Afterwards, the result From 7b201f6e520d5fb757925e776aee128c6e1c9749 Mon Sep 17 00:00:00 2001 From: Georg Bauer Date: Mon, 21 Nov 2005 11:09:36 +0000 Subject: [PATCH 08/28] fixed a bug that prevented the unique validation to work git-svn-id: http://code.djangoproject.com/svn/django/trunk@1329 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/meta/fields.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django/core/meta/fields.py b/django/core/meta/fields.py index 27ce0670d5..3ae9587579 100644 --- a/django/core/meta/fields.py +++ b/django/core/meta/fields.py @@ -50,7 +50,7 @@ def manipulator_validator_unique(f, opts, self, field_data, all_data): if f.rel and isinstance(f.rel, ManyToOne): lookup_type = '%s__%s__exact' % (f.name, f.rel.get_related_field().name) else: - lookup_type = '%s__exact' % (f.name, lookup_type) + lookup_type = '%s__exact' % f.name try: old_obj = opts.get_model_module().get_object(**{lookup_type: field_data}) except ObjectDoesNotExist: From a87d43f809c7614a749e9ef6af1c45ff4e075c0c Mon Sep 17 00:00:00 2001 From: Georg Bauer Date: Mon, 21 Nov 2005 11:10:19 +0000 Subject: [PATCH 09/28] fixed a bug with some validators that used parameterized gettext_lazy strings and forced them to the default language because of the % operator. Now lazy string interpolation is used. git-svn-id: http://code.djangoproject.com/svn/django/trunk@1330 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/validators.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/django/core/validators.py b/django/core/validators.py index 9889fadfd1..d1246d8f55 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -27,7 +27,9 @@ url_re = re.compile(r'^http://\S+$') from django.conf.settings import JING_PATH from django.utils.translation import gettext_lazy, ngettext -from django.utils.functional import Promise +from django.utils.functional import Promise, lazy + +lazy_inter = lazy(lambda a,b: str(a) % b, str) class ValidationError(Exception): def __init__(self, message): @@ -233,7 +235,7 @@ def hasNoProfanities(field_data, all_data): class AlwaysMatchesOtherField: def __init__(self, other_field_name, error_message=None): self.other = other_field_name - self.error_message = error_message or gettext_lazy("This field must match the '%s' field.") % self.other + self.error_message = error_message or lazy_inter(gettext_lazy("This field must match the '%s' field."), self.other) self.always_test = True def __call__(self, field_data, all_data): @@ -279,8 +281,8 @@ 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 gettext_lazy("This field must be given if %(field)s is %(value)s") % { - 'field': other_field, 'value': other_value} + self.error_message = error_message or lazy_inter(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): @@ -291,8 +293,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 gettext_lazy("This field must be given if %(field)s is not %(value)s") % { - 'field': other_field, 'value': other_value} + self.error_message = error_message or lazy_inter(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): @@ -359,8 +361,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 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 + self.min_error_message = min_error_message or lazy_inter(gettext_lazy("Make sure your uploaded file is at least %s bytes big."), min_size) + self.max_error_message = max_error_message or lazy_inter(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: From b4d379d5e1dfbd00486defadcd4a404c315d5e9a Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Mon, 21 Nov 2005 13:06:51 +0000 Subject: [PATCH 10/28] Fixed #866: static.serve view no longer opens files in text mode -- thanks, Eugene git-svn-id: http://code.djangoproject.com/svn/django/trunk@1331 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/views/static.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django/views/static.py b/django/views/static.py index f74570c307..28e43ec612 100644 --- a/django/views/static.py +++ b/django/views/static.py @@ -47,7 +47,7 @@ def serve(request, path, document_root=None, show_indexes=False): raise Http404, '"%s" does not exist' % fullpath else: mimetype = mimetypes.guess_type(fullpath)[0] - return HttpResponse(open(fullpath).read(), mimetype=mimetype) + return HttpResponse(open(fullpath, 'rb').read(), mimetype=mimetype) DEFAULT_DIRECTORY_INDEX_TEMPLATE = """ From 6c127e3883d12f18f23b9db35ab441ba46d6487b Mon Sep 17 00:00:00 2001 From: Georg Bauer Date: Mon, 21 Nov 2005 22:34:24 +0000 Subject: [PATCH 11/28] fixes #869 - updated 'sk' translation git-svn-id: http://code.djangoproject.com/svn/django/trunk@1339 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/conf/locale/sk/LC_MESSAGES/django.mo | Bin 18161 -> 18107 bytes django/conf/locale/sk/LC_MESSAGES/django.po | 294 ++++++++++---------- 2 files changed, 148 insertions(+), 146 deletions(-) diff --git a/django/conf/locale/sk/LC_MESSAGES/django.mo b/django/conf/locale/sk/LC_MESSAGES/django.mo index e05a3f7e89edde4aaba1d3004085c736191a9fd7..6157573541bf5e08def2a50106735b9f02e82dd0 100644 GIT binary patch delta 2364 zcmaLYeN2{B7{~GR@L~_diy%-EBpC4`6!8e6NFhilXyO*6^+|0Y+?CUxP`T*#Vn)MpqEh_e8WJx^WC`Q_r6pvBx@q3y6QM1J*;>LHrgf zp@ci#=gAmHoQ|PbWUW9Fc1$%5mBf$QSqnztZd`)VEw9bQ1a_Z4c~FQ|pD zp%R?K6F86S@i;eG75x)cnXtQb)SQ1J4NX+~UxzUdppM`fyd9rM<}k-`1x}&9nngLr zq@fSB!-tR}nl|*|5H{jvd<0k0sRRd62_C`~tZ&|-(S$#vc2d6FEnPJ#-i8{`gsMcF zbrpgoLplb!%|#`AE2XwpV3femr)B$*!TzQG^*q?xCrM^ ziFxzfI}?LN#H;Wg+=aS~r&05cqUIe#ZR8S$<2QNKUlUK$u@bMLCQhf$8jy>cpb#~% z*v1t$u0&0=6}iV|2QJ25)I9HEBA!C6Gl4p~Y1HNQhQl>dXg`<2G;O9{kD1wI#+h z==(oNLkrBKN)^PvDlHs=QFs$3U} zCAbztS>Ke?&~2?kooy{fVh3smU8wK17h~{EjKfp*`M7;PX}ya4=9qcZLfQAa@8_W^ zv=OzjE$C?CW*R}b8&v@Zl~6aTGX1E_^eP79Vbo5CQ9Jz@mGC9h#FMsv7FD^wQR8ne zbHA=6)ce_G{9Nck5gmcJ4wc9TOvKHo&#ncvP%kdP*HM)?+SeVv-7_#U8@}A*F(b*5 zO9DJ+`ii6aJi{XsQI#?AY5uyMjjc5){`R_^9njS9RDE+}LwiTf$okYzg1o+*q#R#C bu5Tndvo delta 2418 zcmXZde@vBC9LMo<6BJNHNLe_*M^jMwQGoaZi9(U(53q(YT@Adzl`ANh_^DI6nazZT zt(chE#+*4DZArVS)0&!S+8nN&lrvIS%UVM>)~fkOuJ@yMr~hqa2l?7qyeUwtpW+5+6iOaKy&PQI$JwpS^W7app(cI;BXKrP!%WmfMW`LGLA|#DHL(wsKm#h_X4HGzaSHB1 zRp@|yeiSwC6U_G*6a1V;869J3EQ%}Ajd=;{a6O*KYD~y5CJ{SO6MTR=q9fLRY$5&( zl~78i`#cTfiL)^ZS6bI02?tFj4VA=)+SxXY#W!&V_M$3q5_N`WQ9HbbdhbWnxcjJu zAEFX`gvW6LH~4uxg{r7|+O14Hrm((ArJ;#R|L-tnBkBm=!a4XZGM71p3-KN%V^S7l zF(0+V8l;G32WI0jti@Ych0Ewvf=5va_Txg@6sDuZtL#R^!fI7mTF%Fk5Fs2bpaSEQppayhexpMEzBPIO-@9aWbZ0G3KIf|4y8R zckvL8Bik<`}AC!JlYU(1^%)KaW~m zP27Rn$v2pS|DZ~l{ERU(F&}%e0$;|zFaclW0u*6Amf!%U<0E_p)3_*WaW8U>g61X- zEfD>j`%hv4DuHdNGrx!`)ew%u8>pS$#8g~W=q}WR+TnRrC9k5+{5#~h&24-gr!8~i zUi9hvAEKcJa`+deQsto*F2YzW!9=XYRk#zC@MY8yJV5^A zQ5AXvwXtptYT`Z`VK{)QzzI}B=TMcoin>hKF&uB9c6t}J(?3xOdy3tOV^RH2qAHh# z8efX~y2?@S`-=Iw(1TVw#$g94kzJUCdr+UPyzNe-x4F4J&{UHd zDoD8y7Lm2k$y$<^n-z*k+ZbO`z9n$!Y>Urn@zxKXar}WAMz%VBU-K5PlkRxy15VrE t;jKMYC-{|{97G35XN diff --git a/django/conf/locale/sk/LC_MESSAGES/django.po b/django/conf/locale/sk/LC_MESSAGES/django.po index c6e1d9f265..19994b5570 100644 --- a/django/conf/locale/sk/LC_MESSAGES/django.po +++ b/django/conf/locale/sk/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-16 19:51-0500\n" +"POT-Creation-Date: 2005-11-21 12:42-0500\n" "PO-Revision-Date: 2005-11-10 23:22-0500\n" "Last-Translator: Vladimir Labath \n" "Language-Team: Slovak \n" @@ -16,6 +16,89 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +#: contrib/redirects/models/redirects.py:7 +msgid "redirect from" +msgstr "presmerovaný z" + +#: contrib/redirects/models/redirects.py:8 +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" +"Tu by sa mala použiť absolútna cesta, bez domény. Napr.: '/events/search/'." + +#: contrib/redirects/models/redirects.py:9 +msgid "redirect to" +msgstr "presmerovaný na " + +#: contrib/redirects/models/redirects.py:10 +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" +"Tu môže byť buď absolútna cesta (ako hore) alebo plné URL začínajúce s " +"'http://'." + +#: contrib/redirects/models/redirects.py:12 +msgid "redirect" +msgstr "presmerovanie" + +#: contrib/redirects/models/redirects.py:13 +msgid "redirects" +msgstr "presmerovania" + +#: contrib/flatpages/models/flatpages.py:6 +msgid "URL" +msgstr "URL" + +#: contrib/flatpages/models/flatpages.py:7 +msgid "" +"Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "" +"Príklad: '/about/contact/'. Uistite sa, že máte vložené ako úvodné tak aj " +"záverečné lomítka." + +#: contrib/flatpages/models/flatpages.py:8 +msgid "title" +msgstr "názov" + +#: contrib/flatpages/models/flatpages.py:9 +msgid "content" +msgstr "obsah" + +#: contrib/flatpages/models/flatpages.py:10 +msgid "enable comments" +msgstr "povolené komentáre" + +#: contrib/flatpages/models/flatpages.py:11 +msgid "template name" +msgstr "meno predlohy" + +#: contrib/flatpages/models/flatpages.py:12 +msgid "" +"Example: 'flatpages/contact_page'. If this isn't provided, the system will " +"use 'flatpages/default'." +msgstr "" +"Príklad: 'flatpages/contact_page'. Ak sa toto nevykonalo, systém použije " +"'flatpages/default'." + +#: contrib/flatpages/models/flatpages.py:13 +msgid "registration required" +msgstr "musíte byť zaregistrovaný" + +#: contrib/flatpages/models/flatpages.py:13 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "" +"Ak je toto označené, potom len prihlásený užívateľ môže vidieť túto stránku." + +#: contrib/flatpages/models/flatpages.py:17 +msgid "flat page" +msgstr "plochá stránka" + +#: contrib/flatpages/models/flatpages.py:18 +msgid "flat pages" +msgstr "ploché stránky" + #: contrib/admin/models/admin.py:6 msgid "action time" msgstr "čas udalosti" @@ -310,88 +393,17 @@ msgstr "Ďakujeme, že používate naše stránky!" msgid "The %(site_name)s team" msgstr "Skupina %(site_name)s" -#: contrib/redirects/models/redirects.py:7 -msgid "redirect from" -msgstr "presmerovaný z" +#: utils/translation.py:335 +msgid "DATE_FORMAT" +msgstr "DATUM_FORMAT" -#: contrib/redirects/models/redirects.py:8 -msgid "" -"This should be an absolute path, excluding the domain name. Example: '/" -"events/search/'." -msgstr "" -"Tu by sa mala použiť absolútna cesta, bez domény. Napr.: '/events/search/'." +#: utils/translation.py:336 +msgid "DATETIME_FORMAT" +msgstr "DATUMCAS_FORMAT" -#: contrib/redirects/models/redirects.py:9 -msgid "redirect to" -msgstr "presmerovaný na " - -#: contrib/redirects/models/redirects.py:10 -msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"'http://'." -msgstr "" -"Tu môže byť buď absolútna cesta (ako hore) alebo plné URL začínajúce s " -"'http://'." - -#: contrib/redirects/models/redirects.py:12 -msgid "redirect" -msgstr "presmerovanie" - -#: contrib/redirects/models/redirects.py:13 -msgid "redirects" -msgstr "presmerovania" - -#: contrib/flatpages/models/flatpages.py:6 -msgid "URL" -msgstr "URL" - -#: contrib/flatpages/models/flatpages.py:7 -msgid "" -"Example: '/about/contact/'. Make sure to have leading and trailing slashes." -msgstr "" -"Príklad: '/about/contact/'. Uistite sa, že máte vložené ako úvodné tak aj " -"záverečné lomítka." - -#: contrib/flatpages/models/flatpages.py:8 -msgid "title" -msgstr "názov" - -#: contrib/flatpages/models/flatpages.py:9 -msgid "content" -msgstr "obsah" - -#: contrib/flatpages/models/flatpages.py:10 -msgid "enable comments" -msgstr "povolené komentáre" - -#: contrib/flatpages/models/flatpages.py:11 -msgid "template name" -msgstr "meno predlohy" - -#: contrib/flatpages/models/flatpages.py:12 -msgid "" -"Example: 'flatpages/contact_page'. If this isn't provided, the system will " -"use 'flatpages/default'." -msgstr "" -"Príklad: 'flatpages/contact_page'. Ak sa toto nevykonalo, systém použije " -"'flatpages/default'." - -#: contrib/flatpages/models/flatpages.py:13 -msgid "registration required" -msgstr "musíte byť zaregistrovaný" - -#: contrib/flatpages/models/flatpages.py:13 -msgid "If this is checked, only logged-in users will be able to view the page." -msgstr "" -"Ak je toto označené, potom len prihlásený užívateľ môže vidieť túto stránku." - -#: contrib/flatpages/models/flatpages.py:17 -msgid "flat page" -msgstr "plochá stránka" - -#: contrib/flatpages/models/flatpages.py:18 -msgid "flat pages" -msgstr "ploché stránky" +#: utils/translation.py:337 +msgid "TIME_FORMAT" +msgstr "CAS_FORMAT" #: utils/dates.py:6 msgid "Monday" @@ -497,18 +509,6 @@ msgstr "Nov." msgid "Dec." msgstr "Dec." -#: utils/translation.py:335 -msgid "DATE_FORMAT" -msgstr "DATUM_FORMAT" - -#: utils/translation.py:336 -msgid "DATETIME_FORMAT" -msgstr "DATUMCAS_FORMAT" - -#: utils/translation.py:337 -msgid "TIME_FORMAT" -msgstr "CAS_FORMAT" - #: models/core.py:7 msgid "domain name" msgstr "meno domény" @@ -614,8 +614,8 @@ msgid "password" msgstr "heslo" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Vložte takú hodnotu hesla , ako vám ju vráti MD5, nevkladajte ho priamo. " +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "Použi '[algo]$[salt]$[hexdigest]" #: models/auth.py:38 msgid "staff status" @@ -661,7 +661,7 @@ msgstr "Osobné údaje" msgid "Important dates" msgstr "Dôležité údaje" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Zpráva" @@ -742,71 +742,71 @@ msgstr "Švédsky" msgid "Simplified Chinese" msgstr "Zjednodušená činština " -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Toto môže obsahovať len písmená, číslice a podčiarkovníky." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "Toto môže obsahovať len písmena, číslice, podčiarkovniky a lomítka." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Veľké písmená tu nie sú povolené." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Malé písmena tu nie sú povolené." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Vložte len číslice, oddelené čiarkami." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Vložte platné e-mail adresy oddelené čiarkami." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Prosím vložte platnú IP adresu." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Prázdne hodnoty tu nie sú povolené." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Znaky, ktoré nie sú číslicami, tu nie sú povolené." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Tento údaj nemôže byť vytvorený len z číslic." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Vložte celé číslo." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Tu sú povolené len alfanumerické znaky." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Vložte platný dátum vo formáte RRRR-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Vložte platný čas vo formáte HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Vlož platný dátum/čas vo formáte RRRR-MM-DD HH:MM" -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Vložte platnú e-mail adresu." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -814,26 +814,26 @@ msgstr "" "Nahrajte platný obrázok. Súbor, ktorý ste nahrali buď nebol obrázok alebo je " "nahratý poškodený obrázok." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL %s neodkazuje na platný obrázok." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "Telefónne číslo musí mať formát XXX-XXX-XXXX. \"%s\" je neplatné." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URL %s neodkazuje na platné QuickTime video." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Platné URL je požadované." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -842,69 +842,70 @@ msgstr "" "Platná HTML je požadovaná. Konkrétne chyby sú:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Zle formované XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Neplatný URL %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Odkaz na URL %s je neplatný." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Vložte platnú skratku U.S. štátu." -#: core/validators.py:228 +#: core/validators.py:231 #, 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] "Vyjadrujte sa slušne! Slovo %s tu nie je dovolené použivať." msgstr[1] "Vyjadrujte sa slušne! Slová %s tu nie je dovolené použivať." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Toto pole sa musí zhodovať s poľom '%s'. " -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Prosím vložte niečo aspoň pre jedno pole." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Prosím vložte obidve polia, alebo nechajte ich obe prázdne. " -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Toto pole musí byť vyplnené tak, že %(field)s obsahuje %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" -msgstr "Toto pole musí byť vyplnené tak, že %(field)s nesmie obsahovať %(value)s" +msgstr "" +"Toto pole musí byť vyplnené tak, že %(field)s nesmie obsahovať %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Duplicitné hodnoty nie sú povolené." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Táto hodnota musí byť mocninou %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Prosím vložte platné desiatkové číslo. " -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -912,7 +913,7 @@ msgid_plural "" msgstr[0] "Prosím vložte platné desiatkové číslo s najviac %s číslicou." msgstr[1] "Prosím vložte platné desiatkové číslo s najviac %s číslicami." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -922,37 +923,37 @@ msgstr[0] "" msgstr[1] "" "Prosím vložte platné desatinné číslo s najviac %s desatinnými miestami." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Presvedčte sa, že posielaný súbor nemá menej ako %s bytov." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Presvedčte sa, že posielaný súbor nemá viac ako %s bytov." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formát pre toto pole je chybný." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Toto pole nie je platné." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Nič som nemohol získať z %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" " URL %(url)s vrátilo neplatnú hlavičku Content-Type '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -961,7 +962,7 @@ msgstr "" "Prosím zavrite nezavretý %(tag)s popisovač v riadku %(line)s. (Riadok " "začína s \"%(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -970,7 +971,7 @@ msgstr "" "Nejaký text začínajúci na riadku %(line)s nie je povolený v tomto kontexte. " "(Riadok začína s \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -979,7 +980,7 @@ msgstr "" "\"%(attr)s\" na riadku %(line)s je neplatný atribút. (Riadok začína s \"%" "(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -988,7 +989,7 @@ msgstr "" "\"<%(tag)s>\" na riadku %(line)s je neplatný popisovač. (Riadok začína s \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -997,7 +998,7 @@ msgstr "" "Popisovaču na riadku %(line)s chýba jeden alebo viac atribútov. (Riadok " "začína s \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1016,3 +1017,4 @@ msgid "" msgstr "" " Podržte \"Control\", alebo \"Command\" na Mac_u, na výber viac ako jednej " "položky." + From b6ddc9d3c16a028defca175781592325ae1796c8 Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Tue, 22 Nov 2005 03:39:39 +0000 Subject: [PATCH 12/28] Fixed use of "_" in RelaxNGCompact validator which was conflicting with gettext tag git-svn-id: http://code.djangoproject.com/svn/django/trunk@1340 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/validators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django/core/validators.py b/django/core/validators.py index d1246d8f55..b36f000972 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -457,7 +457,7 @@ class RelaxNGCompact: display_errors = [] lines = field_data.split('\n') for error in errors: - _, line, level, message = error.split(':', 3) + ignored, line, level, message = error.split(':', 3) # 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: From 912ddb16bca464eb9fc0d1e170fcee6406a7319c Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 04:42:26 +0000 Subject: [PATCH 13/28] Fixed formatting bug in docs/templates.txt git-svn-id: http://code.djangoproject.com/svn/django/trunk@1341 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- docs/templates.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/templates.txt b/docs/templates.txt index 53bd431e96..06910e1a91 100644 --- a/docs/templates.txt +++ b/docs/templates.txt @@ -768,6 +768,7 @@ fix_ampersands Replaces ampersands with ``&`` entities. floatformat +~~~~~~~~~~~ Displays a floating point number as 34.2 (with one decimal places) -- but only if there's a point to be displayed. From 3ae9542c2473e557566cc065156c6b1054ce3894 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 04:44:21 +0000 Subject: [PATCH 14/28] Beefed up docs for floatformat template filter git-svn-id: http://code.djangoproject.com/svn/django/trunk@1342 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- docs/templates.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/templates.txt b/docs/templates.txt index 06910e1a91..2560e1f1a1 100644 --- a/docs/templates.txt +++ b/docs/templates.txt @@ -770,8 +770,12 @@ Replaces ampersands with ``&`` entities. floatformat ~~~~~~~~~~~ -Displays a floating point number as 34.2 (with one decimal places) -- but only -if there's a point to be displayed. +Rounds a floating-point number to one decimal place -- but only if there's a +decimal part to be displayed. For example: + + * ``36.123`` gets converted to ``36.123`` + * ``36.15`` gets converted to ``36.2`` + * ``36`` gets converted to ``36`` get_digit ~~~~~~~~~ From 24b98280a5db1b9609d01efd9be963837e9689c1 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 04:45:12 +0000 Subject: [PATCH 15/28] Fixed bug in docs/templates.txt git-svn-id: http://code.djangoproject.com/svn/django/trunk@1343 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- docs/templates.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/templates.txt b/docs/templates.txt index 2560e1f1a1..bf229ee6b7 100644 --- a/docs/templates.txt +++ b/docs/templates.txt @@ -773,7 +773,7 @@ floatformat Rounds a floating-point number to one decimal place -- but only if there's a decimal part to be displayed. For example: - * ``36.123`` gets converted to ``36.123`` + * ``36.123`` gets converted to ``36.1`` * ``36.15`` gets converted to ``36.2`` * ``36`` gets converted to ``36`` From 7911173ccc44432251fc88fc513771f64d6b9f1a Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 05:04:56 +0000 Subject: [PATCH 16/28] Removed trailing slash in PROFILE_DATA_DIR in profiler-hotshot to match new-admin git-svn-id: http://code.djangoproject.com/svn/django/trunk@1346 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/handlers/profiler-hotshot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django/core/handlers/profiler-hotshot.py b/django/core/handlers/profiler-hotshot.py index 953cf0a722..6cf94b0c00 100644 --- a/django/core/handlers/profiler-hotshot.py +++ b/django/core/handlers/profiler-hotshot.py @@ -1,7 +1,7 @@ import hotshot, time, os from django.core.handlers.modpython import ModPythonHandler -PROFILE_DATA_DIR = "/var/log/cmsprofile/" +PROFILE_DATA_DIR = "/var/log/cmsprofile" def handler(req): ''' From 8a2d9fc2f4e43bcadf480eb01534f79d3b8a4729 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 05:11:14 +0000 Subject: [PATCH 17/28] Tiny logic tightening in core.template.loader -- taken from new-admin git-svn-id: http://code.djangoproject.com/svn/django/trunk@1347 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/template/loader.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django/core/template/loader.py b/django/core/template/loader.py index 20df897d71..f2b2d88f21 100644 --- a/django/core/template/loader.py +++ b/django/core/template/loader.py @@ -186,14 +186,14 @@ def do_extends(parser, token): This tag may be used in two ways: ``{% extends "base" %}`` (with quotes) uses the literal value "base" as the name of the parent template to extend, - or ``{% entends variable %}`` uses the value of ``variable`` as the name + or ``{% extends variable %}`` uses the value of ``variable`` as the name of the parent template to extend. """ bits = token.contents.split() if len(bits) != 2: raise TemplateSyntaxError, "'%s' takes one argument" % bits[0] parent_name, parent_name_var = None, None - if (bits[1].startswith('"') and bits[1].endswith('"')) or (bits[1].startswith("'") and bits[1].endswith("'")): + if bits[1][0] in ('"', "'") and bits[1][-1] == bits[1][0]: parent_name = bits[1][1:-1] else: parent_name_var = bits[1] From 1ba8bd114a487350bd47283fa067bbb80e6a66aa Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 05:19:11 +0000 Subject: [PATCH 18/28] Changed package_data formatting in setup.py to match that of new-admin git-svn-id: http://code.djangoproject.com/svn/django/trunk@1348 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- setup.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index 4183faab39..6374d7f394 100644 --- a/setup.py +++ b/setup.py @@ -33,11 +33,14 @@ setup( 'locale/sr/LC_MESSAGES/*', 'locale/sv/LC_MESSAGES/*', 'locale/zh_CN/LC_MESSAGES/*'], - 'django.contrib.admin': ['templates/admin/*.html', 'templates/admin_doc/*.html', - 'templates/registration/*.html', - 'media/css/*.css', 'media/img/admin/*.gif', - 'media/img/admin/*.png', 'media/js/*.js', - 'media/js/admin/*js'], + 'django.contrib.admin': ['templates/admin/*.html', + 'templates/admin_doc/*.html', + 'templates/registration/*.html', + 'media/css/*.css', + 'media/img/admin/*.gif', + 'media/img/admin/*.png', + 'media/js/*.js', + 'media/js/admin/*js'], }, scripts = ['django/bin/django-admin.py'], zip_safe = False, From bedf10a98dfe46dda39e8a20530f7476e7df90ff Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 05:44:04 +0000 Subject: [PATCH 19/28] Fixed #598 -- Added {% include %} template tag. Added docs and unit tests. Thanks, rjwittams git-svn-id: http://code.djangoproject.com/svn/django/trunk@1349 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/template/loader.py | 45 +++++++++++++++++++++++++++++++++- docs/templates.txt | 36 +++++++++++++++++++++++++++ tests/othertests/templates.py | 6 +++++ 3 files changed, 86 insertions(+), 1 deletion(-) diff --git a/django/core/template/loader.py b/django/core/template/loader.py index f2b2d88f21..0369a35e2b 100644 --- a/django/core/template/loader.py +++ b/django/core/template/loader.py @@ -17,7 +17,7 @@ # installed, because pkg_resources is necessary to read eggs. from django.core.exceptions import ImproperlyConfigured -from django.core.template import Template, Context, Node, TemplateDoesNotExist, TemplateSyntaxError, resolve_variable_with_filters, register_tag +from django.core.template import Template, Context, Node, TemplateDoesNotExist, TemplateSyntaxError, resolve_variable_with_filters, resolve_variable, register_tag from django.conf.settings import TEMPLATE_LOADERS template_source_loaders = [] @@ -160,6 +160,32 @@ class ExtendsNode(Node): parent_block.nodelist = block_node.nodelist return compiled_parent.render(context) +class ConstantIncludeNode(Node): + def __init__(self, template_path): + try: + t = get_template(template_path) + self.template = t + except: + self.template = None + + def render(self, context): + if self.template: + return self.template.render(context) + else: + return '' + +class IncludeNode(Node): + def __init__(self, template_name): + self.template_name = template_name + + def render(self, context): + try: + template_name = resolve_variable(self.template_name, context) + t = get_template(template_name) + return t.render(context) + except: + return '' # Fail silently for invalid included templates. + def do_block(parser, token): """ Define a block that can be overridden by child templates. @@ -202,5 +228,22 @@ def do_extends(parser, token): raise TemplateSyntaxError, "'%s' cannot appear more than once in the same template" % bits[0] return ExtendsNode(nodelist, parent_name, parent_name_var) +def do_include(parser, token): + """ + Loads a template and renders it with the current context. + + Example:: + + {% include "foo/some_include" %} + """ + bits = token.contents.split() + if len(bits) != 2: + raise TemplateSyntaxError, "%r tag takes one argument: the name of the template to be included" % bits[0] + path = bits[1] + if path[0] in ('"', "'") and path[-1] == path[0]: + return ConstantIncludeNode(path[1:-1]) + return IncludeNode(bits[1]) + register_tag('block', do_block) register_tag('extends', do_extends) +register_tag('include', do_include) diff --git a/docs/templates.txt b/docs/templates.txt index bf229ee6b7..53df12e6a0 100644 --- a/docs/templates.txt +++ b/docs/templates.txt @@ -492,6 +492,40 @@ ifnotequal Just like ``ifequal``, except it tests that the two arguments are not equal. +include +~~~~~~~ + +**Only available in Django development version.** + +Loads a template and renders it with the current context. This is a way of +"including" other templates within a template. + +The template name can either be a variable or a hard-coded (quoted) string, +in either single or double quotes. + +This example includes the contents of the template ``"foo/bar"``:: + + {% include "foo/bar" %} + +This example includes the contents of the template whose name is contained in +the variable ``template_name``:: + + {% include template_name %} + +An included template is rendered with the context of the template that's +including it. This example produces the output ``"Hello, John"``: + + * Context: variable ``person`` is set to ``"john"``. + * Template:: + + {% include "name_snippet" %} + + * The ``name_snippet`` template:: + + Hello, {{ person }} + +See also: ``{% ssi %}``. + load ~~~~ @@ -645,6 +679,8 @@ file are evaluated as template code, within the current context:: Note that if you use ``{% ssi %}``, you'll need to define `ALLOWED_INCLUDE_ROOTS`_ in your Django settings, as a security measure. +See also: ``{% include %}``. + .. _ALLOWED_INCLUDE_ROOTS: http://www.djangoproject.com/documentation/settings/#allowed-include-roots templatetag diff --git a/tests/othertests/templates.py b/tests/othertests/templates.py index 729105d8fc..1211cde86b 100644 --- a/tests/othertests/templates.py +++ b/tests/othertests/templates.py @@ -134,6 +134,12 @@ TEMPLATE_TESTS = { 'ifnotequal03': ("{% ifnotequal a b %}yes{% else %}no{% endifnotequal %}", {"a": 1, "b": 2}, "yes"), 'ifnotequal04': ("{% ifnotequal a b %}yes{% else %}no{% endifnotequal %}", {"a": 1, "b": 1}, "no"), + ### INCLUDE TAG ########################################################### + 'include01': ('{% include "basic-syntax01" %}', {}, "something cool"), + 'include02': ('{% include "basic-syntax02" %}', {'headline': 'Included'}, "Included"), + 'include03': ('{% include template_name %}', {'template_name': 'basic-syntax02', 'headline': 'Included'}, "Included"), + 'include04': ('a{% include "nonexistent" %}b', {}, "ab"), + ### INHERITANCE ########################################################### # Standard template with no inheritance From 57981fb2fa525f66746fdb1ecfacf66e9b425375 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 05:47:51 +0000 Subject: [PATCH 20/28] Changed views.defaults page_not_found and server_error to pass in optional template_name override git-svn-id: http://code.djangoproject.com/svn/django/trunk@1350 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/views/defaults.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/django/views/defaults.py b/django/views/defaults.py index 062f1a8cf5..95c18b4263 100644 --- a/django/views/defaults.py +++ b/django/views/defaults.py @@ -47,7 +47,7 @@ def shortcut(request, content_type_id, object_id): return httpwrappers.HttpResponseRedirect(obj.get_absolute_url()) return httpwrappers.HttpResponseRedirect('http://%s%s' % (object_domain, obj.get_absolute_url())) -def page_not_found(request): +def page_not_found(request, template_name='404'): """ Default 404 handler, which looks for the requested URL in the redirects table, redirects if found, and displays 404 page if not redirected. @@ -55,15 +55,15 @@ def page_not_found(request): Templates: `404` Context: None """ - t = loader.get_template('404') + t = loader.get_template(template_name) return httpwrappers.HttpResponseNotFound(t.render(Context())) -def server_error(request): +def server_error(request, template_name='500'): """ 500 error handler. Templates: `500` Context: None """ - t = loader.get_template('500') + t = loader.get_template(template_name) return httpwrappers.HttpResponseServerError(t.render(Context())) From ceecf0f7def73c79fed70b46e815dc0315b04fb5 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 14:22:02 +0000 Subject: [PATCH 21/28] Fixed #874 -- Changed debug views to use text/html mime-type instead of DEFAULT_CONTENT_TYPE. Thanks, Sune git-svn-id: http://code.djangoproject.com/svn/django/trunk@1351 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/views/debug.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django/views/debug.py b/django/views/debug.py index 4aece9443d..189b244af2 100644 --- a/django/views/debug.py +++ b/django/views/debug.py @@ -55,7 +55,7 @@ def technical_500_response(request, exc_type, exc_value, tb): 'settings' : settings_dict, }) - return HttpResponseServerError(t.render(c)) + return HttpResponseServerError(t.render(c), mimetype='text/html') def technical_404_response(request, exception): """ @@ -76,7 +76,7 @@ def technical_404_response(request, exception): 'request_protocol' : os.environ.get("HTTPS") == "on" and "https" or "http", 'settings' : dict([(k, getattr(settings, k)) for k in dir(settings) if k.isupper()]), }) - return HttpResponseNotFound(t.render(c)) + return HttpResponseNotFound(t.render(c), mimetype='text/html') def _get_lines_from_file(filename, lineno, context_lines): """ From 2bb84b9c2c84a23f4011f456a74a51863b6ff8e6 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 14:23:07 +0000 Subject: [PATCH 22/28] Fixed #875 -- Fixed typo in docs/db-api.txt. Thanks, wojtek git-svn-id: http://code.djangoproject.com/svn/django/trunk@1352 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- docs/db-api.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/db-api.txt b/docs/db-api.txt index 30dece6482..fe17bd5921 100644 --- a/docs/db-api.txt +++ b/docs/db-api.txt @@ -142,7 +142,7 @@ double-underscore). For example:: translates (roughly) into the following SQL:: - SELECT * FROM polls_polls WHERE pub_date < NOW(); + SELECT * FROM polls_polls WHERE pub_date <= NOW(); .. admonition:: How this is possible From e1b2e48a3eabad7c888ba966e4098667604595f5 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 14:24:07 +0000 Subject: [PATCH 23/28] Fixed #876 -- Fixed typos in docs/forms.txt. Thanks, czhang git-svn-id: http://code.djangoproject.com/svn/django/trunk@1353 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- docs/forms.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/forms.txt b/docs/forms.txt index 8d2f2ead9c..6074564ce9 100644 --- a/docs/forms.txt +++ b/docs/forms.txt @@ -100,7 +100,7 @@ view has a number of problems: * Even if you *do* perform validation, there's still no way to give that information to the user is any sort of useful way. - * You'll have to separate create a form (and view) that submits to this + * You'll have to separately create a form (and view) that submits to this page, which is a pain and is redundant. Let's dodge these problems momentarily to take a look at how you could create a @@ -305,7 +305,7 @@ about editing an existing one? It's shockingly similar to creating a new one:: except places.PlaceDoesNotExist: raise Http404 - # Grab the Place object is question for future use. + # Grab the Place object in question for future use. place = manipulator.original_object if request.POST: From 5b662cdd863908b138e896d888a96e65d70b06cb Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 19:21:51 +0000 Subject: [PATCH 24/28] Added docs/add_ons.txt -- small documentation of contrib git-svn-id: http://code.djangoproject.com/svn/django/trunk@1354 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- docs/add_ons.txt | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 docs/add_ons.txt diff --git a/docs/add_ons.txt b/docs/add_ons.txt new file mode 100644 index 0000000000..44354d9c82 --- /dev/null +++ b/docs/add_ons.txt @@ -0,0 +1,66 @@ +===================== +The "contrib" add-ons +===================== + +Django aims to follow Python's "batteries included" philosophy. It ships with a +variety of extra, optional tools that solve common Web-development problems. + +This code lives in ``django/contrib`` in the Django distribution. Here's a +rundown of the packages in ``contrib``: + +admin +===== + +The automatic Django administrative interface. For more information, see +`Tutorial 3`_. + +.. _Tutorial 3: http://www.djangoproject.com/documentation/tutorial2/ + +comments +======== + +A simple yet flexible comments system. This is not yet documented. + +flatpages +========= + +A framework for managing simple "flat" HTML content in a database. + +See the `flatpages documentation`_. + +.. _flatpages documentation: http://www.djangoproject.com/documentation/flatpages/ + +markup +====== + +A collection of template filters that implement these common markup languages: + + * Textile + * Markdown + * ReST (ReStructured Text) + +redirects +========= + +A framework for managing redirects. + +See the `redirects documentation`_. + +.. _redirects documentation: http://www.djangoproject.com/documentation/redirects/ + +syndication +=========== + +A framework for generating syndication feeds, in RSS and Atom, quite easily. + +See the `syndication documentation`_. + +.. _syndication documentation: http://www.djangoproject.com/documentation/syndication/ + +Other add-ons +============= + +If you have an idea for functionality to include in ``contrib``, let us know! +Code it up, and post it to the `django-users mailing list`_. + +.. _django-users mailing list: http://groups.google.com/group/django-users From b58c8205584640ca746e9cad242e6735c665c981 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 19:41:09 +0000 Subject: [PATCH 25/28] Fixed #879 -- Middleware loader now throws a better error for MIDDLEWARE_CLASSES value without a dot. Thanks, Noah Slater git-svn-id: http://code.djangoproject.com/svn/django/trunk@1355 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/handlers/base.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/django/core/handlers/base.py b/django/core/handlers/base.py index ba2e286721..c34d0b52cb 100644 --- a/django/core/handlers/base.py +++ b/django/core/handlers/base.py @@ -17,7 +17,10 @@ class BaseHandler: self._response_middleware = [] self._exception_middleware = [] for middleware_path in settings.MIDDLEWARE_CLASSES: - dot = middleware_path.rindex('.') + try: + dot = middleware_path.rindex('.') + except ValueError: + raise exceptions.ImproperlyConfigured, '%s isn\'t look like a middleware module' % middleware_path mw_module, mw_classname = middleware_path[:dot], middleware_path[dot+1:] try: mod = __import__(mw_module, '', '', ['']) From 1663623fadf80dc64a6f89826decfa2cd04a158a Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 22 Nov 2005 19:41:43 +0000 Subject: [PATCH 26/28] Fixed grammar error in error message from [1355] git-svn-id: http://code.djangoproject.com/svn/django/trunk@1356 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/handlers/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django/core/handlers/base.py b/django/core/handlers/base.py index c34d0b52cb..755df23752 100644 --- a/django/core/handlers/base.py +++ b/django/core/handlers/base.py @@ -20,7 +20,7 @@ class BaseHandler: try: dot = middleware_path.rindex('.') except ValueError: - raise exceptions.ImproperlyConfigured, '%s isn\'t look like a middleware module' % middleware_path + raise exceptions.ImproperlyConfigured, '%s isn\'t a middleware module' % middleware_path mw_module, mw_classname = middleware_path[:dot], middleware_path[dot+1:] try: mod = __import__(mw_module, '', '', ['']) From edad9cd687086a65368a2a543c5f5e037ccfa124 Mon Sep 17 00:00:00 2001 From: Georg Bauer Date: Tue, 22 Nov 2005 21:01:34 +0000 Subject: [PATCH 27/28] preliminary fix for DATE_FORMAT and friends in 'cs' translation git-svn-id: http://code.djangoproject.com/svn/django/trunk@1357 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/conf/locale/cs/LC_MESSAGES/django.mo | Bin 17872 -> 17841 bytes django/conf/locale/cs/LC_MESSAGES/django.po | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/django/conf/locale/cs/LC_MESSAGES/django.mo b/django/conf/locale/cs/LC_MESSAGES/django.mo index a2d3d3e8ed08a43251351baca6ea0b625aebbe4b..744e04dcb92e4af79d3c4dbda744edcd3619ea0a 100644 GIT binary patch delta 1598 zcmXxkOGs5g9LMnyO*6e(zOI!QZssH5<|`{7X;-g;8A@ehl3->QsfCY48p4qhu_OXX zLI^@~5t5Xe1wqm#+E|Fy&bCr3Z4o`7$M@$sE%Y-p=gfcR|DQQ`X(VW7Bg5_hVvMME0~UJsCn)zV|Jq#_hLB~Vt1CY zOfrpW1~g#_6YvLSV05-I2eAO_unR-*4QgYHn2*bN6(e%^!yydCQB)%1sEtgb5}kIO z&#{a-#K24EgD|^rJR(9rgYVXM7YD z-x{akqA`Iwo5vW7pHP9nq6hzAG$!rm9MOkbpc?hwNylbXWiI1U9KcpwL?xPgfDHy2 zQ;!R*Z%%W-x&u2n$RaF8j??tvU7SLduB^Zgd>oZY3o5e?)JD1;`%sw;IQ?NvqJJBe z=p$5uFVM~U<{b@{bQODW9d(J$aYYrV6ZO0oRoZKK1cz`BE@2b?#29QKi%RT3LYa9? z#WmDM;<<22I2VUl-_+4)#uZG&l47cW_53@GW0-*-QKkHgHQ36x$TcxfQKkKi<>+FP zo}WNfY66wW6e@vPJde-N(#|}7dw~Ed(@PkSS5TF>g`9#JM;*zs({C%~lcfIuwLpBC zJ>P>`I30BtveAoWsLHiq8cvr{|D7~GFyO~^)LG{Q>_C20peodOtu(I`>_VxZ+>ZPP86WC$HKLBD1veH#-TGmt zKZbg50#(6>&iJe|zJRLGYt+WyqAL8}qM=*)1@(D-NBz)*RoEt?GRZ&%C_*h9KxKB! z8E?X1`WG+++fkWzqT&vs=HJ0MyoW(JcgFSHyQ?kJTjTRK_`H>c7md^T@5bORW6pYDo-wWVm`g3sxmSa91 z%QB9cM5CJlz3>%N&^ybROiaTZEW`EKj4}8D71#jg;x}wWf6$l_cp2j`f=Z+vmB1s6 z$8PJ(pkqt{18?kvgxT)Gsi=xf#LYMzN8xd7z)Lt96X&=KrlA50paKixFwC*fi_k}Z z1**auQR{~t8fi2du?VkWAr7D-os{i5%{m*ka6T%dV$?#bkeJLS9D=Q=3Y2RR?tA;)P>;{|+*D&2-Wci}2jCJm^}noxlpvz|s})@J)x za6J8+s6?Nk5`2wg+24Gop_2Z=T8!mt>JsfoEp!z1ycM;;1zdr*a4P=53QQ&XL~Otk zY(bVZ?=T>r>rejY@beHnYE}qY=VCn2K8#7{i~b=ief{kD2%zRmzEcgJpOGxhCc< zsRG6PCDVy#^IX1!|#cJHFTU zn^0$e67_wb#prjB`u&KYHhzLW?6dt(sIwomefeW|2}G77b@`QcD&z?e?(R23o7vMs0#mdXy{T6UFv>bDX1Ts3~LT5lM>Vd zn@}59qB7fM#}DEV`pp=FCsCQ6L4CG2Q15qOGCoF+`dhsZ{PULW+8ge Date: Tue, 22 Nov 2005 21:45:54 +0000 Subject: [PATCH 28/28] added translation hooks to timesince and updated message files to reflect them (and updated the 'de' translation). Additionally some smallish code changes to timesince (that weird zip thingy was just scary - and there is no need to .floor an integer division) git-svn-id: http://code.djangoproject.com/svn/django/trunk@1359 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/conf/locale/bn/LC_MESSAGES/django.mo | Bin 27102 -> 26898 bytes django/conf/locale/bn/LC_MESSAGES/django.po | 141 ++++-- django/conf/locale/cs/LC_MESSAGES/django.mo | Bin 17841 -> 17734 bytes django/conf/locale/cs/LC_MESSAGES/django.po | 146 ++++-- django/conf/locale/cy/LC_MESSAGES/django.mo | Bin 17077 -> 16972 bytes django/conf/locale/cy/LC_MESSAGES/django.po | 141 ++++-- django/conf/locale/da/LC_MESSAGES/django.mo | Bin 16930 -> 16807 bytes django/conf/locale/da/LC_MESSAGES/django.po | 141 ++++-- django/conf/locale/de/LC_MESSAGES/django.mo | Bin 18377 -> 18498 bytes django/conf/locale/de/LC_MESSAGES/django.po | 137 ++++-- django/conf/locale/en/LC_MESSAGES/django.mo | Bin 536 -> 536 bytes django/conf/locale/en/LC_MESSAGES/django.po | 134 +++-- django/conf/locale/es/LC_MESSAGES/django.mo | Bin 5203 -> 5203 bytes django/conf/locale/es/LC_MESSAGES/django.po | 134 +++-- django/conf/locale/fr/LC_MESSAGES/django.mo | Bin 17820 -> 17427 bytes django/conf/locale/fr/LC_MESSAGES/django.po | 458 +++++++++++------- django/conf/locale/gl/LC_MESSAGES/django.mo | Bin 5322 -> 5322 bytes django/conf/locale/gl/LC_MESSAGES/django.po | 134 +++-- django/conf/locale/is/LC_MESSAGES/django.mo | Bin 17844 -> 17726 bytes django/conf/locale/is/LC_MESSAGES/django.po | 141 ++++-- django/conf/locale/it/LC_MESSAGES/django.mo | Bin 16611 -> 16501 bytes django/conf/locale/it/LC_MESSAGES/django.po | 141 ++++-- django/conf/locale/no/LC_MESSAGES/django.mo | Bin 17439 -> 17324 bytes django/conf/locale/no/LC_MESSAGES/django.po | 141 ++++-- .../conf/locale/pt_BR/LC_MESSAGES/django.mo | Bin 16457 -> 16330 bytes .../conf/locale/pt_BR/LC_MESSAGES/django.po | 141 ++++-- django/conf/locale/ro/LC_MESSAGES/django.mo | Bin 17204 -> 17096 bytes django/conf/locale/ro/LC_MESSAGES/django.po | 141 ++++-- django/conf/locale/ru/LC_MESSAGES/django.mo | Bin 14108 -> 13774 bytes django/conf/locale/ru/LC_MESSAGES/django.po | 395 ++++++++------- django/conf/locale/sk/LC_MESSAGES/django.mo | Bin 18107 -> 18107 bytes django/conf/locale/sk/LC_MESSAGES/django.po | 203 ++++---- django/conf/locale/sr/LC_MESSAGES/django.mo | Bin 17377 -> 17264 bytes django/conf/locale/sr/LC_MESSAGES/django.po | 146 ++++-- django/conf/locale/sv/LC_MESSAGES/django.mo | Bin 17733 -> 17616 bytes django/conf/locale/sv/LC_MESSAGES/django.po | 141 ++++-- .../conf/locale/zh_CN/LC_MESSAGES/django.mo | Bin 17047 -> 16940 bytes .../conf/locale/zh_CN/LC_MESSAGES/django.po | 306 +++++++----- django/utils/timesince.py | 30 +- 39 files changed, 2130 insertions(+), 1362 deletions(-) diff --git a/django/conf/locale/bn/LC_MESSAGES/django.mo b/django/conf/locale/bn/LC_MESSAGES/django.mo index 14e21598bcdfb622b8a375369b3b84ef499e1356..b4d427d19cfead11725631fc19d70ec665fe4d69 100644 GIT binary patch delta 4028 zcmX}v4_H^#9mnx6LGmZyhoT|^f)b!9DhLxa{F9_5DG-U8voK0=<{o9P9&`4yX|%1d z@~T@yEsfzHY@$de;!K+M$DD|{GK+F8SNddH>h{cMx%Y>A^FDrkopXQpo_o&soO6Fa zI!*+vY7g*tbPHNz9LI@xqPB}!Y=GII2%R;1p{v=Q_#!6bhj<@e!$K_TX7&)ig1s;> z+KeVF9s@BMZ^ktIC8lE#zKUGuw=ER9b7BVu<6kip-*+#tzawqir|83r$g?|dx)r){ zvmP)U`N;B6_ZOocGy_Ah4C`<%=3-P2vmQL(CQ?v?W!M)hQ4d;;{je6*v9~c5k70kj zio-Cmr&$7)pfa=&`N-CwuCK=oY{vo&iZLt4A`IgBwwr=_xEFJ<6(7TENQ$hIyvoI> z>y~---=aqTf>&RQW2mo3b+`kSfwMRP&!Yx5EY@r(jzhmr9HgKdj-zfk<<&d9`dQEO zsE%C3aQrvwzM$UBFNWh!FblJB9;$;IQEOo{>iT+AJB_``e;9>kPH4Ry!hv`KBk?+F zE+gaIj`c!iAi=Arq8c2Cx_=lB#<8gT7oY~{N1C$dz4P0UzT4h7@~;P+;DkEzDc*u# zp&Go5qwprS#&jHuNmzqb*n+>taV!8W#>1G2=TRN$)5q)?oP_GoNz_{VCu$&9{S-8U z>)wgrL^owosE+kSeV&B$#rmUCpO4xV#hwqNQu;V*aXpE;?;qazb2y6nB~&JcCYe2m z{sIatOshw&&Q{diMY0t%75T^@Z2=}@HEQHLaSGk@Zi82EL1peR`gOq(?}C#UO#KXo;Mbntp%&XUuO2zT9YGAL;S^Lm8K^hk zNK`w;s1Z*`T{j!mZY8P%O9qgC^>~?gVHHMEcTg#+MSZ>tb>ka&PXI40tfwA1kmM%o|Dv{E z*iiRdE)^$JAB|&iCCrLU+EE=HlLwhKuOv6C>P=d^^$|!F5z-dfo2MeHJQX6H&Y2e*6{ALbcn0 zS`(M>GwuH$C@>i7$m={|(Yy>&sDF>TA(n0{WrI*D8-aR22`a_qn27U{X}4;O#b&I) z4{!tKjWOGTpP=r4daOF=XS-0)gVuTOKrND19Dt{AE(YG={&1L&>d0o)nt2m@;1P_% zGhY2WREI)%iOj}qWQ?{BHQu?G7&_|G(qJL{2EhCvi89 zE^>bpUd9#FLyO&2yArv?t|LjX!h78>m(^Ioh`zxuIbV98o5|a!@O?tP5|y!YxE$w} zQpRse$^UBd&Ask`v{gFC*_BJB=ymqxD40#w47A z+4vah0oy$fqptrPd6!w2NBAX-Iq1V}7>~`Uwe%t8YyY38z&pr>vPZP&Do~585|!c? zQ9Z8nY(Xuec2tTlpsw#T$6bVZm_mKFSAP!Gp(a#2|H6LwzfS2wQic0Q8i(p>k!KmI zrwdRGtiYc5I;x?gI2gaEa7IM*%RNSMKe2*nBGwZ+l>IhhIgvn=5^oaZ$;K0Zbk;;9 zX1qg54@oDM5;}GghdWE|e@8(n)Un(7G9oSE6-rtaI<^qGL@SX-yyOgsj0 zI-GRR$UMBVun(eop zg;6ni`l7p=SVdG2b%c&)qPDZd4_NF@usm)Y+bC^v4n>u)%iLcY@(@v_f_H4hNP;bP z<2XX8kXT0ip3sp>EF^xR3daWG>CO^={WdP{dNI0jRm$F=kj%`ajO-CvS&b#Pm1H`N QxzSErUU=iQnN{Kc2RV=OS^xk5 delta 4171 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\n" "Language-Team: Ankur Bangla \n" @@ -507,6 +507,38 @@ msgstr "নভে." msgid "Dec." msgstr "ডিসে." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "মে" +msgstr[1] "মে" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "স্থান" +msgstr[1] "স্থান" + #: models/core.py:7 msgid "domain name" msgstr "ক্ষেত্র নাম" @@ -612,8 +644,8 @@ msgid "password" msgstr "পাসওয়ার্ড" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "একটি MD5 হ্যাশ ব্যাবহার করুন -- পরিস্কার পাসওয়ার্ড না যেন।" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -658,7 +690,7 @@ msgstr "ব্যক্তিগত তথ্য" msgid "Important dates" msgstr "গুরুত্বপূর্ণ তারিখ" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "বার্তা" @@ -739,71 +771,71 @@ msgstr "" msgid "Simplified Chinese" msgstr "সরলীকৃত চীনা" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "এই মানটি শুধু মাত্র অক্ষর, অংক, এবং আন্ডারস্কোর (_) হতে পারবে।" -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "এই মানটি শুধু মাত্র অক্ষর, অংক, আন্ডারস্কোর (_) এবং স্ল্যাশ হতে পারবে।" -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "বড় হাতের অক্ষর এখানে ঢোকাতে পারবেন না।" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "ছোটহাতের অক্ষর এখানে ঢোকাতে পারবেন না।" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "কমা দ্বারা আলাদা করে শুধু মাত্র অংক ঢোকান।" -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "কমা দ্বারা আলাদা করে বৈধ ই-মেল ঠিকানা ঢোকান।" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "দয়া করে একটি বৈধ IP ঠিকানা ঢোকান।" -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "ফাঁকা মান এখানে ঢোকাতে পারবেন না।" -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "অংক বিহীন অক্ষর এখানে ঢোকাতে পারবেন না।" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "এই মানটি শুধু মাত্র অংকের দ্বারা গঠিত হতে পারে না।" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "একটি গোটা সংখ্যা ঢোকান।" -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "এখানে শুধু মাত্র অক্ষর ঢোকাতে পারবেন ।" -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "YYYY-MM-DD ফরম্যাটে একটি বৈধ তারিখ ঢোকান।" -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "HH:MM ফরম্যাটে একটি বৈধ সময় ঢোকান।" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "YYYY-MM-DD.HH:MM ফরম্যাটে একটি বৈধ তারিখ/সময় ঢোকান।" -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "একটি বৈধ ই-মেল ঠিকানা ঢোকান।" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -811,26 +843,26 @@ msgstr "" "একটি বৈধ চিত্র আপলোড করুন। যে ফাইল আপনি আপলোড করলেন তা হয় একটি চিত্র নয় অথবা " "একটি খারাপ চিত্র।" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "%s ইউ.আর.এল-এ একটি বৈধ চিত্র নেই।" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "ফোন নম্বর XXX-XXX-XXXX ফরম্যাটে অবশ্যই হতে হবে। \"%s\" অবৈধ।" -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "%s ইউ.আর.এল-এ একটি বৈধ QuickTime ভিডিও পাওয়া গেল না।" -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "একটি বৈধ ইউ.আর.এল জরুরি।" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -839,69 +871,69 @@ msgstr "" "বৈধ এইচটিএমএল প্রয়োজনীয়। ত্রুটিগুল হল:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "খারাপভাবে গঠিত এক্সএমএল: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "অবৈধ ইউ.আর.এল: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "ইউ.আর.এল %s একটি ভাঙা সংযোগ।" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "একটি বৈধ U S. রাজ্য abbreviation ঢোকান।" -#: core/validators.py:228 +#: core/validators.py:231 #, 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:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "এই ক্ষেত্রটি '%s' ক্ষেত্রের সঙ্গে অবশ্যই মিলতে হবে।" -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "দয়া করে অন্তত এক ক্ষেত্রেতে কিছু জিনিষ ঢোকান।" -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "দয়া করে উভয় ক্ষেত্রে ঢোকান অথবা তাদেরকে উভয় ফাঁকা ছেড়ে চলে যান।" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "এই ক্ষেত্রেটি অবশ্যই দেওয়া হবে যদি %(field)s %(value)s হয়" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "এই ক্ষেত্রেটি অবশ্যই দেওয়া হবে যদি %(field)s %(value)s না হয়" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "নকল মান অনুমতি দেওয়া হল না।" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "এই মানটি %sএর একটি গুন অবশ্যই হতে হবে।" -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান।" -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -909,7 +941,7 @@ msgid_plural "" msgstr[0] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার অক্ষরের সংখ্যা %s থেকে কম হবে।" msgstr[1] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার অক্ষরের সংখ্যা %s থেকে কম হবে।" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -917,37 +949,37 @@ msgid_plural "" msgstr[0] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার দশমিক স্থান %s থেকে কম হবে।" msgstr[1] "দয়া করে একটি বৈধ দশমিক সংখ্যা ঢোকান যার দশমিক স্থান %s থেকে কম হবে।" -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "আাপনার আপলোড করা ফাইল যেন অন্তত %s বাইট বড় হয় তা নিশ্চিত করুন।" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "আাপনার আপলোড করা ফাইল যেন %s বাইটের থেকে বড় না হয় তা নিশ্চিত করুন।" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "এই ক্ষেত্রের জন্য ফরম্যাটটি ভূল।" -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "এই ক্ষেত্রেটি অবৈধ।" -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "%s থেকে কোন কিছু গ্রহন করতে পারলাম না।" -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" "ইউ.আর.এল %(url)s অবৈধ Content-Type শিরোনাম নিয়ে '%(contenttype)s ফিরে আসল।" -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -956,7 +988,7 @@ msgstr "" "দয়া করে লাইন %(line)s থেকে খোলা %(tag)s বন্ধ করুন। (\"%(start)s\"এর সঙ্গে লাইন " "আরম্ভ।)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -965,7 +997,7 @@ msgstr "" "লাইন %(line)s এই প্রসঙ্গে কিছু শব্দ লেখার অনুমতি দেওয়া গেল না। (\"%(start)s\"এর " "সঙ্গে লাইন আরম্ভ।)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -973,7 +1005,7 @@ msgid "" msgstr "" "লাইন %(line)s\"%(attr)s\"একটি অবৈধ বৈশিষ্ট্য। (\"%(start)s\"এর সঙ্গে লাইন আরম্ভ।)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -982,7 +1014,7 @@ msgstr "" " %(line)s লাইনে \"<%(tag)s>\" একটি অবৈধ ট্যাগ। (\"%(start)s\"এর সঙ্গে লাইন " "আরম্ভ।)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -991,7 +1023,7 @@ msgstr "" "লাইন %(line)s একটি ট্যাগে এক অথবা আরও বেশি প্রয়োজনীয় বিশিষ্ট্যাবলী নেই। (\"%" "(start)s\"এর সঙ্গে লাইন আরম্ভ।)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1010,3 +1042,6 @@ msgid "" msgstr "" "একের চেয়ে বেশি নির্বাচন করতে \"Control\" অথবা ম্যাক-এ \"Command\" চেপে ধরে " "রাখুন।" + +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "একটি MD5 হ্যাশ ব্যাবহার করুন -- পরিস্কার পাসওয়ার্ড না যেন।" diff --git a/django/conf/locale/cs/LC_MESSAGES/django.mo b/django/conf/locale/cs/LC_MESSAGES/django.mo index 744e04dcb92e4af79d3c4dbda744edcd3619ea0a..9f1e643a38b028b1be9caeaf3d922d5d40b54aaa 100644 GIT binary patch delta 4596 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\n" "Language-Team: Czech\n" @@ -512,6 +512,43 @@ msgstr "List." msgid "Dec." msgstr "Pros." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Květen" +msgstr[1] "Květen" +msgstr[2] "Květen" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "web" +msgstr[1] "web" +msgstr[2] "web" + #: models/core.py:7 msgid "domain name" msgstr "jméno domény" @@ -617,8 +654,8 @@ 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." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 #, fuzzy @@ -665,7 +702,7 @@ msgstr "Osobní informace" msgid "Important dates" msgstr "Důležitá data" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Zpráva" @@ -746,72 +783,72 @@ msgstr "Švédsky" msgid "Simplified Chinese" msgstr "Jednoduchá čínština" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Tato hodnota musí obsahovat pouze znaky, čísla nebo podtržítka." -#: core/validators.py:63 +#: core/validators.py:66 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:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Velká písmena zde nejsou povolená." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Malá písmena zde nejsou povolená." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Vložte pouze cifry oddělené čárkami." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Vložte platné e-mailové adresy oddělené čárkami." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Prosíme, zadejte platnou IP adresu." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Zde nejsou povolené prázdné hodnoty." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Znaky, které nejsou čísla, nejsou zde povoleny." -#: core/validators.py:110 +#: core/validators.py:113 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:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Vložte celé číslo." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Zde jsou povoleny pouze alfanumerické znaky." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Vložte platné datum ve formátu RRRR-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Vložte platný čas ve formátu HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 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:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Vložte platnou e-mailovou adresu." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -819,26 +856,26 @@ msgstr "" "Nahrajte na server platný obrázek. Soubor, který jste nahrál(a) nebyl " "obrázek, nebo byl porušen." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL %s neukazuje na platný obrázek." -#: core/validators.py:158 +#: core/validators.py:161 #, 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:166 +#: core/validators.py:169 #, 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:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Je vyžadováno platné URL." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -847,26 +884,26 @@ msgstr "" "Je vyžadováno platné HTML. Konkrétní chyby jsou:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Špatně formované XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Neplatné URL: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Odkaz na URL %s je rozbitý." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Vložte platnou zkraku U.S. státu." -#: core/validators.py:228 +#: core/validators.py:231 #, 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." @@ -874,43 +911,43 @@ msgstr[0] "Mluvte slušně! Slovo %s zde není přípustné." msgstr[1] "Mluvte slušně! Slova %s zde nejsou přípustná." msgstr[2] "Mluvte slušně! Slova %s zde nejsou přípustná." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Toto pole se musí shodovat s polem '%s'." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Prosíme, vložte něco alespoň pro jedno pole." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 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:281 +#: core/validators.py:284 #, 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:293 +#: core/validators.py:296 #, 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:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Duplikátní hodnoty nejsou povolené." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Tato hodnota musí být mocninou %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Prosíme, vložte platné číslo." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -919,7 +956,7 @@ 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." msgstr[2] "Prosíme, vložte platné číslo s nejvíce %s ciframi celkem." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -933,36 +970,36 @@ msgstr[2] "" "Prosíme, vložte platné číslo s nejvíce %s ciframi za desetinnou čárkou " "celkem." -#: core/validators.py:361 +#: core/validators.py:364 #, 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:362 +#: core/validators.py:365 #, 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:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formát pro toto pole je špatný." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Toto pole není platné." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Nemohl jsem získat nic z %s." -#: core/validators.py:428 +#: core/validators.py:431 #, 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:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -971,7 +1008,7 @@ msgstr "" "Prosíme, zavřete nezavřenou značku %(tag)s z řádky %(line)s. (Řádka začíná s " "\"%(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -980,7 +1017,7 @@ 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:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -989,7 +1026,7 @@ msgstr "" "\"%(attr)s\" na řádce %(line)s je neplatný atribut. (Řádka začíná s \"%" "(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -998,7 +1035,7 @@ msgstr "" "\"<%(tag)s>\" na řádce %(line)s je neplatná značka. (Řádka začíná s \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1007,7 +1044,7 @@ 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:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1026,3 +1063,6 @@ msgid "" msgstr "" "Podržte \"Control\", nebo \"Command\" na Macu pro vybrání více jak jedné " "položky." + +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "Použije se MD5 hash -- ne čisté heslo." diff --git a/django/conf/locale/cy/LC_MESSAGES/django.mo b/django/conf/locale/cy/LC_MESSAGES/django.mo index 775b57495547e4f7f17a319fe5441320186c9691..5f6dba1cd45aaec585f81351c2db10559a352dba 100644 GIT binary patch delta 3923 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 Y!sQEUt82=uYn_VP^6HNLg&RVC1M-2yV*mgE diff --git a/django/conf/locale/cy/LC_MESSAGES/django.po b/django/conf/locale/cy/LC_MESSAGES/django.po index 5544083292..cd2d339a7a 100644 --- a/django/conf/locale/cy/LC_MESSAGES/django.po +++ b/django/conf/locale/cy/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-15 12:40-0600\n" +"POT-Creation-Date: 2005-11-22 15:44-0600\n" "PO-Revision-Date: 2005-11-05 HO:MI+ZONE\n" "Last-Translator: Jason Davies \n" "Language-Team: Cymraeg \n" @@ -509,6 +509,38 @@ msgstr "Tach." msgid "Dec." msgstr "Rhag." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Mai" +msgstr[1] "Mai" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "safle" +msgstr[1] "safle" + #: models/core.py:7 msgid "domain name" msgstr "parth-enw" @@ -614,8 +646,8 @@ msgid "password" msgstr "cyfrinair" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Defnyddiwch stwnsh MD5 -- nid y gyfrinair crai." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -661,7 +693,7 @@ msgstr "Gwybodaeth personol" msgid "Important dates" msgstr "Dyddiadau pwysig" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Neges" @@ -742,74 +774,74 @@ msgstr "" msgid "Simplified Chinese" msgstr "Tsieinëeg Symledig" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Rhaid i'r werth yma cynnwys lythrennau, rhifau ac tanlinellau yn unig." -#: core/validators.py:63 +#: core/validators.py:66 #, fuzzy msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Rhaid i'r werth yma cynnwys lythrennau, rhifau, tanlinellau ac slaesau yn " "unig." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Ni chaniateir priflythrennau yma." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Ni chaniateir lythrennau bach yma." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Rhowch digidau gwahanu gyda atalnodau yn unig." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Rhowch cyfeiriad e-bost dilys gwahanu gyda atalnodau." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Rhowch cyfeiriad IP dilys, os gwelwch yn dda." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Ni chaniateir gwerthau gwag yma." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Ni chaniateir nodau anrhifol yma." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Ni gellir y werth yma" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Rhowch rhif cyfan." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Caniateir nodau gwyddorol un unig yma." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Rhowch dyddiad dilys mewn fformat YYYY-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Rhowch amser ddilys mewn fformat HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Rhowch dyddiad/amser ddilys mewn fformat YYYY-MM-DD HH:MM." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Rhowch cyfeiriad e-bost ddilys." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -817,26 +849,26 @@ msgstr "" "Llwythwch delwedd dilys. Doedd y delwedd a llwythwyd dim yn ddelwedd dilys, " "neu roedd o'n ddelwedd llwgr." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "Dydy'r URL %s dim yn pwyntio at delwedd dilys." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "Rhaid rifau ffon bod mewn fformat XXX-XXX-XXXX. Mae \"%s\" yn annilys." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "Dydy'r URL %s dim yn pwyntio at fideo Quicktime dilys." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Mae URL dilys yn ofynnol." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -845,69 +877,69 @@ msgstr "" "Mae HTML dilys yn ofynnol. Gwallau penodol yw:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "XML wedi ffurfio'n wael: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "URL annilys: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Mae'r URL %s yn gyswllt toredig." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Rhowch talfyriad dalaith U.S. dilys." -#: core/validators.py:228 +#: core/validators.py:231 #, 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] "Gwyliwch eich ceg! Ni chaniateir y gair %s yma." msgstr[1] "Gwyliwch eich ceg! Ni chaniateir y geiriau %s yma." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Rhaid i'r faes yma cydweddu'r faes '%s'." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Rhowch rhywbeth am un maes o leiaf, os gwelwch yn dda." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Llenwch y ddwy faes, neu gadewch nhw'n wag, os gwelwch yn dda." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Rhaid roi'r faes yma os mae %(field)s yn %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Rhaid roi'r faes yma os mae %(field)s dim yn %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Ni chaniateir gwerthau ddyblyg." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Rhaid i'r gwerth yma fod yn bŵer o %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Rhowch rhif degol dilys, os gwelwch yn dda." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -915,7 +947,7 @@ msgid_plural "" msgstr[0] "Rhowch rhif degol dilys gyda cyfanswm %s digidau o fwyaf." msgstr[1] "Rhowch rhif degol dilys gyda cyfanswm %s digid o fwyaf." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -925,37 +957,37 @@ msgstr[0] "" msgstr[1] "" "Rhowch rif degol dilydd gyda o fwyaf %s lleoedd degol, os gwelwch yn dda." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Sicrhewch bod yr ffeil a llwythwyd yn o leiaf %s beit." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Sicrhewch bod yr ffeil a llwythwyd yn %s beit o fwyaf." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Mae'r fformat i'r faes yma yn anghywir." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Mae'r faes yma yn annilydd." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Ni gellir adalw unrhywbeth o %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" "Dychwelodd yr URL %(url)s y pennawd Content-Type annilys '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -964,7 +996,7 @@ msgstr "" "Caewch y tag anghaedig %(tag)s o linell %(line)s. (Linell yn ddechrau â \"%" "(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -973,7 +1005,7 @@ msgstr "" "Ni chaniateir rhai o'r destun ar linell %(line)s yn y gyd-destun yna. " "(Linell yn ddechrau â \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -982,7 +1014,7 @@ msgstr "" "Mae \"%(attr)s\" ar lein %(line)s yn priodoledd annilydd. (Linell yn " "ddechrau â \"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -991,7 +1023,7 @@ msgstr "" "Mae \"<%(tag)s>\" ar lein %(line)s yn tag annilydd. (Linell yn ddechrau â \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1000,7 +1032,7 @@ msgstr "" "Mae tag ar lein %(line)s yn eisiau un new fwy priodoleddau gofynnol. (Linell " "yn ddechrau â \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1018,3 +1050,6 @@ msgid "" " Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Gafaelwch lawr \"Control\", neu \"Command\" ar Fac, i ddewis mwy nag un." + +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "Defnyddiwch stwnsh MD5 -- nid y gyfrinair crai." diff --git a/django/conf/locale/da/LC_MESSAGES/django.mo b/django/conf/locale/da/LC_MESSAGES/django.mo index 8fbe645ff29998891c77f08aecfc32910e9af6fa..c467726c25fc9de363b58708ec1e3949ea549a3c 100644 GIT binary patch delta 4488 zcmYk<3wV!J0LSq&o0-`4Z?R3xF#j22n61ri7E38jlgV5sa|w;yiv5?lUqVgoI2dsg13-#+IY@8z8Hp7UaH)_Ow%(KqB3wvNFs-yi; z4|p6k6T>hQ$D#&SjqpV|551fegaVqM(IoJvpV`ton zN%$kGqfH~7HP8}uejMsPiFg;LL^A(cXBjlaV-^PCY}5#rqB>TBnu(WfeG}@2TT$1S zV*(yTU4IQV;=hsqOkkAL?ne4%l2P~1iemoNlfg99!_lZ4PR4FngoE%PMq>n9WIm>1 z3p|7!unN_I2o}TwydTw(v#3RT88v|4P#wQz>$N;hoT;jZ>QN}_gec^hra5ZLyQ6kP zU+XZ`R8Gb`oQb;bqHX`))~{kW+OMN#qGMCm1wM?dN8{N>L96p4)Vm9fc3wp$GAJ_z zweMG;M!pLNU>aLSH&}_9fj3ZV-~zV9Ft$(*rrw!%c_U29?xYQ~157TXxq114fVmSQsc)0@%Q4R!uz)N{6DZSDWP z6!gw3P>b*+X5dYX#V-8N)a9WY3sGyO%<4sd>IYHp{0Qm+pP>eF3H1uAP|x`tb-fRx zsn7FGAO$rcUAp?ZGRdIPoS{;~B?hOZGsqONnJ9@GiLu^ZOGY}ANzQRj`t0Gx{IKq0Eb z#ct+bCoZBP1WQm4D6=Q*#sKR3(d}bQCHAHMOPsThQ(Lojsb`}W+YTIpb>p4glaIQ- z7}c?*s0Xjc>9{VQ`B#s^+Bom9A!_QIU_DH*?Ww4lNVjGqUs02f+9gG(2W>#j$QE1Q zfx7=bTd%;?)Q@61=6c#XQ&);wWV=xB^bD#ae;_;4`15tq2x5^YlYmTy$wh6yc^Hj* zQQwU(Q60X4Y#bB7*3d7bHmL156xA`$9tyhge$;k3jKlFZ`eSZ;$2`;s$DuBqV%uk+ zuJ>RUT!1>S5_R4wTmJ;Js9(S!Y)fyJX#aPi5KO}{)YP3vUHA>E16OSQn)P?o18-t| z)bMp)Ao6W74UpM2$;fLqqfqaB1^QwMYB#Mzf9?Ox6x4yYtp`xQBu=9Ku&6@a;1;T5 z`sJ??)<)HXP#toi3!{+FyJ?5|LOz5V@hEJFQ_zJ=u(9_4MhY6q0n`i}M=ic{sBLu_ zGw}xY!LFU0cfSB9P~U;Aut}2h3Ga=n&%zD33B#}_-)D7T0BQgeu=@A^GzuC)A!?-a zQ5{)o+e=V0Qi__oy%>UrQ8V``>iq9853iwKNq-iU?mGxoAAxQhgVDG$nfV_{VJ8h* z<>4v(8HP#7>orBFcexW8gt?5-7=EuY%dj(QzgJ>Ij7fF=#!E&0)_WSY`n@b-*MKnp7B`6TOf)JQ!z440#B{3~i?uCC52i$q-)i*cBMIhcdI zB~y;sScSSS%|kaebv;q+ch2ospp~APyy-{7NQI1 zqVBsE)v;Gm=WRt@=h;I+53EFW=suc8*uZQCBy!?{r;>iihg`E9T%rl1~_ zgIXiQQRfw)?)NO}!HbdIQ_HMfl~~{9QJ=juX;Su~ZutS~7AH}cTtwaCXX`E0zt>H7 z#u|xwbOLIOol)m!pt{f>wPABn&l`c^n4iuv)B|VJpbHn-6G~9)eLec%1pOP)(bD0+ zp93hpK_UpNvHGvW7jY9=OLXW(JWF`_)h~57&L*w&8R8k{NpcT~Bdf^kgcW8!AcKi| z+l=UFOf*_nZ1tg+IM9~GTjW7fLNZA)IYG{no}?eqF^LrM{OWJjP}EdCPSmDNRZiLx z9a$ui>>-=UokuMydQD}d7pWvQ$9ojUlH=qh+t?Zx*s^Ck1-+9Uwn3ZlVe%B&M~;wG zvX0aozP8XC=a56>e%n^V5DLqPUMpLt`cKpZtU2aWm}yLJGsd=@M!j?G)(qRGwV@-0 ztgbFOKVF4*$UL%yG+1>g#O2AQ6is%L?j)8RBRU=>qsYgkKhZIryi8V-VPplFMMB7( zM~f{|Ccf;j< Jq3a62e*tM`x7Yvx delta 4647 zcmY+{3shBA0><%8^0+FXfQTvR5lK+I!gWN%2WaXbnHgD1qT&@0421-gUV59s$C$6O zp_wci!;o}zl$h-0qlbkyW?H$Lrz~yF*jm$=Yi2d0OB?6^-LqY**~{<#_TKkA_St8j zbFr;4q-AYL;CyUolcAg?iR6`VV{Q*IW<->Fjd?o8m}&S74#6++e!Pye@ZMNs7UNFr zhuz|g;SeSfyWtQF!&F>}UJS)u$aVqqDwRHT9Kh~)-2K9wMviIDVK4j|Ij6abDcFOZ zbl?o6%VeSUFF>7OHhQoKccUM3&=YSA|ID3y#BhF7L}f4?51~%98I$ovjKE_!6gx2u zFXN9ep|3GXI0H2^OOdb47S#5;(1#!647`CF*z^Q++CJ1kYf&e73^fx0%*TzW3p=_#Yk*IZP$XSxEIIZXPAZE`?~|pL#=^nsO<|-$0@`fSk#~S*E%buBOO;@G&ZBI zU>|B=hfp)|j%^=D9q=S-|Fbv}yHNW_4{)zI3F$IkRR45jjAkzC_$vl5{~F2Tbo9ja zr~_`tT-=EdVi!7?!y~dD=V1z7z)={^LeKzma06DNPIv{iXm6q}AZDOD@cyWFa)65N zX*y~|KD)tqYv#8a55Ow8W-~(99BclVfqh{a)Y7Jb+J8%?_P!Sg4Tx`b- z?9Rd1#N;3Y3z%Xm`E=|+P02;nmHZvM;lEI~;6Ip(h0J>zK8ji!EvT7mL(OD6>O^l~ z1zy5zoW-b?;0Dz8m(io=|0==LutoiKpP}b(FTJt0=?+LENd=m@#Wk0JPbazsQp%; zjjM=eZG!X*Z)5-8Ec*_ocf}(LvPyr%(eshdSdI{s~5_xlL^Iqlv7DwCQ?JM)D?E1_B(9*-$U(x0w>@Z)OJyvP22TFwFh7!reL(5 z|5a2r(XkGDVGNg{sT+*iF&#C4Oxw=3PC%V-GDcznYP&heyT&X)X5BoA++DLDbg9$AvWVbFcvrQp4I?f!ho*e5EYI5n6(pirJtg1#W~yGg_@B|*aJhd-N!W&HFHU* z?Y&rv*{GR)0d@Qq+un;BczZVU?@;+89gFcgYLzb>%UcoGAj`s>MBU5l$VHg69Cwv3 z#4WS~sOLRuoO@+eNSA3u{rVk2t^ONWh0b_)5pEvO{A(oV>5vgDU9H|sJ~V*ksFA;E zeHV45C$I#6k2>(!iS9t>qpo->>ee-(_J0|N;T|l)&yl-jMg$n%{Z#y@9S@@f%^V)?2UgyZTAfZpZ|YT(TT%& z4eGIqLv7Fxb)aO_6^um9&}iE~9(BNc)c!@N0WPtwwBN5qU3n8~AbU_3+>X(D{*O}8 z2|qy%;7imA|BUf?5jBvjs2xM^bia>5Jp~CEg1U_*L@$>zqQPw?D$kN5q>;Q%nu$sb z=Qn4_Pe~$qfV@je$uzQqtRgCvL<3N{j}(v-B!i@rCx}Wr`6yU(KRyBd7O4Ez#XN-% zl0Y6GQ;DuPfvDU@c9MsP%Bw_+OJyi|K3H=wn2E_`135}G z+s_eRw1MCo?M)gll3_$e_eq7PEBL}uU8{VhDwJhp5z&1gPE?*IkCJ-w4pG@ebc+tF zL1`emrMHTs`=52IWqll*NHO8o27e~^;ePUKqEbZ$25ZKAV0{F6I?XPkb)=F)_K-v5 zUXny^m4j5)>;BIsr^#L9H$-I(@daz{9|}XL*OK|<6xmEpk~u_W8<|38sPThx%+?3} zpl=~{y#wAS0p6&=H_<#)+3phjFZpunuaSx5Zt_c#LsE&#NEb8CT4eng7u&k1CTGb3 zH7LI#Z;`>e|DEcwB^DneW5^q1I(ddHA-jpn+vJsCjXz2-j+EQB*h^YSUo|KXlki~8 z{cpRflSmrrr~7}aY@xE$HhNmUSV(yE&3ohpqVgeG7p%D-FGDo(lTY0)^E`0=|z5Q`!?cgQbB%3p6pm2^KER3WaFmnzHh0XQ@-Q%wJnyUR77$5j(Ld^naEB(<}f0 diff --git a/django/conf/locale/da/LC_MESSAGES/django.po b/django/conf/locale/da/LC_MESSAGES/django.po index 8197e48f6d..5035891af3 100644 --- a/django/conf/locale/da/LC_MESSAGES/django.po +++ b/django/conf/locale/da/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-15 12:41-0600\n" +"POT-Creation-Date: 2005-11-22 15:44-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Morten Bagai \n" "Language-Team: Danish\n" @@ -513,6 +513,38 @@ msgstr "Nov." msgid "Dec." msgstr "Dec." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Maj" +msgstr[1] "Maj" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "side" +msgstr[1] "side" + #: models/core.py:7 msgid "domain name" msgstr "domænenavn" @@ -618,8 +650,8 @@ msgid "password" msgstr "adgangskode" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Brug et MD5 hash -- ikke adgangskoden i klartekst" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -665,7 +697,7 @@ msgstr "Personlig information" msgid "Important dates" msgstr "Vigtige datoer" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Meddelelse" @@ -746,72 +778,72 @@ msgstr "Svensk" msgid "Simplified Chinese" msgstr "Simpel Kinesisk" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Dette felt må kun indeholde bogstaver, tal og understreger." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Dette felt må kun indeholde bogstaver, tal, understreger og skråstreger." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Store bogstaver er ikke tilladt her" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Små bogstaver er ikke tilladt her" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Indtast kun tal adskilt af kommaer." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Indtast gyldige email-adresser adskilt af kommaer" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Venlist indtast en gyldig email-adresse." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Dette felt kan ikke være tomt." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Der må kun være tal her" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Denne værdi kan ikke kun bestå af tal." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Indtast et heltal." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Her er kun bogstaver tilladt." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Indtast en dato i ÅÅÅÅ-MM-DD format." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Indtast tid i TT:MM format." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Indtast dato og tid i ÅÅÅÅ-MM-DD TT:MM format." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Indtast en gyldig email-adresse." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -819,27 +851,27 @@ msgstr "" "Upload en billed-fil. Filen du uploadede var enten ikke et billede eller en " "ødelagt billed-fil" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URLen %s viser ikke til en gyldig billed-fil" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Telefonnumre skal være i XXX-XXX-XXXX formatet. \"%s\" er ikke godkjent." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URLen %s viser ikke til en gyldig QuickTime-film." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "En gyldig URL er påkrævet" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -848,69 +880,69 @@ msgstr "" "Gyldig HTML er påkrævet. Fejlene er:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Ugyldig XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Ugyldig URL: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Denne URL %s linker ikke til en gyldig side eller fil" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Indtast en gyldig amerikansk statsforkortelse" -#: core/validators.py:228 +#: core/validators.py:231 #, 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] "Var din mund! Ordet %s er ikke tilladt her." msgstr[1] "Var din mund! Ordene %s er ikke tilladt her." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Dette felt skal matche '%s' feltet." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Indtast venligst noget i mindst et felt" -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Udfyld begge felter, eller lad dem begge være blanke" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Dette felt skal udfyldes, hvis %(field)s er lig %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Dette felt skal udfyldes, hvis %(field)s ikke er lig %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Duplikate værdier er ikke tilladt her" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Denne værdi skal være en potens af %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Indtast venligst et gyldigt decimaltal." -#: core/validators.py:348 +#: core/validators.py:351 #, fuzzy, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -918,7 +950,7 @@ msgid_plural "" msgstr[0] "Indtast en gyldig decimal med max %s tal ialt" msgstr[1] "Indtast en gyldig decimal med max %s tal ialt" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -926,37 +958,37 @@ msgid_plural "" msgstr[0] "Indtast en gyldig decimal med max %s tal efter kommaet" msgstr[1] "Indtast en gyldig decimal med max %s tal efter kommaet" -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Tjek at den uploadede fil er mindst % bytes." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Tjek at den uploadede file er max %s bytes." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formatet i dette feltet er feil." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Dette felt er ugyldigt." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Kunne ikke finde noget i %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" "URLen %(url)s returnerede ikke en godkendt Content-Type '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -964,7 +996,7 @@ msgid "" msgstr "" "Luk venligst %(tag)s på linje %(line)s. (Linjen starer med \"%(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -973,7 +1005,7 @@ msgstr "" "En del af teksten som starter på linje %(line)s er ikke tilladt. (Linjen " "starter med \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -982,7 +1014,7 @@ msgstr "" "\"%(attr)s\" på linje %(line)s er ikke en gyldig attribut. (Linjen starter " "med \"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -991,7 +1023,7 @@ msgstr "" "\"<%(tag)s>\" på linje %(line)s er ikke et gyldigt tag. (Linjen starter med " "\"%(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1000,7 +1032,7 @@ msgstr "" "Et tag på linje %(line)s mangler en obligatorisk attribut. (Linjen starter " "med \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1019,5 +1051,8 @@ msgid "" msgstr "" "Hold \"Kontrol\", eller \"Æbletasten\" på Mac, nede for at vælge mere end en." +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "Brug et MD5 hash -- ikke adgangskoden i klartekst" + #~ msgid "Traditional Chinese" #~ msgstr "Traditionel Kinesisk" diff --git a/django/conf/locale/de/LC_MESSAGES/django.mo b/django/conf/locale/de/LC_MESSAGES/django.mo index decd50215778023df9019a4af90b4723016c79f0..2f4d9b38af2307499d1429a97126de9689db5d93 100644 GIT binary patch delta 4270 zcmaLaeN(!~L%4u&FE0`hA}FsyDk%7d7TPFcgD)d#>hgu~h7_R4OQP0wrpa7m zQ@Kt`)a248qehpl$%0HRE7Y*Y6l)yEG74)dN2{4}1uJ#t`*6kTHSi#s&<>0r)V|&Tlr8;m1T|1O4#fu41e$Re zwxT9{0@JYzGqDfH;ILR@5^+8%a`mWwpGLLchq;VzJ|S}_x`|&o&O^n_e zh&NCxYKXVpfNJ-!Q+^B;5z8sJU?Jt5s0n|8>i=8xD zynwp#Yo~n4DgWEC7d5f#7={B9?E4}ygK|8M#VMGNYZHjSX1b3GZI;(i1HFOj=m>`5 zanye7!ffnD4~DU0wSWZF#L`fa$a2bKQ2mWZ-Cu|!aTet?)4_n6&wWbDf%~Ho&R78J^+GAT#_xZmk zqYFPd6*o{T3}VY`Wl^Ze%*AC`g=}#1A!^h1pq}NZVfLf(A;B?QQM-O0DiU3I7cQhy z_rHQf!f%d|(WdCbG|Wjg=5Cyi3)B!tp__}0WyYZ9akJo;6!myBlGj#|+LRQ*K^!S7K6_BrLiEPDViYGOlB zA`s7-Vke~Cp@ z-j7cq`?dci)}u=uY4?+jn!s3m6epo3)`4o*iCXz7)Pj2aWHhr&PJ=$=2d#f6>eIO7P#xDf<#nizH=!2xIBEhds1@(PHf+Ti=wF&+e{fon-yw4VGw?Ke zun+ax1?SowWZ?wLV^D8LHO|7_$o4S*LH^7TUT#fz4(8!%EWq7Zj9*}*-v4ZVD>cLC zQ8RBv{d~T{X&3gOR{RLP==xUF-e_^ke?&!Kk5hgX3n{;eionmPM-s$WO64%T6Jyb% z_rILXdMegnBwj%csIQVH7KR!i(kaI|CZa+*48t(nDUZiY%2QC0xeqnq0aSm1giRl) zPz+^!;~}E~;!z<_MlX&+qHk_@%BxW;*of+A3u*#SI^`Brgm$3re-YWYrVR&Sk5k`^ z`a}owj|zVbnKUxm%>}5?E<>%T5;dVlRAe5(Y1oV_@H5n2naYOvJ>G{8VJ|8I4@|T_ z)jLrW`5a%yFg8LIwiOV6eHuHd(7+c_E4qSO$xo{(2UDRPaWa>!_KIm~4y>7ojG21hw+>$fC_qeu4M| zm_?``mCcxrt+)eE;$p16-Trq(C(fkYgGD&9&~D%8CsRwsbGQ(_Q|xD6iNh&BgTKHI zoQEM(?UgM-t!O1`0kyaY8&Hqr6sBS?s$Jq8_ID;7Rn9{#z(1MH1~T{K4EzQ+VlJbq z;j5^(;UMY}9Y=-wH0m|Ih`eDYj__n+2@b|a)aJEN?K@DL@+=18KQKb?|79{7=mzR7 za8I{a=s`W(c+?j%9n~%mHKEC*Arq<2V7BsRaXNY7Z;!(&~itr$;I$cL15v{{oq1@Rx* zh5p~jz2rxd{zU4swtA9WC#^qw62dzv*OPSo#X9Fn$?vcW{pY`Np6Hade|Yozk9RpQ zx3m5K`!ZIpH`?`)s;QU#;ujq{z1^zeKu;bTjF!H6mi1 z>vhW)k(Blx*+ee~w>6f*Yxs(M)ITf3sN!dF+n zWdE}Cwwv5#O=d+|Q=Jt({BS~bWlcl9&)C$N>Qy!MEA4Zg_0jNap-sNBHAbg8>qOSC zf=7=|&dr~gm$yGPyCycZxH@_Isx{SR^~wKd$TL&p0)k7+Dh$bIeK+mngc5s9n;KKH Zs-~>oKKu3`o*w2JIJ0c!8l#iX{132>38Mf2 delta 4139 zcmX}v3s6Q$y#Q;hY#cMKy zSld|3Deb6@5{)#(jH#g_K7x&k#75#fkE-q1PG-_LHpwK8NgvaGfA?&AhrOTOJ$rWl zyJz=YJ+aku=4YPZpAy2`44;okV@THq8xF=d#CY1oL1aR)BIFYpO0 z9&XHN+=Fysj$s&{#0c!i)i{9RSeh7W7c>u$;m<7KD-x?P8lOgWv<4Z&G+`WW#dvJT z3HTOjfDi5U>o}D1Eo3b7EvlcG5pKVUr~t-dlnF8`G96Up;=OnY`7<#i-GS0@9ObE~ z03N~dxEvMmX3W4=%)-N%kAK1M;K)(#$`zpcU4m*Kz&yq`ZDi(RKUU&!)=?2QVic~! z>DY{GuopF>sY$MdsCK2cJP)-Zi)?u*7E@k^3iuUN|D71rQtu~Ijy2a{T4Dwa~rkv@jmy|jJ4*WR&+LMkIhB(8+?;O_mfzLTJkqg19qeCJC525eW(?pgM@U%dJmDmB*p( zpNQJjg|>bkYV$6^Xsop5l^9fn&yvwhcG(MiF`DvkQ5_$#<%t!hc%Qx&ta8tX)f!pP12IfI{_f91^=Nu=2=<`{ zK94Q<0V<%!Im~KTiJI{W)I^#v2Al152l+iR+fk3`%^(@g{5YoK71Yw)wtCo+>No~f zpNQ(%hYBbQ6+k{}rqi(-OYi~w2K7EEnQRO{FJ=*D;!_xlL5GZv)oxS=r|@1JK<)m> zJY(kLEaY*TEy$ng;Y$I3h6Ol;!#opb;T&9xYp@R$U?D$=3cLjM>o|w6S9JcH$Y^G% z^r8kis6CNy%SEUaD6{2xSWI~_Y6aR*kEGp}J8&-L1E?AP8`t76-cs?n2{qn!4A=SZ zAfo~Hg(~<5h4m0>MUJ61S)VOm#4O5JQ7aS9+e-s3Ld|p+>IL*FD!|uJ{db`PI)ZU{ z1}8JV`PfzrVZC)jGOD9=Q~=qwoR38K8hk^O2O!bEJc^{uE^@NOJ|$5EU43TkD) zMNKG-e^dk&k(Z2?CKbyt538^dwOOv=OBl|^SdXo!6^NhVzKUm{0(lNQu>%wEAvQ!Z zR-y)8kDAaX)I@$hll9lL+h!Z=vJE;hh5ENpk-m@W@G6eRzoS+vvd|4Q0o8FMs^bl) z>zh!I!a)v#`4uYAe)Qwlg{;3Ke6+}&`D$dc<|uNs&DY2;v>DGYP6n3XPOQeqFmjgr z?}SQxka822fJvF2X&i$nT(LH0ZnT42I&P zl;cp3WCha1w4&NwM!jgR+wx5eO#s(XKfcs`AMC;nls`q?7p!4)9fvv$JtNdoZ$h2Z z9mokX=P(Py*&t(ZB5EcNqS~)TZOSbefjiNQuc8Jzh&lzms0sEVk2Yw|lLe}Zbb4K?6iR6yORfsU0se~g*Jd)NK6!Aa5!woG{DBI);}=SXZ}i62rbeHktj|HGDRySkS+@}S<$HttB+~1obIyg>RL^_Pm$4}^rztm(^!bC66qlyR z|Npr{ZiX#QM$TvG^A6w3+-&IoOh=q&;)Z+PcADcJN&3*%AIF6@FHSkP( zd@tqKNP|ctNtd0K-f5oSIeWdS=@iXM(hg<#^t*(4Nh&Z;Iz#Cn7%6bJUp_ zpZUW>)avApAeE7RLDHv>q<5fR6Z%w=PK0v2$B;LM*-n~6I!t<=^h=UHS)?aP-Ohpd zw3q=^@lk*uIXB|d#(h98oAkd&mO;LUw2ic$WSsPbRL}XYvV?mQCsYJ{-g$_WdGC2%UKweH`SLnWk$i| zuFW}tQ6=+hDytiORTcHVx&AYt*ZKT4frh$@<^Djfuf8@=<*y6)s{Hl! fes|FNn&p9thShbGy2g}_4s(j`ztojmKGgGH^=;_m diff --git a/django/conf/locale/de/LC_MESSAGES/django.po b/django/conf/locale/de/LC_MESSAGES/django.po index 51444acfb8..30fe328b6e 100644 --- a/django/conf/locale/de/LC_MESSAGES/django.po +++ b/django/conf/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Django 1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-15 12:40-0600\n" +"POT-Creation-Date: 2005-11-22 15:44-0600\n" "PO-Revision-Date: 2005-11-06 13:54+0100\n" "Last-Translator: Lukas Kolbe \n" "Language-Team: \n" @@ -512,6 +512,36 @@ msgstr "Nov." msgid "Dec." msgstr "Dez." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "Jahr" +msgstr[1] "Jahre" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "Monat" +msgstr[1] "Monate" + +#: utils/timesince.py:14 +msgid "day" +msgid_plural "days" +msgstr[0] "Tag" +msgstr[1] "Tage" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "Minute" +msgstr[1] "Minuten" + #: models/core.py:7 msgid "domain name" msgstr "Domainname" @@ -617,8 +647,8 @@ msgid "password" msgstr "Kennwort" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Nicht das Kennwort selber eintragen, sondern dessen MD5 signatur." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "Im Format '[algo]$[salt]$[hexdigest]" #: models/auth.py:38 msgid "staff status" @@ -665,7 +695,7 @@ msgstr "Pers msgid "Important dates" msgstr "Wichtige Daten" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Mitteilung" @@ -745,75 +775,75 @@ msgstr "Schwedisch" msgid "Simplified Chinese" msgstr "vereinfachtes Chinesisch" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Dieser Wert darf nur Buchstaben, Ziffern und Unterstriche enthalten." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Schrgstriche " "enthalten." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Grobuchstaben sind hier nicht erlaubt." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Kleinbuchstaben sind hier nicht erlaubt." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Hier sind nur durch Komma getrennte Ziffern erlaubt." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Bitte mit Komma getrennte, gltige eMail-Adressen eingeben." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Bitte eine gltige IP-Adresse eingeben." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Dieses Feld darf nicht leer sein." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Nichtnumerische Zeichen sind hier nicht erlaubt." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Dieser Wert darf nicht nur aus Ziffern bestehen." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Bitte eine ganze Zahl eingeben." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Nur alphabetische Zeichen sind hier erlaubt." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Bitte ein gltiges Datum im Format JJJJ-MM-TT eingeben." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Bitte eine gltige Zeit im Format SS:MM eingeben." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "" "Bitte eine gltige Datums- und Zeitangabe im Format JJJJ-MM-TT SS:MM " "eingeben." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Bitte eine gltige eMail-Adresse eingeben" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -821,27 +851,27 @@ msgstr "" "Bitte ein Bild hochladen. Die Datei, die hochgeladen wurde, ist kein Bild " "oder ist defekt." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "Die URL %s zeigt nicht auf ein gltiges Bild." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Telefonnummern mssen im Format XXX-XXX-XXXX sein. \"%s\" ist ungltig." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "Die URL %s zeigt nicht auf ein gltiges QuickTime video." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Eine gltige URL ist hier verlangt." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -850,71 +880,71 @@ msgstr "" "Bitte gltiges HTML eingeben. Fehler sind:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Ungltiges XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Ungltige URL: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Die URL %s funktioniert nicht." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Bitte eine gltige Abkrzung fr einen US-Staat eingeben." -#: core/validators.py:228 +#: core/validators.py:231 #, 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 Wrter %s sind hier nicht gern gesehen!" -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Dieses Feld muss zum Feld '%s' passen." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Bitte mindestens eines der Felder ausfllen." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Bitte entweder beide Felder ausfllen, oder beide leer lassen." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "" "Dieses Feld muss gefllt sein, wenn Feld %(field)s den Wert %(value)s hat." -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "" "Dieses Feld muss gefllt sein, wenn Feld %(field)s nicht %(value)s ist." -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Doppelte Werte sind hier nicht erlaubt." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Dieser Wert muss eine Potenz von %s sein." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Bitte eine gltige Dezimalzahl eingeben." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -922,7 +952,7 @@ msgid_plural "" msgstr[0] "Bitte eine gltige Dezimalzahl mit maximal %s Ziffer eingeben." msgstr[1] "Bitte eine gltige Dezimalzahl mit maximal %s Ziffern eingeben." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -932,39 +962,39 @@ msgstr[0] "" msgstr[1] "" "Bitte eine gltige Dezimalzahl mit maximal %s Dezimalstellen eingeben." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" "Bitte sicherstellen, da die hochgeladene Datei mindestens %s Bytes gross " "ist." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" "Bitte sicherstellen, da die hochgeladene Datei maximal %s Bytes gross ist." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Das Format fr dieses Feld ist falsch." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Dieses Feld ist ungltig." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Konnte nichts von %s empfangen." -#: core/validators.py:428 +#: core/validators.py:431 #, 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:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -973,7 +1003,7 @@ msgstr "" "Bitte das ungeschlossene %(tag)s Tag in Zeile %(line)s schlieen. Die Zeile " "beginnt mit \"%(start)s\"." -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -982,7 +1012,7 @@ msgstr "" "In Zeile %(line)s ist Text, der nicht in dem Kontext erlaubt ist. Die Zeile " "beginnt mit \"%(start)s\"." -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -991,7 +1021,7 @@ msgstr "" "Das Attribute %(attr)s in Zeile %(line)s ist ungltig. Die Zeile beginnt mit " "\"%(start)s\"." -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -1000,7 +1030,7 @@ msgstr "" "<%(tag)s> in Zeile %(line)s ist ungltig. Die Zeile beginnt mit \"%(start)s" "\"." -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1009,7 +1039,7 @@ msgstr "" "Ein Tag in Zeile %(line)s hat eines oder mehrere Pflichtattribute nicht. Die " "Zeile beginnt mit \"%(start)s\"." -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1028,3 +1058,4 @@ msgid "" msgstr "" " Um mehr als eine Selektion zu treffen, \"Strg\", oder auf dem Mac \"Command" "\", beim Klicken gedrckt halten." + diff --git a/django/conf/locale/en/LC_MESSAGES/django.mo b/django/conf/locale/en/LC_MESSAGES/django.mo index 3d48f0fd09ccc23d41bc0822c8820d3fe17b2b9f..f1ef3dea8ffb8e5bdeb579393a6a0ac0c1a08bbb 100644 GIT binary patch delta 20 bcmbQiGJ|D\n" "Language-Team: LANGUAGE \n" @@ -486,6 +486,36 @@ msgstr "" msgid "Dec." msgstr "" +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + #: models/core.py:7 msgid "domain name" msgstr "" @@ -591,7 +621,7 @@ msgid "password" msgstr "" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." +msgid "Use '[algo]$[salt]$[hexdigest]" msgstr "" #: models/auth.py:38 @@ -636,7 +666,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "" @@ -716,165 +746,165 @@ msgstr "" msgid "Simplified Chinese" msgstr "" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "" -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "" -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "" -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "" -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "" -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "" -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "" -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "" -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "" -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" "%s" msgstr "" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "" -#: core/validators.py:228 +#: core/validators.py:231 #, 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:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "" -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "" -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "" -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "" -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -882,7 +912,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -890,71 +920,71 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "" -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "" -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "" -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "\"%(start)s\".)" msgstr "" -#: core/validators.py:465 +#: core/validators.py:468 #, 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:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:479 +#: core/validators.py:482 #, 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:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/es/LC_MESSAGES/django.mo b/django/conf/locale/es/LC_MESSAGES/django.mo index a8fe0475b89346cefa6d2a38a515e88ef0896ebd..5efbe07b1754467341498957672fc0d6f5ddb2b7 100644 GIT binary patch delta 21 ccmcbtaam)-TW$^`BLzcKD-)B=U%BHr09i)|OaK4? delta 21 ccmcbtaam)-TW$_RQw2jKD-(mwU%BHr09h*sM*si- diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po index 27547d34e7..beaa2572f6 100644 --- a/django/conf/locale/es/LC_MESSAGES/django.po +++ b/django/conf/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-15 12:40-0600\n" +"POT-Creation-Date: 2005-11-22 15:44-0600\n" "PO-Revision-Date: 2005-10-04 20:59GMT\n" "Last-Translator: Ricardo Javier Crdenes Medina \n" @@ -505,6 +505,36 @@ msgstr "" msgid "Dec." msgstr "" +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + #: models/core.py:7 msgid "domain name" msgstr "" @@ -614,7 +644,7 @@ msgid "password" msgstr "Clave:" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." +msgid "Use '[algo]$[salt]$[hexdigest]" msgstr "" #: models/auth.py:38 @@ -660,7 +690,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "" @@ -740,167 +770,167 @@ msgstr "" msgid "Simplified Chinese" msgstr "" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Este valor debe contener slo letras, nmeros y guin bajo." -#: core/validators.py:63 +#: core/validators.py:66 #, fuzzy msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "Este valor debe contener slo letras, nmeros y guin bajo." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "" -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "" -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "" -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "" -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "" -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "" -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "" -#: core/validators.py:135 +#: core/validators.py:138 #, fuzzy msgid "Enter a valid e-mail address." msgstr "Direccin de correo:" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "" -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" "%s" msgstr "" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "" -#: core/validators.py:228 +#: core/validators.py:231 #, 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:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "" -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "" -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "" -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "" -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -908,7 +938,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -916,71 +946,71 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "" -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "" -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "" -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "\"%(start)s\".)" msgstr "" -#: core/validators.py:465 +#: core/validators.py:468 #, 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:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:479 +#: core/validators.py:482 #, 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:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/fr/LC_MESSAGES/django.mo b/django/conf/locale/fr/LC_MESSAGES/django.mo index f18a72d89052781f619f10f8d79d78c80343b012..9652aab688ce426515291c48e7f54901a1b33019 100644 GIT binary patch delta 4323 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\n" "Language-Team: franais \n" @@ -15,6 +15,34 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +#: contrib/admin/models/admin.py:6 +msgid "action time" +msgstr "heure de l'action" + +#: contrib/admin/models/admin.py:9 +msgid "object id" +msgstr "id de l'objet" + +#: contrib/admin/models/admin.py:10 +msgid "object repr" +msgstr "repr de l'objet" + +#: contrib/admin/models/admin.py:11 +msgid "action flag" +msgstr "drapeau de l'action" + +#: contrib/admin/models/admin.py:12 +msgid "change message" +msgstr "message de modification" + +#: contrib/admin/models/admin.py:15 +msgid "log entry" +msgstr "entre de log" + +#: contrib/admin/models/admin.py:16 +msgid "log entries" +msgstr "entres de log" + #: contrib/admin/templates/admin/object_history.html:5 #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/base.html:29 @@ -286,33 +314,103 @@ msgstr "Merci d'utiliser notre site!" msgid "The %(site_name)s team" msgstr "L'quipe %(site_name)s" -#: contrib/admin/models/admin.py:6 -msgid "action time" -msgstr "heure de l'action" +#: contrib/redirects/models/redirects.py:7 +msgid "redirect from" +msgstr "redirig depuis" -#: contrib/admin/models/admin.py:9 -msgid "object id" -msgstr "id de l'objet" +#: contrib/redirects/models/redirects.py:8 +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" +"Ceci doit tre un chemin absolu, sans nom de domaine. Par exemple: '/events/" +"search/'." -#: contrib/admin/models/admin.py:10 -msgid "object repr" -msgstr "repr de l'objet" +#: contrib/redirects/models/redirects.py:9 +msgid "redirect to" +msgstr "redirig vers" -#: contrib/admin/models/admin.py:11 -msgid "action flag" -msgstr "drapeau de l'action" +#: contrib/redirects/models/redirects.py:10 +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" +"Ceci peut tre soit un chemin absolu (voir ci-dessus) soit une URL complte " +"dbutant par 'http://'." -#: contrib/admin/models/admin.py:12 -msgid "change message" -msgstr "message de modification" +#: contrib/redirects/models/redirects.py:12 +msgid "redirect" +msgstr "redirection" -#: contrib/admin/models/admin.py:15 -msgid "log entry" -msgstr "entre de log" +#: contrib/redirects/models/redirects.py:13 +msgid "redirects" +msgstr "redirections" -#: contrib/admin/models/admin.py:16 -msgid "log entries" -msgstr "entres de log" +#: contrib/flatpages/models/flatpages.py:6 +msgid "URL" +msgstr "URL" + +#: contrib/flatpages/models/flatpages.py:7 +msgid "" +"Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "" +"Par exemple : '/about/contact/'. Vrifiez la prsence du caractre '/' en " +"dbut et en fin de chaine." + +#: contrib/flatpages/models/flatpages.py:8 +msgid "title" +msgstr "titre" + +#: contrib/flatpages/models/flatpages.py:9 +msgid "content" +msgstr "contenu" + +#: contrib/flatpages/models/flatpages.py:10 +msgid "enable comments" +msgstr "autoriser les commentaires" + +#: contrib/flatpages/models/flatpages.py:11 +msgid "template name" +msgstr "nom du template" + +#: contrib/flatpages/models/flatpages.py:12 +#, fuzzy +msgid "" +"Example: 'flatpages/contact_page'. If this isn't provided, the system will " +"use 'flatpages/default'." +msgstr "" +"Par exemple: 'flatfiles/contact_page'. Sans dfinition, le systme utilisera " +"'flatfiles/default'." + +#: contrib/flatpages/models/flatpages.py:13 +msgid "registration required" +msgstr "enregistrement requis" + +#: contrib/flatpages/models/flatpages.py:13 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "" +"Si coch, seuls les utilisateurs connects auront la possibilit de voir " +"cette page." + +#: contrib/flatpages/models/flatpages.py:17 +msgid "flat page" +msgstr "page plat" + +#: contrib/flatpages/models/flatpages.py:18 +msgid "flat pages" +msgstr "pages plat" + +#: utils/translation.py:335 +msgid "DATE_FORMAT" +msgstr "" + +#: utils/translation.py:336 +msgid "DATETIME_FORMAT" +msgstr "" + +#: utils/translation.py:337 +msgid "TIME_FORMAT" +msgstr "" #: utils/dates.py:6 msgid "Monday" @@ -418,152 +516,99 @@ msgstr "Nov." msgid "Dec." msgstr "Dc." -#: models/core.py:5 +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Mai" +msgstr[1] "Mai" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "site" +msgstr[1] "site" + +#: models/core.py:7 msgid "domain name" msgstr "nom de domaine" -#: models/core.py:6 +#: models/core.py:8 msgid "display name" msgstr "nom afficher" -#: models/core.py:8 +#: models/core.py:10 msgid "site" msgstr "site" -#: models/core.py:9 +#: models/core.py:11 msgid "sites" msgstr "sites" -#: models/core.py:22 +#: models/core.py:28 msgid "label" msgstr "intitul" -#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19 +#: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19 msgid "name" msgstr "nom" -#: models/core.py:25 +#: models/core.py:31 msgid "package" msgstr "paquetage" -#: models/core.py:26 +#: models/core.py:32 msgid "packages" msgstr "paquetages" -#: models/core.py:36 +#: models/core.py:42 msgid "python module name" msgstr "nom du module python" -#: models/core.py:38 +#: models/core.py:44 msgid "content type" msgstr "type de contenu" -#: models/core.py:39 +#: models/core.py:45 msgid "content types" msgstr "types de contenu" -#: models/core.py:62 -msgid "redirect from" -msgstr "redirig depuis" - -#: models/core.py:63 -msgid "" -"This should be an absolute path, excluding the domain name. Example: '/" -"events/search/'." -msgstr "" -"Ceci doit tre un chemin absolu, sans nom de domaine. Par exemple: '/events/" -"search/'." - -#: models/core.py:64 -msgid "redirect to" -msgstr "redirig vers" - -#: models/core.py:65 -msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"'http://'." -msgstr "" -"Ceci peut tre soit un chemin absolu (voir ci-dessus) soit une URL complte " -"dbutant 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/'. Vrifiez la prsence du caractre '/' en " -"dbut 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 dfinition, le systme utilisera " -"'flatfiles/default'." - -#: models/core.py:88 -msgid "registration required" -msgstr "enregistrement requis" - -#: models/core.py:88 -msgid "If this is checked, only logged-in users will be able to view the page." -msgstr "" -"Si coch, seuls les utilisateurs connects auront la possibilit de voir " -"cette page." - -#: models/core.py:92 -msgid "flat page" -msgstr "page plat" - -#: models/core.py:93 -msgid "flat pages" -msgstr "pages plat" - -#: models/core.py:114 msgid "session key" msgstr "cl de session" -#: models/core.py:115 +#: models/core.py:68 msgid "session data" msgstr "donne de session" -#: models/core.py:116 +#: models/core.py:69 msgid "expire date" msgstr "date d'expiration" -#: models/core.py:118 +#: models/core.py:71 msgid "session" msgstr "session" -#: models/core.py:119 +#: models/core.py:72 msgid "sessions" msgstr "sessions" @@ -608,8 +653,8 @@ msgid "password" msgstr "mot de passe" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Utilisez une chaine crypte MD5 -- pas un mot de passe en clair." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -656,124 +701,157 @@ msgstr "Information personnelle" msgid "Important dates" msgstr "Dates importantes" -#: models/auth.py:182 +#: models/auth.py:216 msgid "Message" msgstr "Message" +#: conf/global_settings.py:36 +msgid "Bengali" +msgstr "" + #: conf/global_settings.py:37 msgid "Czech" msgstr "Tchque" #: conf/global_settings.py:38 +msgid "Welsh" +msgstr "" + +#: conf/global_settings.py:39 +#, fuzzy +msgid "Danish" +msgstr "Espagnol" + +#: conf/global_settings.py:40 msgid "German" msgstr "Allemand" -#: conf/global_settings.py:39 +#: conf/global_settings.py:41 msgid "English" msgstr "Anglais" -#: conf/global_settings.py:40 +#: conf/global_settings.py:42 msgid "Spanish" msgstr "Espagnol" -#: conf/global_settings.py:41 +#: conf/global_settings.py:43 msgid "French" msgstr "Franais" -#: conf/global_settings.py:42 +#: conf/global_settings.py:44 msgid "Galician" msgstr "Galicien" -#: conf/global_settings.py:43 +#: conf/global_settings.py:45 +msgid "Icelandic" +msgstr "" + +#: conf/global_settings.py:46 #, fuzzy msgid "Italian" msgstr "Italien" -#: conf/global_settings.py:44 +#: conf/global_settings.py:47 +msgid "Norwegian" +msgstr "" + +#: conf/global_settings.py:48 msgid "Brazilian" msgstr "Brsilien" -#: conf/global_settings.py:45 +#: conf/global_settings.py:49 +msgid "Romanian" +msgstr "" + +#: conf/global_settings.py:50 msgid "Russian" msgstr "Russe" -#: conf/global_settings.py:46 +#: conf/global_settings.py:51 +msgid "Slovak" +msgstr "" + +#: conf/global_settings.py:52 #, fuzzy msgid "Serbian" msgstr "Serbe" -#: conf/global_settings.py:47 -msgid "Traditional Chinese" -msgstr "Chinois traditionnel" +#: conf/global_settings.py:53 +msgid "Swedish" +msgstr "" -#: core/validators.py:58 +#: conf/global_settings.py:54 +msgid "Simplified Chinese" +msgstr "" + +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "" "Ce champ ne doit contenir que des lettres, des nombres et des sous-tirets." -#: core/validators.py:62 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Ce champ ne doit contenir que des lettres, des nombres, des sous-tirets et " "des '/'." -#: core/validators.py:70 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Les lettres majuscules ne sont pas autorises ici." -#: core/validators.py:74 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Les lettres minuscules ne sont pas autorises ici." -#: core/validators.py:81 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Seulement des chiffres ([0-9]), spars par des virgules." -#: core/validators.py:93 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Entrez des adresses de courriel valides spares par des virgules." -#: core/validators.py:100 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Entrez une adresse IP valide." -#: core/validators.py:104 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Vous ne pouvez pas laisser ce champ vide." -#: core/validators.py:108 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Les caractres non numriques ne sont pas autoriss ici." -#: core/validators.py:112 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Cette valeur ne peut contenir que des chiffres [0-9]." -#: core/validators.py:117 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Entrez un nombre entier." -#: core/validators.py:121 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Seules les lettres de l'alphabet sont autorises ici." -#: core/validators.py:125 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Entrez une date valide au format AAAA-MM-JJ." -#: core/validators.py:129 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Entrez une heure valide au format HH:MM." -#: core/validators.py:133 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Entrez une date et une heure valide au format AAAA-MM-JJ HH:MM." -#: core/validators.py:137 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Entrez une adresse de courriel valide." -#: core/validators.py:149 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -781,28 +859,28 @@ msgstr "" "Envoyez une image valide. Le fichier que vous avez transfer n'est pas une " "image ou bien est une image corrompue." -#: core/validators.py:156 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "L'URL %s ne pointe pas vers une image valide." -#: core/validators.py:160 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Les numros de tlphone doivent tre au format XX XX XX XX XX. \"%s\" est " "incorrect." -#: core/validators.py:168 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "L'URL %s ne pointe pas vers une vido QuickTime valide." -#: core/validators.py:172 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Une URL valide est requise." -#: core/validators.py:186 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -811,69 +889,69 @@ msgstr "" "Du HTML valide est requis. Les erreurs spcifiques sont:\n" "%s" -#: core/validators.py:193 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "XML mal form: %s" -#: core/validators.py:203 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "URL invalide: %s" -#: core/validators.py:205 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "L'URL %s est un lien cass." -#: core/validators.py:211 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Entrez une abrviation d'tat amricain valide." -#: core/validators.py:226 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Attention votre langage,! Le mot %s n'est pas autoris ici." msgstr[1] "Attention votre langage,! Les mots %s ne sont pas autoriss ici." -#: core/validators.py:233 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Ce champ doit correspondre au champ '%s'." -#: core/validators.py:252 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "S'il vous plat, saisissez au moins une valeur dans un des champs." -#: core/validators.py:261 core/validators.py:272 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "S'il vous plat, renseignez chaque champ ou laissez les deux vides." -#: core/validators.py:279 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Ce champ doit tre renseign si %(field)s vaut %(value)s" -#: core/validators.py:291 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Ce champ doit tre renseign si %(field)s ne vaut pas %(value)s" -#: core/validators.py:310 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Des valeurs identiques ne sont pas autorises." -#: core/validators.py:333 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Cette valeur doit tre une puissance de %s." -#: core/validators.py:344 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "S'il vous plat, saisissez un nombre dcimal valide." -#: core/validators.py:346 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -883,7 +961,7 @@ msgstr[0] "" msgstr[1] "" "S'il vous plat, saisissez un nombre dcimal valide avec au plus %s chiffres." -#: core/validators.py:349 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -893,32 +971,32 @@ msgstr[0] "" msgstr[1] "" "S'il vous plat, saisissez un nombre dcimal valide avec au plus %s dcimales" -#: core/validators.py:359 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" "Vrifiez que le fichier transfr fait au moins une taille de %s octets." -#: core/validators.py:360 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" "Vrifiez que le fichier transfr fait au plus une taille de %s octets." -#: core/validators.py:373 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Le format de ce champ est mauvais." -#: core/validators.py:388 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Ce champ est invalide." -#: core/validators.py:423 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Impossible de rcuprer quoi que ce soit depuis %s." -#: core/validators.py:426 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." @@ -926,7 +1004,7 @@ msgstr "" "L'entte Content-Type '%(contenttype)s', renvoye par l'url %(url)s n'est " "pas valide." -#: core/validators.py:459 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -935,7 +1013,7 @@ msgstr "" "Veuillez fermer le tag %(tag)s de la ligne %(line)s. (La ligne dbutant par " "\"%(start)s\".)" -#: core/validators.py:463 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -944,7 +1022,7 @@ msgstr "" "Du texte commenant la ligne %(line)s n'est pas autoris dans ce contexte. " "(Ligne dbutant par \"%(start)s\".)" -#: core/validators.py:468 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -953,7 +1031,7 @@ msgstr "" "\"%(attr)s\" ligne %(line)s n'est pas un attribut valide. (Ligne dbutant " "par \"%(start)s\".)" -#: core/validators.py:473 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -962,7 +1040,7 @@ msgstr "" "\"<%(tag)s>\" ligne %(line)s n'est pas un tag valide. (Ligne dbutant par \"%" "(start)s\".)" -#: core/validators.py:477 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -971,7 +1049,7 @@ msgstr "" "Un tag, ou un ou plusieurs attributs, de la ligne %(line)s est manquant. " "(Ligne dbutant par \"%(start)s\".)" -#: core/validators.py:482 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -980,16 +1058,22 @@ msgstr "" "La valeur de l'attribut \"%(attr)s\" de la ligne %(line)s n'est pas valide. " "(Ligne dbutant par \"%(start)s\".)" -#: core/meta/fields.py:95 +#: core/meta/fields.py:111 msgid " Separate multiple IDs with commas." msgstr "Sparez les ID par des virgules." -#: core/meta/fields.py:98 +#: core/meta/fields.py:114 msgid "" " Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Maintenez \"Control\", or \"Command\" sur un Mac, pour en slectionner plus " "d'une." +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "Utilisez une chaine crypte MD5 -- pas un mot de passe en clair." + +#~ msgid "Traditional Chinese" +#~ msgstr "Chinois traditionnel" + #~ msgid "Messages" #~ msgstr "Messages" diff --git a/django/conf/locale/gl/LC_MESSAGES/django.mo b/django/conf/locale/gl/LC_MESSAGES/django.mo index b9611236d806e522784ea6a73dc60d43be9316dc..0d07a8cf1d2ac16a1f8e5d54b2b1a917f05a3c3e 100644 GIT binary patch delta 21 dcmX@5c}jD`TW$^`BLzcKD-+|*U%9Vx003C+2eJSF delta 21 dcmX@5c}jD`TW$_RQw2jKD-(mwU%9Vx003Cm2d)4B diff --git a/django/conf/locale/gl/LC_MESSAGES/django.po b/django/conf/locale/gl/LC_MESSAGES/django.po index e9c8e3b99a..abb01c9527 100644 --- a/django/conf/locale/gl/LC_MESSAGES/django.po +++ b/django/conf/locale/gl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-15 12:40-0600\n" +"POT-Creation-Date: 2005-11-22 15:43-0600\n" "PO-Revision-Date: 2005-10-16 14:29+0100\n" "Last-Translator: Afonso Fernández Nogueira \n" "Language-Team: Galego\n" @@ -504,6 +504,36 @@ msgstr "" msgid "Dec." msgstr "" +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + #: models/core.py:7 msgid "domain name" msgstr "" @@ -613,7 +643,7 @@ msgid "password" msgstr "Contrasinal:" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." +msgid "Use '[algo]$[salt]$[hexdigest]" msgstr "" #: models/auth.py:38 @@ -659,7 +689,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "" @@ -739,167 +769,167 @@ msgstr "" msgid "Simplified Chinese" msgstr "" -#: core/validators.py:59 +#: core/validators.py:62 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:63 +#: core/validators.py:66 #, 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:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "" -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "" -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "" -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "" -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "" -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "" -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "" -#: core/validators.py:135 +#: core/validators.py:138 #, fuzzy msgid "Enter a valid e-mail address." msgstr "Enderezo de correo electrónico:" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "" -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" "%s" msgstr "" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "" -#: core/validators.py:228 +#: core/validators.py:231 #, 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:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "" -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "" -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "" -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "" -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -907,7 +937,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -915,71 +945,71 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "" -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "" -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "" -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "\"%(start)s\".)" msgstr "" -#: core/validators.py:465 +#: core/validators.py:468 #, 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:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:479 +#: core/validators.py:482 #, 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:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " diff --git a/django/conf/locale/is/LC_MESSAGES/django.mo b/django/conf/locale/is/LC_MESSAGES/django.mo index 0c8f34dde2eba17ef73846865ef39ece7b3662dc..cdaff5aa428f70a744a9103c2a786f49be627fa9 100644 GIT binary patch delta 4502 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 Vro618vbv|Utf#YkX4Zdv{twWh*x3L8 diff --git a/django/conf/locale/is/LC_MESSAGES/django.po b/django/conf/locale/is/LC_MESSAGES/django.po index 6c9491ac58..f3d30d093a 100644 --- a/django/conf/locale/is/LC_MESSAGES/django.po +++ b/django/conf/locale/is/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Django 1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-15 12:41-0600\n" +"POT-Creation-Date: 2005-11-22 15:44-0600\n" "PO-Revision-Date: 2005-11-13 18:08-0000\n" "Last-Translator: Dagur Páll Ammendrup \n" "Language-Team: \n" @@ -510,6 +510,38 @@ msgstr "nóv." msgid "Dec." msgstr "des." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "maí" +msgstr[1] "maí" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "vefur" +msgstr[1] "vefur" + #: models/core.py:7 msgid "domain name" msgstr "lén" @@ -615,8 +647,8 @@ msgid "password" msgstr "lykilorð" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Notaðu MD5 hakk -- ekki hrátt lykilorðið" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -663,7 +695,7 @@ msgstr "Persónuupplýsingar" msgid "Important dates" msgstr "Mikilvægar dagsetningar" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Skilaboð" @@ -744,72 +776,72 @@ msgstr "" msgid "Simplified Chinese" msgstr "Einfölduð Kínverska " -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Þetta gildi má einungis innihalda stafi, tölur og undirstrik." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Þetta gildi má einungis innihalda stafi, tölur, undirstrik og skástrik." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Hástafir eru ekki leyfðir hér." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Lágstafir eru ekki leyfðir hér." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Skrifaðu einungis tölur aðskildar með kommum." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Skrifaðu gild póstföng aðskilin með kommum." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Vinsamlegast skrifaðu gilda IP tölu." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Tóm gildi eru ekki leyfð hér." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Aðeins tölustafir eru leyfðir hér." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Þetta gildi verður að vera samsett úr fleiru en tölustöfum." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Settu inn heila tölu." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Einungis bókstafir eru leyfðir hér." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Skrifaðu gilda dagsetningu á YYYY-MM-DD forminu." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Skrifaðu gildan tíma á HH:MM forminu." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Skrifaðu gilda dagsetningu/tíma á YYYY-MM-DD HH:MM forminu." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Skrifaðu gilt tölvupóstfang." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -817,26 +849,26 @@ msgstr "" "Hladdu upp gilda myndskrá. Skráin sem þú hlóðst upp var annað hvort ekki " "mynd eða gölluð mynd." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "Veffangið %s bendir ekki á gilda mynd." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "Símanúmer verða að vera á XXX-XXX-XXXX forminu. \"%s\" er ógilt." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "Veffangið %s bendir ekki á gilt QuickTime myndskeið." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Gilds veffangs er krafist" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -845,69 +877,69 @@ msgstr "" "Gilt HTML er nauðsynlegt. Sérstakar villur:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Illa formað XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Ógilt veffang: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Veffangið %s er brotinn hlekkur." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Skrifaðu gilda styttingu á bandarísku fylkisnafni." -#: core/validators.py:228 +#: core/validators.py:231 #, 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] "Passaðu orðbragðið! Orðið %s er ekki leyft hér." msgstr[1] "Passaðu orðbragðið! Orðin %s eru ekki leyfð hér." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Þessi reitur verður að passa við '%s' reitinn." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Vinsamlegast fylltu út einn reit að minnsta kosti." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Vinsamlegast fylltu út í báða reitina eða skildu þá eftir tóma." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Þessi reitur á að vera óútfylltur ef %(field)s er %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Þessi reitur verður að vera útfylltur ef %(field)s er ekki %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Endurtekin gildi eru ekki leyfð." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Þessi reitur verður að vera veldi af %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Vinsamlegast settu inn gilda tugatölu." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -915,7 +947,7 @@ msgid_plural "" msgstr[0] "Vinsamlegast skrifaðu gilda tugatölu með %s tugastaf í mesta lagi." msgstr[1] "Vinsamlegast skrifaðu gilda tugatölu með %s tugastafi í mesta lagi." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -923,38 +955,38 @@ msgid_plural "" msgstr[0] "Vinsamlegast skrifaðu gilda tugatölu með %s tugasæti í mesta lagi." msgstr[1] "Vinsamlegast skrifaðu gilda tugatölu með %s tugasæti í mesta lagi." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" "Gakktu úr skugga um að upphlaðin skrá sé að minnsta kosti %s bæti að stærð." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" "Gakktu úr skugga um að upphlaðin skrá sé í mesta lagi %s bæti að stærð." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Sniðið á þessum reit í rangt." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Þessi reitur er ótækur." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Gat engu náð úr %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "Veffangið %(url)s skilaði ótæka efnistagishausnum '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -963,7 +995,7 @@ msgstr "" "Vinsamlegast lokaðu opna %(tag)s taginu sem byrjar á línu %(line)s (línan " "hefst á \"%(start)s\")." -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -972,7 +1004,7 @@ msgstr "" "Texti sem hefst á línu %(line)s er ekki leyfður í því samhengi. (Line starts " "with \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -980,7 +1012,7 @@ msgid "" msgstr "" "\"%(attr)s\" á línu %(line)s er ótækt eigindi (línan hefst á \"%(start)s\")." -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -988,7 +1020,7 @@ msgid "" msgstr "" "\"<%(tag)s>\" á línu %(line)s er ótækt tag (línan hefst á \"%(start)s\"." -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -997,7 +1029,7 @@ msgstr "" "Tag á línu %(line)s vantar eitt eða fleiri nauðsynleg eigindi (línan hefst á " "\"%(start)s\")." -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1016,3 +1048,6 @@ msgid "" msgstr "" "Haltu niðri \"Control\", eða \"Command\" á Mac til þess að velja fleira en " "eitt." + +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "Notaðu MD5 hakk -- ekki hrátt lykilorðið" diff --git a/django/conf/locale/it/LC_MESSAGES/django.mo b/django/conf/locale/it/LC_MESSAGES/django.mo index cac3321286844f94d8f31bf092e88180f991928e..b4cdd7908ef693e01cbfa75b281b20e742050b89 100644 GIT binary patch delta 3869 zcmZA3d2o$a9LDi;NsvVDO>!;ahJ+vyRHU(mkS0T{&Dh2=+9Iu`#yXa2=uMR>wZGKX zph|7E1|{~ThL*NkV`{0b%v7g3wT%vgexJO@KYb^^`#I;__dWZ$Z+`#K^Qh1hyc!d- z*l?XB;)pKgjEVFZGr6KljoBV$Ogr3xiTD_MVj$X>JRFUK@Ce3YVvI3VVOnEZ%)wC1 z#qrn`L-06qU(lQ)QHg>dF${0HUzoptG7M_>gU zi!HGLE8}j|^WS4F{0)7yZ(fk7O@WVIl*crzhZ&fR1MyXyg*EUHY9_9rD%OYYuYyf5 z6FcK5REPGXI&=hE;AxzIWvVa(v~MOUfrY3WXW0CF)YL7p`6A3BzZTWe+o%TaVlLiC z%~VEJW2RsyRQ?p|{$Ek|U$^<&7%Z*8esLewk;kaze~x-Ef`v^&KQ_Zw*c8X2I=BI~ z)>~2c??ly8g5h`+Bk>G2z)R@Ga@ClBb)a%JcjVPk`9xGj$*2cY@fB=?dT<14WRtNv z&bH<2kw3GC5ABJcP#w605qKL_-#u)DFRC&BeMz*TmIPdiALBlpidg}7vmM7Y@_(Q@ z65y!Jz)q+R{fydNH&7jafLh9@s2K`j1FQ};vi+7K4Q`9EyjvCMe?1j%z&-X}h2NZmlgx0hO>*9Ir zgHNzG_Ta2E#?7c>bD57e_zZKgHAhDyorW5~9MoP|jGEbHn1l~dOB}_0&4AVqBi3_TkfG3+H{eqj>p=3ZRF21;v*D$ zs+{&sKN7m}9aKZ3Y`y?P$WOQVS@!!ysE)2ib$o+$2WnH5*!)@404|{Fy@hJ$AFPZ| zFsO>6lH3u;qHe5ofmDC^$y}zcr?1in})5P!;vD`GGi`{7_Vf&fD^fs1aYsaC~6PpQCnp zXao2AIBR2M&?XyI|F8zkzY=39P{jrIi$csIKND5acc^oF1KG&t8S1RC4QWPIkx;9 zs^LqhwY_Qce_=WD53NtJE%`E3qVjCirVVx^(T+r4Td)cX$!|kVZEC99fgDtax}X~D zhN`Hqb%1pU`Y0cXy8i>@B%6;g9oM4u5*|Pe=$7>{YX6yV7DyGQV?1_1bz~@(?hR`JYA;N~ z*Kq~*!ap$qv-l@LKU@Q`H7-Mq`~qskPmuSHNo5+AU?=p_zPU+4yZ;{Qn1yk-X2gdY zVHH$|0+@hxQTMmUk@zO6qi3xbP#w62EW3$gM-Ii#$eY*fLJi<723ZCZN4M)^S5yxt zVjM2OLfnd7uyG4_1}3APb1(}}pc)EoY0NlG$GNx>bzh4N_osLmQe+lldpwiD{A;cJ zt=u&WU|I5s*cFpdQ#c+qBg?QNuD1CtNZV!?_QSi#!7&{ezD7I&HFMWczYlj%d+8x+ zPlRML|G6X@X1X&l4tcSemB@0LBN%}Xt$OvTBNb5<`_YRvY`!5zlW%72fO@{4%@0Q1 z{~ku+jG#>{wQfYMc?s&q!>Atrfc&VLtEh&<+PdHSQ8QQ@)liDH8LFOa)bqJm1AC*M zA8!o?Noe!T#45PZ<~O1$+==SQA)7yo)yZE(J@*hbl4lr$-YmDg7ODd&*2buM(or*% zgDhpX=|w_QItbO^F!bO~LKQC}w6^N~m&B)pu4G~(vCP?5F)wVpintay(UF1ZS)?== zbts28YjGN2}0LrE~WqY%_sdfG2NCeM)mUL^%{w3#BoB?pyP3b zm`i+4^e6N?KAb2fCTjFMNE{_b5PO~5kqsIhAXPvF2yM{Agf4CJdBk8sZ_sAMCMVMy zUwJjD*+e0+mf$FvZ=5mS#IP?&btbktMc(+1OGu3-v}v-4^@Ofo#4%zL;V1SG+90}W zyOjR_H;42pqR0vLC53)Ps>EsH^EX;!@9Aw_i8_M+ziLvj%NgT~_iS?(`26j@B|nl_ zXm31-WeJ_K@x&lvETLR}g7kjkBVvPd#}}yaHK}}}4)F%jk$8D6cWOoXJu951 zQLU=&rm#7&lsHNBAT|?QoS9Jpk5jxZYGzDv@5H?!71GiYnl#NwPcN>Te868^q4njE F{{U1&mkj^_ delta 3973 zcmYM$3s6*59LMpq@=BCl1YfujH$g#gO+{0oh%_@5H50~1_5jo%6$&gfwFOfv6*X^$ zl9rm~E6V~k^HFMA*<&nw=-60kQ;y|KO;OD>HGO~F<8+7re$F}f-t#`YG}rhp)cV5b z5+YX{uJ?$miNa`O;(W#|YpYUY-ibG6C?3XCjA_R+n1y4o221cHcE;=kW2nLuU<8iC zC>)Ou;awPsr;z8u<}``+6nulN@ptcr`4{;!QHjO`urtzz$-p$sLH^7=eCWMuRK@f0 zDqMhra4B}cW2pDf;a*d0e;20n<{*nr9S32G*OMpYcoho0|_ zeQ*?x#4xHuAEG*R5(nZLd>9itG6S@4o>Br=q8_Zb`3P`B0M)@a zQEPn&_52Z3Jtr_0KgBrw8nf^c`mtjY^REtcOY%mZiOOfADjJA-F&}&3Xw-}IQF~$; zcENSFd@u56j`N{C@hz$Ym#_^sqw4eVQXU4nF#i)tjHbZBt+*IJzy)}F(A#XMurK+) zP#wwQs62s_P#rpt+FZY)Iv&AB(NeZS%}{$(hq@qDm^9Sp&JU9)B{2^5;$GC$y^ZSO zailLM>Kb-BI>>UH8q_AMM=iw#)YK-Wc*l4sYLk|r2DBK9FwXJbFGUR~{3r>n=}zp1 z-{S;~<&2ESQoIiLBY);6KJqY*BQp#OP$PW?HGuV~z3>uhX18HFM$nrK%t9@3Au=Oj zGm(U*s1(&uIo^kBaRB<#jG2amP*b=8)!=s2S~j9aei(<~W$cc97>#Cb0;=I^)E-!8 z-HOpV|4k&chWk+!pFoY|6zUY5MKyF0Rly&&ycMk|A3(hyL~Y7UTb_g3e7B-HKGx>% zME=Y)KB8#f)Y%&@>cQtx6>qiqCX6J1$mWmQ`yZn^dIr_;@2rrA zWK=snP+w9en?wu_M~!$a>cP8F72l8QKs83;BdF&dLw**_Qd9%$?EUSi_jX~9&zOBU znEdY<-YFZ7elxYHMxrVjiyFZMn=e5>`Epc+ zk07gIok7cd>0Q3Fb5JrZ>Ody~-A4?$Hp6H~Aj)scWixZZ@|w`BM&faEp0aPJ7mhSp7zb-Bs9VxceVR7 zQ8O|aH6yp7MmPr5p+a=2>PGK-V*HKFzcy6~1=<`{I1C$5GjSeuuG{jH$1<8;*al0i6{vI;f8HwE0}r&+IVNb0w&OOvePA zhbmuz>cAT7dZeB^%q9|=qSsMtc@#CJCs7T4g+6Q~RPky;YpdRGCYBMpGKlR&gS)Nm znAWeWh-;PWiwm|}N=k!KhlUVuyP>#X_$^Yp<`ZKGbx)h%7@@1)qvapLr%6vC7TL0A zQN6r!-ArO3@h+j^>X;lRRuJon$%MYorxQ)YY>oa65=V%c#6I_nxUA4YQgewQ5lbu~ zbZKH%64Qvm1Si+*a6|r-4jW0;5jDh1L=N$$TkKD5y@}LF;x)IYxwV1Bp~uNr5U#y{2qTDW;vu4hs3LT|?9p=cwIvP^j}zP6Gl5|8PEw^r z8gUmfoVap5=eCPa^sRHd#pfpNp>P1PmUxdCN4!G3>duJ|`krZA9sg89np0fijJl=2 zQ&wDE=7d5{Mdd7KR@qdis(7~ZKyh{T?8>SsjY+8oBd_Yy-|5pgr(f^JbLj^X`&JiM qO?Ap=IHi?S%1fs@Q_4wI%&MxKF{84jzLu&goEgRc*HWK*F7iJ_Dz%LO diff --git a/django/conf/locale/it/LC_MESSAGES/django.po b/django/conf/locale/it/LC_MESSAGES/django.po index 32089bdf19..18e5aac0db 100644 --- a/django/conf/locale/it/LC_MESSAGES/django.po +++ b/django/conf/locale/it/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-15 12:40-0600\n" +"POT-Creation-Date: 2005-11-22 15:44-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -510,6 +510,38 @@ msgstr "Nov." msgid "Dec." msgstr "Dic." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Maggio" +msgstr[1] "Maggio" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "sito" +msgstr[1] "sito" + #: models/core.py:7 msgid "domain name" msgstr "nome a dominio" @@ -615,8 +647,8 @@ 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." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -662,7 +694,7 @@ msgstr "Informazioni personali" msgid "Important dates" msgstr "Date importanti" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Messaggio" @@ -744,99 +776,99 @@ msgstr "" msgid "Simplified Chinese" msgstr "" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Sono ammesse solo lettere, numeri e sottolineature ('_')." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "Sono ammesse solo lettere, numeri, sottolineature ('_') e barre ('/')." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Non sono ammesse lettere maiuscole." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Non sono ammesse lettere minuscole." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Inserire solo numeri separati da virgole." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Inserire indirizzi e-mail validi separati da virgole." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Inserire un indirizzo IP valido." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "E' necessario inserire un valore." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Sono ammessi soltanto caratteri alfabetici." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Il valore non pu essere composto solo da cifre." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Inserire un numero." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Sono ammessi solo caratteri alfabetici." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Inserire un data valida in formato YYYY-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Inserire un orario valido in formato HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 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:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Inserire un indirizzo e-mail valido." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" "Caricare un'immagine valida. Il file inserito non un'immagine o corrotto." -#: core/validators.py:154 +#: core/validators.py:157 #, 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:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "I numeri di telefono devono essere in formato XXX-XXX-XXXX. \"%s\" non " "valido." -#: core/validators.py:166 +#: core/validators.py:169 #, 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:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Inserire un URL valido." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -845,69 +877,69 @@ msgstr "" "E' richiesto HTML valido. Gli errori sono i seguenti:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "XML malformato: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "URL non valida: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "L'URL %s un link rotto." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Inserire un nome di stato americano abbreviato valido." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Attenzione! La parola %s non ammessa qui." msgstr[1] "Attenzione! Le parole %s non sono ammesse qui." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Questo campo deve corrispondere al campo '%s'." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Inserire almeno un campo." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Inserire entrambi i campi o lasciarli entrambi vuoti." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Il campo obbligatorio se %(field)s %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Il campo non pu essere valorizzato se %(field)s non %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Non sono ammessi valori duplicati." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Il valore deve essere una potenza di %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Inserire un numero decimale valido." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -915,7 +947,7 @@ msgid_plural "" msgstr[0] "Inserire un numero decimale con non pi di %s cifre totali." msgstr[1] "" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -923,30 +955,30 @@ msgid_plural "" msgstr[0] "Inserire un decimale con non pi di %s cifre decimali." msgstr[1] "" -#: core/validators.py:361 +#: core/validators.py:364 #, 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:362 +#: core/validators.py:365 #, 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:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formato del file non valido." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Il campo non valido." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Impossibile recuperare alcunch da %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." @@ -954,7 +986,7 @@ msgstr "" "L'URL %(url)s restituisce un Content-Type header non valido '%(contenttype)" "s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -963,7 +995,7 @@ msgstr "" "Il tag %(tag)s alla linea %(line)s non chiuso. (La linea comincia con \"%" "(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -972,7 +1004,7 @@ msgstr "" "Il testo che comincia a linea %(line)s non e' ammesso in questo contesto. " "(La linea comincia con \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -981,7 +1013,7 @@ msgstr "" "\"%(attr)s\" alla linea %(line)s un attributo invalido. (La linea comincia " "con \"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -990,7 +1022,7 @@ msgstr "" "\"<%(tag)s>\" alla linea %(line)s tag non valido. (La linea comincia con \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -999,7 +1031,7 @@ msgstr "" "Un tag alla linea %(line)s manca di uno o pi attributi richiesti. (La linea " "comincia con \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1017,6 +1049,9 @@ msgid "" " Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr " Premi \"Control\", o \"Command\" su Mac, per selezionarne pi di uno." +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "Usare il codice di controllo MD5 -- non la password." + #~ msgid "Itialian" #~ msgstr "Italiano" diff --git a/django/conf/locale/no/LC_MESSAGES/django.mo b/django/conf/locale/no/LC_MESSAGES/django.mo index 10165e229bb283181e138b338ba3f7cb061aeca1..0f29a5f8c331a711067fbea7ab9ec9e64d1a2550 100644 GIT binary patch delta 4596 zcmYk=2~bs40LJlyEMf{iMI>>1iXeg;C_;ovDq?_1DIsZEP-*6Zh9R0gH^kiceL+hL zaz~OP$s){3)3Ro2nrs{^E3Ii6%9@(#|Gj&d@r>X5opay4=bn4+x%W}~R`?t)^YL75 z>$k;Fu8>aTRDdxZe2mEo(pF=Rw=pISPhbT8h2yYeTVuvxA?D**yc;7zjG+sYg1$H$ z{V^Tq;%M~4dSpM3IZve>8!lmU{1#i_EoTSwC(^h14_l*)of(61V-Ji+ogf$4#XO1{ zz-&}M^H3*Tf`M3uhj2aK!}(2Os4@IAv-wcRW!MdOpiWqe-SH#T0Dr+K{1cxYCvbO z6~2c$?i1{ZU*aJ231{$_gc|5f)S4(l?LRM^`Bz7a*l-t?q1N3-jKy*c#tWz`_zE?! z?@%-GlWqTj>hLyt*KJ2*`qB!Zbux2?Mbb@l!Kq|2%R--z6 z2Z!J#%)?+F6*o@B<@h2lK^F_42X4Z6tU(RrCYE7%7iT~RP;2dkhl;MG9(4s5Z2L3R zlzojF*me8;&&U`|BWmi~bakGNF4j2IjE=wp%tZBj%x*tz+jTgE?VfW~G$sCSVG^j>IR_M@PP7>PaV6^BuSZ?^UL1}eBL7SKU&nLv90YO$@uN%#XYHk01lIlizr^RJFd*q{?H!D3v28j$JZ+(UoVySx=@|L)il zV^PN?Vh|3tW+J~YCJ)^>6Ikia$FL|h_!wS?1Pulir+)Dc_j=)^rA{xMM)S^3y zyi?3Y491)2#(z*#-H|1)AEgN7T1+nLFRtHwc9tLj^By*;sInokGV=kJKk_Mm|K`lyAgF| zBYBJHL^;U2!_=du@_W>AzoG`vXxslFmRxEd6@PXLVE=2o{mTLGYK^l1-3mMHK5t(!V-+p^S_dc zI<7`_+<@xv3bw-=sC)h|s>3ke#~PR$wFqNSYhw`VDagVHaT~JW&5t-2Ls&INeiP&tg^VjZV)KhT^qwpFI!$5wiv{*Ay zGql_KGHM17qxw06T``cWyyGjpGZiVhr&y)XwSp|Q9 z3)DbvqOPRTe(%Gy=zAAxdjzVVeyDyEQOBiXS3Un3cEdE(35slcDYl}$2K6hq6ZKdf zwBJ{vPH+l!0cTNDdk%HNi>R6T9Cf8PQ2jSr{rD|!t>-_4iXOKJR0oNuj)$NQ$Uu!e z4>f>%)Cs3xdz^t9=rYuP8&Li1L=AjD`ryOlapFs+5Djhv=l7OR_LhPZi26l23HsdlMDC*q$fFGRY#xiOOO!z*}?vPKcyFmrNoblXc`HGM=bxBxz){8g~@WJGRm7j*X8| z*Ghhh@CNn1QuP*7+2Y`ReHKzbMTU|G$WFqW)%zj?@Ba^wDf*y1;$SY|6HZ;%&rc$` zLQasCWIw4T5#$5XR6?jMBuV5Al0i0;r^%~C~Tp;aI{WZtBS%qVhgj;jK9zFF`OVxMSNz>e<$fDI)zzIVmG5=g4H@BBO}PYO;t-Bdf^Ls)ja;L#k#)*7*g-$GhVak_Qf~N{Gn_ KtvWGurr-Y)&A=%D delta 4703 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 ZzBV)|^Eiu~YChvBtElm`WlyMa{U2$7=6wJF diff --git a/django/conf/locale/no/LC_MESSAGES/django.po b/django/conf/locale/no/LC_MESSAGES/django.po index 308411a794..a613a677c1 100644 --- a/django/conf/locale/no/LC_MESSAGES/django.po +++ b/django/conf/locale/no/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-15 12:40-0600\n" +"POT-Creation-Date: 2005-11-22 15:44-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Espen Grndhaug \n" "Language-Team: Norwegian\n" @@ -511,6 +511,38 @@ msgstr "Nov." msgid "Dec." msgstr "Des." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Mai" +msgstr[1] "Mai" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "side" +msgstr[1] "side" + #: models/core.py:7 msgid "domain name" msgstr "domene navn" @@ -616,8 +648,8 @@ msgid "password" msgstr "passord" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Bruk en MD5 nøkkel -- ikke passordet i ren tekst" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -663,7 +695,7 @@ msgstr "Personlig informasjon" msgid "Important dates" msgstr "Viktige datoer" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Meldinger" @@ -743,73 +775,73 @@ msgstr "Svensk" msgid "Simplified Chinese" msgstr "Simplifisert Kinesisk" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Dette feltet må bare inneholde bokstaver, nummer og understreker." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Dette feltet må bare inneholde bokstaver, nummer, understreker og " "skråstreker." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Tor skrift er ikke tillatt her." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Små bokstaver er ikke tillatt her." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Skriv inn bare tall, skilt med kommaer." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Skriv inn e-post adresser skilt med kommaer." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Vennligst skriv inn en godkjent IP adresse." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Dette felte kan ikke være tomt." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Det er bare tall som kan stå i dette feltet." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Dette feltet kan ikke bare bestå av nummer." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Skriv inn et helt nummer." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Bare alfabetiske bokstaber er tillatt her." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Skriv inn en dato i ÅÅÅÅ-MM-DD formatet." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Skriv inn tiden i TT:MM formatet." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Skriv inn dato og tid i ÅÅÅÅ-MM-DD TT:MM formatet." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Skriv inn en godkjent e-post adresse." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -817,27 +849,27 @@ msgstr "" "Lastopp et bilde. Filen du lastet opp var ikke et bilde, eller så var det et " "ødelagt bilde" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "Internettadressen %s peker ikke til et godkjent bilde." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Telefon nummeret må være i XXX-XXX-XXXX formatet. \"%s\" er ikke godkjent." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "Internettadressen %s peker ikke til en godkjent QuickTime film." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "En godkjent internettadresse er påbudt." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -846,69 +878,69 @@ msgstr "" "Godkjent HTML er påbudt. Feilene var:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Ikke godkjent XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Ikke godkjent internettadresse: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Internettadresse fører til en side som ikke virker." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Skriv inn en godkjent amerikansk stats forkortelse." -#: core/validators.py:228 +#: core/validators.py:231 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." msgstr[0] "Pass munnen din! Ordet %s er ikke tillatt her." msgstr[1] "Pass munnen din! Ordene %s er ikke tillatt her." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Dette felte må være det samme som i '%s' feltet." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Vennligst skriv inn noe i minst et felt." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Vennligst skriv inn noe i begge felta, eller la dem stå blanke." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Dette feltet må bare brukes vist %(field)s er lik %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Dette feltet må bare brukes vist %(field)s ikke er lik %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Like verdier er ikke tillatt." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Denne verdien må være 'power' av %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Vennligst skriv inn et godkjent desimal tall." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -916,7 +948,7 @@ msgid_plural "" msgstr[0] "Skriv inn et desimal tall med maksimum %s total antall tall." msgstr[1] "Skriv inn et desimal tall med maksimum %s total antall tall." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -924,32 +956,32 @@ msgid_plural "" msgstr[0] "Skriv inn et desimal tall med maksimum %s tall bak komma. " msgstr[1] "Skriv inn et desimal tall med maksimum %s tall bak komma. " -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "" "Er du sikker på at fila du prøver å laste opp er minimum %s bytes stor?" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "" "Er du sikker på at fila du prøver å laste opp er maksimum %s bytes stor?" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formatet i dette feltet er feil." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Dette feltet er feil." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Klarte ikke å motta noe fra %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." @@ -957,7 +989,7 @@ msgstr "" "Tnternettadressen %(url)s returnerte en ikke godkjent Content-Type '%" "(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -966,7 +998,7 @@ msgstr "" "Vennligst lukk taggen %(tag)s på linje %(line)s. (Linja starer med \"%(start)" "s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -975,7 +1007,7 @@ msgstr "" "Noe av teksten som starter på linje %(line)s er ikke tillatt. (Linja starter " "med \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -984,7 +1016,7 @@ msgstr "" "\"%(attr)s\" på linje %(line)s er ikke en godkjent tillegg. (Linja starter " "med \"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -993,7 +1025,7 @@ msgstr "" "\"<%(tag)s>\" på linje %(line)s er ikke en godkjent tag. (linja starter med " "\"%(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1002,7 +1034,7 @@ msgstr "" "En tag på linje %(line)s mangler en av de påbydte tillegga. (linja starter " "med \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1020,3 +1052,6 @@ msgid "" " Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Hold nede \"Control\", eller \"Command\" på en Mac, for å velge mere enn en." + +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "Bruk en MD5 nøkkel -- ikke passordet i ren tekst" diff --git a/django/conf/locale/pt_BR/LC_MESSAGES/django.mo b/django/conf/locale/pt_BR/LC_MESSAGES/django.mo index 3926f10489d5a361f4f480cf53f6b012cea83d7d..160e9f4e064e9c2cf0a34c7497cdcdf4999c20bd 100644 GIT binary patch delta 4208 zcmYkot}0Ru;;58H>xz=r zT}P!lt?4lB(2mY9W6YH4AC%Ix9op~jeKu3i_`RRq^*sCR?z7Khe7nl;JIA>f>Yryg zu95~MBET3wKVw=|RjV;E!N&B#SZs=39D#c<6`$fHObjumE*?a>Fc+~rUc(Cb4KBp* z(I1mSedjr*ABCDUq+%t^aR0*0LH?M9{8Yyc$hBq{M&J=t$2YMC-bP*j7K3V z8T~k^7IsDTGZY&e$C$|!bb}mhf_YdG&tfEA!RGiYw!>gX+Yo!BR%8;Y<8`R>_hKww z!-4n$HK3lHqyhECcud7b+}~`Vpe6g)8c^Fku^OtqHfp8~ZM`WbQg4YG=q%I?vM?DJ zqb76(SKuvMA6&;he*)_Ksp$ARunk$(#i$#vKy8DysPl3$3iGieUd0YriW*=WHh`Xa zd(`>ysD2W$GA3g+9EQ=DUYGR`qOh3;jc5;Qi3)7}Fsh>>)P<+94VIv;dyblExq8Ng zVJND-HS))F<41d96lwtJSOsUH`t#Of{d-WzpwTbB;t!WC@N$)5yJk6ly|FCIvmq0&Ipq;TU{{ zqj8kSn6_Aijqx7#Kvj|<0X5V0s0nOC?SWmW72S(b_!9Mq!+FKD5>1hQ9n+e^G#bWZ zC;S?x;w#jN8B9Yrn1jA&hMH*(CgDkp#22WQYQXbqj-61?I^8-OwX%y*kIcb9z5iP% zXyiLlyL~_EM#oScoVV@QZT&~orn_(JPf(ldAJl*YSVq-@Q3I=w6|k3W?}s{XI9B2Q zX1r~fVa?KC(7pmSu#Kn{$VF|M-L`%leQyQo{1Q~hw~$YXxr@5~DQaS+sPif?D)kqF zjz5Jk3Kg&s>cnQqXWhi1ZjfaEekcy|V_)Dn+6$xHJ)`wjJrYOYYRtqtsNLSXg}e0W zr~ytx-EUqC)_*AlFAW;VGYr5#k*}?JjatgkmhOcOQSDKvfptZ_cKwmDm^9S&*{GRr z!b-RU)qep7Vj(7CQA^gJSKd6KfemUZMZ23P8u@IS5vY!5pq4Thwfpl?Z^h5p1p`~T z&pHX|%FIN~JP%{=BzDIKn2es*?trE{6g0w2RL5S_Ql3VQG=#5B6%0e27l|533~CAE zQ8Vs=`VREL%D4=5-a6C`x1d()4sO6lw(iVh8oE(7YKb8e~H^4eL#I{ezFzSm?{pBJbK~sntSP53v`+tLi25<-UX?=hL@h{YF?!$M| zgS*j-7f{c(9d~6FO)5su3UyL)Q@Y9%vJD?1Z4vH2LN_uosQ5w1cFpa7@i z8J&P09;_~GfxHkV7Wv$pG)%`OSPSpsP<)E|r1#>7{brV+&Od~FBuxpvi;vJrqp*Mn z#=oTI7WTx)*64WmZOFuBwC_M|&d|TeSRO~?a7;t( znG;=Df6eed4cgt0P_M}|oQ*ME-TFS9OZ^vAhbi6MT|O4|Ma)1A#EVH-fSTz;tb>7c z8jT)g)0q@&T6fl8n_(smdS>%bH&}xj&{hn=eAJDOqRzX7HSwmcKg8P9UtkTa%Db%1 z>9MxK>eRcT9(4+8;LwLK<$YiP&dAdy8d_6^{-I_ z4@z+LU_I(_sOwTt6LCh^!W7hq7NK^hgW9!g?cZ-gE#)56z=}~FeTDp!;CoZv!{a1{ z=$PW-`~84l?Jb^&*+vQphvQo=l@^ftDsU_zQ%Nz=taJ<^sie0m9PBaQ7w^2U#63O z)iIVt`bzxsjBQCSX>HrYCuE+jzhfPSy1(xz;`cK7)UEp79w z%Cf>OvRu+s>_pOP9qZU>Gf$bc*r}+0)V{xW=XJWrAD@}w-kG^`=UzPJdv8q(-`5?3 zstm^o5=Ht18`GwRF*k;&)tK2~#*D#iydGQHX>b^^VkZTur>aM z%kVD@!o?l^=lM)Ah0ZjTVLRO9{=#fU{+Va^(E;}&*P3G(i>FZ?|BapSGV1zpDjJ|W zwnYciF%cs$2i4Er7-M|KY^0z8c403(f^G0yjKd3!4Qf&69mIG%jyK>>n1&7yUK5;& zdgiyG&YzF!Cm*jtFJ6l)F&Qf&S^rQ9uhXCz)uZmb!PY-Pb#w-G;n&y?e@0!`{W|wf zldv203{?9JV|w(6!a_`us2@C z+1T4LW)_xXe>{UR7|f61n1Ew34|S(|P&aS@wFi!&R`evsV^3bK1k6G`YA>=PK2u6T z1C(PP?#98`h3VgklTk~zA2rb1sAt!Jy5loA3S07=;xG%fVuh#yD^SmTpY;f8h2O(a zz5gFmP{-e(?%)Dy*Iz;nbQ#q_dzMG-T~YN|)N7Vv>zSxcb~9?ivuxdinpgq0#!B1% zB(`IG^8y8RxLXZ)$a>PYe~6mcS=2<&p*ByGtzSV+v<;)Ep9oYxG03OIB%`h$iMoOD zsPkr`PaQ6x5QK}dH5Q{zT#kI^&HbnWw%Ff4hm%?uvlHjg-W>1lovEz1>SZ_`Ph%m* zC%U`73WKTdLrw5NBI~aKPtdRu8&DG&mE@i{4*B|;DX68*L0wp6+gG3_wh8t6J%!B0 z)S?FZ40WepqOSW9)&K9P8*ffx{WB?CrGZ!9WG1`2d=4^svkLi)n;oc*522Rw9O^B& zh}yh~efaobHnJ#Y3(}=IjC$XHz!YrR*O*~A5Xa&Y9|g_mAZmt3Q5`p+ma+|>JI!Yxfiv9>rr?7FzS1-6|cefQRjV*8t@y`O2sql3iPE@P{Rq-K%b!|^cCvD zbEp9>S})o5X4G|8Pw470j-&c*K#lVOUaR;2424h{&ZF+|59FV@ z$`3vJlvMY^(Wnc@+xj%r1ZN=~nR%!`&xP0(x7+rE*p2$TsQ%6&A4AiO!FvBA_zr5R zqEHivM}1-k;zXQ)+RaY9;rhCVm)$ z^#0dV(4944G=74b!0(ukZF!*j{SwrLD=`u8Lq7Ya7U$zBjKE~R=TmVc^3PQAgZ*bt zq0avs`DmI5o|A7Qg>(vY@g3wZtBD!H#h77Tg$dM;;yw5yYIEkKyB!}z{k{n`U}s*1 zn{XnA;AU$zwxYfhZ^haS)?b^(3^j%gZ&FZqdIxHk=b>JgC0KxaY(45mK2p@@pay6} zJ;E=rBYuyXP&4XpLo}V}j&rapuES)k8OHi+^EJ{S&!TqgPpD^i2{k|q-bqa;6vHtR zHBb`jykXcGC);`scA;L1op2*+lh#;wVF&7meH8S}8&P-OWKZ}LHE_!j?ui{x6O2Z+ z_p|k(s0mL%?Tx9ZfwNKP6{7}PjhgsF)*93Y&$o|)E^I{I$*0!ys0sardT+0wc5kap z_q=wfrR;{9*Z@>NBauH1{{JiV#(T*+(vxTf))F7lF+s({6dog5J{|MP-9#Iced50x zFY4Is;@?~=D9<3TkW8Xu3OPg`QHA3vQcLELw@Bbv8YpNg#Z+##4ce93NRx@~K5%rW z(25)-<47*KgXmyS`rnpmSU~!aGNNyRj<<q|Y@7CnHs9l9l5H!;10;-8>iNe}&?_>R=vYEVk@X~!1deJ7 zi^-$5VKy$bWigsmk^QQ0%p@=ROYRT7@4U_CVcQmr-SqsmtE0$P`-|hale|WbkZjU} zR1h7vxtQ&Er!5DFr*J#jMV=t~W(1L!$#|k;0U1c1Cr|77&m(-O{yXlYltUgOg`|c& zKy*Av4wC!H1`;^NPzWb^w!wpg$m=Ap+BbEavcsPp|-vcci3`( zHv$EGmE7{bdJ*MB5<(V{RYXTG@+R4$iZjkzkn7Y94!am0>v)QsNu$%8d{0Tf)3>iv zJzIFfr diff --git a/django/conf/locale/pt_BR/LC_MESSAGES/django.po b/django/conf/locale/pt_BR/LC_MESSAGES/django.po index 04b9e7ce30..592cee1fed 100644 --- a/django/conf/locale/pt_BR/LC_MESSAGES/django.po +++ b/django/conf/locale/pt_BR/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-15 12:40-0600\n" +"POT-Creation-Date: 2005-11-22 15:44-0600\n" "PO-Revision-Date: 2005-10-11 09:12GMT-3\n" "Last-Translator: João Paulo Farias \n" "Language-Team: Português do Brasil \n" @@ -509,6 +509,38 @@ msgstr "Nov." msgid "Dec." msgstr "Dez." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Maio" +msgstr[1] "Maio" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "site" +msgstr[1] "site" + #: models/core.py:7 msgid "domain name" msgstr "nome do domínio" @@ -618,8 +650,8 @@ 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." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -666,7 +698,7 @@ msgstr "Informações pessoais" msgid "Important dates" msgstr "Datas importantes" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Mensagem" @@ -748,71 +780,71 @@ msgstr "" msgid "Simplified Chinese" msgstr "" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Deve conter apenas letras, números e sublinhados (_)." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "Deve conter apenas letras, números, sublinhados (_) e barras (/)." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Letras em maiúsculo não são permitidas aqui." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Letras em minúsculo não são permitidas aqui." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Informe apenas dígitos separados por vírgulas." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Informe endereços de email válidos separados por vírgulas." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Informe um endereço IP válido." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Valores em branco não são permitidos." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Caracteres não numéricos não são permitidos." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Este valor não pode conter apenas dígitos." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Informe um número inteiro." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Apenas caracteres do alfabeto são permitidos aqui." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Informe uma data válida no formato AAAA-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Informe uma hora válida no formato HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 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:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Informe um endereço de email válido." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -820,27 +852,27 @@ msgstr "" "Envie uma imagem válida. O arquivo enviado não é uma imagem ou está " "corrompido." -#: core/validators.py:154 +#: core/validators.py:157 #, 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:158 +#: core/validators.py:161 #, 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:166 +#: core/validators.py:169 #, 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:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "Uma URL válida é exigida." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -849,69 +881,69 @@ msgstr "" "HTML válido é exigido. Estes são os erros específicos:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "XML mal formado: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "URL inválida: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "A URL %s é um link quebrado." -#: core/validators.py:213 +#: core/validators.py:216 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:228 +#: core/validators.py:231 #, 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:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Este campo deve ser igual ao campo '%s'." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Informe algo em pelo menos um campo." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Informe ambos os campos ou deixe ambos vazios." -#: core/validators.py:281 +#: core/validators.py:284 #, 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:293 +#: core/validators.py:296 #, 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:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Valores duplicados não são permitidos." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Este valor deve ser uma potência de %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Informe um número decimal." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -919,7 +951,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -927,30 +959,30 @@ msgid_plural "" msgstr[0] "Informe um número decimal com no máximo %s casa decimal." msgstr[1] "Informe um número decimal com no máximo %s casas decimais." -#: core/validators.py:361 +#: core/validators.py:364 #, 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:362 +#: core/validators.py:365 #, 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:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "O formato deste campo está errado." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Este campo é inválido." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Não foi possível receber dados de %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." @@ -958,7 +990,7 @@ msgstr "" "A URL %(url)s retornou um cabeçalho '%(contenttype)s' de Content-Type " "inválido." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -967,7 +999,7 @@ msgstr "" "Por favor, feche a tag %(tag)s na linha %(line)s. (A linha começa com \"%" "(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -976,7 +1008,7 @@ msgstr "" "Algum texto começando na linha %(line)s não é permitido no contexto. (Linha " "começa com \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -985,7 +1017,7 @@ msgstr "" "\"%(attr)s\" na linha %(line)s não é um atributo válido. (Linha começa com " "\"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -994,7 +1026,7 @@ msgstr "" "\"<%(tag)s>\" na linha %(line)s é uma tag inválida. (Linha começa com \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1003,7 +1035,7 @@ msgstr "" "Uma tag na linha %(line)s está não apresenta um ou mais atributos exigidos." "(Linha começa com \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1023,5 +1055,8 @@ msgstr "" " Mantenha pressionado \"Control\", ou \"Command\" num Mac para selecionar " "mais de uma opção." +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "Usar um código MD5 -- não o texto da senha." + #~ msgid "Click to change" #~ msgstr "Clique para alterar" diff --git a/django/conf/locale/ro/LC_MESSAGES/django.mo b/django/conf/locale/ro/LC_MESSAGES/django.mo index aae27633613ed3ea05ba4c5f6b88a2b4d5c3d8aa..af6d66ae1fffbffd963fd19c1856c890739bf0fc 100644 GIT binary patch delta 4374 zcmYk;2~d_r9LMoLf*cAGNQZ`qiGmoI2mum`C}~P)L}_Z72V`WYsg=i*Xqu&&8j+G| zm?Wh}k>yopTAno%Q#mnCjHQ!h=X6_5eShz>Ry+LO&+fzX?z7MCJ`cRQDCporLEfja zA=O4XOybG3P_w8Yv)z$8YWDqkW<~e|cE{`(voaiqBe4-Dp~aeA1e1|2Yz_wF0&I(m zaRx5K5De}ZIM1_iDsdc$#t2OEe_`p!xt4{|I1IU#jlm?WM0LCz`LSv~^!*0Z1)4A% zw_`o-#ax`q#m>h%j4_WBsC47NVbq1b#!K)|48yLR-4l~B1xv6W&cZJEB5Gz1AwTvF zA38ty0<*rDiX(75YG9jC1KWZ*T;E=!G84Z;OzPF=Jyw|noqV9O1Yd?Yov{#@8 z+KjqD3l7Cr)D0!GE^{#()!v3W{~h%7h4G>!X2HM|K3y%aG(SJh+4xoo&AACqGlk*wL7Ca?276j z8PhQf_5CTRJDiUE*aCO_8Ki65g6jVOY9JqUX8zk#InDufcp3-bFL(oHU2K+!%W)Al zVijids3hS|%)nM$jInG84P*^!vo@dxybEDx|X;K@tycYl;K z5hwHeey9#>P*b`N2VgxiW;=xw(7Kwjo$O}R=9`6DqJ5|t{~h(Xdp#2U-CKyd!wS3( zzd>~{m`6i*I2N_m%Ww?t$I;k@N2L$WKn~eP)PN4)Pz>eK(4Ci{20j{taRM^Ko=v8b z%z-yho9`5AYQ92E)laAkoW)x(m3hy`l~{p?QRnyV;a?~ZwUk3pcUp>raUS->w^1|o zC8p^458ANBpk?)WO#UXS|zX4IzK<&Gag zZN6g|!S(Gkci?N}$A0CbEhaE6Ixz`#hkZ~N%607`)QpXE?K1cKn=p*ym8gN=#3;Yt*8s_L|$UHAH%Q(b;qBf&ifA4@gJxGgrxWbjzFCkjr_T=cvSys z?)P~ZPJ0k$2AK`l{FiXR>*e41`*=O=pRp8+Q~fnwhrG-zw71_u0*28}cJ{$?+S#Z9 zt;JBRLv7*)Y>#iD25=NL6Cd?v{XJja$?lC+=Y^K(!B{2Ji{0zt2(qpGIx!ADqAXdiIw)A(*#}I*3F~Sv(ft zAk+(`3N?Ve7>ox|9Uetps2TPBV;F^Bpl0f4jKn0Sw>|bnou7{pdj1QksKesG0kcu4 zj>e)os6_r1u+{GPR@5GO6Jzi=>V@(xYUUy`{i%&{#-pC5WE_F{s5k5qOx5$>N@Xdw z%kp2rHOO|b1m3rLa~0!Sd>qfibY6dPI1n`hWvI0r>)Pe6eH&^(Gg0sQd8qH#qMnM) z=&7=gN;$Tm)~p*+;vm|OBCBcdp??22YANH`iB*`3 zrMMe4Bhh)xKR0hZ^89!DSiGP1O02}lE7)K-3z=Qpgro5|PQuK5f9Yyad!yF1>rex& zM-3pH4Wt=LL+yba=a2!+KeKJ4IG_tJLfxqi^#9zZp?2>I?0{=fd!qrh<~xwD*oW8? zI~Mr=X!J)dVHw6^6>3vfqn2y~s=o%0iY~AnHRXFzCmumDGZfWJq5zfGav?tmItB5DcJ@j}c+`tj@L+7QigI^l8f>s#F@fOtwNf)Bk-bYllP^-vPGKA!it>kv1qGw2DG?}4` zs60m=Ckx3Y!b2Y@H}QE1(VIaWEnYEM!8BYjwF|oLh>R} z@y77+E}2I`} delta 4507 zcmY+{e^l1h0mt!6JSr&24}T#{eUb+R1b-z0{s1z;C40myvQi@~h|=*8Kf=)XA|}<8 zSyQ$dHeH2QX1^%yhlZvUW$nzl?YQZ3&bChOIL|z7{-K`s{yg9Noa65C^Sti8e82a5 zzxR8;57@sU?49;7=c{;6r=c7pKOhYQjfn{}=8Gux8WRy`Oc6$6GM3^USdXRHk1H@C zp5Pi}2(uN#u?q*_4s673^kCAk;Bk)eQW;Li1dPPl?hi~ca;))V4Bm%a%haL|+fW1V zM*f+-eCYhcs0$p!2>dPX!ardiwsNr%_yNWlhXbhGNXOq$7xM7a@i-g@VGgEZ0j6OU z-h`WR3?4zP%vt2088Fg4J_)DNo{J^efSTAL)WrHQm+PC~PD=|k<2GpLDto5=bPq4FIa8qg#e zlMh4jZuFxUcVj#DV;h$8s`&7CI1Ml3lbFGV&_v!wZPvr637K zUiWo(=1|e@y$5xNEm(#FcqKHzQq&#Rp`LX&-i4=e31;)EOvVnR%N#^a=nT%su?(&| zuR={cfZ^DLtgvI&P?#HT2h+492)P-i@gSZlN@B~)jkQDd$I@AT% zq8{l6)E#fZTd)^XF`SP?z5f|hbm1b@UZ}A)<3QT&sAt-N8hAVEPP$Q#YA@VIExziBI-g{F!+te@(iM#gu3Ho)NxZV0%xNp zP=uQB0@QJfFcz1i#;>tIUyBj6+tOJ7>0!LDbS$LfP`Z2PF&W0(NqYt^#ty8)zan31 zX8uHXfO6Ets;#wHNqaSFLSNxPJcruM=Wz&zWxD4_XR`iUijj2a*`%Z1+dSk=G$p7z zdI+^50UV5vp)T-*?SC5Ir@aM>(4Xc0Qrd!=@NV>BFGl0nwtdN=qNNx$iHoBb^~+@e z>NRRX7RMaK6#NH{!zf+_swNY2aVajtt*D9p8#Uqo;!HGC++V-5Q2lSAR>t{|itgxR z)I`2S4e&?Q(w;)bFz0N07{AhVViGRI@fd@T;8VEHwg>a2p$jFV#`B@ZPe-ljG*`#u z+KzmCz&zA|e$<6G1J|z;K`_!TYy^G#n$Dhx2YOS zum#KX{(nw|jcvSqL2tqmY{!$x_Aupq@9LYY1E0s^7>fbE{)S^KY6Ut`7wod_UAFxi zYC`*w-&3X+b^d8|^jch?B0cP+N=!nn$U5srET-LwY;bcLD=;$8oxn=e9kt@k_yw{J z%usfoCRm7ilx5h4&A1q^&1C(xB#UMl!y=d}WGTw+-5fwo;1cSNR~5Lw zez&1^@iiQZ0}I_fG6EB6ry!@8LQF*mN8>KkqdbK1_%GDv40Bj7J-ZmxfFn>B@Sz?- z7V5wp)FvxJ9k&Fdu*zC*ZAD$619jd`)U$uxw)dgVJBrEZ9H*iS{l^~gJ$h(I&vg%s zN3F~_RR2WO@l$O7Ow^JWqb}sP?K0Gam!ZzDvF&Em#5N(1z%kEJ8AV4oYM_G{oFVGK zjrj>tVOyCO$h&&~HOu$OkBQ1K zvYCt}8YrEp6cJ5C7gfrwqm4a#SvjXXmdh{`+U*Q8zzN(u=O-Pr3y*Z;q=)3!cG zt;RHRAL%DumH;}i;9x{)p93lG%+f09!Ic6;tl_y<- zpPhWZL7pdlw~^80r(`kNPd1W=$w6{`*-hgR*AM>h zv;~)tCZexQm77Q%X(zShMKX%KO;nyBHxP{xNkS#rRvK{)c{B6_z|kHt*)rA_GV>yYXS}4hU!XhT}6|(wxYhiDNy%7&$;Ax zJrPs0y;JjMPM^}VGp%DpMsZ+OpuVziM?\n" "Language-Team: Romanian \n" @@ -511,6 +511,38 @@ msgstr "Noi." msgid "Dec." msgstr "Dec." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Mai" +msgstr[1] "Mai" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "sit" +msgstr[1] "sit" + #: models/core.py:7 msgid "domain name" msgstr "nume domeniu" @@ -616,8 +648,8 @@ msgid "password" msgstr "parola" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Foloseşte un hash MD5 -- nu parola brută" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -663,7 +695,7 @@ msgstr "Informaţii personale" msgid "Important dates" msgstr "Date importante" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Mesaj" @@ -744,75 +776,75 @@ msgstr "" msgid "Simplified Chinese" msgstr "Chineză simplificată" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "" "Această valoare trebuie să conţină numai litere, numere şi liniuţe de " "subliniere." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Această valoare trebuie să conţină numai litere, numere, liniuţe de " "subliniere şi slash-uri." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Literele mari nu sînt permise aici." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Literele mici nu sînt permise aici." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Introduceţi numai numere separate de virgule." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Introduceţi adrese de email valide separate de virgule." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Introduceţi vă rog o adresă IP validă." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Valorile vide nu sînt permise aici." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Caracterele ne-numerice nu sînt permise aici." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Această valoare nu poate conţîne numai cifre." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Introduceţi un număr întreg." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Numai caractere alfabetice sînt permise aici." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Introduceţi o dată validă in format: AAAA-LL-ZZ." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Introduceţi o oră în format OO:MM." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Introduceţi o dată/oră validă în format AAAA-LL-ZZ OO:MM." -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Introduceţi o adresă de email validă." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -820,27 +852,27 @@ msgstr "" "Încărcaţi o imagine validă. Fişierul încărcat nu era o imagine sau era o " "imagine coruptă." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL-ul %s nu pointează către o imagine validă." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Numerele de telefon trebuie să fie in format XXX-XXX-XXXX. \"%s\" e invalid." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URL-ul %s nu pointează către o imagine video QuickTime validă." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "E necesar un URL valid." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -849,70 +881,70 @@ msgstr "" "E necesar cod HTML valid. Erorile specifice sînt:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Format XML invalid: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "URL invalid: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "URL-ul %s e invalid." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Introduceţi o abreviere validă în U.S." -#: core/validators.py:228 +#: core/validators.py:231 #, 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] "Îngrijiţi-vă limbajul! Cuvîntul %s nu este permis aici." msgstr[1] "Îngrijiţi-vă limbajul! Cuvintele %s nu sînt permise aici." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "" -#: core/validators.py:254 +#: core/validators.py:257 #, fuzzy msgid "Please enter something for at least one field." msgstr "Vă rog comletaţi ambele cîmpuri sau lăsaţi-le goale pe ambele." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Vă rog comletaţi ambele cîmpuri sau lăsaţi-le goale pe ambele." -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Acest cîmp e necesar dacă %(field)s este %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Acest cîmp e necesar dacă %(field)s nu este %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Valorile duplicate nu sînt permise." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Această valoare trebuie să fie o putere a lui %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Vă rog introduceţi un număr zecimal valid." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -920,7 +952,7 @@ msgid_plural "" msgstr[0] "Vă rog introduceţi un număr zecimal valid cu cel mult %s cifră." msgstr[1] "Vă rog introduceţi un număr zecimal valid cu cel mult %s cifre." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -928,37 +960,37 @@ msgid_plural "" msgstr[0] "Vă rog introduceţi un număr zecimal valid cu cel mult %s zecimală." msgstr[1] "Vă rog introduceţi un număr zecimal valid cu cel mult %s zecimale." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Asigură-te că fişierul încărcact are cel puţin %s octeţi." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Asigură-te că fişierul încărcact are cel mult %s octeţi." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formatul acestui cîmp este invalid." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Cîmpul este invalid." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Nu pot prelua nimic de la %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "" "URL-ul %(url)s a returnat un header Content-Type invalid '%(contenttype)s'." -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -967,7 +999,7 @@ msgstr "" "Te rog închide tagurile %(tag)s din linia %(line)s. ( Linia începe cu \"%" "(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -976,7 +1008,7 @@ msgstr "" "Textul începînd cu linia %(line)s nu e permis în acest context. (Linia " "începînd cu \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -985,7 +1017,7 @@ msgstr "" "\"%(attr)s\" în linia %(line)s e un atribut invalid. (Linia începînd cu \"%" "(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -994,7 +1026,7 @@ msgstr "" "\"<%(tag)s>\" în linia %(line)s este un tag invalid. (Linia începe cu \"%" "(start)s\"." -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1003,7 +1035,7 @@ msgstr "" "Unui tag din linia %(line)s îi lipseşte unul sau mai multe atribute. (Linia " "începe cu \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1022,3 +1054,6 @@ msgid "" msgstr "" " Ţine apăsat \"Control\", sau \"Command\" pe un Mac, pentru a selecta mai " "multe." + +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "Foloseşte un hash MD5 -- nu parola brută" diff --git a/django/conf/locale/ru/LC_MESSAGES/django.mo b/django/conf/locale/ru/LC_MESSAGES/django.mo index c98881206ef1d79917102c804b16136b225486e5..62839fd5de2d486d1e374bc5ce79a38ce311cff7 100644 GIT binary patch delta 3666 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 diff --git a/django/conf/locale/ru/LC_MESSAGES/django.po b/django/conf/locale/ru/LC_MESSAGES/django.po index f0a6027636..5984d0cb50 100644 --- a/django/conf/locale/ru/LC_MESSAGES/django.po +++ b/django/conf/locale/ru/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-10 05:53-0600\n" +"POT-Creation-Date: 2005-11-22 15:44-0600\n" "PO-Revision-Date: 2005-10-05 00:00\n" "Last-Translator: Dmitry Sorokin \n" "Language-Team: LANGUAGE \n" @@ -108,8 +108,8 @@ msgid "" "There's been an error. It's been reported to the site administrators via e-" "mail and should be fixed shortly. Thanks for your patience." msgstr "" -" . e-mail " -" . ." +" . e-mail " +" . ." #: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/404.html:8 @@ -310,6 +310,101 @@ msgstr " msgid "The %(site_name)s team" msgstr " di %(site_name)s" +#: contrib/redirects/models/redirects.py:7 +msgid "redirect from" +msgstr " " + +#: contrib/redirects/models/redirects.py:8 +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" +" , . : '/events/" +"search/'." + +#: contrib/redirects/models/redirects.py:9 +msgid "redirect to" +msgstr " " + +#: contrib/redirects/models/redirects.py:10 +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" +" , ( ) URL " +" 'http://'." + +#: contrib/redirects/models/redirects.py:12 +msgid "redirect" +msgstr "" + +#: contrib/redirects/models/redirects.py:13 +msgid "redirects" +msgstr "" + +#: contrib/flatpages/models/flatpages.py:6 +msgid "URL" +msgstr "URL" + +#: contrib/flatpages/models/flatpages.py:7 +msgid "" +"Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "" +": '/about/contact/'. , ." + +#: contrib/flatpages/models/flatpages.py:8 +msgid "title" +msgstr "" + +#: contrib/flatpages/models/flatpages.py:9 +msgid "content" +msgstr "" + +#: contrib/flatpages/models/flatpages.py:10 +msgid "enable comments" +msgstr " " + +#: contrib/flatpages/models/flatpages.py:11 +msgid "template name" +msgstr " " + +#: contrib/flatpages/models/flatpages.py:12 +#, fuzzy +msgid "" +"Example: 'flatpages/contact_page'. If this isn't provided, the system will " +"use 'flatpages/default'." +msgstr "" +": 'flatfiles/contact_page'. , " +" 'flatfiles/default'." + +#: contrib/flatpages/models/flatpages.py:13 +msgid "registration required" +msgstr " " + +#: contrib/flatpages/models/flatpages.py:13 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr " , " + +#: contrib/flatpages/models/flatpages.py:17 +msgid "flat page" +msgstr " " + +#: contrib/flatpages/models/flatpages.py:18 +msgid "flat pages" +msgstr " " + +#: utils/translation.py:335 +msgid "DATE_FORMAT" +msgstr "" + +#: utils/translation.py:336 +msgid "DATETIME_FORMAT" +msgstr "" + +#: utils/translation.py:337 +msgid "TIME_FORMAT" +msgstr "" + #: utils/dates.py:6 msgid "Monday" msgstr "" @@ -414,6 +509,38 @@ msgstr " msgid "Dec." msgstr "." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + #: models/core.py:7 msgid "domain name" msgstr "" @@ -459,105 +586,23 @@ msgstr " msgid "content types" msgstr " " -#: models/core.py:68 -msgid "redirect from" -msgstr " " - -#: models/core.py:69 -msgid "" -"This should be an absolute path, excluding the domain name. Example: '/" -"events/search/'." -msgstr "" -" , . : '/" -"events/search/'." - -#: models/core.py:70 -msgid "redirect to" -msgstr " " - -#: models/core.py:71 -msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"'http://'." -msgstr "" -" , ( ) URL " -"'http://'." - -#: models/core.py:73 -msgid "redirect" -msgstr "" - -#: models/core.py:74 -msgid "redirects" -msgstr "" - -#: models/core.py:87 -msgid "URL" -msgstr "URL" - -#: models/core.py:88 -msgid "" -"Example: '/about/contact/'. Make sure to have leading and trailing slashes." -msgstr "" -": '/about/contact/'. , ." - -#: models/core.py:89 -msgid "title" -msgstr "" - -#: models/core.py:90 -msgid "content" -msgstr "" - -#: models/core.py:91 -msgid "enable comments" -msgstr " " - -#: models/core.py:92 -msgid "template name" -msgstr " " - -#: models/core.py:93 -msgid "" -"Example: 'flatfiles/contact_page'. If this isn't provided, the system will " -"use 'flatfiles/default'." -msgstr "" -": 'flatfiles/contact_page'. , " -" 'flatfiles/default'." - -#: models/core.py:94 -msgid "registration required" -msgstr " " - -#: models/core.py:94 -msgid "If this is checked, only logged-in users will be able to view the page." -msgstr " , " - -#: models/core.py:98 -msgid "flat page" -msgstr " " - -#: models/core.py:99 -msgid "flat pages" -msgstr " " - -#: models/core.py:117 +#: models/core.py:67 msgid "session key" msgstr " " -#: models/core.py:118 +#: models/core.py:68 msgid "session data" msgstr " " -#: models/core.py:119 +#: models/core.py:69 msgid "expire date" msgstr " " -#: models/core.py:121 +#: models/core.py:71 msgid "session" msgstr "" -#: models/core.py:122 +#: models/core.py:72 msgid "sessions" msgstr "" @@ -605,8 +650,8 @@ msgid "password" msgstr ":" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr " MD5 -- ." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -653,7 +698,7 @@ msgstr " msgid "Important dates" msgstr " " -#: models/auth.py:182 +#: models/auth.py:216 msgid "Message" msgstr "" @@ -670,150 +715,163 @@ msgid "Welsh" msgstr "" #: conf/global_settings.py:39 -msgid "German" +msgid "Danish" msgstr "" #: conf/global_settings.py:40 -msgid "English" +msgid "German" msgstr "" #: conf/global_settings.py:41 -msgid "Spanish" +msgid "English" msgstr "" #: conf/global_settings.py:42 -msgid "French" +msgid "Spanish" msgstr "" #: conf/global_settings.py:43 -msgid "Galician" +msgid "French" msgstr "" #: conf/global_settings.py:44 -msgid "Italian" +msgid "Galician" msgstr "" #: conf/global_settings.py:45 -msgid "Norwegian" +msgid "Icelandic" msgstr "" #: conf/global_settings.py:46 -msgid "Brazilian" +msgid "Italian" msgstr "" #: conf/global_settings.py:47 -msgid "Romanian" +msgid "Norwegian" msgstr "" #: conf/global_settings.py:48 -msgid "Russian" -msgstr "" +msgid "Brazilian" +msgstr "" #: conf/global_settings.py:49 -msgid "Slovak" +msgid "Romanian" msgstr "" #: conf/global_settings.py:50 +msgid "Russian" +msgstr "" + +#: conf/global_settings.py:51 +msgid "Slovak" +msgstr "" + +#: conf/global_settings.py:52 msgid "Serbian" msgstr "" -#: conf/global_settings.py:51 +#: conf/global_settings.py:53 +msgid "Swedish" +msgstr "" + +#: conf/global_settings.py:54 msgid "Simplified Chinese" msgstr "" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr " , ." -#: core/validators.py:63 +#: core/validators.py:66 #, fuzzy msgid "This value must contain only letters, numbers, underscores and slashes." msgstr " , ." -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr " " -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr " " -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr " ̣ " -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr " e-mail ̣ " -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr ", IP " -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr " " -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr " " -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr " " -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr " " -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr " YYYY-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr " HH:MM." -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr " / YYYY-MM-DD HH:MM." -#: core/validators.py:135 +#: core/validators.py:138 #, fuzzy msgid "Enter a valid e-mail address." msgstr "E-mail :" -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." -msgstr " . , , " -" ." +msgstr "" +" . , , " +" ." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL %s ." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr " XXX-XXX-XXXX. \"%s\" ." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URL %s QuickTime." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr " URL ." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -822,152 +880,157 @@ msgstr "" " HTML . :\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr " XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr " URL: %s" -#: core/validators.py:203 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "URL %s ." -#: core/validators.py:209 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr " ." -#: core/validators.py:224 +#: core/validators.py:231 #, 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:231 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr " '%s' ." -#: core/validators.py:250 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr ", ." -#: core/validators.py:259 core/validators.py:270 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr ", ." -#: core/validators.py:277 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "" -#: core/validators.py:289 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "" -#: core/validators.py:308 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr " ." -#: core/validators.py:331 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "" -#: core/validators.py:342 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr ", ." -#: core/validators.py:344 +#: core/validators.py:351 #, 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[0] "" +", " +" %s." msgstr[1] "" -", %s." +", " +" %s." -#: core/validators.py:347 +#: core/validators.py:354 #, 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[0] "" +", " +" %s." msgstr[1] "" -", %s." +", " +" %s." -#: core/validators.py:357 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr " , %s ." -#: core/validators.py:358 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr " , %s ." -#: core/validators.py:371 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr " " -#: core/validators.py:386 +#: core/validators.py:393 msgid "This field is invalid." msgstr " ." -#: core/validators.py:421 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr " %s." -#: core/validators.py:424 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." -msgstr "" -"URL %(url) Content-Type '%(contenttype)'." +msgstr "URL %(url) Content-Type '%(contenttype)'." -#: core/validators.py:457 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "\"%(start)s\".)" msgstr "" -#: core/validators.py:461 +#: core/validators.py:468 #, 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:466 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:471 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "(start)s\".)" msgstr "" -#: core/validators.py:475 +#: core/validators.py:482 #, 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:480 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -982,7 +1045,11 @@ msgstr " msgid "" " Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" -" \"Control\", \"Command\" , ." +" \"Control\", \"Command\" , " +"." + +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr " MD5 -- ." #~ msgid "Server error (500)" #~ msgstr " (500)" diff --git a/django/conf/locale/sk/LC_MESSAGES/django.mo b/django/conf/locale/sk/LC_MESSAGES/django.mo index 6157573541bf5e08def2a50106735b9f02e82dd0..7a3e315aad7a8d392927ea4698c2aef5a0e0f687 100644 GIT binary patch delta 25 gcmdnp%ecFjaRZ|^myv>@sg;R|u7TNRZtV@y0A-^G8UO$Q delta 25 gcmdnp%ecFjaRZ|^m!X28k(G&&u7T-hZtV@y0A*MQ6951J diff --git a/django/conf/locale/sk/LC_MESSAGES/django.po b/django/conf/locale/sk/LC_MESSAGES/django.po index 19994b5570..a63c73b858 100644 --- a/django/conf/locale/sk/LC_MESSAGES/django.po +++ b/django/conf/locale/sk/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-21 12:42-0500\n" +"POT-Creation-Date: 2005-11-22 15:44-0600\n" "PO-Revision-Date: 2005-11-10 23:22-0500\n" "Last-Translator: Vladimir Labath \n" "Language-Team: Slovak \n" @@ -16,89 +16,6 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: contrib/redirects/models/redirects.py:7 -msgid "redirect from" -msgstr "presmerovaný z" - -#: contrib/redirects/models/redirects.py:8 -msgid "" -"This should be an absolute path, excluding the domain name. Example: '/" -"events/search/'." -msgstr "" -"Tu by sa mala použiť absolútna cesta, bez domény. Napr.: '/events/search/'." - -#: contrib/redirects/models/redirects.py:9 -msgid "redirect to" -msgstr "presmerovaný na " - -#: contrib/redirects/models/redirects.py:10 -msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"'http://'." -msgstr "" -"Tu môže byť buď absolútna cesta (ako hore) alebo plné URL začínajúce s " -"'http://'." - -#: contrib/redirects/models/redirects.py:12 -msgid "redirect" -msgstr "presmerovanie" - -#: contrib/redirects/models/redirects.py:13 -msgid "redirects" -msgstr "presmerovania" - -#: contrib/flatpages/models/flatpages.py:6 -msgid "URL" -msgstr "URL" - -#: contrib/flatpages/models/flatpages.py:7 -msgid "" -"Example: '/about/contact/'. Make sure to have leading and trailing slashes." -msgstr "" -"Príklad: '/about/contact/'. Uistite sa, že máte vložené ako úvodné tak aj " -"záverečné lomítka." - -#: contrib/flatpages/models/flatpages.py:8 -msgid "title" -msgstr "názov" - -#: contrib/flatpages/models/flatpages.py:9 -msgid "content" -msgstr "obsah" - -#: contrib/flatpages/models/flatpages.py:10 -msgid "enable comments" -msgstr "povolené komentáre" - -#: contrib/flatpages/models/flatpages.py:11 -msgid "template name" -msgstr "meno predlohy" - -#: contrib/flatpages/models/flatpages.py:12 -msgid "" -"Example: 'flatpages/contact_page'. If this isn't provided, the system will " -"use 'flatpages/default'." -msgstr "" -"Príklad: 'flatpages/contact_page'. Ak sa toto nevykonalo, systém použije " -"'flatpages/default'." - -#: contrib/flatpages/models/flatpages.py:13 -msgid "registration required" -msgstr "musíte byť zaregistrovaný" - -#: contrib/flatpages/models/flatpages.py:13 -msgid "If this is checked, only logged-in users will be able to view the page." -msgstr "" -"Ak je toto označené, potom len prihlásený užívateľ môže vidieť túto stránku." - -#: contrib/flatpages/models/flatpages.py:17 -msgid "flat page" -msgstr "plochá stránka" - -#: contrib/flatpages/models/flatpages.py:18 -msgid "flat pages" -msgstr "ploché stránky" - #: contrib/admin/models/admin.py:6 msgid "action time" msgstr "čas udalosti" @@ -393,6 +310,89 @@ msgstr "Ďakujeme, že používate naše stránky!" msgid "The %(site_name)s team" msgstr "Skupina %(site_name)s" +#: contrib/redirects/models/redirects.py:7 +msgid "redirect from" +msgstr "presmerovaný z" + +#: contrib/redirects/models/redirects.py:8 +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" +"Tu by sa mala použiť absolútna cesta, bez domény. Napr.: '/events/search/'." + +#: contrib/redirects/models/redirects.py:9 +msgid "redirect to" +msgstr "presmerovaný na " + +#: contrib/redirects/models/redirects.py:10 +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" +"Tu môže byť buď absolútna cesta (ako hore) alebo plné URL začínajúce s " +"'http://'." + +#: contrib/redirects/models/redirects.py:12 +msgid "redirect" +msgstr "presmerovanie" + +#: contrib/redirects/models/redirects.py:13 +msgid "redirects" +msgstr "presmerovania" + +#: contrib/flatpages/models/flatpages.py:6 +msgid "URL" +msgstr "URL" + +#: contrib/flatpages/models/flatpages.py:7 +msgid "" +"Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "" +"Príklad: '/about/contact/'. Uistite sa, že máte vložené ako úvodné tak aj " +"záverečné lomítka." + +#: contrib/flatpages/models/flatpages.py:8 +msgid "title" +msgstr "názov" + +#: contrib/flatpages/models/flatpages.py:9 +msgid "content" +msgstr "obsah" + +#: contrib/flatpages/models/flatpages.py:10 +msgid "enable comments" +msgstr "povolené komentáre" + +#: contrib/flatpages/models/flatpages.py:11 +msgid "template name" +msgstr "meno predlohy" + +#: contrib/flatpages/models/flatpages.py:12 +msgid "" +"Example: 'flatpages/contact_page'. If this isn't provided, the system will " +"use 'flatpages/default'." +msgstr "" +"Príklad: 'flatpages/contact_page'. Ak sa toto nevykonalo, systém použije " +"'flatpages/default'." + +#: contrib/flatpages/models/flatpages.py:13 +msgid "registration required" +msgstr "musíte byť zaregistrovaný" + +#: contrib/flatpages/models/flatpages.py:13 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "" +"Ak je toto označené, potom len prihlásený užívateľ môže vidieť túto stránku." + +#: contrib/flatpages/models/flatpages.py:17 +msgid "flat page" +msgstr "plochá stránka" + +#: contrib/flatpages/models/flatpages.py:18 +msgid "flat pages" +msgstr "ploché stránky" + #: utils/translation.py:335 msgid "DATE_FORMAT" msgstr "DATUM_FORMAT" @@ -509,6 +509,38 @@ msgstr "Nov." msgid "Dec." msgstr "Dec." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "Máj" +msgstr[1] "Máj" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "web" +msgstr[1] "web" + #: models/core.py:7 msgid "domain name" msgstr "meno domény" @@ -615,7 +647,7 @@ msgstr "heslo" #: models/auth.py:37 msgid "Use '[algo]$[salt]$[hexdigest]" -msgstr "Použi '[algo]$[salt]$[hexdigest]" +msgstr "Použi '[algo]$[salt]$[hexdigest]" #: models/auth.py:38 msgid "staff status" @@ -1017,4 +1049,3 @@ msgid "" msgstr "" " Podržte \"Control\", alebo \"Command\" na Mac_u, na výber viac ako jednej " "položky." - diff --git a/django/conf/locale/sr/LC_MESSAGES/django.mo b/django/conf/locale/sr/LC_MESSAGES/django.mo index 2d67dd538775a115730a669dfb7ed4175a04d4d8..b2ca2bada2b01541cb6f39153f350668562427ba 100644 GIT binary patch delta 3861 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\n" "Language-Team: Nesh & Petar \" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -995,7 +1032,7 @@ msgid "" msgstr "" "Tag \"<%(tag)s>\" u redu %(line)s je neispravan. (Red počinje \"%(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1004,7 +1041,7 @@ msgstr "" "Tag-u u redu %(line)s nedostaje jedan ili više atributa. (Red počinje sa \"%" "(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1023,3 +1060,6 @@ msgid "" msgstr "" " Koristite \"Ctrl\" (PC) ili \"Jabuku\" (Mek) da bi ste selektovali više " "stavki." + +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "Unesite MD5 hash šifre -- ne unosite sam tekst šifre." diff --git a/django/conf/locale/sv/LC_MESSAGES/django.mo b/django/conf/locale/sv/LC_MESSAGES/django.mo index 7e5a45665b7bae6f7bd1c119b7a0f7a261796838..a7399e74105e128898403b7e5d29193a6e643962 100644 GIT binary patch delta 4596 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 diff --git a/django/conf/locale/sv/LC_MESSAGES/django.po b/django/conf/locale/sv/LC_MESSAGES/django.po index 39c01c4efb..ed80a55a90 100644 --- a/django/conf/locale/sv/LC_MESSAGES/django.po +++ b/django/conf/locale/sv/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-15 12:41-0600\n" +"POT-Creation-Date: 2005-11-22 15:44-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -512,6 +512,38 @@ msgstr "nov" msgid "Dec." msgstr "dec" +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "maj" +msgstr[1] "maj" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "sida" +msgstr[1] "sida" + #: models/core.py:7 msgid "domain name" msgstr "domännamn" @@ -617,8 +649,8 @@ msgid "password" msgstr "lösenord" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "Använd en MD5-hash -- inte lösenordet i ren text." +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -664,7 +696,7 @@ msgstr "Personlig information" msgid "Important dates" msgstr "Viktiga datum" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "Meddelande" @@ -745,72 +777,72 @@ msgstr "" msgid "Simplified Chinese" msgstr "Förenklad kinesiska" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "Det här värdet får bara innehålla bokstäver, tal och understräck." -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "" "Det här värdet får bara innehålla bokstäver, tal, understräck och snedsträck" -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "Stora bokstäver är inte tillåtna här." -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "Små bokstäver är inte tillåtna här." -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "Fyll enbart i siffror avskillda med kommatecken." -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "Fyll i giltiga e-postadresser avskillda med kommatecken." -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "Var god fyll i ett giltigt IP-nummer." -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "Tomma värden är inte tillåtna här." -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "Icke-numeriska tecken är inte tillåtna här." -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "Det här värdet kan inte enbart bestå av siffror." -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "Fyll i ett heltal." -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "Endast alfabetiska bokstäver är tillåtna här." -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Fyll i ett giltigt datum i formatet ÅÅÅÅ-MM-DD." -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "Fyll i en giltig tid i formatet TT:MM" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Fyll i en giltig tidpunkt i formatet ÅÅÅÅ-MM-DD TT:MM" -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "Fyll i en giltig e-postadress." -#: core/validators.py:147 +#: core/validators.py:150 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -818,28 +850,28 @@ msgstr "" "Ladda upp en giltig bild. Filen du laddade upp var antingen inte en bild, " "eller så var det en korrupt bild." -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "Adressen %s pekar inte till en giltig bild." -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" "Telefonnummer måste vara i det amerikanska formatet XXX-XXX-XXXX. \"%s\" är " "ogiltigt." -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "Adressen %s pekar inte till en giltig QuickTime-video." -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "En giltig adress krävs." -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -848,69 +880,69 @@ msgstr "" "Giltig HTML krävs. Specifika fel är:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "Missformad XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "Felaktig adress: %s" -#: core/validators.py:205 core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "Adressen %s är en trasig länk." -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "Fyll i en giltig förkortning för en amerikansk delstat" -#: core/validators.py:228 +#: core/validators.py:231 #, 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] "Håll i tungan! Ordet %s är inte tillåtet här." msgstr[1] "Håll i tungan! Orden %s är inte tillåtna här." -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "Det här fältet måste matcha fältet '%s'." -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "Fyll i något i minst ett fält." -#: core/validators.py:263 core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "Fyll antingen i båda fälten, eller lämna båda tomma" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Det är fältet måste anges om %(field)s är %(value)s" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Det här fältet måste anges om %(field)s inte är %(value)s" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "Upprepade värden är inte tillåtna." -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "Det här värdet måste vara en multipel av %s." -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "Fyll i ett giltigt decimaltal." -#: core/validators.py:348 +#: core/validators.py:351 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." msgid_plural "" @@ -918,7 +950,7 @@ msgid_plural "" msgstr[0] "Fyll i ett giltigt decimaltal med mindre än %s siffra totalt." msgstr[1] "Fyll i ett giltigt decimaltal med mindre än %s siffror totalt." -#: core/validators.py:351 +#: core/validators.py:354 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." msgid_plural "" @@ -926,30 +958,30 @@ msgid_plural "" msgstr[0] "Fyll i ett giltigt decimaltal med som mest %s decimalsiffra." msgstr[1] "Fyll i ett giltigt decimaltal med som mest %s decimalsiffror." -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Se till att filen du laddade upp är minst %s bytes stor." -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Se till att filen du laddade upp är max %s bytes stor." -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "Formatet på det här fältet är fel." -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "Det här fältet är ogiltigt." -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "Kunde inte hämta något från %s." -#: core/validators.py:428 +#: core/validators.py:431 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." @@ -957,7 +989,7 @@ msgstr "" "Adressen %(url)s returnerade det ogiltiga innehållstyphuvudet (Content-Type " "header) '%(contenttype)s'" -#: core/validators.py:461 +#: core/validators.py:464 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " @@ -966,7 +998,7 @@ msgstr "" "Var god avsluta den oavslutade taggen %(tag)s på rad %(line)s. (Raden börjar " "med \"%(start)s\".)" -#: core/validators.py:465 +#: core/validators.py:468 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " @@ -975,7 +1007,7 @@ msgstr "" "En del text från rad %(line)s är inte tillåtet i det sammanhanget. (Raden " "börjar med \"%(start)s\".)" -#: core/validators.py:470 +#: core/validators.py:473 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" @@ -984,7 +1016,7 @@ msgstr "" "\"%(attr)s\" på rad %(line)s är inte ett gilltigt attribut. (Raden startar " "med \"%(start)s\".)" -#: core/validators.py:475 +#: core/validators.py:478 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" @@ -993,7 +1025,7 @@ msgstr "" "\"<%(tag)s>\" på rad %(line)s är inte en giltig tagg. (Raden börjar med \"%" "(start)s\".)" -#: core/validators.py:479 +#: core/validators.py:482 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " @@ -1002,7 +1034,7 @@ msgstr "" "En tagg på rad %(line)s saknar en eller flera nödvändiga attribut. (Raden " "börjar med \"%(start)s\".)" -#: core/validators.py:484 +#: core/validators.py:487 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " @@ -1020,3 +1052,6 @@ msgid "" " Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" " Håll ner \"Control\", eller \"Command\" på en Mac, för att välja mer än en." + +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "Använd en MD5-hash -- inte lösenordet i ren text." diff --git a/django/conf/locale/zh_CN/LC_MESSAGES/django.mo b/django/conf/locale/zh_CN/LC_MESSAGES/django.mo index c1ca2f9f73f993fcb395141ff9fb4912cadc7ad6..326e0f838166c946b7f351f6789574f602dd77ca 100644 GIT binary patch delta 3989 zcmYk-2~bs49LMp4LIU~#SyDnoMOjiK5EUd16|-~{aS653!fmqA7MGDmdzxAR(bBuz>!tTdrabHOHTwPi9#C(CNG8npWU-upMx9sYdIIrrSN-E;1%TpF@-Nr?Y! zZ0Kso)j+f(HecslVu*9yd@6OWqP25_@M%oNGdLQXuoy?gI#-4pu`M=_bB-olJ8X`r z7>4OM2fJe^ZbIt$-F6c36zswlSceh#QLut*MA~*=VKiPw`VKtQ8De=@9rQ+SxxT0Y zl%U!fi|Vip!*LpJ#fLDT{#}~{=lF9a{8Pizup^eEI$VpL@DcQ_&4_>tV&zAqgyowrF z$PLc5!f@1c37C$_*b4_?Pn?e$=pNMG*nb1-uLllLpoZ!&5|5$wUn6$K?=cEvl7cfx zK@BVuwGua3zBj79TTssz;Y~Oa_532#1S^mx-Nq!=UpHzgU^4C~YKgu_4df?miGQIQ z4C9FO!#Es=Be4VS#3%4LK8~Z=2%Yf^=HOM-K(gBN+HeA@-yi%WwCR3F&7?(2a0W4` zd|T9#bwmv;-R@^2V{-YZr5}SjC1vIu)QT>{Nw^BNGQU}QljZ%*Is|7FiCU67a3W4d zHma*b?ba_)?=YRCp;vMbGFi7AwcEF%R^TX(!4i&)p5KOAfp<`Q;TPrYYb zpT`z>8C%i6`;$aqbJ2<#h(o>86w7x*HIRqey@Rd16tzhwp(ZfX^7BvwT#TB?%T~S{ zRj(G+Pd)lo&_F^<_k~sX#wuJyjr0nJd&9a`fG$stilS6Azz7Va69V$UQ|a1@U0L=j>Y5`b`73_Q^;m=Kce=;pl)nX z+<+V`cMbI_+I0__YTnqL^}m}N*;eqBxf=QUx^<|Lzm5@j$nGCQ9k*@k2CvTwc9e!%%6wFLF=}QLQ8RlC*+yW4#c};H8fT#D`xlU4&~6L%$B*$YOyH+V4L@woL)G)+60ElJ91gc; znvZIDAnLhM*c`{36EK&2ncc4p>UZl&sDUk*kGoJyegS9V6^z0u{Kl$$HmZX~<}!1Y zxyGzQ)!%IS*HA0A9~rwl6Oi{G!LZa|fjPju12wP_sD{Ry(@-C%*_K~}s<+9kHus_0 zJ!Bq1wQ~~r<#k_Ttj_=Mb|akcYb^N$RK*O-_e6DYJF3Bv<~UTnd+}DBf%=kGBOg&0 z#zrc@Ow7Y6sDZD?Tks(I^-iymSb<&nE~>%3sDT_tz0*ci$3LJ3a>??4n17?{h0%+a zI02Q<#ds`2wL8wrr{W~?bMrX=y74&$YWTeQ3u=T-s0Q=c7-O*%)!=R{!g}P-MfM5) zycVI3-z?Nj*Pu4*e(Z;RS&jspj}*CQ3Rr&~lj9UeZBDdz_Ap$t}k;eBa71q1tOz7MH5Z!|sDV_W>TN>} z=vA}UJc7FaiRHgEFQ8WP3hI7R|G@Kp*NH@P3bKL)u7_EOsyGbw?H_IB_n_)eH)o>i zJ%ZYFd|zto zlce4yo+S1W8@w65B;R|arV_Uk>%7&zlUuOa$Y-|OTHiDKdfFFB?lv4PZU z#7g2tqLxS{PI(Wb}FIs#L`F z0kJ%g3jW&!QN-l`l^r8pLM$epw{ji4S;QPdKQ$YPWrVKxYsy=P#n)`>vLiG+C#OSp U&px?5YR29e5?`~jU#rl60rV}g2LJ#7 delta 4089 zcmXxn3vg7`9mnyLCO|^6**qJT2-y-6Kukgq2oDp2;82UeSfE0S(1n134zX;Ij1{`n z@<;?K_0sZClTazBgjXXFULvurP!Om?v{GTlmIP_XDo*T-v`zc{W&hpDKc92XJ@
XNTbB(FaJ%qb37jNNAOiXibI({D) z;34dT>FLgq!rh0lct7^Q5_}3vF%FxNei7F~A%li9*bA>>0)7H(9HE^aDn03lSKO4I|x7>_l$2iM>jp6>=_I>(O-@k@zo@Ecf%df+}BfG1G{ zyn*@HfrHWab!Lg9upcf(tyC@2#WkV&w_-8g#wnPc<=jG^@1CHb5ne!z@CuH`4{;@? zv96j?ow)_oZ=2N{Q7f?5>ie;r`WvVLe~HTfAJmF`Ex>AF5=Jz`nG{xI1*-lR)Qw-D zZoF&t|609Q-)MUhYGA3Dgndx=<>4SKz)?60N8%>bKwD9J<6K|XUpHK&L5Z$nZ~QZA z|8?L{?8IaYW=CgGgc{fw)Jl|DeKIQFBdGglVj(U--T!mc1RIf*?oc-CuL~DwU~=vn zYKb~g1L?vh z>3ZZuXOe}QLD1@hQA<{g8d!;4pMZ?bJ&aoVMW|B}HrJt6bUQA@22|eIV6;6ERga`m zD5KC9wIp+JKCVDEs=JEXt$#Fsb^`N_`8)M0?cb|Zoc@|E@iAWc>0kv`mPy;xR z+B096UD%U)Z!YScr=s!)u@}#GLn!DS7NZ_ihDz{=wa>QtB2r1E! z?6vw~)BsPRCh}Knzm4kGi4i@h%NlwQi7s6RszU&EJr{dn5yoSQS&rIt4_kdMY66Q; z_f=y8MlciWP!nxHU2ht~`s-b_(4Y~XwhnJ&3iT_fgdf}W&rk#S5>Lc1aGXy4_|WKS zNVuKnBK`BHUdY@~6x07qjzYTzGWQ{zZ;%Qc2h8fgXqw>CB?G2+@|AjOhv|Tk8H8dbc-t9ppZbKc* zp1ja77NQ=o%iM=ba0K;=TCqR2A!Bu&n2*Kf(e~M>d^M>18q7!&1&!#qHN0iMYwg#p z{;~NF^Ixa|#q(vM`_oW~17^N?zg;i4`ebt^vZ4_evJUI*!e)#m(N3$^oBL1?YC-)C zIAiVSQ2pD?4^jQDqc-DB)Id8?1MD&rA5{Ac&L9O{7=S)3GD}g3rkLMG^_zoQ^2Jtv z+ODrhJ!rEx#Fv};OG`%icO)PVpZo4JY*S*AV)=L7eX{ zMSop_epWx`wfP41dxct+wd_Of;olL1iI==Ua(2Q|N=3x$UTJbx;4CGLZ3n@(g8LS6 zl4$UjB~M9xlafBq6Z(h58Si{@QD8fzdBj7+cZq|x3S>QA5gdrJDOB3RMx|5C-N zflofsL>wnrV3$Mu|IjupZK+RBxOeEx0LGD#OEAQ*IkPK+6~D>1#uDTVNMa zOX%}X^ODpa83Ti%s^HW~BZHNp>dIh2L9pt{6~Psii-O@$P4I`I>gt*&!xha-@(#qs z7mo}U4<9>XSaZ(3F&Tw7PoKH9^;Pb?wR3H|SKHpQseR2UCAitLxnujm_MbJh@7<_t Q&%bi>\n" "Language-Team: Simplified Chinese \n" @@ -66,8 +66,7 @@ msgstr "历史" msgid "Date/time" msgstr "日期/时间" -#: contrib/admin/templates/admin/object_history.html:19 -#: models/auth.py:47 +#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47 msgid "User" msgstr "用户" @@ -80,7 +79,9 @@ 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." +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 @@ -104,8 +105,12 @@ msgid "Server Error (500)" msgstr "服务器错误 (500)" #: contrib/admin/templates/admin/500.html:10 -msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." -msgstr "存在一个错误。它已经通过电子邮件被报告给站点管理员了,并且应该很快被改正。谢谢你的关心。" +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 @@ -170,13 +175,21 @@ 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 "删除 %(object_name)s '%(object)s' 会导致删除相关的对象,但你的帐号无权删除下列类型的对象:" +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\"?所有相关的项目都将被删除:" +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" @@ -205,8 +218,12 @@ 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 "忘记你的口令?在下面输入你的邮箱地址,我们将重设你的口令并且将新的口令通过邮件发送给你。" +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:" @@ -230,12 +247,19 @@ 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 "我们已经按你所提交的邮箱地址发送了一个新的口令给你。你应该很会收到这封邮件。" +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 "请输入你的旧口令,为了安全起见,接着要输入你的新口令两遍,这样我们可以校验你输入的是否正确。" +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:" @@ -289,7 +313,9 @@ msgid "redirect from" msgstr "重定向自" #: contrib/redirects/models/redirects.py:8 -msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'." +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." msgstr "应该是一个绝对路径,不包括域名。例如:'/events/search/'。" #: contrib/redirects/models/redirects.py:9 @@ -297,7 +323,9 @@ msgid "redirect to" msgstr "重定向到" #: contrib/redirects/models/redirects.py:10 -msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'." +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." msgstr "可以是绝对路径(同上)或以'http://'开始的全URL。" #: contrib/redirects/models/redirects.py:12 @@ -313,7 +341,8 @@ msgid "URL" msgstr "" #: contrib/flatpages/models/flatpages.py:7 -msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgid "" +"Example: '/about/contact/'. Make sure to have leading and trailing slashes." msgstr "例如:'/about/contact/'。请确保前导和结尾的除号。" #: contrib/flatpages/models/flatpages.py:8 @@ -333,8 +362,11 @@ msgid "template name" msgstr "模板名称" #: contrib/flatpages/models/flatpages.py:12 -msgid "Example: 'flatpages/contact_page'. If this isn't provided, the system will use 'flatpages/default'." -msgstr "例如:'flatfiles/contact_page'。如果未提供,系统将使用'flatfiles/default'。" +msgid "" +"Example: 'flatpages/contact_page'. If this isn't provided, the system will " +"use 'flatpages/default'." +msgstr "" +"例如:'flatfiles/contact_page'。如果未提供,系统将使用'flatfiles/default'。" #: contrib/flatpages/models/flatpages.py:13 msgid "registration required" @@ -400,28 +432,23 @@ msgstr "一月" msgid "February" msgstr "二月" -#: utils/dates.py:14 -#: utils/dates.py:27 +#: utils/dates.py:14 utils/dates.py:27 msgid "March" msgstr "三月" -#: utils/dates.py:14 -#: utils/dates.py:27 +#: utils/dates.py:14 utils/dates.py:27 msgid "April" msgstr "四月" -#: utils/dates.py:14 -#: utils/dates.py:27 +#: utils/dates.py:14 utils/dates.py:27 msgid "May" msgstr "五月" -#: utils/dates.py:14 -#: utils/dates.py:27 +#: utils/dates.py:14 utils/dates.py:27 msgid "June" msgstr "六月" -#: utils/dates.py:15 -#: utils/dates.py:27 +#: utils/dates.py:15 utils/dates.py:27 msgid "July" msgstr "七月" @@ -473,6 +500,33 @@ msgstr "十一月" msgid "Dec." msgstr "十二月" +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" + +#: utils/timesince.py:14 +#, fuzzy +msgid "day" +msgid_plural "days" +msgstr[0] "五月" + +#: utils/timesince.py:15 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" + +#: utils/timesince.py:16 +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "站点" + #: models/core.py:7 msgid "domain name" msgstr "域名" @@ -493,10 +547,7 @@ msgstr "站点" msgid "label" msgstr "标签" -#: models/core.py:29 -#: models/core.py:40 -#: models/auth.py:6 -#: models/auth.py:19 +#: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19 msgid "name" msgstr "名称" @@ -548,8 +599,7 @@ msgstr "代码名称" msgid "Permission" msgstr "许可" -#: models/auth.py:11 -#: models/auth.py:58 +#: models/auth.py:11 models/auth.py:58 msgid "Permissions" msgstr "许可" @@ -557,8 +607,7 @@ msgstr "许可" msgid "Group" msgstr "组" -#: models/auth.py:23 -#: models/auth.py:60 +#: models/auth.py:23 models/auth.py:60 msgid "Groups" msgstr "组" @@ -583,8 +632,8 @@ msgid "password" msgstr "口令" #: models/auth.py:37 -msgid "Use an MD5 hash -- not the raw password." -msgstr "使用MD5的哈希值 -- 不是原始的口令。" +msgid "Use '[algo]$[salt]$[hexdigest]" +msgstr "" #: models/auth.py:38 msgid "staff status" @@ -611,8 +660,11 @@ 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 "除了手动设置权限以外,用户也会从他(她)所在的小组获得所赋组小组的所有权限。" +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" @@ -626,7 +678,7 @@ msgstr "个人信息" msgid "Important dates" msgstr "重要日期" -#: models/auth.py:195 +#: models/auth.py:216 msgid "Message" msgstr "消息" @@ -706,94 +758,96 @@ msgstr "瑞典语" msgid "Simplified Chinese" msgstr "简体中文" -#: core/validators.py:59 +#: core/validators.py:62 msgid "This value must contain only letters, numbers and underscores." msgstr "此值只能包含字母、数字和下划线。" -#: core/validators.py:63 +#: core/validators.py:66 msgid "This value must contain only letters, numbers, underscores and slashes." msgstr "此值只能包含字母、数字、下划线和斜线。" -#: core/validators.py:71 +#: core/validators.py:74 msgid "Uppercase letters are not allowed here." msgstr "这里不允许大写字母。" -#: core/validators.py:75 +#: core/validators.py:78 msgid "Lowercase letters are not allowed here." msgstr "这里不允许小写字母。" -#: core/validators.py:82 +#: core/validators.py:85 msgid "Enter only digits separated by commas." msgstr "只能输入用逗号分隔的数字。" -#: core/validators.py:94 +#: core/validators.py:97 msgid "Enter valid e-mail addresses separated by commas." msgstr "输入用逗号分隔的有效邮件地址。" -#: core/validators.py:98 +#: core/validators.py:101 msgid "Please enter a valid IP address." msgstr "请输入一个有效的IP地址。" -#: core/validators.py:102 +#: core/validators.py:105 msgid "Empty values are not allowed here." msgstr "这里不允许输入空值。" -#: core/validators.py:106 +#: core/validators.py:109 msgid "Non-numeric characters aren't allowed here." msgstr "这里不允许非数字字符。" -#: core/validators.py:110 +#: core/validators.py:113 msgid "This value can't be comprised solely of digits." msgstr "此值不能全部由数字组成。" -#: core/validators.py:115 +#: core/validators.py:118 msgid "Enter a whole number." msgstr "输入整数。" -#: core/validators.py:119 +#: core/validators.py:122 msgid "Only alphabetical characters are allowed here." msgstr "这里只允许字母。" -#: core/validators.py:123 +#: core/validators.py:126 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "输入一个 YYYY-MM-DD 格式的有效日期。" -#: core/validators.py:127 +#: core/validators.py:130 msgid "Enter a valid time in HH:MM format." msgstr "输入一个 HH:MM 格式的有效时间。" -#: core/validators.py:131 +#: core/validators.py:134 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "输入一个 YYYY-MM-DD HH:MM 格式的有效日期/时间。" -#: core/validators.py:135 +#: core/validators.py:138 msgid "Enter a valid e-mail address." msgstr "输入一个有效的邮件地址。" -#: core/validators.py:147 -msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." +#: core/validators.py:150 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." msgstr "上传一个有效的图片。您所上传的文件或者不是图片或是一个破坏的图片。" -#: core/validators.py:154 +#: core/validators.py:157 #, python-format msgid "The URL %s does not point to a valid image." msgstr "URL %s 指向的不是一个有效的图片。" -#: core/validators.py:158 +#: core/validators.py:161 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "电话号码必须为 XXX-XXX-XXXX 格式。\"%s\"是无效的。" -#: core/validators.py:166 +#: core/validators.py:169 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "URL %s 指向的不是一个有效的 QuickTime 视频。" -#: core/validators.py:170 +#: core/validators.py:173 msgid "A valid URL is required." msgstr "需要是一个有效的URL。" -#: core/validators.py:184 +#: core/validators.py:187 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -802,144 +856,166 @@ msgstr "" "需要有效的HTML。详细的错误是:\n" "%s" -#: core/validators.py:191 +#: core/validators.py:194 #, python-format msgid "Badly formed XML: %s" msgstr "格式错误的 XML: %s" -#: core/validators.py:201 +#: core/validators.py:204 #, python-format msgid "Invalid URL: %s" msgstr "无效 URL: %s" -#: core/validators.py:205 -#: core/validators.py:207 +#: core/validators.py:208 core/validators.py:210 #, python-format msgid "The URL %s is a broken link." msgstr "URL %s 是一个断开的链接。" -#: core/validators.py:213 +#: core/validators.py:216 msgid "Enter a valid U.S. state abbreviation." msgstr "输入一个有效的 U.S. 州缩写。" -#: core/validators.py:228 +#: core/validators.py:231 #, 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 不允许在这里出现。" -#: core/validators.py:235 +#: core/validators.py:238 #, python-format msgid "This field must match the '%s' field." msgstr "这个字段必须与 '%s' 字段相匹配。" -#: core/validators.py:254 +#: core/validators.py:257 msgid "Please enter something for at least one field." msgstr "请至少在一个字段上输入些什么。" -#: core/validators.py:263 -#: core/validators.py:274 +#: core/validators.py:266 core/validators.py:277 msgid "Please enter both fields or leave them both empty." msgstr "请要么两个字段都输入或者两个字段都空着。" -#: core/validators.py:281 +#: core/validators.py:284 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "如果 %(field)s 是 %(value)s 时这个字段必须给出" -#: core/validators.py:293 +#: core/validators.py:296 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "如果 %(field)s 不是 %(value)s 时这个字段必须给出" -#: core/validators.py:312 +#: core/validators.py:315 msgid "Duplicate values are not allowed." msgstr "重复值不允许。" -#: core/validators.py:335 +#: core/validators.py:338 #, python-format msgid "This value must be a power of %s." msgstr "这个值必须是 %s 的乘方。" -#: core/validators.py:346 +#: core/validators.py:349 msgid "Please enter a valid decimal number." msgstr "请输入一个有效的小数。" -#: core/validators.py:348 -#, 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 个数字。 " - #: core/validators.py:351 #, 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 个数字。 " + +#: core/validators.py:354 +#, python-format msgid "Please enter a valid decimal number with at most %s decimal place." -msgid_plural "Please enter a valid decimal number with at most %s decimal places." +msgid_plural "" +"Please enter a valid decimal number with at most %s decimal places." msgstr[0] "请输入一个有效的小数,最多 %s 个小数位。 " -#: core/validators.py:361 +#: core/validators.py:364 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "请确保你上传的文件至少 %s 字节大。" -#: core/validators.py:362 +#: core/validators.py:365 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "请确保你上传的文件至多 %s 字节大。" -#: core/validators.py:375 +#: core/validators.py:378 msgid "The format for this field is wrong." msgstr "这个字段的格式不正确。" -#: core/validators.py:390 +#: core/validators.py:393 msgid "This field is invalid." msgstr "这个字段无效。" -#: core/validators.py:425 +#: core/validators.py:428 #, python-format msgid "Could not retrieve anything from %s." msgstr "不能从 %s 得到任何东西。" -#: core/validators.py:428 +#: core/validators.py:431 #, python-format -msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." +msgid "" +"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "URL %(url)s 返回了无效的 Content-Type 头 '%(contenttype)s'。" -#: core/validators.py:461 +#: core/validators.py:464 #, 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\"。)" +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:465 +#: core/validators.py:468 #, 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\"。)" +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:470 +#: core/validators.py:473 #, 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\"。)" +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:475 +#: core/validators.py:478 #, 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\"。)" +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:479 +#: core/validators.py:482 #, 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\"。)" +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:484 +#: core/validators.py:487 #, 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\"。)" +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:111 msgid " Separate multiple IDs with commas." msgstr " 用逗号分隔多个ID。" #: core/meta/fields.py:114 -msgid " Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgid "" +" Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr " 按下 \"Control\",或者在Mac上按 \"Command\" 来选择一个或多个值。" +#~ msgid "Use an MD5 hash -- not the raw password." +#~ msgstr "使用MD5的哈希值 -- 不是原始的口令。" diff --git a/django/utils/timesince.py b/django/utils/timesince.py index 5b22fde58c..b1df997e2e 100644 --- a/django/utils/timesince.py +++ b/django/utils/timesince.py @@ -1,5 +1,6 @@ -import datetime, math, time +import datetime, time from django.utils.tzinfo import LocalTimezone +from django.utils.translation import ngettext def timesince(d, now=None): """ @@ -8,11 +9,11 @@ def timesince(d, now=None): Adapted from http://blog.natbat.co.uk/archive/2003/Jun/14/time_since """ chunks = ( - (60 * 60 * 24 * 365, 'year'), - (60 * 60 * 24 * 30, 'month'), - (60 * 60 * 24, 'day'), - (60 * 60, 'hour'), - (60, 'minute') + (60 * 60 * 24 * 365, lambda n: ngettext('year', 'years', n)), + (60 * 60 * 24 * 30, lambda n: ngettext('month', 'months', n)), + (60 * 60 * 24, lambda n : ngettext('day', 'days', n)), + (60 * 60, lambda n: ngettext('hour', 'hours', n)), + (60, lambda n: ngettext('minute', 'minutes', n)) ) if now: t = time.mktime(now) @@ -25,24 +26,17 @@ def timesince(d, now=None): now = datetime.datetime(t[0], t[1], t[2], t[3], t[4], t[5], tzinfo=tz) delta = now - d since = delta.days * 24 * 60 * 60 + delta.seconds - # Crazy iteration syntax because we need i to be current index - for i, (seconds, name) in zip(range(len(chunks)), chunks): - count = math.floor(since / seconds) + for i, (seconds, name) in enumerate(chunks): + count = since / seconds if count != 0: break - if count == 1: - s = '1 %s' % name - else: - s = '%d %ss' % (count, name) + s = '%d %s' % (count, name(count)) if i + 1 < len(chunks): # Now get the second item seconds2, name2 = chunks[i + 1] - count2 = math.floor((since - (seconds * count)) / seconds2) + count2 = (since - (seconds * count)) / seconds2 if count2 != 0: - if count2 == 1: - s += ', 1 %s' % name2 - else: - s += ', %d %ss' % (count2, name2) + s += ', %d %s' % (count2, name2(count2)) return s def timeuntil(d):