Merge branch 'master' into funding

This commit is contained in:
Tom Christie 2015-10-23 16:27:30 +01:00
commit eeff5a1709
175 changed files with 6651 additions and 3015 deletions

View File

@ -5,6 +5,9 @@ sudo: false
env: env:
- TOX_ENV=py27-lint - TOX_ENV=py27-lint
- TOX_ENV=py27-docs - TOX_ENV=py27-docs
- TOX_ENV=py35-django19
- TOX_ENV=py34-django19
- TOX_ENV=py27-django19
- TOX_ENV=py34-django18 - TOX_ENV=py34-django18
- TOX_ENV=py33-django18 - TOX_ENV=py33-django18
- TOX_ENV=py32-django18 - TOX_ENV=py32-django18
@ -13,28 +16,12 @@ env:
- TOX_ENV=py33-django17 - TOX_ENV=py33-django17
- TOX_ENV=py32-django17 - TOX_ENV=py32-django17
- TOX_ENV=py27-django17 - TOX_ENV=py27-django17
- TOX_ENV=py34-django16
- TOX_ENV=py33-django16
- TOX_ENV=py32-django16
- TOX_ENV=py27-django16
- TOX_ENV=py26-django16
- TOX_ENV=py34-django15
- TOX_ENV=py33-django15
- TOX_ENV=py32-django15
- TOX_ENV=py27-django15
- TOX_ENV=py26-django15
- TOX_ENV=py27-djangomaster
- TOX_ENV=py32-djangomaster
- TOX_ENV=py33-djangomaster
- TOX_ENV=py34-djangomaster
matrix: matrix:
# Python 3.5 not yet available on travis, watch this to see when it is.
fast_finish: true fast_finish: true
allow_failures: allow_failures:
- env: TOX_ENV=py27-djangomaster - env: TOX_ENV=py35-django19
- env: TOX_ENV=py32-djangomaster
- env: TOX_ENV=py33-djangomaster
- env: TOX_ENV=py34-djangomaster
install: install:
- pip install tox - pip install tox
@ -44,4 +31,4 @@ script:
after_success: after_success:
- pip install codecov - pip install codecov
- codecov - codecov -e TOX_ENV

View File

@ -36,8 +36,8 @@ There is a live example API for testing purposes, [available here][sandbox].
# Requirements # Requirements
* Python (2.6.5+, 2.7, 3.2, 3.3, 3.4) * Python (2.7, 3.2, 3.3, 3.4, 3.5)
* Django (1.5.6+, 1.6.3+, 1.7, 1.8) * Django (1.7, 1.8, 1.9)
# Installation # Installation
@ -157,7 +157,6 @@ If you believe youve found something in Django REST framework which has secur
Send a description of the issue via email to [rest-framework-security@googlegroups.com][security-mail]. The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure. Send a description of the issue via email to [rest-framework-security@googlegroups.com][security-mail]. The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure.
[build-status-image]: https://secure.travis-ci.org/tomchristie/django-rest-framework.svg?branch=master [build-status-image]: https://secure.travis-ci.org/tomchristie/django-rest-framework.svg?branch=master
[travis]: http://travis-ci.org/tomchristie/django-rest-framework?branch=master [travis]: http://travis-ci.org/tomchristie/django-rest-framework?branch=master
[coverage-status-image]: https://img.shields.io/codecov/c/github/tomchristie/django-rest-framework/master.svg [coverage-status-image]: https://img.shields.io/codecov/c/github/tomchristie/django-rest-framework/master.svg

View File

@ -360,6 +360,14 @@ HTTP Signature (currently a [IETF draft][http-signature-ietf-draft]) provides a
[Django-rest-auth][django-rest-auth] library provides a set of REST API endpoints for registration, authentication (including social media authentication), password reset, retrieve and update user details, etc. By having these API endpoints, your client apps such as AngularJS, iOS, Android, and others can communicate to your Django backend site independently via REST APIs for user management. [Django-rest-auth][django-rest-auth] library provides a set of REST API endpoints for registration, authentication (including social media authentication), password reset, retrieve and update user details, etc. By having these API endpoints, your client apps such as AngularJS, iOS, Android, and others can communicate to your Django backend site independently via REST APIs for user management.
## django-rest-framework-social-oauth2
[Django-rest-framework-social-oauth2][django-rest-framework-social-oauth2] library provides an easy way to integrate social plugins (facebook, twitter, google, etc.) to your authentication system and an easy oauth2 setup. With this library, you will be able to authenticate users based on external tokens (e.g. facebook access token), convert these tokens to "in-house" oauth2 tokens and use and generate oauth2 tokens to authenticate your users.
## django-rest-knox
[Django-rest-knox][django-rest-knox] library provides models and views to handle token based authentication in a more secure and extensible way than the built-in TokenAuthentication scheme - with Single Page Applications and Mobile clients in mind. It provides per-client tokens, and views to generate them when provided some other authentication (usually basic authentication), to delete the token (providing a server enforced logout) and to delete all tokens (logs out all clients that a user is logged into).
[cite]: http://jacobian.org/writing/rest-worst-practices/ [cite]: http://jacobian.org/writing/rest-worst-practices/
[http401]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2 [http401]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2
[http403]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4 [http403]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4
@ -400,3 +408,5 @@ HTTP Signature (currently a [IETF draft][http-signature-ietf-draft]) provides a
[mac]: http://tools.ietf.org/html/draft-hammer-oauth-v2-mac-token-05 [mac]: http://tools.ietf.org/html/draft-hammer-oauth-v2-mac-token-05
[djoser]: https://github.com/sunscrapers/djoser [djoser]: https://github.com/sunscrapers/djoser
[django-rest-auth]: https://github.com/Tivix/django-rest-auth [django-rest-auth]: https://github.com/Tivix/django-rest-auth
[django-rest-framework-social-oauth2]: https://github.com/PhilipGarnero/django-rest-framework-social-oauth2
[django-rest-knox]: https://github.com/James1345/django-rest-knox

View File

@ -51,13 +51,13 @@ Defaults to `False`
If set, this gives the default value that will be used for the field if no input value is supplied. If not set the default behavior is to not populate the attribute at all. If set, this gives the default value that will be used for the field if no input value is supplied. If not set the default behavior is to not populate the attribute at all.
May be set to a function or other callable, in which case the value will be evaluated each time it is used. May be set to a function or other callable, in which case the value will be evaluated each time it is used. When called, it will receive no arguments. If the callable has a `set_context` method, that will be called each time before getting the value with the field instance as only argument. This works the same way as for [validators](validators.md#using-set_context).
Note that setting a `default` value implies that the field is not required. Including both the `default` and `required` keyword arguments is invalid and will raise an error. Note that setting a `default` value implies that the field is not required. Including both the `default` and `required` keyword arguments is invalid and will raise an error.
### `source` ### `source`
The name of the attribute that will be used to populate the field. May be a method that only takes a `self` argument, such as `URLField('get_absolute_url')`, or may use dotted notation to traverse attributes, such as `EmailField(source='user.email')`. The name of the attribute that will be used to populate the field. May be a method that only takes a `self` argument, such as `URLField(source='get_absolute_url')`, or may use dotted notation to traverse attributes, such as `EmailField(source='user.email')`.
The value `source='*'` has a special meaning, and is used to indicate that the entire object should be passed through to the field. This can be useful for creating nested representations, or for fields which require access to the complete object in order to determine the output representation. The value `source='*'` has a special meaning, and is used to indicate that the entire object should be passed through to the field. This can be useful for creating nested representations, or for fields which require access to the complete object in order to determine the output representation.
@ -85,9 +85,9 @@ A value that should be used for pre-populating the value of HTML form fields.
### `style` ### `style`
A dictionary of key-value pairs that can be used to control how renderers should render the field. The API for this should still be considered experimental, and will be formalized with the 3.1 release. A dictionary of key-value pairs that can be used to control how renderers should render the field.
Two options are currently used in HTML form generation, `'input_type'` and `'base_template'`. Two examples here are `'input_type'` and `'base_template'`:
# Use <input type="password"> for the input. # Use <input type="password"> for the input.
password = serializers.CharField( password = serializers.CharField(
@ -100,7 +100,7 @@ Two options are currently used in HTML form generation, `'input_type'` and `'bas
style = {'base_template': 'radio.html'} style = {'base_template': 'radio.html'}
} }
**Note**: The `style` argument replaces the old-style version 2.x `widget` keyword argument. Because REST framework 3 now uses templated HTML form generation, the `widget` option that was used to support Django built-in widgets can no longer be supported. Version 3.1 is planned to include public API support for customizing HTML form generation. For more details see the [HTML & Forms][html-and-forms] documentation.
--- ---
@ -364,6 +364,8 @@ Used by `ModelSerializer` to automatically generate fields if the corresponding
- `choices` - A list of valid values, or a list of `(key, display_name)` tuples. - `choices` - A list of valid values, or a list of `(key, display_name)` tuples.
- `allow_blank` - If set to `True` then the empty string should be considered a valid value. If set to `False` then the empty string is considered invalid and will raise a validation error. Defaults to `False`. - `allow_blank` - If set to `True` then the empty string should be considered a valid value. If set to `False` then the empty string is considered invalid and will raise a validation error. Defaults to `False`.
- `html_cutoff` - If set this will be the maximum number of choices that will be displayed by a HTML select drop down. Can be used to ensure that automatically generated ChoiceFields with very large possible selections do not prevent a template from rendering. Defaults to `None`.
- `html_cutoff_text` - If set this will display a textual indicator if the maximum number of items have been cutoff in an HTML select drop down. Defaults to `"More than {count} items…"`
Both the `allow_blank` and `allow_null` are valid options on `ChoiceField`, although it is highly recommended that you only use one and not both. `allow_blank` should be preferred for textual choices, and `allow_null` should be preferred for numeric or other non-textual choices. Both the `allow_blank` and `allow_null` are valid options on `ChoiceField`, although it is highly recommended that you only use one and not both. `allow_blank` should be preferred for textual choices, and `allow_null` should be preferred for numeric or other non-textual choices.
@ -375,6 +377,8 @@ A field that can accept a set of zero, one or many values, chosen from a limited
- `choices` - A list of valid values, or a list of `(key, display_name)` tuples. - `choices` - A list of valid values, or a list of `(key, display_name)` tuples.
- `allow_blank` - If set to `True` then the empty string should be considered a valid value. If set to `False` then the empty string is considered invalid and will raise a validation error. Defaults to `False`. - `allow_blank` - If set to `True` then the empty string should be considered a valid value. If set to `False` then the empty string is considered invalid and will raise a validation error. Defaults to `False`.
- `html_cutoff` - If set this will be the maximum number of choices that will be displayed by a HTML select drop down. Can be used to ensure that automatically generated ChoiceFields with very large possible selections do not prevent a template from rendering. Defaults to `None`.
- `html_cutoff_text` - If set this will display a textual indicator if the maximum number of items have been cutoff in an HTML select drop down. Defaults to `"More than {count} items…"`
As with `ChoiceField`, both the `allow_blank` and `allow_null` options are valid, although it is highly recommended that you only use one and not both. `allow_blank` should be preferred for textual choices, and `allow_null` should be preferred for numeric or other non-textual choices. As with `ChoiceField`, both the `allow_blank` and `allow_null` options are valid, although it is highly recommended that you only use one and not both. `allow_blank` should be preferred for textual choices, and `allow_null` should be preferred for numeric or other non-textual choices.
@ -455,6 +459,14 @@ You can also use the declarative style, as with `ListField`. For example:
class DocumentField(DictField): class DocumentField(DictField):
child = CharField() child = CharField()
## JSONField
A field class that validates that the incoming data structure consists of valid JSON primitives. In its alternate binary mode, it will represent and validate JSON-encoded binary strings.
**Signature**: `JSONField(binary)`
- `binary` - If set to `True` then the field will output and validate a JSON encoded string, rather that a primitive data structure. Defaults to `False`.
--- ---
# Miscellaneous fields # Miscellaneous fields
@ -646,6 +658,7 @@ The [django-rest-framework-gis][django-rest-framework-gis] package provides geog
The [django-rest-framework-hstore][django-rest-framework-hstore] package provides an `HStoreField` to support [django-hstore][django-hstore] `DictionaryField` model field. The [django-rest-framework-hstore][django-rest-framework-hstore] package provides an `HStoreField` to support [django-hstore][django-hstore] `DictionaryField` model field.
[cite]: https://docs.djangoproject.com/en/dev/ref/forms/api/#django.forms.Form.cleaned_data [cite]: https://docs.djangoproject.com/en/dev/ref/forms/api/#django.forms.Form.cleaned_data
[html-and-forms]: ../topics/html-and-forms.md
[FILE_UPLOAD_HANDLERS]: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-FILE_UPLOAD_HANDLERS [FILE_UPLOAD_HANDLERS]: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-FILE_UPLOAD_HANDLERS
[ecma262]: http://ecma-international.org/ecma-262/5.1/#sec-15.9.1.15 [ecma262]: http://ecma-international.org/ecma-262/5.1/#sec-15.9.1.15
[strftime]: http://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior [strftime]: http://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior

View File

@ -83,6 +83,10 @@ We can override `.get_queryset()` to deal with URLs such as `http://example.com/
As well as being able to override the default queryset, REST framework also includes support for generic filtering backends that allow you to easily construct complex searches and filters. As well as being able to override the default queryset, REST framework also includes support for generic filtering backends that allow you to easily construct complex searches and filters.
Generic filters can also present themselves as HTML controls in the browsable API and admin API.
![Filter Example](../img/filter-controls.png)
## Setting filter backends ## Setting filter backends
The default filter backends may be set globally, using the `DEFAULT_FILTER_BACKENDS` setting. For example. The default filter backends may be set globally, using the `DEFAULT_FILTER_BACKENDS` setting. For example.
@ -95,9 +99,9 @@ You can also set the filter backends on a per-view, or per-viewset basis,
using the `GenericAPIView` class based views. using the `GenericAPIView` class based views.
from django.contrib.auth.models import User from django.contrib.auth.models import User
from myapp.serializers import UserSerializer from myapp.serializers import UserSerializer
from rest_framework import filters from rest_framework import filters
from rest_framework import generics from rest_framework import generics
class UserListView(generics.ListAPIView): class UserListView(generics.ListAPIView):
queryset = User.objects.all() queryset = User.objects.all()
@ -141,6 +145,13 @@ To use REST framework's `DjangoFilterBackend`, first install `django-filter`.
pip install django-filter pip install django-filter
If you are using the browsable API or admin API you may also want to install `crispy-forms`, which will enhance the presentation of the filter forms in HTML views, by allowing them to render Bootstrap 3 HTML.
pip install django-crispy-forms
With crispy forms installed, the browsable API will present a filtering control for `DjangoFilterBackend`, like so:
![Django Filter](../../docs/img/django-filter.png)
#### Specifying filter fields #### Specifying filter fields
@ -163,6 +174,7 @@ For more advanced filtering requirements you can specify a `FilterSet` class tha
import django_filters import django_filters
from myapp.models import Product from myapp.models import Product
from myapp.serializers import ProductSerializer from myapp.serializers import ProductSerializer
from rest_framework import filters
from rest_framework import generics from rest_framework import generics
class ProductFilter(django_filters.FilterSet): class ProductFilter(django_filters.FilterSet):
@ -236,6 +248,10 @@ For more details on using filter sets see the [django-filter documentation][djan
The `SearchFilter` class supports simple single query parameter based searching, and is based on the [Django admin's search functionality][search-django-admin]. The `SearchFilter` class supports simple single query parameter based searching, and is based on the [Django admin's search functionality][search-django-admin].
When in use, the browsable API will include a `SearchFilter` control:
![Search Filter](../../docs/img/search-filter.png)
The `SearchFilter` class will only be applied if the view has a `search_fields` attribute set. The `search_fields` attribute should be a list of names of text type fields on the model, such as `CharField` or `TextField`. The `SearchFilter` class will only be applied if the view has a `search_fields` attribute set. The `search_fields` attribute should be a list of names of text type fields on the model, such as `CharField` or `TextField`.
class UserListView(generics.ListAPIView): class UserListView(generics.ListAPIView):
@ -259,6 +275,7 @@ The search behavior may be restricted by prepending various characters to the `s
* '^' Starts-with search. * '^' Starts-with search.
* '=' Exact matches. * '=' Exact matches.
* '@' Full-text search. (Currently only supported Django's MySQL backend.) * '@' Full-text search. (Currently only supported Django's MySQL backend.)
* '$' Regex search.
For example: For example:
@ -272,7 +289,11 @@ For more details, see the [Django documentation][search-django-admin].
## OrderingFilter ## OrderingFilter
The `OrderingFilter` class supports simple query parameter controlled ordering of results. By default, the query parameter is named `'ordering'`, but this may by overridden with the `ORDERING_PARAM` setting. The `OrderingFilter` class supports simple query parameter controlled ordering of results.
![Ordering Filter](../../docs/img/ordering-filter.png)
By default, the query parameter is named `'ordering'`, but this may by overridden with the `ORDERING_PARAM` setting.
For example, to order users by username: For example, to order users by username:
@ -329,8 +350,6 @@ The `ordering` attribute may be either a string or a list/tuple of strings.
The `DjangoObjectPermissionsFilter` is intended to be used together with the [`django-guardian`][guardian] package, with custom `'view'` permissions added. The filter will ensure that querysets only returns objects for which the user has the appropriate view permission. The `DjangoObjectPermissionsFilter` is intended to be used together with the [`django-guardian`][guardian] package, with custom `'view'` permissions added. The filter will ensure that querysets only returns objects for which the user has the appropriate view permission.
This filter class must be used with views that provide either a `queryset` or a `model` attribute.
If you're using `DjangoObjectPermissionsFilter`, you'll probably also want to add an appropriate object permissions class, to ensure that users can only operate on instances if they have the appropriate object permissions. The easiest way to do this is to subclass `DjangoObjectPermissions` and add `'view'` permissions to the `perms_map` attribute. If you're using `DjangoObjectPermissionsFilter`, you'll probably also want to add an appropriate object permissions class, to ensure that users can only operate on instances if they have the appropriate object permissions. The easiest way to do this is to subclass `DjangoObjectPermissions` and add `'view'` permissions to the `perms_map` attribute.
A complete example using both `DjangoObjectPermissionsFilter` and `DjangoObjectPermissions` might look something like this. A complete example using both `DjangoObjectPermissionsFilter` and `DjangoObjectPermissions` might look something like this.
@ -389,6 +408,14 @@ For example, you might need to restrict users to only being able to see objects
We could achieve the same behavior by overriding `get_queryset()` on the views, but using a filter backend allows you to more easily add this restriction to multiple views, or to apply it across the entire API. We could achieve the same behavior by overriding `get_queryset()` on the views, but using a filter backend allows you to more easily add this restriction to multiple views, or to apply it across the entire API.
## Customizing the interface
Generic filters may also present an interface in the browsable API. To do so you should implement a `to_html()` method which returns a rendered HTML representation of the filter. This method should have the following signature:
`to_html(self, request, queryset, view)`
The method should return a rendered HTML string.
# Third party packages # Third party packages
The following third party packages provide additional filter implementations. The following third party packages provide additional filter implementations.
@ -401,6 +428,10 @@ The [django-rest-framework-filters package][django-rest-framework-filters] works
The [djangorestframework-word-filter][django-rest-framework-word-search-filter] developed as alternative to `filters.SearchFilter` which will search full word in text, or exact match. The [djangorestframework-word-filter][django-rest-framework-word-search-filter] developed as alternative to `filters.SearchFilter` which will search full word in text, or exact match.
## Django URL Filter
[django-url-filter][django-url-filter] provides a safe way to filter data via human-friendly URLs. It works very similar to DRF serializers and fields in a sense that they can be nested except they are called filtersets and filters. That provides easy way to filter related data. Also this library is generic-purpose so it can be used to filter other sources of data and not only Django `QuerySet`s.
[cite]: https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-specific-objects-with-filters [cite]: https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-specific-objects-with-filters
[django-filter]: https://github.com/alex/django-filter [django-filter]: https://github.com/alex/django-filter
[django-filter-docs]: https://django-filter.readthedocs.org/en/latest/index.html [django-filter-docs]: https://django-filter.readthedocs.org/en/latest/index.html
@ -411,3 +442,4 @@ The [djangorestframework-word-filter][django-rest-framework-word-search-filter]
[search-django-admin]: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields [search-django-admin]: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields
[django-rest-framework-filters]: https://github.com/philipn/django-rest-framework-filters [django-rest-framework-filters]: https://github.com/philipn/django-rest-framework-filters
[django-rest-framework-word-search-filter]: https://github.com/trollknurr/django-rest-framework-word-search-filter [django-rest-framework-word-search-filter]: https://github.com/trollknurr/django-rest-framework-word-search-filter
[django-url-filter]: https://github.com/miki725/django-url-filter

View File

@ -69,6 +69,16 @@ If using the `i18n_patterns` function provided by Django, as well as `format_suf
--- ---
## Query parameter formats
An alternative to the format suffixes is to include the requested format in a query parameter. REST framework provides this option by default, and it is used in the browsable API to switch between differing available representations.
To select a representation using its short format, use the `format` query parameter. For example: `http://example.com/organizations/?format=csv`.
The name of this query parameter can be modified using the `URL_FORMAT_OVERRIDE` setting. Set the value to `None` to disable this behavior.
---
## Accept headers vs. format suffixes ## Accept headers vs. format suffixes
There seems to be a view among some of the Web community that filename extensions are not a RESTful pattern, and that `HTTP Accept` headers should always be used instead. There seems to be a view among some of the Web community that filename extensions are not a RESTful pattern, and that `HTTP Accept` headers should always be used instead.

View File

@ -15,7 +15,7 @@ The pagination API can support either:
The built-in styles currently all use links included as part of the content of the response. This style is more accessible when using the browsable API. The built-in styles currently all use links included as part of the content of the response. This style is more accessible when using the browsable API.
Pagination is only performed automatically if you're using the generic views or viewsets. If you're using a regular `APIView`, you'll need to call into the pagination API yourself to ensure you return a paginated response. See the source code for the `mixins.ListMixin` and `generics.GenericAPIView` classes for an example. Pagination is only performed automatically if you're using the generic views or viewsets. If you're using a regular `APIView`, you'll need to call into the pagination API yourself to ensure you return a paginated response. See the source code for the `mixins.ListModelMixin` and `generics.GenericAPIView` classes for an example.
## Setting the pagination style ## Setting the pagination style

View File

@ -16,7 +16,7 @@ Relational fields are used to represent model relationships. They can be applie
--- ---
#### Inspecting automatically generated relationships. #### Inspecting relationships.
When using the `ModelSerializer` class, serializer fields and relationships will be automatically generated for you. Inspecting these automatically generated fields can be a useful tool for determining how to customize the relationship style. When using the `ModelSerializer` class, serializer fields and relationships will be automatically generated for you. Inspecting these automatically generated fields can be a useful tool for determining how to customize the relationship style.
@ -255,7 +255,7 @@ For example, the following serializer:
class TrackSerializer(serializers.ModelSerializer): class TrackSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Track model = Track
fields = ('order', 'title') fields = ('order', 'title', 'duration')
class AlbumSerializer(serializers.ModelSerializer): class AlbumSerializer(serializers.ModelSerializer):
tracks = TrackSerializer(many=True, read_only=True) tracks = TrackSerializer(many=True, read_only=True)
@ -288,12 +288,12 @@ Would serialize to a nested representation like this:
# Writable nested serializers # Writable nested serializers
Be default nested serializers are read-only. If you want to to support write-operations to a nested serializer field you'll need to create either or both of the `create()` and/or `update()` methods, in order to explicitly specify how the child relationships should be saved. By default nested serializers are read-only. If you want to support write-operations to a nested serializer field you'll need to create `create()` and/or `update()` methods in order to explicitly specify how the child relationships should be saved.
class TrackSerializer(serializers.ModelSerializer): class TrackSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Track model = Track
fields = ('order', 'title') fields = ('order', 'title', 'duration')
class AlbumSerializer(serializers.ModelSerializer): class AlbumSerializer(serializers.ModelSerializer):
tracks = TrackSerializer(many=True) tracks = TrackSerializer(many=True)
@ -405,13 +405,15 @@ In this case we'd need to override `HyperlinkedRelatedField` to get the behavior
def get_url(self, obj, view_name, request, format): def get_url(self, obj, view_name, request, format):
url_kwargs = { url_kwargs = {
'organization_slug': obj.organization.slug, 'organization_slug': obj.organization.slug,
'customer_pk': obj.pk } 'customer_pk': obj.pk
}
return reverse(view_name, url_kwargs, request=request, format=format) return reverse(view_name, url_kwargs, request=request, format=format)
def get_object(self, view_name, view_args, view_kwargs): def get_object(self, view_name, view_args, view_kwargs):
lookup_kwargs = { lookup_kwargs = {
'organization__slug': view_kwargs['organization_slug'], 'organization__slug': view_kwargs['organization_slug'],
'pk': view_kwargs['customer_pk'] } 'pk': view_kwargs['customer_pk']
}
return self.get_queryset().get(**lookup_kwargs) return self.get_queryset().get(**lookup_kwargs)
Note that if you wanted to use this style together with the generic views then you'd also need to override `.get_object` on the view in order to get the correct lookup behavior. Note that if you wanted to use this style together with the generic views then you'd also need to override `.get_object` on the view in order to get the correct lookup behavior.
@ -442,6 +444,25 @@ To provide customized representations for such inputs, override `display_value()
def display_value(self, instance): def display_value(self, instance):
return 'Track: %s' % (instance.title) return 'Track: %s' % (instance.title)
## Select field cutoffs
When rendered in the browsable API relational fields will default to only displaying a maximum of 1000 selectable items. If more items are present then a disabled option with "More than 1000 items…" will be displayed.
This behavior is intended to prevent a template from being unable to render in an acceptable timespan due to a very large number of relationships being displayed.
There are two keyword arguments you can use to control this behavior:
- `html_cutoff` - If set this will be the maximum number of choices that will be displayed by a HTML select drop down. Set to `None` to disable any limiting. Defaults to `1000`.
- `html_cutoff_text` - If set this will display a textual indicator if the maximum number of items have been cutoff in an HTML select drop down. Defaults to `"More than {count} items…"`
In cases where the cutoff is being enforced you may want to instead use a plain input field in the HTML form. You can do so using the `style` keyword argument. For example:
assigned_to = serializers.SlugRelatedField(
queryset=User.objects.all(),
slug field='username',
style={'base_template': 'input.html'}
)
## Reverse relations ## Reverse relations
Note that reverse relationships are not automatically included by the `ModelSerializer` and `HyperlinkedModelSerializer` classes. To include a reverse relationship, you must explicitly add it to the fields list. For example: Note that reverse relationships are not automatically included by the `ModelSerializer` and `HyperlinkedModelSerializer` classes. To include a reverse relationship, you must explicitly add it to the fields list. For example:
@ -482,7 +503,7 @@ For example, given the following model for a tag, which has a generic relationsh
tagged_object = GenericForeignKey('content_type', 'object_id') tagged_object = GenericForeignKey('content_type', 'object_id')
def __unicode__(self): def __unicode__(self):
return self.tag return self.tag_name
And the following two models, which may be have associated tags: And the following two models, which may be have associated tags:

View File

@ -197,9 +197,19 @@ Note that views that have nested or list serializers for their input won't work
## HTMLFormRenderer ## HTMLFormRenderer
Renders data returned by a serializer into an HTML form. The output of this renderer does not include the enclosing `<form>` tags or an submit actions, as you'll probably need those to include the desired method and URL. Also note that the `HTMLFormRenderer` does not yet support including field error messages. Renders data returned by a serializer into an HTML form. The output of this renderer does not include the enclosing `<form>` tags, a hidden CSRF input or any submit buttons.
**Note**: The `HTMLFormRenderer` class is intended for internal use with the browsable API and admin interface. It should not be considered a fully documented or stable API. The template used by the `HTMLFormRenderer` class, and the context submitted to it **may be subject to change**. If you need to use this renderer class it is advised that you either make a local copy of the class and templates, or follow the release note on REST framework upgrades closely. This renderer is not intended to be used directly, but can instead be used in templates by passing a serializer instance to the `render_form` template tag.
{% load rest_framework %}
<form action="/submit-report/" method="post">
{% csrf_token %}
{% render_form serializer %}
<input type="submit" value="Save" />
</form>
For more information see the [HTML & Forms][html-and-forms] documentation.
**.media_type**: `text/html` **.media_type**: `text/html`
@ -207,7 +217,7 @@ Renders data returned by a serializer into an HTML form. The output of this ren
**.charset**: `utf-8` **.charset**: `utf-8`
**.template**: `'rest_framework/form.html'` **.template**: `'rest_framework/horizontal/form.html'`
## MultiPartRenderer ## MultiPartRenderer
@ -455,6 +465,7 @@ Comma-separated values are a plain-text tabular data format, that can be easily
[cite]: https://docs.djangoproject.com/en/dev/ref/template-response/#the-rendering-process [cite]: https://docs.djangoproject.com/en/dev/ref/template-response/#the-rendering-process
[conneg]: content-negotiation.md [conneg]: content-negotiation.md
[html-and-forms]: ../topics/html-and-forms.md
[browser-accept-headers]: http://www.gethifi.com/blog/browser-rest-http-accept-headers [browser-accept-headers]: http://www.gethifi.com/blog/browser-rest-http-accept-headers
[testing]: testing.md [testing]: testing.md
[HATEOAS]: http://timelessrepo.com/haters-gonna-hateoas [HATEOAS]: http://timelessrepo.com/haters-gonna-hateoas

View File

@ -189,6 +189,12 @@ Your `validate_<field_name>` methods should return the validated value or raise
raise serializers.ValidationError("Blog post is not about Django") raise serializers.ValidationError("Blog post is not about Django")
return value return value
---
**Note:** If your `<field_name>` is declared on your serializer with the parameter `required=False` then this validation step will not take place if the field is not included.
---
#### Object-level validation #### Object-level validation
To do any other validation that requires access to multiple fields, add a method called `.validate()` to your `Serializer` subclass. This method takes a single argument, which is a dictionary of field values. It should raise a `ValidationError` if necessary, or just return the validated values. For example: To do any other validation that requires access to multiple fields, add a method called `.validate()` to your `Serializer` subclass. This method takes a single argument, which is a dictionary of field values. It should raise a `ValidationError` if necessary, or just return the validated values. For example:
@ -281,7 +287,7 @@ Similarly if a nested representation should be a list of items, you should pass
## Writable nested representations ## Writable nested representations
When dealing with nested representations that support deserializing the data, an errors with nested objects will be nested under the field name of the nested object. When dealing with nested representations that support deserializing the data, any errors with nested objects will be nested under the field name of the nested object.
serializer = CommentSerializer(data={'user': {'email': 'foobar', 'username': 'doe'}, 'content': 'baz'}) serializer = CommentSerializer(data={'user': {'email': 'foobar', 'username': 'doe'}, 'content': 'baz'})
serializer.is_valid() serializer.is_valid()
@ -350,7 +356,7 @@ It is possible that a third party package, providing automatic support some kind
#### Handling saving related instances in model manager classes #### Handling saving related instances in model manager classes
An alternative to saving multiple related instances in the serializer is to write custom model manager classes handle creating the correct instances. An alternative to saving multiple related instances in the serializer is to write custom model manager classes that handle creating the correct instances.
For example, suppose we wanted to ensure that `User` instances and `Profile` instances are always created together as a pair. We might write a custom manager class that looks something like this: For example, suppose we wanted to ensure that `User` instances and `Profile` instances are always created together as a pair. We might write a custom manager class that looks something like this:
@ -399,7 +405,7 @@ To serialize a queryset or list of objects instead of a single object instance,
#### Deserializing multiple objects #### Deserializing multiple objects
The default behavior for deserializing multiple objects is to support multiple object creation, but not support multiple object updates. For more information on how to support or customize either of these cases, see the [ListSerializer](#ListSerializer) documentation below. The default behavior for deserializing multiple objects is to support multiple object creation, but not support multiple object updates. For more information on how to support or customize either of these cases, see the [ListSerializer](#listserializer) documentation below.
## Including extra context ## Including extra context
@ -432,6 +438,7 @@ Declaring a `ModelSerializer` looks like this:
class AccountSerializer(serializers.ModelSerializer): class AccountSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Account model = Account
fields = ('id', 'account_name', 'users', 'created')
By default, all the model fields on the class will be mapped to a corresponding serializer fields. By default, all the model fields on the class will be mapped to a corresponding serializer fields.
@ -453,7 +460,7 @@ To do so, open the Django shell, using `python manage.py shell`, then import the
## Specifying which fields to include ## Specifying which fields to include
If you only want a subset of the default fields to be used in a model serializer, you can do so using `fields` or `exclude` options, just as you would with a `ModelForm`. If you only want a subset of the default fields to be used in a model serializer, you can do so using `fields` or `exclude` options, just as you would with a `ModelForm`. It is strongly recommended that you explicitly set all fields that should be serialized using the `fields` attribute. This will make it less likely to result in unintentionally exposing data when your models change.
For example: For example:
@ -462,7 +469,27 @@ For example:
model = Account model = Account
fields = ('id', 'account_name', 'users', 'created') fields = ('id', 'account_name', 'users', 'created')
The names in the `fields` option will normally map to model fields on the model class. You can also set the `fields` attribute to the special value `'__all__'` to indicate that all fields in the model should be used.
For example:
class AccountSerializer(serializers.ModelSerializer):
class Meta:
model = Account
fields = '__all__'
You can set the `exclude` attribute to a list of fields to be excluded from the serializer.
For example:
class AccountSerializer(serializers.ModelSerializer):
class Meta:
model = Account
exclude = ('users',)
In the example above, if the `Account` model had 3 fields `account_name`, `users`, and `created`, this will result in the fields `account_name` and `created` to be serialized.
The names in the `fields` and `exclude` attributes will normally map to model fields on the model class.
Alternatively names in the `fields` options can map to properties or methods which take no arguments that exist on the model class. Alternatively names in the `fields` options can map to properties or methods which take no arguments that exist on the model class.
@ -524,7 +551,7 @@ Please review the [Validators Documentation](/api-guide/validators/) for details
## Additional keyword arguments ## Additional keyword arguments
There is also a shortcut allowing you to specify arbitrary additional keyword arguments on fields, using the `extra_kwargs` option. Similarly to `read_only_fields` this means you do not need to explicitly declare the field on the serializer. There is also a shortcut allowing you to specify arbitrary additional keyword arguments on fields, using the `extra_kwargs` option. As in the case of `read_only_fields`, this means you do not need to explicitly declare the field on the serializer.
This option is a dictionary, mapping field names to a dictionary of keyword arguments. For example: This option is a dictionary, mapping field names to a dictionary of keyword arguments. For example:
@ -805,7 +832,7 @@ This class implements the same basic API as the `Serializer` class:
* `.data` - Returns the outgoing primitive representation. * `.data` - Returns the outgoing primitive representation.
* `.is_valid()` - Deserializes and validates incoming data. * `.is_valid()` - Deserializes and validates incoming data.
* `.validated_data` - Returns the validated incoming data. * `.validated_data` - Returns the validated incoming data.
* `.errors` - Returns an errors during validation. * `.errors` - Returns any errors during validation.
* `.save()` - Persists the validated data into an object instance. * `.save()` - Persists the validated data into an object instance.
There are four methods that can be overridden, depending on what functionality you want the serializer class to support: There are four methods that can be overridden, depending on what functionality you want the serializer class to support:
@ -1022,6 +1049,13 @@ A new interface for controlling this behavior is currently planned for REST fram
The following third party packages are also available. The following third party packages are also available.
## Django REST marshmallow
The [django-rest-marshmallow][django-rest-marshmallow] package provides an alternative implementation for serializers, using the python [marshmallow][marshmallow] library. It exposes the same API as the REST framework serializers, and can be used as a drop-in replacement in some use-cases.
## Serpy
The [serpy][serpy] package is an alternative implementation for serializers that is built for speed. [Serpy][serpy] serializes complex datatypes to simple native types. The native types can be easily converted to JSON or any other format needed.
## MongoengineModelSerializer ## MongoengineModelSerializer
The [django-rest-framework-mongoengine][mongoengine] package provides a `MongoEngineModelSerializer` serializer class that supports using MongoDB as the storage layer for Django REST framework. The [django-rest-framework-mongoengine][mongoengine] package provides a `MongoEngineModelSerializer` serializer class that supports using MongoDB as the storage layer for Django REST framework.
@ -1038,6 +1072,9 @@ The [django-rest-framework-hstore][django-rest-framework-hstore] package provide
[relations]: relations.md [relations]: relations.md
[model-managers]: https://docs.djangoproject.com/en/dev/topics/db/managers/ [model-managers]: https://docs.djangoproject.com/en/dev/topics/db/managers/
[encapsulation-blogpost]: http://www.dabapps.com/blog/django-models-and-encapsulation/ [encapsulation-blogpost]: http://www.dabapps.com/blog/django-models-and-encapsulation/
[django-rest-marshmallow]: http://tomchristie.github.io/django-rest-marshmallow/
[marshmallow]: https://marshmallow.readthedocs.org/en/latest/
[serpy]: https://github.com/clarkduvall/serpy
[mongoengine]: https://github.com/umutbozkurt/django-rest-framework-mongoengine [mongoengine]: https://github.com/umutbozkurt/django-rest-framework-mongoengine
[django-rest-framework-gis]: https://github.com/djangonauts/django-rest-framework-gis [django-rest-framework-gis]: https://github.com/djangonauts/django-rest-framework-gis
[django-rest-framework-hstore]: https://github.com/djangonauts/django-rest-framework-hstore [django-rest-framework-hstore]: https://github.com/djangonauts/django-rest-framework-hstore

View File

@ -249,47 +249,23 @@ Default:
--- ---
## Browser overrides ## Content type controls
*The following settings provide URL or form-based overrides of the default browser behavior.*
#### FORM_METHOD_OVERRIDE
The name of a form field that may be used to override the HTTP method of the form.
If the value of this setting is `None` then form method overloading will be disabled.
Default: `'_method'`
#### FORM_CONTENT_OVERRIDE
The name of a form field that may be used to override the content of the form payload. Must be used together with `FORM_CONTENTTYPE_OVERRIDE`.
If either setting is `None` then form content overloading will be disabled.
Default: `'_content'`
#### FORM_CONTENTTYPE_OVERRIDE
The name of a form field that may be used to override the content type of the form payload. Must be used together with `FORM_CONTENT_OVERRIDE`.
If either setting is `None` then form content overloading will be disabled.
Default: `'_content_type'`
#### URL_ACCEPT_OVERRIDE
The name of a URL parameter that may be used to override the HTTP `Accept` header.
If the value of this setting is `None` then URL accept overloading will be disabled.
Default: `'accept'`
#### URL_FORMAT_OVERRIDE #### URL_FORMAT_OVERRIDE
The name of a URL parameter that may be used to override the default `Accept` header based content negotiation. The name of a URL parameter that may be used to override the default content negotiation `Accept` header behavior, by using a `format=…` query parameter in the request URL.
If the value of this setting is `None` then URL format overloading will be disabled. For example: `http://example.com/organizations/?format=csv`
If the value of this setting is `None` then URL format overrides will be disabled.
Default: `'format'`
#### FORMAT_SUFFIX_KWARG
The name of a parameter in the URL conf that may be used to provide a format suffix. This setting is applied when using `format_suffix_patterns` to include suffixed URL patterns.
For example: `http://example.com/organizations.csv/`
Default: `'format'` Default: `'format'`
@ -451,12 +427,6 @@ A string representing the key that should be used for the URL fields generated b
Default: `'url'` Default: `'url'`
#### FORMAT_SUFFIX_KWARG
The name of a parameter in the URL conf that may be used to provide a format suffix.
Default: `'format'`
#### NUM_PROXIES #### NUM_PROXIES
An integer of 0 or more, that may be used to specify the number of application proxies that the API runs behind. This allows throttling to more accurately identify client IP addresses. If set to `None` then less strict IP matching will be used by the throttle classes. An integer of 0 or more, that may be used to specify the number of application proxies that the API runs behind. This allows throttling to more accurately identify client IP addresses. If set to `None` then less strict IP matching will be used by the throttle classes.

View File

@ -200,6 +200,7 @@ You can use any of REST framework's test case classes as you would for the regul
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from rest_framework import status from rest_framework import status
from rest_framework.test import APITestCase from rest_framework.test import APITestCase
from myproject.apps.core.models import Account
class AccountTests(APITestCase): class AccountTests(APITestCase):
def test_create_account(self): def test_create_account(self):
@ -210,7 +211,8 @@ You can use any of REST framework's test case classes as you would for the regul
data = {'name': 'DabApps'} data = {'name': 'DabApps'}
response = self.client.post(url, data, format='json') response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertEqual(response.data, data) self.assertEqual(Account.objects.count(), 1)
self.assertEqual(Account.objects.get().name, 'DabApps')
--- ---

View File

@ -148,7 +148,7 @@ For example, given the following views...
throttle_scope = 'contacts' throttle_scope = 'contacts'
... ...
class ContactDetailView(ApiView): class ContactDetailView(APIView):
throttle_scope = 'contacts' throttle_scope = 'contacts'
... ...
@ -184,7 +184,7 @@ If the `.wait()` method is implemented and the request is throttled, then a `Ret
The following is an example of a rate throttle, that will randomly throttle 1 in every 10 requests. The following is an example of a rate throttle, that will randomly throttle 1 in every 10 requests.
class RandomRateThrottle(throttles.BaseThrottle): class RandomRateThrottle(throttling.BaseThrottle):
def allow_request(self, request, view): def allow_request(self, request, view):
return random.randint(1, 10) == 1 return random.randint(1, 10) == 1

View File

@ -72,7 +72,7 @@ The following settings keys are also used to control versioning:
* `DEFAULT_VERSION`. The value that should be used for `request.version` when no versioning information is present. Defaults to `None`. * `DEFAULT_VERSION`. The value that should be used for `request.version` when no versioning information is present. Defaults to `None`.
* `ALLOWED_VERSIONS`. If set, this value will restrict the set of versions that may be returned by the versioning scheme, and will raise an error if the provided version if not in this set. Note that the value used for the `DEFAULT_VERSION` setting is always considered to be part of the `ALLOWED_VERSIONS` set. Defaults to `None`. * `ALLOWED_VERSIONS`. If set, this value will restrict the set of versions that may be returned by the versioning scheme, and will raise an error if the provided version if not in this set. Note that the value used for the `DEFAULT_VERSION` setting is always considered to be part of the `ALLOWED_VERSIONS` set. Defaults to `None`.
* `VERSION_PARAMETER`. The string that should used for any versioning parameters, such as in the media type or URL query parameters. Defaults to `'version'`. * `VERSION_PARAM`. The string that should used for any versioning parameters, such as in the media type or URL query parameters. Defaults to `'version'`.
You can also set your versioning class plus those three values on a per-view or a per-viewset basis by defining your own versioning scheme and using the `default_version`, `allowed_versions` and `version_param` class variables. For example, if you want to use `URLPathVersioning`: You can also set your versioning class plus those three values on a per-view or a per-viewset basis by defining your own versioning scheme and using the `default_version`, `allowed_versions` and `version_param` class variables. For example, if you want to use `URLPathVersioning`:

BIN
docs/img/django-filter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
docs/img/horizontal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
docs/img/inline.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
docs/img/search-filter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

BIN
docs/img/vertical.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -12,9 +12,7 @@
--- ---
**Note**: This is the documentation for the **version 3.2** of REST framework. Documentation for [version 2.4](http://tomchristie.github.io/rest-framework-2-docs/) is also available. **Note**: This is the documentation for the **version 3** of REST framework. Documentation for [version 2](http://tomchristie.github.io/rest-framework-2-docs/) is also available.
For more details see the 3.2 [announcement][3.2-announcement] and [release notes][release-notes].
--- ---
@ -31,7 +29,7 @@ For more details see the 3.2 [announcement][3.2-announcement] and [release notes
<img alt="Django REST Framework" title="Logo by Jake 'Sid' Smith" src="img/logo.png" width="600px" style="display: block; margin: 0 auto 0 auto"> <img alt="Django REST Framework" title="Logo by Jake 'Sid' Smith" src="img/logo.png" width="600px" style="display: block; margin: 0 auto 0 auto">
</p> </p>
Django REST framework is a powerful and flexible toolkit that makes it easy to build Web APIs. Django REST framework is a powerful and flexible toolkit for building Web APIs.
Some reasons you might want to use REST framework: Some reasons you might want to use REST framework:
@ -52,13 +50,14 @@ Some reasons you might want to use REST framework:
REST framework requires the following: REST framework requires the following:
* Python (2.6.5+, 2.7, 3.2, 3.3, 3.4) * Python (2.7, 3.2, 3.3, 3.4, 3.5)
* Django (1.5.6+, 1.6.3+, 1.7+, 1.8) * Django (1.7+, 1.8, 1.9)
The following packages are optional: The following packages are optional:
* [Markdown][markdown] (2.1.0+) - Markdown support for the browsable API. * [Markdown][markdown] (2.1.0+) - Markdown support for the browsable API.
* [django-filter][django-filter] (0.9.2+) - Filtering support. * [django-filter][django-filter] (0.9.2+) - Filtering support.
* [django-crispy-forms][django-crispy-forms] - Improved HTML display for filtering.
* [django-guardian][django-guardian] (1.1.1+) - Object level permissions support. * [django-guardian][django-guardian] (1.1.1+) - Object level permissions support.
## Installation ## Installation
@ -191,7 +190,9 @@ The API guide is your complete reference manual to all the functionality provide
General guides to using REST framework. General guides to using REST framework.
* [Documenting your API][documenting-your-api] * [Documenting your API][documenting-your-api]
* [Internationalization][internationalization]
* [AJAX, CSRF & CORS][ajax-csrf-cors] * [AJAX, CSRF & CORS][ajax-csrf-cors]
* [HTML & Forms][html-and-forms]
* [Browser enhancements][browser-enhancements] * [Browser enhancements][browser-enhancements]
* [The Browsable API][browsableapi] * [The Browsable API][browsableapi]
* [REST, Hypermedia & HATEOAS][rest-hypermedia-hateoas] * [REST, Hypermedia & HATEOAS][rest-hypermedia-hateoas]
@ -201,6 +202,7 @@ General guides to using REST framework.
* [3.0 Announcement][3.0-announcement] * [3.0 Announcement][3.0-announcement]
* [3.1 Announcement][3.1-announcement] * [3.1 Announcement][3.1-announcement]
* [3.2 Announcement][3.2-announcement] * [3.2 Announcement][3.2-announcement]
* [3.3 Announcement][3.3-announcement]
* [Kickstarter Announcement][kickstarter-announcement] * [Kickstarter Announcement][kickstarter-announcement]
* [Funding][funding] * [Funding][funding]
* [Release Notes][release-notes] * [Release Notes][release-notes]
@ -304,8 +306,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
[settings]: api-guide/settings.md [settings]: api-guide/settings.md
[documenting-your-api]: topics/documenting-your-api.md [documenting-your-api]: topics/documenting-your-api.md
[internationalization]: topics/documenting-your-api.md [internationalization]: topics/internationalization.md
[ajax-csrf-cors]: topics/ajax-csrf-cors.md [ajax-csrf-cors]: topics/ajax-csrf-cors.md
[html-and-forms]: topics/html-and-forms.md
[browser-enhancements]: topics/browser-enhancements.md [browser-enhancements]: topics/browser-enhancements.md
[browsableapi]: topics/browsable-api.md [browsableapi]: topics/browsable-api.md
[rest-hypermedia-hateoas]: topics/rest-hypermedia-hateoas.md [rest-hypermedia-hateoas]: topics/rest-hypermedia-hateoas.md
@ -315,6 +318,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
[3.0-announcement]: topics/3.0-announcement.md [3.0-announcement]: topics/3.0-announcement.md
[3.1-announcement]: topics/3.1-announcement.md [3.1-announcement]: topics/3.1-announcement.md
[3.2-announcement]: topics/3.2-announcement.md [3.2-announcement]: topics/3.2-announcement.md
[3.3-announcement]: topics/3.3-announcement.md
[kickstarter-announcement]: topics/kickstarter-announcement.md [kickstarter-announcement]: topics/kickstarter-announcement.md
[funding]: topics/funding.md [funding]: topics/funding.md
[release-notes]: topics/release-notes.md [release-notes]: topics/release-notes.md

View File

@ -0,0 +1,58 @@
# Django REST framework 3.3
The 3.3 release marks the final work in the Kickstarter funded series. We'd like to offer a final resounding **thank you** to all our wonderful sponsors and supporters.
The amount of work that has been achieved as a direct result of the funding is immense. We've added a huge amounts of new functionality, resolved nearly 2,000 tickets, and redesigned & refined large parts of the project.
In order to continue driving REST framework forward, we're introducing [monthly paid plans](https://fund.django-rest-framework.org/topics/funding). These plans include various sponsorship rewards, and will ensure that the project remains sustainable and well supported.
We strongly believe that collaboratively funded software development yields outstanding results for a relatively low investment-per-head. If you or your company use REST framework commercially, then we would strongly urge you to participate in this latest funding drive, and help us continue to build an increasingly polished & professional product.
---
## Release notes
Significant new functionality in the 3.3 release includes:
* Filters presented as HTML controls in the browsable API.
* A [forms API][forms-api], allowing serializers to be rendered as HTML forms.
* Django 1.9 support.
* A [`JSONField` serializer field][jsonfield], corresponding to Django 1.9's Postgres `JSONField` model field.
* Browsable API support [via AJAX][ajax-form], rather than server side request overloading.
![Filter Controls](../img/filter-controls.png)
*Example of the new filter controls*
---
## Supported versions
This release drops support for Django 1.5 and 1.6. Django 1.7, 1.8 or 1.9 are now required.
This brings our supported versions into line with Django's [currently supported versions][django-supported-versions]
## Deprecations
The AJAX based support for the browsable API means that there are a number of internal cleanups in the `request` class. For the vast majority of developers this should largely remain transparent:
* To support form based `PUT` and `DELETE`, or to support form content types such as JSON, you should now use the [AJAX forms][ajax-forms] javascript library. This replaces the previous 'method and content type overloading' that required significant internal complexity to the request class.
* The `accept` query parameter is no longer supported by the default content negotiation class. If you require it then you'll need to [use a custom content negotiation class](browser-enhancements.md#url-based-accept-headers).
* The custom `HTTP_X_HTTP_METHOD_OVERRIDE` header is no longer supported by default. If you require it then you'll need to [use custom middleware](browser-enhancements.md#http-header-based-method-overriding).
The following pagination view attributes and settings have been moved into attributes on the pagination class since 3.1. Their usage was formerly deprecated, and has now been removed entirely, in line with the deprecation policy.
* `view.paginate_by` - Use `paginator.page_size` instead.
* `view.page_query_param` - Use `paginator.page_query_param` instead.
* `view.paginate_by_param` - Use `paginator.page_size_query_param` instead.
* `view.max_paginate_by` - Use `paginator.max_page_size` instead.
* `settings.PAGINATE_BY` - Use `paginator.page_size` instead.
* `settings.PAGINATE_BY_PARAM` - Use `paginator.page_size_query_param` instead.
* `settings.MAX_PAGINATE_BY` - Use `paginator.max_page_size` instead.
The `ModelSerializer` and `HyperlinkedModelSerializer` classes should now include either a `fields` or `exclude` option, although the `fields = '__all__'` shortcut may be used. Failing to include either of these two options is currently pending deprecation, and will be removed entirely in the 3.5 release. This behavior brings `ModelSerializer` more closely in line with Django's `ModelForm` behavior.
[forms-api]: html-and-forms.md
[ajax-form]: https://github.com/tomchristie/ajax-form
[jsonfield]: ../../api-guide/fields#jsonfield
[django-supported-versions]: https://www.djangoproject.com/download/#supported-versions

View File

@ -4,58 +4,36 @@
> >
> &mdash; [RESTful Web Services][cite], Leonard Richardson & Sam Ruby. > &mdash; [RESTful Web Services][cite], Leonard Richardson & Sam Ruby.
In order to allow the browsable API to function, there are a couple of browser enhancements that REST framework needs to provide.
As of version 3.3.0 onwards these are enabled with javascript, using the [ajax-form][ajax-form] library.
## Browser based PUT, DELETE, etc... ## Browser based PUT, DELETE, etc...
REST framework supports browser-based `PUT`, `DELETE` and other methods, by The [AJAX form library][ajax-form] supports browser-based `PUT`, `DELETE` and other methods on HTML forms.
overloading `POST` requests using a hidden form field.
Note that this is the same strategy as is used in [Ruby on Rails][rails]. After including the library, use the `data-method` attribute on the form, like so:
For example, given the following form: <form action="/" data-method="PUT">
<input name='foo'/>
<form action="/news-items/5" method="POST"> ...
<input type="hidden" name="_method" value="DELETE">
</form> </form>
`request.method` would return `"DELETE"`. Note that prior to 3.3.0, this support was server-side rather than javascript based. The method overloading style (as used in [Ruby on Rails][rails]) is no longer supported due to subtle issues that it introduces in request parsing.
## HTTP header based method overriding
REST framework also supports method overriding via the semi-standard `X-HTTP-Method-Override` header. This can be useful if you are working with non-form content such as JSON and are working with an older web server and/or hosting provider that doesn't recognise particular HTTP methods such as `PATCH`. For example [Amazon Web Services ELB][aws_elb].
To use it, make a `POST` request, setting the `X-HTTP-Method-Override` header.
For example, making a `PATCH` request via `POST` in jQuery:
$.ajax({
url: '/myresource/',
method: 'POST',
headers: {'X-HTTP-Method-Override': 'PATCH'},
...
});
## Browser based submission of non-form content ## Browser based submission of non-form content
Browser-based submission of content types other than form are supported by Browser-based submission of content types such as JSON are supported by the [AJAX form library][ajax-form], using form fields with `data-override='content-type'` and `data-override='content'` attributes.
using form fields named `_content` and `_content_type`:
For example, given the following form: For example:
<form action="/news-items/5" method="PUT"> <form action="/">
<input type="hidden" name="_content_type" value="application/json"> <input data-override='content-type' value='application/json' type='hidden'/>
<input name="_content" value="{'count': 1}"> <textarea data-override='content'>{}</textarea>
</form> <input type="submit"/>
</form>
`request.content_type` would return `"application/json"`, and Note that prior to 3.3.0, this support was server-side rather than javascript based.
`request.stream` would return `"{'count': 1}"`
## URL based accept headers
REST framework can take `?accept=application/json` style URL parameters,
which allow the `Accept` header to be overridden.
This can be useful for testing the API from a web browser, where you don't
have any control over what is sent in the `Accept` header.
## URL based format suffixes ## URL based format suffixes
@ -63,8 +41,37 @@ REST framework can take `?format=json` style URL parameters, which can be a
useful shortcut for determining which content type should be returned from useful shortcut for determining which content type should be returned from
the view. the view.
This is a more concise than using the `accept` override, but it also gives This behavior is controlled using the `URL_FORMAT_OVERRIDE` setting.
you less control. (For example you can't specify any media type parameters)
## HTTP header based method overriding
Prior to version 3.3.0 the semi extension header `X-HTTP-Method-Override` was supported for overriding the request method. This behavior is no longer in core, but can be adding if needed using middleware.
For example:
METHOD_OVERRIDE_HEADER = 'HTTP_X_HTTP_METHOD_OVERRIDE'
class MethodOverrideMiddleware(object):
def process_view(self, request, callback, callback_args, callback_kwargs):
if request.method != 'POST':
return
if METHOD_OVERRIDE_HEADER not in request.META:
return
request.method = request.META[METHOD_OVERRIDE_HEADER]
## URL based accept headers
Until version 3.3.0 REST framework included built-in support for `?accept=application/json` style URL parameters, which would allow the `Accept` header to be overridden.
Since the introduction of the content negotiation API this behavior is no longer included in core, but may be added using a custom content negotiation class, if needed.
For example:
class AcceptQueryParamOverride()
def get_accept_list(self, request):
header = request.META.get('HTTP_ACCEPT', '*/*')
header = request.query_params.get('_accept', header)
return [token.strip() for token in header.split(',')]
## Doesn't HTML5 support PUT and DELETE forms? ## Doesn't HTML5 support PUT and DELETE forms?
@ -74,7 +81,7 @@ was later [dropped from the spec][html5]. There remains
as well as how to support content types other than form-encoded data. as well as how to support content types other than form-encoded data.
[cite]: http://www.amazon.com/Restful-Web-Services-Leonard-Richardson/dp/0596529260 [cite]: http://www.amazon.com/Restful-Web-Services-Leonard-Richardson/dp/0596529260
[ajax-form]: https://github.com/tomchristie/ajax-form
[rails]: http://guides.rubyonrails.org/form_helpers.html#how-do-forms-with-put-or-delete-methods-work [rails]: http://guides.rubyonrails.org/form_helpers.html#how-do-forms-with-put-or-delete-methods-work
[html5]: http://www.w3.org/TR/html5-diff/#changes-2010-06-24 [html5]: http://www.w3.org/TR/html5-diff/#changes-2010-06-24
[put_delete]: http://amundsen.com/examples/put-delete-forms/ [put_delete]: http://amundsen.com/examples/put-delete-forms/
[aws_elb]: https://forums.aws.amazon.com/thread.jspa?messageID=400724

View File

@ -0,0 +1,214 @@
# HTML & Forms
REST framework is suitable for returning both API style responses, and regular HTML pages. Additionally, serializers can used as HTML forms and rendered in templates.
## Rendering HTML
In order to return HTML responses you'll need to either `TemplateHTMLRenderer`, or `StaticHTMLRenderer`.
The `TemplateHTMLRenderer` class expects the response to contain a dictionary of context data, and renders an HTML page based on a template that must be specified either in the view or on the response.
The `StaticHTMLRender` class expects the response to contain a string of the pre-rendered HTML content.
Because static HTML pages typically have different behavior from API responses you'll probably need to write any HTML views explicitly, rather than relying on the built-in generic views.
Here's an example of a view that returns a list of "Profile" instances, rendered in an HTML template:
**views.py**:
from my_project.example.models import Profile
from rest_framework.renderers import TemplateHTMLRenderer
from rest_framework.views import APIView
class ProfileList(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'profile_list.html'
def get(self, request):
queryset = Profile.objects.all()
return Response({'profiles': queryset})
**profile_list.html**:
<html><body>
<h1>Profiles</h1>
<ul>
{% for profile in profiles %}
<li>{{ profile.name }}</li>
{% endfor %}
</ul>
</body></html>
## Rendering Forms
Serializers may be rendered as forms by using the `render_form` template tag, and including the serializer instance as context to the template.
The following view demonstrates an example of using a serializer in a template for viewing and updating a model instance:
**views.py**:
from django.shortcuts import get_object_or_404
from my_project.example.models import Profile
from rest_framework.renderers import TemplateHTMLRenderer
from rest_framework.views import APIView
class ProfileDetail(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'profile_detail.html'
def get(self, request, pk):
profile = get_object_or_404(Profile, pk=pk)
serializer = ProfileSerializer(profile)
return Response({'serializer': serializer, 'profile': profile})
def post(self, request, pk):
profile = get_object_or_404(Profile, pk=pk)
serializer = ProfileSerializer(profile)
if not serializer.is_valid():
return Response({'serializer': serializer, 'profile': profile}) return redirect('profile-list')
**profile_detail.html**:
{% load rest_framework %}
<html><body>
<h1>Profile - {{ profile.name }}</h1>
<form action="{% url 'profile-detail' pk=profile.pk '%}" method="POST">
{% csrf_token %}
{% render_form serializer %}
<input type="submit" value="Save">
</form>
</body></html>
### Using template packs
The `render_form` tag takes an optional `template_pack` argument, that specifies which template directory should be used for rendering the form and form fields.
REST framework includes three built-in template packs, all based on Bootstrap 3. The built-in styles are `horizontal`, `vertical`, and `inline`. The default style is `horizontal`. To use any of these template packs you'll want to also include the Bootstrap 3 CSS.
The following HTML will link to a CDN hosted version of the Bootstrap 3 CSS:
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
Third party packages may include alternate template packs, by bundling a template directory containing the necessary form and field templates.
Let's take a look at how to render each of the three available template packs. For these examples we'll use a single serializer class to present a "Login" form.
class LoginSerializer(serializers.Serializer):
email = serializers.EmailField(
max_length=100,
style={'placeholder': 'Email'}
)
password = serializers.CharField(
max_length=100,
style={'input_type': 'password', 'placeholder': 'Password'}
)
remember_me = serializers.BooleanField() ---
#### `rest_framework/vertical`
Presents form labels above their corresponding control inputs, using the standard Bootstrap layout.
*This is the default template pack.*
{% load rest_framework %}
...
<form action="{% url 'login' %}" method="post" novalidate>
{% csrf_token %}
{% render_form serializer template_pack='rest_framework/vertical' %}
<button type="submit" class="btn btn-default">Sign in</button>
</form>
![Vertical form example](../img/vertical.png)
---
#### `rest_framework/horizontal`
Presents labels and controls alongside each other, using a 2/10 column split.
*This is the form style used in the browsable API and admin renderers.*
{% load rest_framework %}
...
<form class="form-horizontal" action="{% url 'login' %}" method="post" novalidate>
{% csrf_token %}
{% render_form serializer %}
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Sign in</button>
</div>
</div>
</form>
![Horizontal form example](../img/horizontal.png)
---
#### `rest_framework/inline`
A compact form style that presents all the controls inline.
{% load rest_framework %}
...
<form class="form-inline" action="{% url 'login' %}" method="post" novalidate>
{% csrf_token %}
{% render_form serializer template_pack='rest_framework/inline' %}
<button type="submit" class="btn btn-default">Sign in</button>
</form>
![Inline form example](../img/inline.png)
## Field styles
Serializer fields can have their rendering style customized by using the `style` keyword argument. This argument is a dictionary of options that control the template and layout used.
The most common way to customize the field style is to use the `base_template` style keyword argument to select which template in the template pack should be use.
For example, to render a `CharField` as an HTML textarea rather than the default HTML input, you would use something like this:
details = serializers.CharField(
max_length=1000,
style={'base_template': 'textarea.html'}
)
If you instead want a field to be rendered using a custom template that is *not part of an included template pack*, you can instead use the `template` style option, to fully specify a template name:
details = serializers.CharField(
max_length=1000,
style={'template': 'my-field-templates/custom-input.html'}
)
Field templates can also use additional style properties, depending on their type. For example, the `textarea.html` template also accepts a `rows` property that can be used to affect the sizing of the control.
details = serializers.CharField(
max_length=1000,
style={'base_template': 'textarea.html', 'rows': 10}
)
The complete list of `base_template` options and their associated style options is listed below.
base_template | Valid field types | Additional style options
----|----|----
input.html | Any string, numeric or date/time field | input_type, placeholder, hide_label
textarea.html | `CharField` | rows, placeholder, hide_label
select.html | `ChoiceField` or relational field types | hide_label
radio.html | `ChoiceField` or relational field types | inline, hide_label
select_multiple.html | `MultipleChoiceField` or relational fields with `many=True` | hide_label
checkbox_multiple.html | `MultipleChoiceField` or relational fields with `many=True` | inline, hide_label
checkbox.html | `BooleanField` | hide_label
fieldset.html | Nested serializer | hide_label
list_fieldset.html | `ListField` or nested serializer with `many=True` | hide_label

View File

@ -38,8 +38,48 @@ You can determine your currently installed version using `pip freeze`:
--- ---
## 3.3.x series
### 3.3.0
**Date**: [27th October 2015][3.3.0-milestone]
* HTML controls for filters. ([#3315][gh3315])
* Forms API. ([#3475][gh3475])
* AJAX browsable API. ([#3410][gh3410])
* Added JSONField. ([#3454][gh3454])
* Correctly map `to_field` when creating `ModelSerializer` relational fields. ([#3526][gh3526])
* Include keyword arguments when mapping `FilePathField` to a serializer field. ([#3536][gh3536])
* Map appropriate model `error_messages` on `ModelSerializer` uniqueness constraints. ([#3435][gh3435])
* Include `max_length` constraint for `ModelSerializer` fields mapped from TextField. ([#3509][gh3509])
* Added support for Django 1.9. ([#3450][gh3450], [#3525][gh3525])
* Removed support for Django 1.5 & 1.6. ([#3421][gh3421], [#3429][gh3429])
* Removed 'south' migrations. ([#3495][gh3495])
## 3.2.x series ## 3.2.x series
### 3.2.4
**Date**: [21th September 2015][3.2.4-milestone].
* Don't error on missing `ViewSet.search_fields` attribute.([#3324][gh3324], [#3323][gh3323])
* Fix `allow_empty` not working on serializers with `many=True`. ([#3361][gh3361], [#3364][gh3364])
* Let `DurationField` accepts integers. ([#3359][gh3359])
* Multi-level dictionaries not supported in multipart requests. ([#3314][gh3314])
* Fix `ListField` truncation on HTTP PATCH ([#3415][gh3415], [#2761][gh2761])
### 3.2.3
**Date**: [24th August 2015][3.2.3-milestone].
* Added `html_cutoff` and `html_cutoff_text` for limiting select dropdowns. ([#3313][gh3313])
* Added regex style to `SearchFilter`. ([#3316][gh3316])
* Resolve issues with setting blank HTML fields. ([#3318][gh3318]) ([#3321][gh3321])
* Correctly display existing 'select multiple' values in browsable API forms. ([#3290][gh3290])
* Resolve duplicated validation message for `IPAddressField`. ([#3249[gh3249]) ([#3250][gh3250])
* Fix to ensure admin renderer continues to work when pagination is disabled. ([#3275][gh3275])
* Resolve error with `LimitOffsetPagination` when count=0, offset=0. ([#3303][gh3303])
### 3.2.2 ### 3.2.2
**Date**: [13th August 2015][3.2.2-milestone]. **Date**: [13th August 2015][3.2.2-milestone].
@ -285,7 +325,9 @@ For older release notes, [please see the version 2.x documentation][old-release-
[3.1.3-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.1.3+Release%22 [3.1.3-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.1.3+Release%22
[3.2.0-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.0+Release%22 [3.2.0-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.0+Release%22
[3.2.1-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.1+Release%22 [3.2.1-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.1+Release%22
[3.2.2-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.1+Release%22 [3.2.2-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.2+Release%22
[3.2.3-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.3+Release%22
[3.2.4-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.4+Release%22
<!-- 3.0.1 --> <!-- 3.0.1 -->
[gh2013]: https://github.com/tomchristie/django-rest-framework/issues/2013 [gh2013]: https://github.com/tomchristie/django-rest-framework/issues/2013
@ -486,4 +528,42 @@ For older release notes, [please see the version 2.x documentation][old-release-
[gh2776]: https://github.com/tomchristie/django-rest-framework/issues/2776 [gh2776]: https://github.com/tomchristie/django-rest-framework/issues/2776
[gh3261]: https://github.com/tomchristie/django-rest-framework/issues/3261 [gh3261]: https://github.com/tomchristie/django-rest-framework/issues/3261
[gh3260]: https://github.com/tomchristie/django-rest-framework/issues/3260 [gh3260]: https://github.com/tomchristie/django-rest-framework/issues/3260
[gh3241]: https://github.com/tomchristie/django-rest-framework/issues/3241 [gh3241]: https://github.com/tomchristie/django-rest-framework/issues/3241
<!-- 3.2.3 -->
[gh3249]: https://github.com/tomchristie/django-rest-framework/issues/3249
[gh3250]: https://github.com/tomchristie/django-rest-framework/issues/3250
[gh3275]: https://github.com/tomchristie/django-rest-framework/issues/3275
[gh3288]: https://github.com/tomchristie/django-rest-framework/issues/3288
[gh3290]: https://github.com/tomchristie/django-rest-framework/issues/3290
[gh3303]: https://github.com/tomchristie/django-rest-framework/issues/3303
[gh3313]: https://github.com/tomchristie/django-rest-framework/issues/3313
[gh3316]: https://github.com/tomchristie/django-rest-framework/issues/3316
[gh3318]: https://github.com/tomchristie/django-rest-framework/issues/3318
[gh3321]: https://github.com/tomchristie/django-rest-framework/issues/3321
<!-- 3.2.4 -->
[gh2761]: https://github.com/tomchristie/django-rest-framework/issues/2761
[gh3314]: https://github.com/tomchristie/django-rest-framework/issues/3314
[gh3323]: https://github.com/tomchristie/django-rest-framework/issues/3323
[gh3324]: https://github.com/tomchristie/django-rest-framework/issues/3324
[gh3359]: https://github.com/tomchristie/django-rest-framework/issues/3359
[gh3361]: https://github.com/tomchristie/django-rest-framework/issues/3361
[gh3364]: https://github.com/tomchristie/django-rest-framework/issues/3364
[gh3415]: https://github.com/tomchristie/django-rest-framework/issues/3415
<!-- 3.3.0 -->
[gh3315]: https://github.com/tomchristie/django-rest-framework/issues/3315
[gh3410]: https://github.com/tomchristie/django-rest-framework/issues/3410
[gh3435]: https://github.com/tomchristie/django-rest-framework/issues/3435
[gh3450]: https://github.com/tomchristie/django-rest-framework/issues/3450
[gh3454]: https://github.com/tomchristie/django-rest-framework/issues/3454
[gh3475]: https://github.com/tomchristie/django-rest-framework/issues/3475
[gh3495]: https://github.com/tomchristie/django-rest-framework/issues/3495
[gh3509]: https://github.com/tomchristie/django-rest-framework/issues/3509
[gh3421]: https://github.com/tomchristie/django-rest-framework/issues/3421
[gh3525]: https://github.com/tomchristie/django-rest-framework/issues/3525
[gh3526]: https://github.com/tomchristie/django-rest-framework/issues/3526
[gh3429]: https://github.com/tomchristie/django-rest-framework/issues/3429
[gh3536]: https://github.com/tomchristie/django-rest-framework/issues/3536

View File

@ -233,9 +233,11 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque
### Filtering ### Filtering
* [djangorestframework-chain][djangorestframework-chain] - Allows arbitrary chaining of both relations and lookup filters. * [djangorestframework-chain][djangorestframework-chain] - Allows arbitrary chaining of both relations and lookup filters.
* [django-url-filter][django-url-filter] - Allows a safe way to filter data via human-friendly URLs. It is a generic library which is not tied to DRF but it provides easy integration with DRF.
### Misc ### Misc
* [cookiecutter-django-rest][cookiecutter-django-rest] - A cookiecutter template that takes care of the setup and configuration so you can focus on making your REST apis awesome.
* [djangorestrelationalhyperlink][djangorestrelationalhyperlink] - A hyperlinked serialiser that can can be used to alter relationships via hyperlinks, but otherwise like a hyperlink model serializer. * [djangorestrelationalhyperlink][djangorestrelationalhyperlink] - A hyperlinked serialiser that can can be used to alter relationships via hyperlinks, but otherwise like a hyperlink model serializer.
* [django-rest-swagger][django-rest-swagger] - An API documentation generator for Swagger UI. * [django-rest-swagger][django-rest-swagger] - An API documentation generator for Swagger UI.
* [django-rest-framework-proxy][django-rest-framework-proxy] - Proxy to redirect incoming request to another API server. * [django-rest-framework-proxy][django-rest-framework-proxy] - Proxy to redirect incoming request to another API server.
@ -245,6 +247,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque
* [django-versatileimagefield][django-versatileimagefield] - Provides a drop-in replacement for Django's stock `ImageField` that makes it easy to serve images in multiple sizes/renditions from a single field. For DRF-specific implementation docs, [click here][django-versatileimagefield-drf-docs]. * [django-versatileimagefield][django-versatileimagefield] - Provides a drop-in replacement for Django's stock `ImageField` that makes it easy to serve images in multiple sizes/renditions from a single field. For DRF-specific implementation docs, [click here][django-versatileimagefield-drf-docs].
* [drf-tracking][drf-tracking] - Utilities to track requests to DRF API views. * [drf-tracking][drf-tracking] - Utilities to track requests to DRF API views.
* [django-rest-framework-braces][django-rest-framework-braces] - Collection of utilities for working with Django Rest Framework. The most notable ones are [FormSerializer](https://django-rest-framework-braces.readthedocs.org/en/latest/overview.html#formserializer) and [SerializerForm](https://django-rest-framework-braces.readthedocs.org/en/latest/overview.html#serializerform), which are adapters between DRF serializers and Django forms. * [django-rest-framework-braces][django-rest-framework-braces] - Collection of utilities for working with Django Rest Framework. The most notable ones are [FormSerializer](https://django-rest-framework-braces.readthedocs.org/en/latest/overview.html#formserializer) and [SerializerForm](https://django-rest-framework-braces.readthedocs.org/en/latest/overview.html#serializerform), which are adapters between DRF serializers and Django forms.
* [drf-haystack][drf-haystack] - Haystack search for Django Rest Framework
## Other Resources ## Other Resources
@ -343,3 +346,6 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque
[drf-tracking]: https://github.com/aschn/drf-tracking [drf-tracking]: https://github.com/aschn/drf-tracking
[django-rest-framework-braces]: https://github.com/dealertrack/django-rest-framework-braces [django-rest-framework-braces]: https://github.com/dealertrack/django-rest-framework-braces
[dry-rest-permissions]: https://github.com/Helioscene/dry-rest-permissions [dry-rest-permissions]: https://github.com/Helioscene/dry-rest-permissions
[django-url-filter]: https://github.com/miki725/django-url-filter
[cookiecutter-django-rest]: https://github.com/agconti/cookiecutter-django-rest
[drf-haystack]: http://drf-haystack.readthedocs.org/en/latest/

View File

@ -181,7 +181,7 @@ We can also serialize querysets instead of model instances. To do so we simply
serializer = SnippetSerializer(Snippet.objects.all(), many=True) serializer = SnippetSerializer(Snippet.objects.all(), many=True)
serializer.data serializer.data
# [{'pk': 1, 'title': u'', 'code': u'foo = "bar"\n', 'linenos': False, 'language': u'python', 'style': u'friendly'}, {'pk': 2, 'title': u'', 'code': u'print "hello, world"\n', 'linenos': False, 'language': u'python', 'style': u'friendly'}] # [OrderedDict([('pk', 1), ('title', u''), ('code', u'foo = "bar"\n'), ('linenos', False), ('language', 'python'), ('style', 'friendly')]), OrderedDict([('pk', 2), ('title', u''), ('code', u'print "hello, world"\n'), ('linenos', False), ('language', 'python'), ('style', 'friendly')]), OrderedDict([('pk', 3), ('title', u''), ('code', u'print "hello, world"'), ('linenos', False), ('language', 'python'), ('style', 'friendly')])]
## Using ModelSerializers ## Using ModelSerializers

View File

@ -45,7 +45,7 @@ Next we're going to replace the `SnippetList`, `SnippetDetail` and `SnippetHighl
return Response(snippet.highlighted) return Response(snippet.highlighted)
def perform_create(self, serializer): def perform_create(self, serializer):
serializer.save(owner=self.request.user) serializer.save(owner=self.request.user)
This time we've used the `ModelViewSet` class in order to get the complete set of default read and write operations. This time we've used the `ModelViewSet` class in order to get the complete set of default read and write operations.

View File

@ -136,7 +136,7 @@
</div> <!--/.wrapper --> </div> <!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.
</p> </p>
</footer> </footer>

View File

@ -47,6 +47,7 @@ pages:
- 'Documenting your API': 'topics/documenting-your-api.md' - 'Documenting your API': 'topics/documenting-your-api.md'
- 'Internationalization': 'topics/internationalization.md' - 'Internationalization': 'topics/internationalization.md'
- 'AJAX, CSRF & CORS': 'topics/ajax-csrf-cors.md' - 'AJAX, CSRF & CORS': 'topics/ajax-csrf-cors.md'
- 'HTML & Forms': 'topics/html-and-forms.md'
- 'Browser Enhancements': 'topics/browser-enhancements.md' - 'Browser Enhancements': 'topics/browser-enhancements.md'
- 'The Browsable API': 'topics/browsable-api.md' - 'The Browsable API': 'topics/browsable-api.md'
- 'REST, Hypermedia & HATEOAS': 'topics/rest-hypermedia-hateoas.md' - 'REST, Hypermedia & HATEOAS': 'topics/rest-hypermedia-hateoas.md'
@ -56,6 +57,7 @@ pages:
- '3.0 Announcement': 'topics/3.0-announcement.md' - '3.0 Announcement': 'topics/3.0-announcement.md'
- '3.1 Announcement': 'topics/3.1-announcement.md' - '3.1 Announcement': 'topics/3.1-announcement.md'
- '3.2 Announcement': 'topics/3.2-announcement.md' - '3.2 Announcement': 'topics/3.2-announcement.md'
- '3.3 Announcement': 'topics/3.3-announcement.md'
- 'Kickstarter Announcement': 'topics/kickstarter-announcement.md' - 'Kickstarter Announcement': 'topics/kickstarter-announcement.md'
- 'Funding': 'topics/funding.md' - 'Funding': 'topics/funding.md'
- 'Release Notes': 'topics/release-notes.md' - 'Release Notes': 'topics/release-notes.md'

View File

@ -1,10 +1,10 @@
# The base set of requirements for REST framework is actually # The base set of requirements for REST framework is actually
# just Django, but for the purposes of development and testing # just Django, but for the purposes of development and testing
# there are a number of packages that it is useful to install. # there are a number of packages that are useful to install.
# Laying these out as seperate requirements files, allows us to # Laying these out as seperate requirements files, allows us to
# only included the relevent sets when running tox, and ensures # only included the relevent sets when running tox, and ensures
# we are only ever declaring out dependancies in one place. # we are only ever declaring our dependencies in one place.
-r requirements/requirements-optionals.txt -r requirements/requirements-optionals.txt
-r requirements/requirements-testing.txt -r requirements/requirements-testing.txt

View File

@ -5,4 +5,4 @@ wheel==0.24.0
twine==1.4.0 twine==1.4.0
# Transifex client for managing translation resources. # Transifex client for managing translation resources.
transifex-client==0.10 transifex-client==0.11b3

View File

@ -8,7 +8,7 @@ ______ _____ _____ _____ __
""" """
__title__ = 'Django REST framework' __title__ = 'Django REST framework'
__version__ = '3.2.2' __version__ = '3.2.4'
__author__ = 'Tom Christie' __author__ = 'Tom Christie'
__license__ = 'BSD 2-Clause' __license__ = 'BSD 2-Clause'
__copyright__ = 'Copyright 2011-2015 Tom Christie' __copyright__ = 'Copyright 2011-2015 Tom Christie'

View File

@ -1,7 +1,7 @@
from django.contrib.auth import authenticate from django.contrib.auth import authenticate
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from rest_framework import exceptions, serializers from rest_framework import serializers
class AuthTokenSerializer(serializers.Serializer): class AuthTokenSerializer(serializers.Serializer):
@ -18,13 +18,13 @@ class AuthTokenSerializer(serializers.Serializer):
if user: if user:
if not user.is_active: if not user.is_active:
msg = _('User account is disabled.') msg = _('User account is disabled.')
raise exceptions.ValidationError(msg) raise serializers.ValidationError(msg)
else: else:
msg = _('Unable to log in with provided credentials.') msg = _('Unable to log in with provided credentials.')
raise exceptions.ValidationError(msg) raise serializers.ValidationError(msg)
else: else:
msg = _('Must include "username" and "password".') msg = _('Must include "username" and "password".')
raise exceptions.ValidationError(msg) raise serializers.ValidationError(msg)
attrs['user'] = user attrs['user'] = user
return attrs return attrs

View File

@ -1,60 +0,0 @@
# -*- coding: utf-8 -*-
from south.db import db
from south.v2 import SchemaMigration
try:
from django.contrib.auth import get_user_model
except ImportError: # django < 1.5
from django.contrib.auth.models import User
else:
User = get_user_model()
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding model 'Token'
db.create_table('authtoken_token', (
('key', self.gf('django.db.models.fields.CharField')(max_length=40, primary_key=True)),
('user', self.gf('django.db.models.fields.related.OneToOneField')(related_name='auth_token', unique=True, to=orm['%s.%s' % (User._meta.app_label, User._meta.object_name)])),
('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
))
db.send_create_signal('authtoken', ['Token'])
def backwards(self, orm):
# Deleting model 'Token'
db.delete_table('authtoken_token')
models = {
'auth.group': {
'Meta': {'object_name': 'Group'},
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
'auth.permission': {
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
"%s.%s" % (User._meta.app_label, User._meta.module_name): {
'Meta': {'object_name': User._meta.module_name, 'db_table': repr(User._meta.db_table)},
},
'authtoken.token': {
'Meta': {'object_name': 'Token'},
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'primary_key': 'True'}),
'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'auth_token'", 'unique': 'True', 'to': "orm['%s.%s']" % (User._meta.app_label, User._meta.object_name)})
},
'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
}
}
complete_apps = ['authtoken']

View File

@ -50,14 +50,11 @@ def total_seconds(timedelta):
return (timedelta.days * 86400.0) + float(timedelta.seconds) + (timedelta.microseconds / 1000000.0) return (timedelta.days * 86400.0) + float(timedelta.seconds) + (timedelta.microseconds / 1000000.0)
# OrderedDict only available in Python 2.7. def distinct(queryset, base):
# This will always be the case in Django 1.7 and above, as these versions if settings.DATABASES[queryset.db]["ENGINE"] == "django.db.backends.oracle":
# no longer support Python 2.6. # distinct analogue for Oracle users
# For Django <= 1.6 and Python 2.6 fall back to SortedDict. return base.filter(pk__in=set(queryset.values_list('pk', flat=True)))
try: return queryset.distinct()
from collections import OrderedDict
except ImportError:
from django.utils.datastructures import SortedDict as OrderedDict
# contrib.postgres only supported from 1.8 onwards. # contrib.postgres only supported from 1.8 onwards.
@ -67,12 +64,27 @@ except ImportError:
postgres_fields = None postgres_fields = None
# JSONField is only supported from 1.9 onwards
try:
from django.contrib.postgres.fields import JSONField
except ImportError:
JSONField = None
# django-filter is optional # django-filter is optional
try: try:
import django_filters import django_filters
except ImportError: except ImportError:
django_filters = None django_filters = None
# django-crispy-forms is optional
try:
import crispy_forms
except ImportError:
crispy_forms = None
if django.VERSION >= (1, 6): if django.VERSION >= (1, 6):
def clean_manytomany_helptext(text): def clean_manytomany_helptext(text):
return text return text
@ -84,23 +96,16 @@ else:
text = text[:-69] text = text[:-69]
return text return text
# Django-guardian is optional. Import only if guardian is in INSTALLED_APPS # Django-guardian is optional. Import only if guardian is in INSTALLED_APPS
# Fixes (#1712). We keep the try/except for the test suite. # Fixes (#1712). We keep the try/except for the test suite.
guardian = None guardian = None
if 'guardian' in settings.INSTALLED_APPS: try:
try: if 'guardian' in settings.INSTALLED_APPS:
import guardian import guardian
import guardian.shortcuts # Fixes #1624 import guardian.shortcuts # Fixes #1624
except ImportError: except ImportError:
pass pass
def get_model_name(model_cls):
try:
return model_cls._meta.model_name
except AttributeError:
# < 1.6 used module_name instead of model_name
return model_cls._meta.module_name
# MinValueValidator, MaxValueValidator et al. only accept `message` in 1.8+ # MinValueValidator, MaxValueValidator et al. only accept `message` in 1.8+
@ -138,32 +143,6 @@ else:
super(MaxLengthValidator, self).__init__(*args, **kwargs) super(MaxLengthValidator, self).__init__(*args, **kwargs)
# URLValidator only accepts `message` in 1.6+
if django.VERSION >= (1, 6):
from django.core.validators import URLValidator
else:
from django.core.validators import URLValidator as DjangoURLValidator
class URLValidator(DjangoURLValidator):
def __init__(self, *args, **kwargs):
self.message = kwargs.pop('message', self.message)
super(URLValidator, self).__init__(*args, **kwargs)
# EmailValidator requires explicit regex prior to 1.6+
if django.VERSION >= (1, 6):
from django.core.validators import EmailValidator
else:
from django.core.validators import EmailValidator as DjangoEmailValidator
from django.core.validators import email_re
class EmailValidator(DjangoEmailValidator):
def __init__(self, *args, **kwargs):
super(EmailValidator, self).__init__(email_re, *args, **kwargs)
# PATCH method is not implemented by Django # PATCH method is not implemented by Django
if 'patch' not in View.http_method_names: if 'patch' not in View.http_method_names:
View.http_method_names = View.http_method_names + ['patch'] View.http_method_names = View.http_method_names + ['patch']

View File

@ -30,10 +30,10 @@ def _force_text_recursive(data):
return ReturnList(ret, serializer=data.serializer) return ReturnList(ret, serializer=data.serializer)
return data return data
elif isinstance(data, dict): elif isinstance(data, dict):
ret = dict([ ret = {
(key, _force_text_recursive(value)) key: _force_text_recursive(value)
for key, value in data.items() for key, value in data.items()
]) }
if isinstance(data, ReturnDict): if isinstance(data, ReturnDict):
return ReturnDict(ret, serializer=data.serializer) return ReturnDict(ret, serializer=data.serializer)
return data return data

View File

@ -5,26 +5,31 @@ import copy
import datetime import datetime
import decimal import decimal
import inspect import inspect
import json
import re import re
import uuid import uuid
from collections import OrderedDict
from django.conf import settings from django.conf import settings
from django.core.exceptions import ValidationError as DjangoValidationError from django.core.exceptions import ValidationError as DjangoValidationError
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.core.validators import RegexValidator, ip_address_validators from django.core.validators import (
EmailValidator, RegexValidator, URLValidator, ip_address_validators
)
from django.forms import FilePathField as DjangoFilePathField from django.forms import FilePathField as DjangoFilePathField
from django.forms import ImageField as DjangoImageField from django.forms import ImageField as DjangoImageField
from django.utils import six, timezone from django.utils import six, timezone
from django.utils.dateparse import parse_date, parse_datetime, parse_time from django.utils.dateparse import parse_date, parse_datetime, parse_time
from django.utils.encoding import is_protected_type, smart_text from django.utils.encoding import is_protected_type, smart_text
from django.utils.functional import cached_property
from django.utils.ipv6 import clean_ipv6_address from django.utils.ipv6 import clean_ipv6_address
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from rest_framework import ISO_8601 from rest_framework import ISO_8601
from rest_framework.compat import ( from rest_framework.compat import (
EmailValidator, MaxLengthValidator, MaxValueValidator, MinLengthValidator, MaxLengthValidator, MaxValueValidator, MinLengthValidator,
MinValueValidator, OrderedDict, URLValidator, duration_string, MinValueValidator, duration_string, parse_duration, unicode_repr,
parse_duration, unicode_repr, unicode_to_repr unicode_to_repr
) )
from rest_framework.exceptions import ValidationError from rest_framework.exceptions import ValidationError
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
@ -155,7 +160,7 @@ def flatten_choices_dict(choices):
return ret return ret
def iter_options(grouped_choices): def iter_options(grouped_choices, cutoff=None, cutoff_text=None):
""" """
Helper function for options and option groups in templates. Helper function for options and option groups in templates.
""" """
@ -174,18 +179,32 @@ def iter_options(grouped_choices):
start_option_group = False start_option_group = False
end_option_group = False end_option_group = False
def __init__(self, value, display_text): def __init__(self, value, display_text, disabled=False):
self.value = value self.value = value
self.display_text = display_text self.display_text = display_text
self.disabled = disabled
count = 0
for key, value in grouped_choices.items(): for key, value in grouped_choices.items():
if cutoff and count >= cutoff:
break
if isinstance(value, dict): if isinstance(value, dict):
yield StartOptionGroup(label=key) yield StartOptionGroup(label=key)
for sub_key, sub_value in value.items(): for sub_key, sub_value in value.items():
if cutoff and count >= cutoff:
break
yield Option(value=sub_key, display_text=sub_value) yield Option(value=sub_key, display_text=sub_value)
count += 1
yield EndOptionGroup() yield EndOptionGroup()
else: else:
yield Option(value=key, display_text=value) yield Option(value=key, display_text=value)
count += 1
if cutoff and count >= cutoff and cutoff_text:
cutoff_text = cutoff_text.format(count=cutoff)
yield Option(value='n/a', display_text=cutoff_text, disabled=True)
class CreateOnlyDefault(object): class CreateOnlyDefault(object):
@ -370,8 +389,10 @@ class Field(object):
# If the field is blank, and null is a valid value then # If the field is blank, and null is a valid value then
# determine if we should use null instead. # determine if we should use null instead.
return '' if getattr(self, 'allow_blank', False) else None return '' if getattr(self, 'allow_blank', False) else None
elif ret == '' and self.default: elif ret == '' and not self.required:
return empty # If the field is blank, and emptyness is valid then
# determine if we should use emptyness instead.
return '' if getattr(self, 'allow_blank', False) else empty
return ret return ret
return dictionary.get(self.field_name, empty) return dictionary.get(self.field_name, empty)
@ -522,7 +543,7 @@ class Field(object):
message_string = msg.format(**kwargs) message_string = msg.format(**kwargs)
raise ValidationError(message_string) raise ValidationError(message_string)
@property @cached_property
def root(self): def root(self):
""" """
Returns the top-level serializer for this field. Returns the top-level serializer for this field.
@ -532,7 +553,7 @@ class Field(object):
root = root.parent root = root.parent
return root return root
@property @cached_property
def context(self): def context(self):
""" """
Returns the context as passed to the root serializer on initialization. Returns the context as passed to the root serializer on initialization.
@ -583,18 +604,21 @@ class BooleanField(Field):
} }
default_empty_html = False default_empty_html = False
initial = False initial = False
TRUE_VALUES = set(('t', 'T', 'true', 'True', 'TRUE', '1', 1, True)) TRUE_VALUES = {'t', 'T', 'true', 'True', 'TRUE', '1', 1, True}
FALSE_VALUES = set(('f', 'F', 'false', 'False', 'FALSE', '0', 0, 0.0, False)) FALSE_VALUES = {'f', 'F', 'false', 'False', 'FALSE', '0', 0, 0.0, False}
def __init__(self, **kwargs): def __init__(self, **kwargs):
assert 'allow_null' not in kwargs, '`allow_null` is not a valid option. Use `NullBooleanField` instead.' assert 'allow_null' not in kwargs, '`allow_null` is not a valid option. Use `NullBooleanField` instead.'
super(BooleanField, self).__init__(**kwargs) super(BooleanField, self).__init__(**kwargs)
def to_internal_value(self, data): def to_internal_value(self, data):
if data in self.TRUE_VALUES: try:
return True if data in self.TRUE_VALUES:
elif data in self.FALSE_VALUES: return True
return False elif data in self.FALSE_VALUES:
return False
except TypeError: # Input is an unhashable type
pass
self.fail('invalid', input=data) self.fail('invalid', input=data)
def to_representation(self, value): def to_representation(self, value):
@ -610,9 +634,9 @@ class NullBooleanField(Field):
'invalid': _('"{input}" is not a valid boolean.') 'invalid': _('"{input}" is not a valid boolean.')
} }
initial = None initial = None
TRUE_VALUES = set(('t', 'T', 'true', 'True', 'TRUE', '1', 1, True)) TRUE_VALUES = {'t', 'T', 'true', 'True', 'TRUE', '1', 1, True}
FALSE_VALUES = set(('f', 'F', 'false', 'False', 'FALSE', '0', 0, 0.0, False)) FALSE_VALUES = {'f', 'F', 'false', 'False', 'FALSE', '0', 0, 0.0, False}
NULL_VALUES = set(('n', 'N', 'null', 'Null', 'NULL', '', None)) NULL_VALUES = {'n', 'N', 'null', 'Null', 'NULL', '', None}
def __init__(self, **kwargs): def __init__(self, **kwargs):
assert 'allow_null' not in kwargs, '`allow_null` is not a valid option.' assert 'allow_null' not in kwargs, '`allow_null` is not a valid option.'
@ -865,12 +889,11 @@ class DecimalField(Field):
} }
MAX_STRING_LENGTH = 1000 # Guard against malicious string inputs. MAX_STRING_LENGTH = 1000 # Guard against malicious string inputs.
coerce_to_string = api_settings.COERCE_DECIMAL_TO_STRING
def __init__(self, max_digits, decimal_places, coerce_to_string=None, max_value=None, min_value=None, **kwargs): def __init__(self, max_digits, decimal_places, coerce_to_string=None, max_value=None, min_value=None, **kwargs):
self.max_digits = max_digits self.max_digits = max_digits
self.decimal_places = decimal_places self.decimal_places = decimal_places
self.coerce_to_string = coerce_to_string if (coerce_to_string is not None) else self.coerce_to_string if coerce_to_string is not None:
self.coerce_to_string = coerce_to_string
self.max_value = max_value self.max_value = max_value
self.min_value = min_value self.min_value = min_value
@ -950,12 +973,14 @@ class DecimalField(Field):
return value return value
def to_representation(self, value): def to_representation(self, value):
coerce_to_string = getattr(self, 'coerce_to_string', api_settings.COERCE_DECIMAL_TO_STRING)
if not isinstance(value, decimal.Decimal): if not isinstance(value, decimal.Decimal):
value = decimal.Decimal(six.text_type(value).strip()) value = decimal.Decimal(six.text_type(value).strip())
quantized = self.quantize(value) quantized = self.quantize(value)
if not self.coerce_to_string: if not coerce_to_string:
return quantized return quantized
return '{0:f}'.format(quantized) return '{0:f}'.format(quantized)
@ -977,15 +1002,15 @@ class DateTimeField(Field):
'invalid': _('Datetime has wrong format. Use one of these formats instead: {format}.'), 'invalid': _('Datetime has wrong format. Use one of these formats instead: {format}.'),
'date': _('Expected a datetime but got a date.'), 'date': _('Expected a datetime but got a date.'),
} }
format = api_settings.DATETIME_FORMAT
input_formats = api_settings.DATETIME_INPUT_FORMATS
default_timezone = timezone.get_default_timezone() if settings.USE_TZ else None
datetime_parser = datetime.datetime.strptime datetime_parser = datetime.datetime.strptime
def __init__(self, format=empty, input_formats=None, default_timezone=None, *args, **kwargs): def __init__(self, format=empty, input_formats=None, default_timezone=None, *args, **kwargs):
self.format = format if format is not empty else self.format if format is not empty:
self.input_formats = input_formats if input_formats is not None else self.input_formats self.format = format
self.default_timezone = default_timezone if default_timezone is not None else self.default_timezone if input_formats is not None:
self.input_formats = input_formats
if default_timezone is not None:
self.timezone = default_timezone
super(DateTimeField, self).__init__(*args, **kwargs) super(DateTimeField, self).__init__(*args, **kwargs)
def enforce_timezone(self, value): def enforce_timezone(self, value):
@ -993,21 +1018,28 @@ class DateTimeField(Field):
When `self.default_timezone` is `None`, always return naive datetimes. When `self.default_timezone` is `None`, always return naive datetimes.
When `self.default_timezone` is not `None`, always return aware datetimes. When `self.default_timezone` is not `None`, always return aware datetimes.
""" """
if (self.default_timezone is not None) and not timezone.is_aware(value): field_timezone = getattr(self, 'timezone', self.default_timezone())
return timezone.make_aware(value, self.default_timezone)
elif (self.default_timezone is None) and timezone.is_aware(value): if (field_timezone is not None) and not timezone.is_aware(value):
return timezone.make_aware(value, field_timezone)
elif (field_timezone is None) and timezone.is_aware(value):
return timezone.make_naive(value, timezone.UTC()) return timezone.make_naive(value, timezone.UTC())
return value return value
def default_timezone(self):
return timezone.get_default_timezone() if settings.USE_TZ else None
def to_internal_value(self, value): def to_internal_value(self, value):
input_formats = getattr(self, 'input_formats', api_settings.DATETIME_INPUT_FORMATS)
if isinstance(value, datetime.date) and not isinstance(value, datetime.datetime): if isinstance(value, datetime.date) and not isinstance(value, datetime.datetime):
self.fail('date') self.fail('date')
if isinstance(value, datetime.datetime): if isinstance(value, datetime.datetime):
return self.enforce_timezone(value) return self.enforce_timezone(value)
for format in self.input_formats: for input_format in input_formats:
if format.lower() == ISO_8601: if input_format.lower() == ISO_8601:
try: try:
parsed = parse_datetime(value) parsed = parse_datetime(value)
except (ValueError, TypeError): except (ValueError, TypeError):
@ -1017,25 +1049,27 @@ class DateTimeField(Field):
return self.enforce_timezone(parsed) return self.enforce_timezone(parsed)
else: else:
try: try:
parsed = self.datetime_parser(value, format) parsed = self.datetime_parser(value, input_format)
except (ValueError, TypeError): except (ValueError, TypeError):
pass pass
else: else:
return self.enforce_timezone(parsed) return self.enforce_timezone(parsed)
humanized_format = humanize_datetime.datetime_formats(self.input_formats) humanized_format = humanize_datetime.datetime_formats(input_formats)
self.fail('invalid', format=humanized_format) self.fail('invalid', format=humanized_format)
def to_representation(self, value): def to_representation(self, value):
if self.format is None: output_format = getattr(self, 'format', api_settings.DATETIME_FORMAT)
if output_format is None:
return value return value
if self.format.lower() == ISO_8601: if output_format.lower() == ISO_8601:
value = value.isoformat() value = value.isoformat()
if value.endswith('+00:00'): if value.endswith('+00:00'):
value = value[:-6] + 'Z' value = value[:-6] + 'Z'
return value return value
return value.strftime(self.format) return value.strftime(output_format)
class DateField(Field): class DateField(Field):
@ -1043,24 +1077,26 @@ class DateField(Field):
'invalid': _('Date has wrong format. Use one of these formats instead: {format}.'), 'invalid': _('Date has wrong format. Use one of these formats instead: {format}.'),
'datetime': _('Expected a date but got a datetime.'), 'datetime': _('Expected a date but got a datetime.'),
} }
format = api_settings.DATE_FORMAT
input_formats = api_settings.DATE_INPUT_FORMATS
datetime_parser = datetime.datetime.strptime datetime_parser = datetime.datetime.strptime
def __init__(self, format=empty, input_formats=None, *args, **kwargs): def __init__(self, format=empty, input_formats=None, *args, **kwargs):
self.format = format if format is not empty else self.format if format is not empty:
self.input_formats = input_formats if input_formats is not None else self.input_formats self.format = format
if input_formats is not None:
self.input_formats = input_formats
super(DateField, self).__init__(*args, **kwargs) super(DateField, self).__init__(*args, **kwargs)
def to_internal_value(self, value): def to_internal_value(self, value):
input_formats = getattr(self, 'input_formats', api_settings.DATE_INPUT_FORMATS)
if isinstance(value, datetime.datetime): if isinstance(value, datetime.datetime):
self.fail('datetime') self.fail('datetime')
if isinstance(value, datetime.date): if isinstance(value, datetime.date):
return value return value
for format in self.input_formats: for input_format in input_formats:
if format.lower() == ISO_8601: if input_format.lower() == ISO_8601:
try: try:
parsed = parse_date(value) parsed = parse_date(value)
except (ValueError, TypeError): except (ValueError, TypeError):
@ -1070,20 +1106,22 @@ class DateField(Field):
return parsed return parsed
else: else:
try: try:
parsed = self.datetime_parser(value, format) parsed = self.datetime_parser(value, input_format)
except (ValueError, TypeError): except (ValueError, TypeError):
pass pass
else: else:
return parsed.date() return parsed.date()
humanized_format = humanize_datetime.date_formats(self.input_formats) humanized_format = humanize_datetime.date_formats(input_formats)
self.fail('invalid', format=humanized_format) self.fail('invalid', format=humanized_format)
def to_representation(self, value): def to_representation(self, value):
output_format = getattr(self, 'format', api_settings.DATE_FORMAT)
if not value: if not value:
return None return None
if self.format is None: if output_format is None:
return value return value
# Applying a `DateField` to a datetime value is almost always # Applying a `DateField` to a datetime value is almost always
@ -1095,33 +1133,35 @@ class DateField(Field):
'read-only field and deal with timezone issues explicitly.' 'read-only field and deal with timezone issues explicitly.'
) )
if self.format.lower() == ISO_8601: if output_format.lower() == ISO_8601:
if (isinstance(value, str)): if (isinstance(value, str)):
value = datetime.datetime.strptime(value, '%Y-%m-%d').date() value = datetime.datetime.strptime(value, '%Y-%m-%d').date()
return value.isoformat() return value.isoformat()
return value.strftime(self.format) return value.strftime(output_format)
class TimeField(Field): class TimeField(Field):
default_error_messages = { default_error_messages = {
'invalid': _('Time has wrong format. Use one of these formats instead: {format}.'), 'invalid': _('Time has wrong format. Use one of these formats instead: {format}.'),
} }
format = api_settings.TIME_FORMAT
input_formats = api_settings.TIME_INPUT_FORMATS
datetime_parser = datetime.datetime.strptime datetime_parser = datetime.datetime.strptime
def __init__(self, format=empty, input_formats=None, *args, **kwargs): def __init__(self, format=empty, input_formats=None, *args, **kwargs):
self.format = format if format is not empty else self.format if format is not empty:
self.input_formats = input_formats if input_formats is not None else self.input_formats self.format = format
if input_formats is not None:
self.input_formats = input_formats
super(TimeField, self).__init__(*args, **kwargs) super(TimeField, self).__init__(*args, **kwargs)
def to_internal_value(self, value): def to_internal_value(self, value):
input_formats = getattr(self, 'input_formats', api_settings.TIME_INPUT_FORMATS)
if isinstance(value, datetime.time): if isinstance(value, datetime.time):
return value return value
for format in self.input_formats: for input_format in input_formats:
if format.lower() == ISO_8601: if input_format.lower() == ISO_8601:
try: try:
parsed = parse_time(value) parsed = parse_time(value)
except (ValueError, TypeError): except (ValueError, TypeError):
@ -1131,17 +1171,19 @@ class TimeField(Field):
return parsed return parsed
else: else:
try: try:
parsed = self.datetime_parser(value, format) parsed = self.datetime_parser(value, input_format)
except (ValueError, TypeError): except (ValueError, TypeError):
pass pass
else: else:
return parsed.time() return parsed.time()
humanized_format = humanize_datetime.time_formats(self.input_formats) humanized_format = humanize_datetime.time_formats(input_formats)
self.fail('invalid', format=humanized_format) self.fail('invalid', format=humanized_format)
def to_representation(self, value): def to_representation(self, value):
if self.format is None: output_format = getattr(self, 'format', api_settings.TIME_FORMAT)
if output_format is None:
return value return value
# Applying a `TimeField` to a datetime value is almost always # Applying a `TimeField` to a datetime value is almost always
@ -1153,9 +1195,9 @@ class TimeField(Field):
'read-only field and deal with timezone issues explicitly.' 'read-only field and deal with timezone issues explicitly.'
) )
if self.format.lower() == ISO_8601: if output_format.lower() == ISO_8601:
return value.isoformat() return value.isoformat()
return value.strftime(self.format) return value.strftime(output_format)
class DurationField(Field): class DurationField(Field):
@ -1172,7 +1214,7 @@ class DurationField(Field):
def to_internal_value(self, value): def to_internal_value(self, value):
if isinstance(value, datetime.timedelta): if isinstance(value, datetime.timedelta):
return value return value
parsed = parse_duration(value) parsed = parse_duration(six.text_type(value))
if parsed is not None: if parsed is not None:
return parsed return parsed
self.fail('invalid', format='[DD] [HH:[MM:]]ss[.uuuuuu]') self.fail('invalid', format='[DD] [HH:[MM:]]ss[.uuuuuu]')
@ -1187,17 +1229,21 @@ class ChoiceField(Field):
default_error_messages = { default_error_messages = {
'invalid_choice': _('"{input}" is not a valid choice.') 'invalid_choice': _('"{input}" is not a valid choice.')
} }
html_cutoff = None
html_cutoff_text = _('More than {count} items...')
def __init__(self, choices, **kwargs): def __init__(self, choices, **kwargs):
self.grouped_choices = to_choices_dict(choices) self.grouped_choices = to_choices_dict(choices)
self.choices = flatten_choices_dict(self.grouped_choices) self.choices = flatten_choices_dict(self.grouped_choices)
self.html_cutoff = kwargs.pop('html_cutoff', self.html_cutoff)
self.html_cutoff_text = kwargs.pop('html_cutoff_text', self.html_cutoff_text)
# Map the string representation of choices to the underlying value. # Map the string representation of choices to the underlying value.
# Allows us to deal with eg. integer choices while supporting either # Allows us to deal with eg. integer choices while supporting either
# integer or string input, but still get the correct datatype out. # integer or string input, but still get the correct datatype out.
self.choice_strings_to_values = dict([ self.choice_strings_to_values = {
(six.text_type(key), key) for key in self.choices.keys() six.text_type(key): key for key in self.choices.keys()
]) }
self.allow_blank = kwargs.pop('allow_blank', False) self.allow_blank = kwargs.pop('allow_blank', False)
@ -1221,7 +1267,11 @@ class ChoiceField(Field):
""" """
Helper method for use with templates rendering select widgets. Helper method for use with templates rendering select widgets.
""" """
return iter_options(self.grouped_choices) return iter_options(
self.grouped_choices,
cutoff=self.html_cutoff,
cutoff_text=self.html_cutoff_text
)
class MultipleChoiceField(ChoiceField): class MultipleChoiceField(ChoiceField):
@ -1237,14 +1287,13 @@ class MultipleChoiceField(ChoiceField):
super(MultipleChoiceField, self).__init__(*args, **kwargs) super(MultipleChoiceField, self).__init__(*args, **kwargs)
def get_value(self, dictionary): def get_value(self, dictionary):
if self.field_name not in dictionary:
if getattr(self.root, 'partial', False):
return empty
# We override the default field access in order to support # We override the default field access in order to support
# lists in HTML forms. # lists in HTML forms.
if html.is_html_input(dictionary): if html.is_html_input(dictionary):
ret = dictionary.getlist(self.field_name) return dictionary.getlist(self.field_name)
if getattr(self.root, 'partial', False) and not ret:
ret = empty
return ret
return dictionary.get(self.field_name, empty) return dictionary.get(self.field_name, empty)
def to_internal_value(self, data): def to_internal_value(self, data):
@ -1253,15 +1302,15 @@ class MultipleChoiceField(ChoiceField):
if not self.allow_empty and len(data) == 0: if not self.allow_empty and len(data) == 0:
self.fail('empty') self.fail('empty')
return set([ return {
super(MultipleChoiceField, self).to_internal_value(item) super(MultipleChoiceField, self).to_internal_value(item)
for item in data for item in data
]) }
def to_representation(self, value): def to_representation(self, value):
return set([ return {
self.choice_strings_to_values.get(six.text_type(item), item) for item in value self.choice_strings_to_values.get(six.text_type(item), item) for item in value
]) }
class FilePathField(ChoiceField): class FilePathField(ChoiceField):
@ -1291,12 +1340,12 @@ class FileField(Field):
'empty': _('The submitted file is empty.'), 'empty': _('The submitted file is empty.'),
'max_length': _('Ensure this filename has at most {max_length} characters (it has {length}).'), 'max_length': _('Ensure this filename has at most {max_length} characters (it has {length}).'),
} }
use_url = api_settings.UPLOADED_FILES_USE_URL
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.max_length = kwargs.pop('max_length', None) self.max_length = kwargs.pop('max_length', None)
self.allow_empty_file = kwargs.pop('allow_empty_file', False) self.allow_empty_file = kwargs.pop('allow_empty_file', False)
self.use_url = kwargs.pop('use_url', self.use_url) if 'use_url' in kwargs:
self.use_url = kwargs.pop('use_url')
super(FileField, self).__init__(*args, **kwargs) super(FileField, self).__init__(*args, **kwargs)
def to_internal_value(self, data): def to_internal_value(self, data):
@ -1317,10 +1366,12 @@ class FileField(Field):
return data return data
def to_representation(self, value): def to_representation(self, value):
use_url = getattr(self, 'use_url', api_settings.UPLOADED_FILES_USE_URL)
if not value: if not value:
return None return None
if self.use_url: if use_url:
if not getattr(value, 'url', None): if not getattr(value, 'url', None):
# If the file has not been saved it may not have a URL. # If the file has not been saved it may not have a URL.
return None return None
@ -1380,11 +1431,20 @@ class ListField(Field):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.child = kwargs.pop('child', copy.deepcopy(self.child)) self.child = kwargs.pop('child', copy.deepcopy(self.child))
self.allow_empty = kwargs.pop('allow_empty', True) self.allow_empty = kwargs.pop('allow_empty', True)
assert not inspect.isclass(self.child), '`child` has not been instantiated.' assert not inspect.isclass(self.child), '`child` has not been instantiated.'
assert self.child.source is None, (
"The `source` argument is not meaningful when applied to a `child=` field. "
"Remove `source=` from the field declaration."
)
super(ListField, self).__init__(*args, **kwargs) super(ListField, self).__init__(*args, **kwargs)
self.child.bind(field_name='', parent=self) self.child.bind(field_name='', parent=self)
def get_value(self, dictionary): def get_value(self, dictionary):
if self.field_name not in dictionary:
if getattr(self.root, 'partial', False):
return empty
# We override the default field access in order to support # We override the default field access in order to support
# lists in HTML forms. # lists in HTML forms.
if html.is_html_input(dictionary): if html.is_html_input(dictionary):
@ -1423,7 +1483,13 @@ class DictField(Field):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.child = kwargs.pop('child', copy.deepcopy(self.child)) self.child = kwargs.pop('child', copy.deepcopy(self.child))
assert not inspect.isclass(self.child), '`child` has not been instantiated.' assert not inspect.isclass(self.child), '`child` has not been instantiated.'
assert self.child.source is None, (
"The `source` argument is not meaningful when applied to a `child=` field. "
"Remove `source=` from the field declaration."
)
super(DictField, self).__init__(*args, **kwargs) super(DictField, self).__init__(*args, **kwargs)
self.child.bind(field_name='', parent=self) self.child.bind(field_name='', parent=self)
@ -1442,19 +1508,50 @@ class DictField(Field):
data = html.parse_html_dict(data) data = html.parse_html_dict(data)
if not isinstance(data, dict): if not isinstance(data, dict):
self.fail('not_a_dict', input_type=type(data).__name__) self.fail('not_a_dict', input_type=type(data).__name__)
return dict([ return {
(six.text_type(key), self.child.run_validation(value)) six.text_type(key): self.child.run_validation(value)
for key, value in data.items() for key, value in data.items()
]) }
def to_representation(self, value): def to_representation(self, value):
""" """
List of object instances -> List of dicts of primitive datatypes. List of object instances -> List of dicts of primitive datatypes.
""" """
return dict([ return {
(six.text_type(key), self.child.to_representation(val)) six.text_type(key): self.child.to_representation(val)
for key, val in value.items() for key, val in value.items()
]) }
class JSONField(Field):
default_error_messages = {
'invalid': _('Value must be valid JSON.')
}
def __init__(self, *args, **kwargs):
self.binary = kwargs.pop('binary', False)
super(JSONField, self).__init__(*args, **kwargs)
def to_internal_value(self, data):
try:
if self.binary:
if isinstance(data, six.binary_type):
data = data.decode('utf-8')
return json.loads(data)
else:
json.dumps(data)
except (TypeError, ValueError):
self.fail('invalid')
return data
def to_representation(self, value):
if self.binary:
value = json.dumps(value)
# On python 2.x the return type for json.dumps() is underspecified.
# On python 3.x json.dumps() returns unicode strings.
if isinstance(value, six.text_type):
value = bytes(value.encode('utf-8'))
return value
# Miscellaneous field types... # Miscellaneous field types...

View File

@ -10,12 +10,54 @@ from functools import reduce
from django.conf import settings from django.conf import settings
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.db import models from django.db import models
from django.template import Context, loader
from django.utils import six from django.utils import six
from django.utils.translation import ugettext_lazy as _
from rest_framework.compat import django_filters, get_model_name, guardian from rest_framework.compat import (
crispy_forms, distinct, django_filters, guardian
)
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
FilterSet = django_filters and django_filters.FilterSet or None if 'crispy_forms' in settings.INSTALLED_APPS and crispy_forms and django_filters:
# If django-crispy-forms is installed, use it to get a bootstrap3 rendering
# of the DjangoFilterBackend controls when displayed as HTML.
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Submit
class FilterSet(django_filters.FilterSet):
def __init__(self, *args, **kwargs):
super(FilterSet, self).__init__(*args, **kwargs)
for field in self.form.fields.values():
field.help_text = None
layout_components = list(self.form.fields.keys()) + [
Submit('', _('Submit'), css_class='btn-default'),
]
helper = FormHelper()
helper.form_method = 'GET'
helper.template_pack = 'bootstrap3'
helper.layout = Layout(*layout_components)
self.form.helper = helper
filter_template = 'rest_framework/filters/django_filter_crispyforms.html'
elif django_filters:
# If django-crispy-forms is not installed, use the standard
# 'form.as_p' rendering when DjangoFilterBackend is displayed as HTML.
class FilterSet(django_filters.FilterSet):
def __init__(self, *args, **kwargs):
super(FilterSet, self).__init__(*args, **kwargs)
for field in self.form.fields.values():
field.help_text = None
filter_template = 'rest_framework/filters/django_filter.html'
else:
FilterSet = None
filter_template = None
class BaseFilterBackend(object): class BaseFilterBackend(object):
@ -35,6 +77,7 @@ class DjangoFilterBackend(BaseFilterBackend):
A filter backend that uses django-filter. A filter backend that uses django-filter.
""" """
default_filter_set = FilterSet default_filter_set = FilterSet
template = filter_template
def __init__(self): def __init__(self):
assert django_filters, 'Using DjangoFilterBackend, but django-filter is not installed' assert django_filters, 'Using DjangoFilterBackend, but django-filter is not installed'
@ -56,7 +99,7 @@ class DjangoFilterBackend(BaseFilterBackend):
return filter_class return filter_class
if filter_fields: if filter_fields:
class AutoFilterSet(self.default_filter_set): class AutoFilterSet(FilterSet):
class Meta: class Meta:
model = queryset.model model = queryset.model
fields = filter_fields fields = filter_fields
@ -73,10 +116,20 @@ class DjangoFilterBackend(BaseFilterBackend):
return queryset return queryset
def to_html(self, request, queryset, view):
cls = self.get_filter_class(view, queryset)
filter_instance = cls(request.query_params, queryset=queryset)
context = Context({
'filter': filter_instance
})
template = loader.get_template(self.template)
return template.render(context)
class SearchFilter(BaseFilterBackend): class SearchFilter(BaseFilterBackend):
# The URL query parameter used for the search. # The URL query parameter used for the search.
search_param = api_settings.SEARCH_PARAM search_param = api_settings.SEARCH_PARAM
template = 'rest_framework/filters/search.html'
def get_search_terms(self, request): def get_search_terms(self, request):
""" """
@ -93,37 +146,55 @@ class SearchFilter(BaseFilterBackend):
return "%s__iexact" % field_name[1:] return "%s__iexact" % field_name[1:]
elif field_name.startswith('@'): elif field_name.startswith('@'):
return "%s__search" % field_name[1:] return "%s__search" % field_name[1:]
if field_name.startswith('$'):
return "%s__iregex" % field_name[1:]
else: else:
return "%s__icontains" % field_name return "%s__icontains" % field_name
def filter_queryset(self, request, queryset, view): def filter_queryset(self, request, queryset, view):
search_fields = getattr(view, 'search_fields', None) search_fields = getattr(view, 'search_fields', None)
search_terms = self.get_search_terms(request)
if not search_fields: if not search_fields or not search_terms:
return queryset return queryset
original_queryset = queryset orm_lookups = [
orm_lookups = [self.construct_search(six.text_type(search_field)) self.construct_search(six.text_type(search_field))
for search_field in search_fields] for search_field in search_fields
]
for search_term in self.get_search_terms(request): base = queryset
or_queries = [models.Q(**{orm_lookup: search_term}) for search_term in search_terms:
for orm_lookup in orm_lookups] queries = [
queryset = queryset.filter(reduce(operator.or_, or_queries)) models.Q(**{orm_lookup: search_term})
for orm_lookup in orm_lookups
]
queryset = queryset.filter(reduce(operator.or_, queries))
if settings.DATABASES[queryset.db]["ENGINE"] == "django.db.backends.oracle": # Filtering against a many-to-many field requires us to
# distinct analogue for Oracle users # call queryset.distinct() in order to avoid duplicate items
queryset = original_queryset.filter(pk__in=set(queryset.values_list('pk', flat=True))) # in the resulting queryset.
else: return distinct(queryset, base)
queryset = queryset.distinct()
return queryset def to_html(self, request, queryset, view):
if not getattr(view, 'search_fields', None):
return ''
term = self.get_search_terms(request)
term = term[0] if term else ''
context = Context({
'param': self.search_param,
'term': term
})
template = loader.get_template(self.template)
return template.render(context)
class OrderingFilter(BaseFilterBackend): class OrderingFilter(BaseFilterBackend):
# The URL query parameter used for the ordering. # The URL query parameter used for the ordering.
ordering_param = api_settings.ORDERING_PARAM ordering_param = api_settings.ORDERING_PARAM
ordering_fields = None ordering_fields = None
template = 'rest_framework/filters/ordering.html'
def get_ordering(self, request, queryset, view): def get_ordering(self, request, queryset, view):
""" """
@ -149,7 +220,7 @@ class OrderingFilter(BaseFilterBackend):
return (ordering,) return (ordering,)
return ordering return ordering
def remove_invalid_fields(self, queryset, fields, view): def get_valid_fields(self, queryset, view):
valid_fields = getattr(view, 'ordering_fields', self.ordering_fields) valid_fields = getattr(view, 'ordering_fields', self.ordering_fields)
if valid_fields is None: if valid_fields is None:
@ -160,15 +231,30 @@ class OrderingFilter(BaseFilterBackend):
"'serializer_class' or 'ordering_fields' attribute.") "'serializer_class' or 'ordering_fields' attribute.")
raise ImproperlyConfigured(msg % self.__class__.__name__) raise ImproperlyConfigured(msg % self.__class__.__name__)
valid_fields = [ valid_fields = [
field.source or field_name (field.source or field_name, field.label)
for field_name, field in serializer_class().fields.items() for field_name, field in serializer_class().fields.items()
if not getattr(field, 'write_only', False) if not getattr(field, 'write_only', False) and not field.source == '*'
] ]
elif valid_fields == '__all__': elif valid_fields == '__all__':
# View explicitly allows filtering on any model field # View explicitly allows filtering on any model field
valid_fields = [field.name for field in queryset.model._meta.fields] valid_fields = [
valid_fields += queryset.query.aggregates.keys() (field.name, getattr(field, 'label', field.name.title()))
for field in queryset.model._meta.fields
]
valid_fields += [
(key, key.title().split('__'))
for key in queryset.query.aggregates.keys()
]
else:
valid_fields = [
(item, item) if isinstance(item, six.string_types) else item
for item in valid_fields
]
return valid_fields
def remove_invalid_fields(self, queryset, fields, view):
valid_fields = [item[0] for item in self.get_valid_fields(queryset, view)]
return [term for term in fields if term.lstrip('-') in valid_fields] return [term for term in fields if term.lstrip('-') in valid_fields]
def filter_queryset(self, request, queryset, view): def filter_queryset(self, request, queryset, view):
@ -179,6 +265,25 @@ class OrderingFilter(BaseFilterBackend):
return queryset return queryset
def get_template_context(self, request, queryset, view):
current = self.get_ordering(request, queryset, view)
current = None if current is None else current[0]
options = []
for key, label in self.get_valid_fields(queryset, view):
options.append((key, '%s - ascending' % label))
options.append(('-' + key, '%s - descending' % label))
return {
'request': request,
'current': current,
'param': self.ordering_param,
'options': options,
}
def to_html(self, request, queryset, view):
template = loader.get_template(self.template)
context = Context(self.get_template_context(request, queryset, view))
return template.render(context)
class DjangoObjectPermissionsFilter(BaseFilterBackend): class DjangoObjectPermissionsFilter(BaseFilterBackend):
""" """
@ -196,7 +301,7 @@ class DjangoObjectPermissionsFilter(BaseFilterBackend):
model_cls = queryset.model model_cls = queryset.model
kwargs = { kwargs = {
'app_label': model_cls._meta.app_label, 'app_label': model_cls._meta.app_label,
'model_name': get_model_name(model_cls) 'model_name': model_cls._meta.model_name
} }
permission = self.perm_format % kwargs permission = self.perm_format % kwargs
if guardian.VERSION >= (1, 3): if guardian.VERSION >= (1, 3):

View File

@ -8,9 +8,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Arabic (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ar/)\n" "Language-Team: Arabic (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ar/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -18,40 +18,40 @@ msgstr ""
"Language: ar\n" "Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "" msgstr ""
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "اسم المستخدم/كلمة السر غير صحيحين." msgstr "اسم المستخدم/كلمة السر غير صحيحين."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "المستخدم غير مفعل او تم حذفه." msgstr "المستخدم غير مفعل او تم حذفه."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "" msgstr ""
@ -87,11 +87,12 @@ msgstr "لم يتم تزويد بيانات الدخول."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "ليس لديك صلاحية للقيام بهذا الإجراء." msgstr "ليس لديك صلاحية للقيام بهذا الإجراء."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "غير موجود." msgstr "غير موجود."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "" msgstr ""
@ -100,6 +101,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "" msgstr ""
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "" msgstr ""
@ -107,209 +109,238 @@ msgstr ""
msgid "Request was throttled." msgid "Request was throttled."
msgstr "" msgstr ""
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "هذا الحقل مطلوب." msgstr "هذا الحقل مطلوب."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "لا يمكن لهذا الحقل ان يكون فارغاً null." msgstr "لا يمكن لهذا الحقل ان يكون فارغاً null."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" ليس قيمة منطقية." msgstr "\"{input}\" ليس قيمة منطقية."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "لا يمكن لهذا الحقل ان يكون فارغاً." msgstr "لا يمكن لهذا الحقل ان يكون فارغاً."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "تأكد ان الحقل لا يزيد عن {max_length} محرف." msgstr "تأكد ان الحقل لا يزيد عن {max_length} محرف."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "تأكد ان الحقل {min_length} محرف على الاقل." msgstr "تأكد ان الحقل {min_length} محرف على الاقل."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "عليك ان تدخل بريد إلكتروني صالح." msgstr "عليك ان تدخل بريد إلكتروني صالح."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "هذه القيمة لا تطابق النمط المطلوب." msgstr "هذه القيمة لا تطابق النمط المطلوب."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "" msgstr ""
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "الرجاء إدخال رابط إلكتروني صالح." msgstr "الرجاء إدخال رابط إلكتروني صالح."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "الرجاء إدخال رقم صحيح صالح." msgstr "الرجاء إدخال رقم صحيح صالح."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "تأكد ان القيمة أقل أو تساوي {max_value}." msgstr "تأكد ان القيمة أقل أو تساوي {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "تأكد ان القيمة أكبر أو تساوي {min_value}." msgstr "تأكد ان القيمة أكبر أو تساوي {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "" msgstr ""
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "الرجاء إدخال رقم صالح." msgstr "الرجاء إدخال رقم صالح."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "تأكد ان القيمة لا تحوي أكثر من {max_digits} رقم." msgstr "تأكد ان القيمة لا تحوي أكثر من {max_digits} رقم."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "" msgstr ""
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "" msgstr ""
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "صيغة التاريخ و الوقت غير صحيحة. عليك أن تستخدم واحدة من هذه الصيغ التالية: {format}." msgstr "صيغة التاريخ و الوقت غير صحيحة. عليك أن تستخدم واحدة من هذه الصيغ التالية: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "" msgstr ""
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "صيغة التاريخ غير صحيحة. عليك أن تستخدم واحدة من هذه الصيغ التالية: {format}." msgstr "صيغة التاريخ غير صحيحة. عليك أن تستخدم واحدة من هذه الصيغ التالية: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "" msgstr ""
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "صيغة الوقت غير صحيحة. عليك أن تستخدم واحدة من هذه الصيغ التالية: {format}." msgstr "صيغة الوقت غير صحيحة. عليك أن تستخدم واحدة من هذه الصيغ التالية: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" ليست واحدة من الخيارات الصالحة." msgstr "\"{input}\" ليست واحدة من الخيارات الصالحة."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "لم يتم إرسال أي ملف." msgstr "لم يتم إرسال أي ملف."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "" msgstr ""
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "" msgstr ""
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "الملف الذي تم إرساله فارغ." msgstr "الملف الذي تم إرساله فارغ."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "تأكد ان اسم الملف لا يحوي أكثر من {max_length} محرف (الإسم المرسل يحوي {length} محرف)." msgstr "تأكد ان اسم الملف لا يحوي أكثر من {max_length} محرف (الإسم المرسل يحوي {length} محرف)."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "رقم الصفحة \"{page_number}\" غير صالح : {message}." msgstr "رقم الصفحة \"{page_number}\" غير صالح : {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "معرف العنصر \"{pk_value}\" غير صالح - العنصر غير موجود." msgstr "معرف العنصر \"{pk_value}\" غير صالح - العنصر غير موجود."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "" msgstr ""
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "" msgstr ""
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "" msgstr ""
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "" msgstr ""
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "" msgstr ""
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "" msgstr ""
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "قيمة غير صالحة." msgstr "قيمة غير صالحة."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "" msgstr ""
@ -330,18 +361,22 @@ msgid "This field must be unique."
msgstr "" msgstr ""
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -361,6 +396,6 @@ msgstr ""
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "" msgstr ""
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Belarusian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/be/)\n" "Language-Team: Belarusian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/be/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -17,40 +17,40 @@ msgstr ""
"Language: be\n" "Language: be\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "" msgstr ""
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "" msgstr ""
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "" msgstr ""
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "" msgstr ""
@ -86,11 +86,12 @@ msgstr ""
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "" msgstr ""
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "" msgstr ""
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "" msgstr ""
@ -99,6 +100,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "" msgstr ""
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "" msgstr ""
@ -106,209 +108,238 @@ msgstr ""
msgid "Request was throttled." msgid "Request was throttled."
msgstr "" msgstr ""
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "" msgstr ""
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "" msgstr ""
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "" msgstr ""
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "" msgstr ""
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "" msgstr ""
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "" msgstr ""
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "" msgstr ""
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "" msgstr ""
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "" msgstr ""
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "" msgstr ""
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "" msgstr ""
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "" msgstr ""
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "" msgstr ""
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "" msgstr ""
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "" msgstr ""
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "" msgstr ""
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "" msgstr ""
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "" msgstr ""
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "" msgstr ""
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "" msgstr ""
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "" msgstr ""
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "" msgstr ""
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "" msgstr ""
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "" msgstr ""
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "" msgstr ""
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "" msgstr ""
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "" msgstr ""
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "" msgstr ""
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "" msgstr ""
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "" msgstr ""
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "" msgstr ""
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "" msgstr ""
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "" msgstr ""
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "" msgstr ""
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "" msgstr ""
@ -329,18 +360,22 @@ msgid "This field must be unique."
msgstr "" msgstr ""
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -360,6 +395,6 @@ msgstr ""
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "" msgstr ""
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

Binary file not shown.

View File

@ -0,0 +1,400 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Catalan (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:72
msgid "Invalid basic header. No credentials provided."
msgstr "Header Basic invàlid. No hi ha disponibles les credencials."
#: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Header Basic invàlid. Les credencials no poden contenir espais."
#: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Header Basic invàlid. Les credencials no estan codificades correctament en base64."
#: authentication.py:98
msgid "Invalid username/password."
msgstr "Usuari/Contrasenya incorrectes."
#: authentication.py:101 authentication.py:189
msgid "User inactive or deleted."
msgstr "Usuari inactiu o esborrat."
#: authentication.py:168
msgid "Invalid token header. No credentials provided."
msgstr "Token header invàlid. No s'han indicat les credencials."
#: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces."
msgstr "Token header invàlid. El token no ha de contenir espais."
#: authentication.py:177
msgid ""
"Invalid token header. Token string should not contain invalid characters."
msgstr "Token header invàlid. El token no pot contenir caràcters invàlids."
#: authentication.py:186
msgid "Invalid token."
msgstr "Token invàlid."
#: authtoken/serializers.py:20
msgid "User account is disabled."
msgstr "Compte d'usuari desactivat."
#: authtoken/serializers.py:23
msgid "Unable to log in with provided credentials."
msgstr "No es possible loguejar-se amb les credencials introduïdes."
#: authtoken/serializers.py:26
msgid "Must include \"username\" and \"password\"."
msgstr "S'ha d'incloure \"username\" i \"password\"."
#: exceptions.py:49
msgid "A server error occurred."
msgstr "S'ha produït un error en el servidor."
#: exceptions.py:84
msgid "Malformed request."
msgstr "Request amb format incorrecte."
#: exceptions.py:89
msgid "Incorrect authentication credentials."
msgstr "Credencials d'autenticació incorrectes."
#: exceptions.py:94
msgid "Authentication credentials were not provided."
msgstr "Credencials d'autenticació no disponibles."
#: exceptions.py:99
msgid "You do not have permission to perform this action."
msgstr "No té permisos per realitzar aquesta acció."
#: exceptions.py:104 views.py:81
msgid "Not found."
msgstr "No trobat."
#: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed."
msgstr "Mètode \"{method}\" no permès."
#: exceptions.py:120
msgid "Could not satisfy the request Accept header."
msgstr "No s'ha pogut satisfer l'Accept header de la petició."
#: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Media type \"{media_type}\" no suportat."
#: exceptions.py:145
msgid "Request was throttled."
msgstr "La petició ha estat limitada pel número màxim de peticions definit."
#: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162
msgid "This field is required."
msgstr "Aquest camp és obligatori."
#: fields.py:263
msgid "This field may not be null."
msgstr "Aquest camp no pot ser nul."
#: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" no és un booleà."
#: fields.py:662
msgid "This field may not be blank."
msgstr "Aquest camp no pot estar en blanc."
#: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters."
msgstr "Aquest camp no pot tenir més de {max_length} caràcters."
#: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters."
msgstr "Aquest camp ha de tenir un mínim de {min_length} caràcters."
#: fields.py:701
msgid "Enter a valid email address."
msgstr "Introdueixi una adreça de correu vàlida."
#: fields.py:712
msgid "This value does not match the required pattern."
msgstr "Aquest valor no compleix el patró requerit."
#: fields.py:723
msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens."
msgstr "Introdueix un \"slug\" vàlid consistent en lletres, números, guions o guions baixos."
#: fields.py:735
msgid "Enter a valid URL."
msgstr "Introdueixi una URL vàlida."
#: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" no és un UUID vàlid."
#: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address."
msgstr "Introdueixi una adreça IPv4 o IPv6 vàlida."
#: fields.py:807
msgid "A valid integer is required."
msgstr "Es requereix un nombre enter vàlid."
#: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Aquest valor ha de ser menor o igual a {max_value}."
#: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Aquest valor ha de ser més gran o igual a {min_value}."
#: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large."
msgstr "Valor del text massa gran."
#: fields.py:842 fields.py:875
msgid "A valid number is required."
msgstr "Es requereix un nombre vàlid."
#: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "No pot haver-hi més de {max_digits} dígits en total."
#: fields.py:879
#, python-brace-format
msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "No pot haver-hi més de {max_decimal_places} decimals."
#: fields.py:880
#, python-brace-format
msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point."
msgstr "No pot haver-hi més de {max_whole_digits} dígits abans del punt decimal."
#: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "El Datetime té un format incorrecte. Utilitzi un d'aquests formats: {format}."
#: fields.py:995
msgid "Expected a datetime but got a date."
msgstr "S'espera un Datetime però s'ha rebut un Date."
#: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "El Date té un format incorrecte. Utilitzi un d'aquests formats: {format}."
#: fields.py:1061
msgid "Expected a date but got a datetime."
msgstr "S'espera un Date però s'ha rebut un Datetime."
#: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "El Time té un format incorrecte. Utilitzi un d'aquests formats: {format}."
#: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "La durada té un format incorrecte. Utilitzi un d'aquests formats: {format}."
#: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" no és una opció vàlida."
#: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "S'espera una llista d'ítems però s'ha rebut el tipus \"{input_type}\"."
#: fields.py:1256
msgid "This selection may not be empty."
msgstr "Aquesta selecció no pot estar buida."
#: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice."
msgstr "\"{input}\" no és un path vàlid."
#: fields.py:1313
msgid "No file was submitted."
msgstr "No s'ha enviat cap fitxer."
#: fields.py:1314
msgid ""
"The submitted data was not a file. Check the encoding type on the form."
msgstr "Les dades enviades no són un fitxer. Comproveu l'encoding type del formulari."
#: fields.py:1315
msgid "No filename could be determined."
msgstr "No s'ha pogut determinar el nom del fitxer."
#: fields.py:1316
msgid "The submitted file is empty."
msgstr "El fitxer enviat està buit."
#: fields.py:1317
#, python-brace-format
msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "El nom del fitxer ha de tenir com a màxim {max_length} caràcters (en té {length})."
#: fields.py:1363
msgid ""
"Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image."
msgstr "Envieu una imatge vàlida. El fitxer enviat no és una imatge o és una imatge corrompuda."
#: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty."
msgstr "Aquesta llista no pot estar buida."
#: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "S'espera un diccionari però s'ha rebut el tipus \"{input_type}\"."
#: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}."
msgstr "Pàgina invàlida \"{page_number}\": {message}."
#: pagination.py:462
msgid "Invalid cursor"
msgstr "Cursor invàlid."
#: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "PK invàlida \"{pk_value}\" - l'objecte no existeix."
#: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Tipus incorrecte. S'espera el valor d'una PK, s'ha rebut {data_type}."
#: relations.py:225
msgid "Invalid hyperlink - No URL match."
msgstr "Hyperlink invàlid - Cap match d'URL."
#: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Hyperlink invàlid - Match d'URL incorrecta."
#: relations.py:227
msgid "Invalid hyperlink - Object does not exist."
msgstr "Hyperlink invàlid - L'objecte no existeix."
#: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Tipus incorrecte. S'espera una URL, s'ha rebut {data_type}."
#: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist."
msgstr "L'objecte amb {slug_name}={value} no existeix."
#: relations.py:388
msgid "Invalid value."
msgstr "Valor invàlid."
#: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Dades invàlides. S'espera un diccionari però s'ha rebut {datatype}."
#: templates/rest_framework/horizontal/radio.html:2
#: templates/rest_framework/inline/radio.html:2
#: templates/rest_framework/vertical/radio.html:2
msgid "None"
msgstr "Cap"
#: templates/rest_framework/horizontal/select_multiple.html:2
#: templates/rest_framework/inline/select_multiple.html:2
#: templates/rest_framework/vertical/select_multiple.html:2
msgid "No items to select."
msgstr "Cap opció seleccionada."
#: validators.py:24
msgid "This field must be unique."
msgstr "Aquest camp ha de ser únic."
#: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set."
msgstr "Aquests camps {field_names} han de constituir un conjunt únic."
#: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date."
msgstr "Aquest camp ha de ser únic per a la data \"{date_field}\"."
#: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month."
msgstr "Aquest camp ha de ser únic per al mes \"{date_field}\"."
#: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year."
msgstr "Aquest camp ha de ser únic per a l'any \"{date_field}\"."
#: versioning.py:42
msgid "Invalid version in \"Accept\" header."
msgstr "Versió invàlida al header \"Accept\"."
#: versioning.py:73 versioning.py:115
msgid "Invalid version in URL path."
msgstr "Versió invàlida a la URL."
#: versioning.py:144
msgid "Invalid version in hostname."
msgstr "Versió invàlida al hostname."
#: versioning.py:166
msgid "Invalid version in query parameter."
msgstr "Versió invàlida al paràmetre de consulta."
#: views.py:88
msgid "Permission denied."
msgstr "Permís denegat."

Binary file not shown.

View File

@ -0,0 +1,400 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Catalan (Spain) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ca_ES/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca_ES\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:72
msgid "Invalid basic header. No credentials provided."
msgstr ""
#: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr ""
#: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr ""
#: authentication.py:98
msgid "Invalid username/password."
msgstr ""
#: authentication.py:101 authentication.py:189
msgid "User inactive or deleted."
msgstr ""
#: authentication.py:168
msgid "Invalid token header. No credentials provided."
msgstr ""
#: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces."
msgstr ""
#: authentication.py:177
msgid ""
"Invalid token header. Token string should not contain invalid characters."
msgstr ""
#: authentication.py:186
msgid "Invalid token."
msgstr ""
#: authtoken/serializers.py:20
msgid "User account is disabled."
msgstr ""
#: authtoken/serializers.py:23
msgid "Unable to log in with provided credentials."
msgstr ""
#: authtoken/serializers.py:26
msgid "Must include \"username\" and \"password\"."
msgstr ""
#: exceptions.py:49
msgid "A server error occurred."
msgstr ""
#: exceptions.py:84
msgid "Malformed request."
msgstr ""
#: exceptions.py:89
msgid "Incorrect authentication credentials."
msgstr ""
#: exceptions.py:94
msgid "Authentication credentials were not provided."
msgstr ""
#: exceptions.py:99
msgid "You do not have permission to perform this action."
msgstr ""
#: exceptions.py:104 views.py:81
msgid "Not found."
msgstr ""
#: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed."
msgstr ""
#: exceptions.py:120
msgid "Could not satisfy the request Accept header."
msgstr ""
#: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request."
msgstr ""
#: exceptions.py:145
msgid "Request was throttled."
msgstr ""
#: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162
msgid "This field is required."
msgstr ""
#: fields.py:263
msgid "This field may not be null."
msgstr ""
#: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean."
msgstr ""
#: fields.py:662
msgid "This field may not be blank."
msgstr ""
#: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters."
msgstr ""
#: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters."
msgstr ""
#: fields.py:701
msgid "Enter a valid email address."
msgstr ""
#: fields.py:712
msgid "This value does not match the required pattern."
msgstr ""
#: fields.py:723
msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens."
msgstr ""
#: fields.py:735
msgid "Enter a valid URL."
msgstr ""
#: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID."
msgstr ""
#: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address."
msgstr ""
#: fields.py:807
msgid "A valid integer is required."
msgstr ""
#: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}."
msgstr ""
#: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}."
msgstr ""
#: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large."
msgstr ""
#: fields.py:842 fields.py:875
msgid "A valid number is required."
msgstr ""
#: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr ""
#: fields.py:879
#, python-brace-format
msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places."
msgstr ""
#: fields.py:880
#, python-brace-format
msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point."
msgstr ""
#: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr ""
#: fields.py:995
msgid "Expected a datetime but got a date."
msgstr ""
#: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr ""
#: fields.py:1061
msgid "Expected a date but got a datetime."
msgstr ""
#: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr ""
#: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr ""
#: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice."
msgstr ""
#: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"."
msgstr ""
#: fields.py:1256
msgid "This selection may not be empty."
msgstr ""
#: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice."
msgstr ""
#: fields.py:1313
msgid "No file was submitted."
msgstr ""
#: fields.py:1314
msgid ""
"The submitted data was not a file. Check the encoding type on the form."
msgstr ""
#: fields.py:1315
msgid "No filename could be determined."
msgstr ""
#: fields.py:1316
msgid "The submitted file is empty."
msgstr ""
#: fields.py:1317
#, python-brace-format
msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})."
msgstr ""
#: fields.py:1363
msgid ""
"Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image."
msgstr ""
#: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty."
msgstr ""
#: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr ""
#: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}."
msgstr ""
#: pagination.py:462
msgid "Invalid cursor"
msgstr ""
#: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr ""
#: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr ""
#: relations.py:225
msgid "Invalid hyperlink - No URL match."
msgstr ""
#: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match."
msgstr ""
#: relations.py:227
msgid "Invalid hyperlink - Object does not exist."
msgstr ""
#: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr ""
#: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist."
msgstr ""
#: relations.py:388
msgid "Invalid value."
msgstr ""
#: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr ""
#: templates/rest_framework/horizontal/radio.html:2
#: templates/rest_framework/inline/radio.html:2
#: templates/rest_framework/vertical/radio.html:2
msgid "None"
msgstr ""
#: templates/rest_framework/horizontal/select_multiple.html:2
#: templates/rest_framework/inline/select_multiple.html:2
#: templates/rest_framework/vertical/select_multiple.html:2
msgid "No items to select."
msgstr ""
#: validators.py:24
msgid "This field must be unique."
msgstr ""
#: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set."
msgstr ""
#: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date."
msgstr ""
#: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month."
msgstr ""
#: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year."
msgstr ""
#: versioning.py:42
msgid "Invalid version in \"Accept\" header."
msgstr ""
#: versioning.py:73 versioning.py:115
msgid "Invalid version in URL path."
msgstr ""
#: versioning.py:144
msgid "Invalid version in hostname."
msgstr ""
#: versioning.py:166
msgid "Invalid version in query parameter."
msgstr ""
#: views.py:88
msgid "Permission denied."
msgstr ""

View File

@ -9,9 +9,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Czech (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/cs/)\n" "Language-Team: Czech (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/cs/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -19,40 +19,40 @@ msgstr ""
"Language: cs\n" "Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Chybná hlavička. Nebyly poskytnuty přihlašovací údaje." msgstr "Chybná hlavička. Nebyly poskytnuty přihlašovací údaje."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Chybná hlavička. Přihlašovací údaje by neměly obsahovat mezery." msgstr "Chybná hlavička. Přihlašovací údaje by neměly obsahovat mezery."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Chybná hlavička. Přihlašovací údaje nebyly správně zakódovány pomocí base64." msgstr "Chybná hlavička. Přihlašovací údaje nebyly správně zakódovány pomocí base64."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Chybné uživatelské jméno nebo heslo." msgstr "Chybné uživatelské jméno nebo heslo."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Uživatelský účet je neaktivní nebo byl smazán." msgstr "Uživatelský účet je neaktivní nebo byl smazán."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Chybná hlavička tokenu. Nebyly zadány přihlašovací údaje." msgstr "Chybná hlavička tokenu. Nebyly zadány přihlašovací údaje."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Chybná hlavička tokenu. Přihlašovací údaje by neměly obsahovat mezery." msgstr "Chybná hlavička tokenu. Přihlašovací údaje by neměly obsahovat mezery."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Chybný token." msgstr "Chybný token."
@ -88,11 +88,12 @@ msgstr "Nebyly zadány přihlašovací údaje."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "K této akci nemáte oprávnění." msgstr "K této akci nemáte oprávnění."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Nenalezeno." msgstr "Nenalezeno."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Metoda \"{method}\" není povolena." msgstr "Metoda \"{method}\" není povolena."
@ -101,6 +102,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "Nelze vyhovět požadavku v hlavičce Accept." msgstr "Nelze vyhovět požadavku v hlavičce Accept."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Nepodporovaný media type \"{media_type}\" v požadavku." msgstr "Nepodporovaný media type \"{media_type}\" v požadavku."
@ -108,209 +110,238 @@ msgstr "Nepodporovaný media type \"{media_type}\" v požadavku."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Požadavek byl limitován kvůli omezení počtu požadavků za časovou periodu." msgstr "Požadavek byl limitován kvůli omezení počtu požadavků za časovou periodu."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Toto pole je vyžadováno." msgstr "Toto pole je vyžadováno."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Toto pole nesmí být prázdné (null)." msgstr "Toto pole nesmí být prázdné (null)."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" nelze použít jako typ boolean." msgstr "\"{input}\" nelze použít jako typ boolean."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "Toto pole nesmí být prázdné." msgstr "Toto pole nesmí být prázdné."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Zkontrolujte, že toto pole není delší než {max_length} znaků." msgstr "Zkontrolujte, že toto pole není delší než {max_length} znaků."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Zkontrolujte, že toto pole obsahuje alespoň {min_length} znaků." msgstr "Zkontrolujte, že toto pole obsahuje alespoň {min_length} znaků."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Vložte platnou e-mailovou adresu." msgstr "Vložte platnou e-mailovou adresu."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Hodnota v tomto poli neodpovídá požadovanému formátu." msgstr "Hodnota v tomto poli neodpovídá požadovanému formátu."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Vložte platnou \"zkrácenou formu\" obsahující pouze malá písmena, čísla, spojovník nebo podtržítko." msgstr "Vložte platnou \"zkrácenou formu\" obsahující pouze malá písmena, čísla, spojovník nebo podtržítko."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Vložte platný odkaz." msgstr "Vložte platný odkaz."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" není platné UUID." msgstr "\"{value}\" není platné UUID."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Je vyžadováno celé číslo." msgstr "Je vyžadováno celé číslo."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Zkontrolujte, že hodnota je menší nebo rovna {max_value}." msgstr "Zkontrolujte, že hodnota je menší nebo rovna {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Zkontrolujte, že hodnota je větší nebo rovna {min_value}." msgstr "Zkontrolujte, že hodnota je větší nebo rovna {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Řetězec je příliš dlouhý." msgstr "Řetězec je příliš dlouhý."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Je vyžadováno číslo." msgstr "Je vyžadováno číslo."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Zkontrolujte, že číslo neobsahuje více než {max_digits} čislic." msgstr "Zkontrolujte, že číslo neobsahuje více než {max_digits} čislic."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Zkontrolujte, že číslo nemá více než {max_decimal_places} desetinných míst." msgstr "Zkontrolujte, že číslo nemá více než {max_decimal_places} desetinných míst."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Zkontrolujte, že číslo neobsahuje více než {max_whole_digits} čislic před desetinnou čárkou." msgstr "Zkontrolujte, že číslo neobsahuje více než {max_whole_digits} čislic před desetinnou čárkou."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Chybný formát data a času. Použijte jeden z těchto formátů: {format}." msgstr "Chybný formát data a času. Použijte jeden z těchto formátů: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Bylo zadáno pouze datum bez času." msgstr "Bylo zadáno pouze datum bez času."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Chybný formát data. Použijte jeden z těchto formátů: {format}." msgstr "Chybný formát data. Použijte jeden z těchto formátů: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Bylo zadáno datum a čas, místo samotného data." msgstr "Bylo zadáno datum a čas, místo samotného data."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Chybný formát času. Použijte jeden z těchto formátů: {format}." msgstr "Chybný formát času. Použijte jeden z těchto formátů: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" není platnou možností." msgstr "\"{input}\" není platnou možností."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Byl očekáván seznam položek ale nalezen \"{input_type}\"." msgstr "Byl očekáván seznam položek ale nalezen \"{input_type}\"."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Nebyl zaslán žádný soubor." msgstr "Nebyl zaslán žádný soubor."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "Zaslaná data neobsahují soubor. Zkontrolujte typ kódování ve formuláři." msgstr "Zaslaná data neobsahují soubor. Zkontrolujte typ kódování ve formuláři."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "Nebylo možné zjistit jméno souboru." msgstr "Nebylo možné zjistit jméno souboru."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "Zaslaný soubor je prázdný." msgstr "Zaslaný soubor je prázdný."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Zajistěte, aby jméno souboru obsahovalo maximálně {max_length} znaků (teď má {length} znaků)." msgstr "Zajistěte, aby jméno souboru obsahovalo maximálně {max_length} znaků (teď má {length} znaků)."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Nahrajte platný obrázek. Nahraný soubor buď není obrázkem nebo je poškozen." msgstr "Nahrajte platný obrázek. Nahraný soubor buď není obrázkem nebo je poškozen."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Byl očekáván slovník položek ale nalezen \"{input_type}\"." msgstr "Byl očekáván slovník položek ale nalezen \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Chybné čislo stránky \"{page_number}\": {message}." msgstr "Chybné čislo stránky \"{page_number}\": {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Chybný kurzor." msgstr "Chybný kurzor."
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Chybný primární klíč \"{pk_value}\" - objekt neexistuje." msgstr "Chybný primární klíč \"{pk_value}\" - objekt neexistuje."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Chybný typ. Byl přijat typ {data_type} místo hodnoty primárního klíče." msgstr "Chybný typ. Byl přijat typ {data_type} místo hodnoty primárního klíče."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Chybný odkaz - nebyla nalezena žádní shoda." msgstr "Chybný odkaz - nebyla nalezena žádní shoda."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Chybný odkaz - byla nalezena neplatná shoda." msgstr "Chybný odkaz - byla nalezena neplatná shoda."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Chybný odkaz - objekt neexistuje." msgstr "Chybný odkaz - objekt neexistuje."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Chybný typ. Byl přijat typ {data_type} místo očekávaného odkazu." msgstr "Chybný typ. Byl přijat typ {data_type} místo očekávaného odkazu."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Objekt s {slug_name}={value} neexistuje." msgstr "Objekt s {slug_name}={value} neexistuje."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Chybná hodnota." msgstr "Chybná hodnota."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Chybná data. Byl přijat typ {datatype} místo očekávaného slovníku." msgstr "Chybná data. Byl přijat typ {datatype} místo očekávaného slovníku."
@ -331,18 +362,22 @@ msgid "This field must be unique."
msgstr "Tato položka musí být unikátní." msgstr "Tato položka musí být unikátní."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "Položka {field_names} musí tvořit unikátní množinu." msgstr "Položka {field_names} musí tvořit unikátní množinu."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "Tato položka musí být pro datum \"{date_field}\" unikátní." msgstr "Tato položka musí být pro datum \"{date_field}\" unikátní."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "Tato položka musí být pro měsíc \"{date_field}\" unikátní." msgstr "Tato položka musí být pro měsíc \"{date_field}\" unikátní."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "Tato položka musí být pro rok \"{date_field}\" unikátní." msgstr "Tato položka musí být pro rok \"{date_field}\" unikátní."
@ -362,6 +397,6 @@ msgstr "Chybné číslo verze v hostname."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Chybné čislo verze v URL parametru." msgstr "Chybné čislo verze v URL parametru."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -8,9 +8,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Danish (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/da/)\n" "Language-Team: Danish (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/da/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -18,40 +18,40 @@ msgstr ""
"Language: da\n" "Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Ugyldig basic header. Ingen legitimation angivet." msgstr "Ugyldig basic header. Ingen legitimation angivet."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Ugyldig basic header. Legitimationsstrenge må ikke indeholde mellemrum." msgstr "Ugyldig basic header. Legitimationsstrenge må ikke indeholde mellemrum."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Ugyldig basic header. Legitimationen er ikke base64 encoded på korrekt vis." msgstr "Ugyldig basic header. Legitimationen er ikke base64 encoded på korrekt vis."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Ugyldigt brugernavn/kodeord." msgstr "Ugyldigt brugernavn/kodeord."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Inaktiv eller slettet bruger." msgstr "Inaktiv eller slettet bruger."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Ugyldig token header." msgstr "Ugyldig token header."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Ugyldig token header. Token-strenge må ikke indeholde mellemrum." msgstr "Ugyldig token header. Token-strenge må ikke indeholde mellemrum."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Ugyldigt token." msgstr "Ugyldigt token."
@ -87,11 +87,12 @@ msgstr "Legitimation til autentificering blev ikke angivet."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "Du har ikke lov til at udføre denne handling." msgstr "Du har ikke lov til at udføre denne handling."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Ikke fundet." msgstr "Ikke fundet."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Metoden \"{method}\" er ikke tilladt." msgstr "Metoden \"{method}\" er ikke tilladt."
@ -100,6 +101,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "Kunne ikke efterkomme forespørgslens Accept header." msgstr "Kunne ikke efterkomme forespørgslens Accept header."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Forespørgslens media type, \"{media_type}\", er ikke understøttet." msgstr "Forespørgslens media type, \"{media_type}\", er ikke understøttet."
@ -107,209 +109,238 @@ msgstr "Forespørgslens media type, \"{media_type}\", er ikke understøttet."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Forespørgslen blev neddroslet." msgstr "Forespørgslen blev neddroslet."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Dette felt er påkrævet." msgstr "Dette felt er påkrævet."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Dette felt må ikke være null." msgstr "Dette felt må ikke være null."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" er ikke en tilladt boolsk værdi." msgstr "\"{input}\" er ikke en tilladt boolsk værdi."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "Dette felt må ikke være tomt." msgstr "Dette felt må ikke være tomt."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Tjek at dette felt ikke indeholder flere end {max_length} tegn." msgstr "Tjek at dette felt ikke indeholder flere end {max_length} tegn."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Tjek at dette felt indeholder mindst {min_length} tegn." msgstr "Tjek at dette felt indeholder mindst {min_length} tegn."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Angiv en gyldig e-mailadresse." msgstr "Angiv en gyldig e-mailadresse."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Denne værdi passer ikke med det påkrævede mønster." msgstr "Denne værdi passer ikke med det påkrævede mønster."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Indtast en gyldig \"slug\", bestående af bogstaver, tal, bund- og bindestreger." msgstr "Indtast en gyldig \"slug\", bestående af bogstaver, tal, bund- og bindestreger."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Indtast en gyldig URL." msgstr "Indtast en gyldig URL."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" er ikke et gyldigt UUID." msgstr "\"{value}\" er ikke et gyldigt UUID."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Et gyldigt heltal er påkrævet." msgstr "Et gyldigt heltal er påkrævet."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Tjek at værdien er mindre end eller lig med {max_value}." msgstr "Tjek at værdien er mindre end eller lig med {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Tjek at værdien er større end eller lig med {min_value}." msgstr "Tjek at værdien er større end eller lig med {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Strengværdien er for stor." msgstr "Strengværdien er for stor."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Et gyldigt tal er påkrævet." msgstr "Et gyldigt tal er påkrævet."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Tjek at der ikke er flere end {max_digits} cifre i alt." msgstr "Tjek at der ikke er flere end {max_digits} cifre i alt."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Tjek at der ikke er flere end {max_decimal_places} cifre efter kommaet." msgstr "Tjek at der ikke er flere end {max_decimal_places} cifre efter kommaet."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Tjek at der ikke er flere end {max_whole_digits} cifre før kommaet." msgstr "Tjek at der ikke er flere end {max_whole_digits} cifre før kommaet."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Datotid har et forkert format. Brug i stedet et af disse formater: {format}." msgstr "Datotid har et forkert format. Brug i stedet et af disse formater: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Forventede en datotid, men fik en dato." msgstr "Forventede en datotid, men fik en dato."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Dato har et forkert format. Brug i stedet et af disse formater: {format}." msgstr "Dato har et forkert format. Brug i stedet et af disse formater: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Forventede en dato men fik en datotid." msgstr "Forventede en dato men fik en datotid."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Klokkeslæt har forkert format. Brug i stedet et af disse formater: {format}. " msgstr "Klokkeslæt har forkert format. Brug i stedet et af disse formater: {format}. "
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" er ikke et gyldigt valg." msgstr "\"{input}\" er ikke et gyldigt valg."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Forventede en liste, men fik noget af typen \"{input_type}\"." msgstr "Forventede en liste, men fik noget af typen \"{input_type}\"."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Ingen medsendt fil." msgstr "Ingen medsendt fil."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "Det medsendte data var ikke en fil. Tjek typen af indkodning på formularen." msgstr "Det medsendte data var ikke en fil. Tjek typen af indkodning på formularen."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "Filnavnet kunne ikke afgøres." msgstr "Filnavnet kunne ikke afgøres."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "Den medsendte fil er tom." msgstr "Den medsendte fil er tom."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Sørg for at filnavnet er højst {max_length} langt (det er {length})." msgstr "Sørg for at filnavnet er højst {max_length} langt (det er {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Medsend et gyldigt billede. Den medsendte fil var enten ikke et billede eller billedfilen var ødelagt." msgstr "Medsend et gyldigt billede. Den medsendte fil var enten ikke et billede eller billedfilen var ødelagt."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Forventede en dictionary, men fik noget af typen \"{input_type}\"." msgstr "Forventede en dictionary, men fik noget af typen \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Ugyldig side \"{page_number}\": {message}." msgstr "Ugyldig side \"{page_number}\": {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Ugyldig cursor" msgstr "Ugyldig cursor"
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Ugyldig primærnøgle \"{pk_value}\" - objektet findes ikke." msgstr "Ugyldig primærnøgle \"{pk_value}\" - objektet findes ikke."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Ugyldig type. Forventet værdi er primærnøgle, fik {data_type}." msgstr "Ugyldig type. Forventet værdi er primærnøgle, fik {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Ugyldigt hyperlink - intet URL match." msgstr "Ugyldigt hyperlink - intet URL match."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Ugyldigt hyperlink - forkert URL match." msgstr "Ugyldigt hyperlink - forkert URL match."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Ugyldigt hyperlink - objektet findes ikke." msgstr "Ugyldigt hyperlink - objektet findes ikke."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Forkert type. Forventede en URL-streng, fik {data_type}." msgstr "Forkert type. Forventede en URL-streng, fik {data_type}."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Object med {slug_name}={value} findes ikke." msgstr "Object med {slug_name}={value} findes ikke."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Ugyldig værdi." msgstr "Ugyldig værdi."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Ugyldig data. Forventede en dictionary, men fik {datatype}." msgstr "Ugyldig data. Forventede en dictionary, men fik {datatype}."
@ -330,18 +361,22 @@ msgid "This field must be unique."
msgstr "Dette felt skal være unikt." msgstr "Dette felt skal være unikt."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "Felterne {field_names} skal udgøre et unikt sæt." msgstr "Felterne {field_names} skal udgøre et unikt sæt."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "Dette felt skal være unikt for \"{date_field}\"-datoen." msgstr "Dette felt skal være unikt for \"{date_field}\"-datoen."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "Dette felt skal være unikt for \"{date_field}\"-måneden." msgstr "Dette felt skal være unikt for \"{date_field}\"-måneden."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "Dette felt skal være unikt for \"{date_field}\"-året." msgstr "Dette felt skal være unikt for \"{date_field}\"-året."
@ -361,6 +396,6 @@ msgstr "Ugyldig version i hostname."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Ugyldig version i forespørgselsparameteren." msgstr "Ugyldig version i forespørgselsparameteren."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "Adgang nægtet." msgstr "Adgang nægtet."

View File

@ -11,9 +11,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: German (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/de/)\n" "Language-Team: German (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/de/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -21,40 +21,40 @@ msgstr ""
"Language: de\n" "Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Ungültiger basic header. Keine Zugangsdaten angegeben." msgstr "Ungültiger basic header. Keine Zugangsdaten angegeben."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Ungültiger basic header. Zugangsdaten sollen keine Leerzeichen enthalten." msgstr "Ungültiger basic header. Zugangsdaten sollen keine Leerzeichen enthalten."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Ungültiger basic header. Zugangsdaten sind nicht korrekt mit base64 kodiert." msgstr "Ungültiger basic header. Zugangsdaten sind nicht korrekt mit base64 kodiert."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Ungültiger Benutzername/Passwort" msgstr "Ungültiger Benutzername/Passwort"
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Benutzer inaktiv oder gelöscht." msgstr "Benutzer inaktiv oder gelöscht."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Ungültiger token header. Keine Zugangsdaten angegeben." msgstr "Ungültiger token header. Keine Zugangsdaten angegeben."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Ungültiger token header. Zugangsdaten sollen keine Leerzeichen enthalten." msgstr "Ungültiger token header. Zugangsdaten sollen keine Leerzeichen enthalten."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Ungültiges Token" msgstr "Ungültiges Token"
@ -90,11 +90,12 @@ msgstr "Anmeldedaten fehlen."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "Sie sind nicht berechtigt, diese Aktion durchzuführen." msgstr "Sie sind nicht berechtigt, diese Aktion durchzuführen."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Nicht gefunden." msgstr "Nicht gefunden."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Methode \"{method}\" nicht erlaubt." msgstr "Methode \"{method}\" nicht erlaubt."
@ -103,6 +104,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "Kann die Accept Kopfzeile der Anfrage nicht erfüllen." msgstr "Kann die Accept Kopfzeile der Anfrage nicht erfüllen."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Nicht unterstützter Medientyp \"{media_type}\" in der Anfrage." msgstr "Nicht unterstützter Medientyp \"{media_type}\" in der Anfrage."
@ -110,209 +112,238 @@ msgstr "Nicht unterstützter Medientyp \"{media_type}\" in der Anfrage."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Die Anfrage wurde gedrosselt." msgstr "Die Anfrage wurde gedrosselt."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Dieses Feld ist erforderlich." msgstr "Dieses Feld ist erforderlich."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Dieses Feld darf nicht Null sein." msgstr "Dieses Feld darf nicht Null sein."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" ist kein gültiger Wahrheitswert." msgstr "\"{input}\" ist kein gültiger Wahrheitswert."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "Dieses Feld darf nicht leer sein." msgstr "Dieses Feld darf nicht leer sein."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Stelle sicher, dass dieses Feld nicht mehr als {max_length} Zeichen lang ist." msgstr "Stelle sicher, dass dieses Feld nicht mehr als {max_length} Zeichen lang ist."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Stelle sicher, dass dieses Feld mindestens {min_length} Zeichen lang ist." msgstr "Stelle sicher, dass dieses Feld mindestens {min_length} Zeichen lang ist."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Gib eine gültige E-Mail Adresse an." msgstr "Gib eine gültige E-Mail Adresse an."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Dieser Wert passt nicht zu dem erforderlichen Muster." msgstr "Dieser Wert passt nicht zu dem erforderlichen Muster."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Gib ein gültiges \"slug\" aus Buchstaben, Ziffern, Unterstrichen und Minuszeichen ein." msgstr "Gib ein gültiges \"slug\" aus Buchstaben, Ziffern, Unterstrichen und Minuszeichen ein."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Gib eine gültige URL ein." msgstr "Gib eine gültige URL ein."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" ist keine gültige UUID." msgstr "\"{value}\" ist keine gültige UUID."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Eine gültige Ganzzahl ist erforderlich." msgstr "Eine gültige Ganzzahl ist erforderlich."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Stelle sicher, dass dieser Wert kleiner oder gleich {max_value} ist." msgstr "Stelle sicher, dass dieser Wert kleiner oder gleich {max_value} ist."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Stelle sicher, dass dieser Wert größer oder gleich {min_value} ist." msgstr "Stelle sicher, dass dieser Wert größer oder gleich {min_value} ist."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Zeichenkette zu lang." msgstr "Zeichenkette zu lang."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Eine gültige Zahl ist erforderlich." msgstr "Eine gültige Zahl ist erforderlich."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Stelle sicher, dass es insgesamt nicht mehr als {max_digits} Ziffern lang ist." msgstr "Stelle sicher, dass es insgesamt nicht mehr als {max_digits} Ziffern lang ist."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Stelle sicher, dass es nicht mehr als {max_decimal_places} Nachkommastellen lang ist." msgstr "Stelle sicher, dass es nicht mehr als {max_decimal_places} Nachkommastellen lang ist."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Stelle sicher, dass es nicht mehr als {max_whole_digits} Stellen vor dem Komma lang ist." msgstr "Stelle sicher, dass es nicht mehr als {max_whole_digits} Stellen vor dem Komma lang ist."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Datums- und Zeitangabe hat das falsche Format. Nutze stattdessen eines dieser Formate: {format}." msgstr "Datums- und Zeitangabe hat das falsche Format. Nutze stattdessen eines dieser Formate: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Erwarte eine Datums- und Zeitangabe, erhielt aber ein Datum." msgstr "Erwarte eine Datums- und Zeitangabe, erhielt aber ein Datum."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Datum hat das falsche Format. Nutze stattdessen eines dieser Formate: {format}." msgstr "Datum hat das falsche Format. Nutze stattdessen eines dieser Formate: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Erwarte ein Datum, erhielt aber eine Datums- und Zeitangabe." msgstr "Erwarte ein Datum, erhielt aber eine Datums- und Zeitangabe."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Zeitangabe hat das falsche Format. Nutze stattdessen eines dieser Formate: {format}." msgstr "Zeitangabe hat das falsche Format. Nutze stattdessen eines dieser Formate: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "Laufzeit hat das falsche Format. Benutze stattdessen eines dieser Formate {format}." msgstr "Laufzeit hat das falsche Format. Benutze stattdessen eines dieser Formate {format}."
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" ist keine gültige Option." msgstr "\"{input}\" ist keine gültige Option."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Erwarte eine Liste von Elementen, erhielt aber den Typ \"{input_type}\"." msgstr "Erwarte eine Liste von Elementen, erhielt aber den Typ \"{input_type}\"."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Es wurde keine Datei übermittelt." msgstr "Es wurde keine Datei übermittelt."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "Die übermittelten Daten stellen keine Datei dar. Prüfe den Kodierungstyp im Formular." msgstr "Die übermittelten Daten stellen keine Datei dar. Prüfe den Kodierungstyp im Formular."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "Der Dateiname konnte nicht ermittelt werden." msgstr "Der Dateiname konnte nicht ermittelt werden."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "Die übermittelte Datei ist leer." msgstr "Die übermittelte Datei ist leer."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Stelle sicher, dass dieser Dateiname höchstens {max_length} Zeichen lang ist (er hat {length})." msgstr "Stelle sicher, dass dieser Dateiname höchstens {max_length} Zeichen lang ist (er hat {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Lade ein gültiges Bild hoch. Die hochgeladene Datei ist entweder kein Bild oder ein beschädigtes Bild." msgstr "Lade ein gültiges Bild hoch. Die hochgeladene Datei ist entweder kein Bild oder ein beschädigtes Bild."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Erwarte ein Dictionary mit Elementen, erhielt aber den Typ \"{input_type}\"." msgstr "Erwarte ein Dictionary mit Elementen, erhielt aber den Typ \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Ungültige Seite \"{page_number}\": {message}." msgstr "Ungültige Seite \"{page_number}\": {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Ungültiger Zeiger" msgstr "Ungültiger Zeiger"
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Ungültiger pk \"{pk_value}\" - Object existiert nicht." msgstr "Ungültiger pk \"{pk_value}\" - Object existiert nicht."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Falscher Typ. Erwarte pk Wert, erhielt aber {data_type}." msgstr "Falscher Typ. Erwarte pk Wert, erhielt aber {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Ungültiger Hyperlink - entspricht keiner URL." msgstr "Ungültiger Hyperlink - entspricht keiner URL."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Ungültiger Hyperlink - URL stimmt nicht überein." msgstr "Ungültiger Hyperlink - URL stimmt nicht überein."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Ungültiger Hyperlink - Objekt existiert nicht." msgstr "Ungültiger Hyperlink - Objekt existiert nicht."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Falscher Typ. Erwarte URL Zeichenkette, erhielt aber {data_type}." msgstr "Falscher Typ. Erwarte URL Zeichenkette, erhielt aber {data_type}."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Objekt mit {slug_name}={value} existiert nicht." msgstr "Objekt mit {slug_name}={value} existiert nicht."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Ungültiger Wert." msgstr "Ungültiger Wert."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Ungültige Daten. Dictionary erwartet, aber {datatype} erhalten." msgstr "Ungültige Daten. Dictionary erwartet, aber {datatype} erhalten."
@ -333,18 +364,22 @@ msgid "This field must be unique."
msgstr "Dieses Feld muss eindeutig sein." msgstr "Dieses Feld muss eindeutig sein."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "Die Felder {field_names} müssen eine eindeutige Menge bilden." msgstr "Die Felder {field_names} müssen eine eindeutige Menge bilden."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "Dieses Feld muss bezüglich des \"{date_field}\" Datums eindeutig sein." msgstr "Dieses Feld muss bezüglich des \"{date_field}\" Datums eindeutig sein."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "Dieses Feld muss bezüglich des \"{date_field}\" Monats eindeutig sein." msgstr "Dieses Feld muss bezüglich des \"{date_field}\" Monats eindeutig sein."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "Dieses Feld muss bezüglich des \"{date_field}\" Jahrs eindeutig sein." msgstr "Dieses Feld muss bezüglich des \"{date_field}\" Jahrs eindeutig sein."
@ -364,6 +399,6 @@ msgstr "Ungültige Version im Hostname."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Ungültige Version im Anfrageparameter." msgstr "Ungültige Version im Anfrageparameter."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "Zugriff verweigert." msgstr "Zugriff verweigert."

View File

@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: English (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/en/)\n" "Language-Team: English (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/en/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -17,40 +17,40 @@ msgstr ""
"Language: en\n" "Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Invalid basic header. No credentials provided." msgstr "Invalid basic header. No credentials provided."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Invalid basic header. Credentials string should not contain spaces." msgstr "Invalid basic header. Credentials string should not contain spaces."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Invalid basic header. Credentials not correctly base64 encoded." msgstr "Invalid basic header. Credentials not correctly base64 encoded."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Invalid username/password." msgstr "Invalid username/password."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "User inactive or deleted." msgstr "User inactive or deleted."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Invalid token header. No credentials provided." msgstr "Invalid token header. No credentials provided."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Invalid token header. Token string should not contain spaces." msgstr "Invalid token header. Token string should not contain spaces."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "Invalid token header. Token string should not contain invalid characters." msgstr "Invalid token header. Token string should not contain invalid characters."
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Invalid token." msgstr "Invalid token."
@ -86,11 +86,12 @@ msgstr "Authentication credentials were not provided."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "You do not have permission to perform this action." msgstr "You do not have permission to perform this action."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Not found." msgstr "Not found."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Method \"{method}\" not allowed." msgstr "Method \"{method}\" not allowed."
@ -99,6 +100,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "Could not satisfy the request Accept header." msgstr "Could not satisfy the request Accept header."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Unsupported media type \"{media_type}\" in request." msgstr "Unsupported media type \"{media_type}\" in request."
@ -106,209 +108,238 @@ msgstr "Unsupported media type \"{media_type}\" in request."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Request was throttled." msgstr "Request was throttled."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "This field is required." msgstr "This field is required."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "This field may not be null." msgstr "This field may not be null."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" is not a valid boolean." msgstr "\"{input}\" is not a valid boolean."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "This field may not be blank." msgstr "This field may not be blank."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Ensure this field has no more than {max_length} characters." msgstr "Ensure this field has no more than {max_length} characters."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Ensure this field has at least {min_length} characters." msgstr "Ensure this field has at least {min_length} characters."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Enter a valid email address." msgstr "Enter a valid email address."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "This value does not match the required pattern." msgstr "This value does not match the required pattern."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Enter a valid \"slug\" consisting of letters, numbers, underscores or hyphens." msgstr "Enter a valid \"slug\" consisting of letters, numbers, underscores or hyphens."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Enter a valid URL." msgstr "Enter a valid URL."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" is not a valid UUID." msgstr "\"{value}\" is not a valid UUID."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "Enter a valid IPv4 or IPv6 address." msgstr "Enter a valid IPv4 or IPv6 address."
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "A valid integer is required." msgstr "A valid integer is required."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Ensure this value is less than or equal to {max_value}." msgstr "Ensure this value is less than or equal to {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Ensure this value is greater than or equal to {min_value}." msgstr "Ensure this value is greater than or equal to {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "String value too large." msgstr "String value too large."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "A valid number is required." msgstr "A valid number is required."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Ensure that there are no more than {max_digits} digits in total." msgstr "Ensure that there are no more than {max_digits} digits in total."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Ensure that there are no more than {max_decimal_places} decimal places." msgstr "Ensure that there are no more than {max_decimal_places} decimal places."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Ensure that there are no more than {max_whole_digits} digits before the decimal point." msgstr "Ensure that there are no more than {max_whole_digits} digits before the decimal point."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Datetime has wrong format. Use one of these formats instead: {format}." msgstr "Datetime has wrong format. Use one of these formats instead: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Expected a datetime but got a date." msgstr "Expected a datetime but got a date."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Date has wrong format. Use one of these formats instead: {format}." msgstr "Date has wrong format. Use one of these formats instead: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Expected a date but got a datetime." msgstr "Expected a date but got a datetime."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Time has wrong format. Use one of these formats instead: {format}." msgstr "Time has wrong format. Use one of these formats instead: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "Duration has wrong format. Use one of these formats instead: {format}." msgstr "Duration has wrong format. Use one of these formats instead: {format}."
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" is not a valid choice." msgstr "\"{input}\" is not a valid choice."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr "More than {count} items..."
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Expected a list of items but got type \"{input_type}\"." msgstr "Expected a list of items but got type \"{input_type}\"."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "This selection may not be empty." msgstr "This selection may not be empty."
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "\"{input}\" is not a valid path choice." msgstr "\"{input}\" is not a valid path choice."
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "No file was submitted." msgstr "No file was submitted."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "The submitted data was not a file. Check the encoding type on the form." msgstr "The submitted data was not a file. Check the encoding type on the form."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "No filename could be determined." msgstr "No filename could be determined."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "The submitted file is empty." msgstr "The submitted file is empty."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Ensure this filename has at most {max_length} characters (it has {length})." msgstr "Ensure this filename has at most {max_length} characters (it has {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Upload a valid image. The file you uploaded was either not an image or a corrupted image." msgstr "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "This list may not be empty." msgstr "This list may not be empty."
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Expected a dictionary of items but got type \"{input_type}\"." msgstr "Expected a dictionary of items but got type \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Invalid page \"{page_number}\": {message}." msgstr "Invalid page \"{page_number}\": {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Invalid cursor" msgstr "Invalid cursor"
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Invalid pk \"{pk_value}\" - object does not exist." msgstr "Invalid pk \"{pk_value}\" - object does not exist."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Incorrect type. Expected pk value, received {data_type}." msgstr "Incorrect type. Expected pk value, received {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Invalid hyperlink - No URL match." msgstr "Invalid hyperlink - No URL match."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Invalid hyperlink - Incorrect URL match." msgstr "Invalid hyperlink - Incorrect URL match."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Invalid hyperlink - Object does not exist." msgstr "Invalid hyperlink - Object does not exist."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Incorrect type. Expected URL string, received {data_type}." msgstr "Incorrect type. Expected URL string, received {data_type}."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Object with {slug_name}={value} does not exist." msgstr "Object with {slug_name}={value} does not exist."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Invalid value." msgstr "Invalid value."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Invalid data. Expected a dictionary, but got {datatype}." msgstr "Invalid data. Expected a dictionary, but got {datatype}."
@ -329,18 +360,22 @@ msgid "This field must be unique."
msgstr "This field must be unique." msgstr "This field must be unique."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "The fields {field_names} must make a unique set." msgstr "The fields {field_names} must make a unique set."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "This field must be unique for the \"{date_field}\" date." msgstr "This field must be unique for the \"{date_field}\" date."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "This field must be unique for the \"{date_field}\" month." msgstr "This field must be unique for the \"{date_field}\" month."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "This field must be unique for the \"{date_field}\" year." msgstr "This field must be unique for the \"{date_field}\" year."
@ -360,6 +395,6 @@ msgstr "Invalid version in hostname."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Invalid version in query parameter." msgstr "Invalid version in query parameter."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "Permission denied." msgstr "Permission denied."

View File

@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: English (Canada) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/en_CA/)\n" "Language-Team: English (Canada) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/en_CA/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -17,40 +17,40 @@ msgstr ""
"Language: en_CA\n" "Language: en_CA\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "" msgstr ""
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "" msgstr ""
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "" msgstr ""
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "" msgstr ""
@ -86,11 +86,12 @@ msgstr ""
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "" msgstr ""
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "" msgstr ""
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "" msgstr ""
@ -99,6 +100,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "" msgstr ""
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "" msgstr ""
@ -106,209 +108,238 @@ msgstr ""
msgid "Request was throttled." msgid "Request was throttled."
msgstr "" msgstr ""
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "" msgstr ""
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "" msgstr ""
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "" msgstr ""
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "" msgstr ""
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "" msgstr ""
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "" msgstr ""
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "" msgstr ""
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "" msgstr ""
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "" msgstr ""
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "" msgstr ""
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "" msgstr ""
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "" msgstr ""
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "" msgstr ""
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "" msgstr ""
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "" msgstr ""
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "" msgstr ""
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "" msgstr ""
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "" msgstr ""
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "" msgstr ""
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "" msgstr ""
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "" msgstr ""
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "" msgstr ""
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "" msgstr ""
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "" msgstr ""
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "" msgstr ""
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "" msgstr ""
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "" msgstr ""
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "" msgstr ""
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "" msgstr ""
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "" msgstr ""
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "" msgstr ""
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "" msgstr ""
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "" msgstr ""
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "" msgstr ""
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "" msgstr ""
@ -329,18 +360,22 @@ msgid "This field must be unique."
msgstr "" msgstr ""
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -360,6 +395,6 @@ msgstr ""
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "" msgstr ""
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,40 +17,40 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "" msgstr ""
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "" msgstr ""
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "" msgstr ""
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "" msgstr ""
@ -86,11 +86,12 @@ msgstr ""
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "" msgstr ""
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "" msgstr ""
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "" msgstr ""
@ -99,6 +100,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "" msgstr ""
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "" msgstr ""
@ -106,207 +108,236 @@ msgstr ""
msgid "Request was throttled." msgid "Request was throttled."
msgstr "" msgstr ""
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "" msgstr ""
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "" msgstr ""
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "" msgstr ""
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "" msgstr ""
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "" msgstr ""
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "" msgstr ""
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "" msgstr ""
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "" msgstr ""
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "" msgstr ""
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "" msgstr ""
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "" msgstr ""
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "" msgstr ""
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "" msgstr ""
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "" msgstr ""
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "" msgstr ""
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "Ensure that there are no more than {max_decimal_places} decimal places." msgid "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "" msgstr ""
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "" msgstr ""
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "" msgstr ""
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "" msgstr ""
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "" msgstr ""
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "" msgstr ""
#: fields.py:1214 #: fields.py:1314
msgid "The submitted data was not a file. Check the encoding type on the form." msgid "The submitted data was not a file. Check the encoding type on the form."
msgstr "" msgstr ""
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "" msgstr ""
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "" msgstr ""
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "" msgstr ""
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "" msgstr ""
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "" msgstr ""
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "" msgstr ""
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "" msgstr ""
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "" msgstr ""
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "" msgstr ""
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "" msgstr ""
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "" msgstr ""
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "" msgstr ""
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "" msgstr ""
@ -327,18 +358,22 @@ msgid "This field must be unique."
msgstr "" msgstr ""
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -358,6 +393,6 @@ msgstr ""
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "" msgstr ""
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -12,9 +12,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Spanish (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/es/)\n" "Language-Team: Spanish (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/es/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -22,40 +22,40 @@ msgstr ""
"Language: es\n" "Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Cabecera básica inválida. Las credenciales no fueron suministradas." msgstr "Cabecera básica inválida. Las credenciales no fueron suministradas."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Cabecera básica inválida. La cadena con las credenciales no debe contener espacios." msgstr "Cabecera básica inválida. La cadena con las credenciales no debe contener espacios."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Cabecera básica inválida. Las credenciales incorrectamente codificadas en base64." msgstr "Cabecera básica inválida. Las credenciales incorrectamente codificadas en base64."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Nombre de usuario/contraseña inválidos." msgstr "Nombre de usuario/contraseña inválidos."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Usuario inactivo o borrado." msgstr "Usuario inactivo o borrado."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Cabecera token inválida. Las credenciales no fueron suministradas." msgstr "Cabecera token inválida. Las credenciales no fueron suministradas."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Cabecera token inválida. La cadena token no debe contener espacios." msgstr "Cabecera token inválida. La cadena token no debe contener espacios."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "Cabecera token inválida. La cadena token no debe contener caracteres inválidos." msgstr "Cabecera token inválida. La cadena token no debe contener caracteres inválidos."
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Token inválido." msgstr "Token inválido."
@ -91,11 +91,12 @@ msgstr "Las credenciales de autenticación no se proveyeron."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "Usted no tiene permiso para realizar esta acción." msgstr "Usted no tiene permiso para realizar esta acción."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "No encontrado." msgstr "No encontrado."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Método \"{method}\" no permitido." msgstr "Método \"{method}\" no permitido."
@ -104,6 +105,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "No se ha podido satisfacer la solicitud de cabecera de Accept." msgstr "No se ha podido satisfacer la solicitud de cabecera de Accept."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Tipo de medio \"{media_type}\" incompatible en la solicitud." msgstr "Tipo de medio \"{media_type}\" incompatible en la solicitud."
@ -111,209 +113,238 @@ msgstr "Tipo de medio \"{media_type}\" incompatible en la solicitud."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Solicitud fue regulada (throttled)." msgstr "Solicitud fue regulada (throttled)."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Este campo es requerido." msgstr "Este campo es requerido."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Este campo no puede ser nulo." msgstr "Este campo no puede ser nulo."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" no es un booleano válido." msgstr "\"{input}\" no es un booleano válido."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "Este campo no puede estar en blanco." msgstr "Este campo no puede estar en blanco."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Asegúrese de que este campo no tenga más de {max_length} caracteres." msgstr "Asegúrese de que este campo no tenga más de {max_length} caracteres."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Asegúrese de que este campo tenga al menos {min_length} caracteres." msgstr "Asegúrese de que este campo tenga al menos {min_length} caracteres."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Introduzca una dirección de correo electrónico válida." msgstr "Introduzca una dirección de correo electrónico válida."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Este valor no coincide con el patrón requerido." msgstr "Este valor no coincide con el patrón requerido."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Introduzca un \"slug\" válido consistente en letras, números, guiones o guiones bajos." msgstr "Introduzca un \"slug\" válido consistente en letras, números, guiones o guiones bajos."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Introduzca una URL válida." msgstr "Introduzca una URL válida."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" no es un UUID válido." msgstr "\"{value}\" no es un UUID válido."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "Introduzca una dirección IPv4 o IPv6 válida." msgstr "Introduzca una dirección IPv4 o IPv6 válida."
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Introduzca un número entero válido." msgstr "Introduzca un número entero válido."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Asegúrese de que este valor es menor o igual a {max_value}." msgstr "Asegúrese de que este valor es menor o igual a {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Asegúrese de que este valor es mayor o igual a {min_value}." msgstr "Asegúrese de que este valor es mayor o igual a {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Cadena demasiado larga." msgstr "Cadena demasiado larga."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Se requiere un número válido." msgstr "Se requiere un número válido."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Asegúrese de que no haya más de {max_digits} dígitos en total." msgstr "Asegúrese de que no haya más de {max_digits} dígitos en total."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Asegúrese de que no haya más de {max_decimal_places} decimales." msgstr "Asegúrese de que no haya más de {max_decimal_places} decimales."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Asegúrese de que no haya más de {max_whole_digits} dígitos en la parte entera." msgstr "Asegúrese de que no haya más de {max_whole_digits} dígitos en la parte entera."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Fecha/hora con formato erróneo. Use uno de los siguientes formatos en su lugar: {format}." msgstr "Fecha/hora con formato erróneo. Use uno de los siguientes formatos en su lugar: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Se esperaba un fecha/hora en vez de una fecha." msgstr "Se esperaba un fecha/hora en vez de una fecha."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Fecha con formato erróneo. Use uno de los siguientes formatos en su lugar: {format}." msgstr "Fecha con formato erróneo. Use uno de los siguientes formatos en su lugar: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Se esperaba una fecha en vez de una fecha/hora." msgstr "Se esperaba una fecha en vez de una fecha/hora."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Hora con formato erróneo. Use uno de los siguientes formatos en su lugar: {format}." msgstr "Hora con formato erróneo. Use uno de los siguientes formatos en su lugar: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "Duración con formato erróneo. Use uno de los siguientes formatos en su lugar: {format}." msgstr "Duración con formato erróneo. Use uno de los siguientes formatos en su lugar: {format}."
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" no es una elección válida." msgstr "\"{input}\" no es una elección válida."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Se esperaba una lista de elementos en vez del tipo \"{input_type}\"." msgstr "Se esperaba una lista de elementos en vez del tipo \"{input_type}\"."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr "Esta selección no puede estar vacía."
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr "\"{input}\" no es una elección de ruta válida."
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "No se envió ningún archivo." msgstr "No se envió ningún archivo."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "La información enviada no era un archivo. Compruebe el tipo de codificación del formulario." msgstr "La información enviada no era un archivo. Compruebe el tipo de codificación del formulario."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "No se pudo determinar un nombre de archivo." msgstr "No se pudo determinar un nombre de archivo."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "El archivo enviado está vació." msgstr "El archivo enviado está vació."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Asegúrese de que el nombre de archivo no tenga más de {max_length} caracteres (tiene {length})." msgstr "Asegúrese de que el nombre de archivo no tenga más de {max_length} caracteres (tiene {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Adjunte una imagen válida. El archivo adjunto o bien no es una imagen o bien está dañado." msgstr "Adjunte una imagen válida. El archivo adjunto o bien no es una imagen o bien está dañado."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr "Esta lista no puede estar vacía."
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Se esperaba un diccionario de elementos en vez del tipo \"{input_type}\"." msgstr "Se esperaba un diccionario de elementos en vez del tipo \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Página \"{page_number}\" inválida: {message}." msgstr "Página \"{page_number}\" inválida: {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Cursor inválido" msgstr "Cursor inválido"
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Clave primaria \"{pk_value}\" inválida - objeto no existe." msgstr "Clave primaria \"{pk_value}\" inválida - objeto no existe."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Tipo incorrecto. Se esperaba valor de clave primaria y se recibió {data_type}." msgstr "Tipo incorrecto. Se esperaba valor de clave primaria y se recibió {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Hiperenlace inválido - No hay URL coincidentes." msgstr "Hiperenlace inválido - No hay URL coincidentes."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Hiperenlace inválido - Coincidencia incorrecta de la URL." msgstr "Hiperenlace inválido - Coincidencia incorrecta de la URL."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Hiperenlace inválido - Objeto no existe." msgstr "Hiperenlace inválido - Objeto no existe."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Tipo incorrecto. Se esperaba una URL y se recibió {data_type}." msgstr "Tipo incorrecto. Se esperaba una URL y se recibió {data_type}."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Objeto con {slug_name}={value} no existe." msgstr "Objeto con {slug_name}={value} no existe."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Valor inválido." msgstr "Valor inválido."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Datos inválidos. Se esperaba un diccionario pero es un {datatype}." msgstr "Datos inválidos. Se esperaba un diccionario pero es un {datatype}."
@ -334,18 +365,22 @@ msgid "This field must be unique."
msgstr "Este campo debe ser único." msgstr "Este campo debe ser único."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "Los campos {field_names} deben formar un conjunto único." msgstr "Los campos {field_names} deben formar un conjunto único."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "Este campo debe ser único para el día \"{date_field}\"." msgstr "Este campo debe ser único para el día \"{date_field}\"."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "Este campo debe ser único para el mes \"{date_field}\"." msgstr "Este campo debe ser único para el mes \"{date_field}\"."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "Este campo debe ser único para el año \"{date_field}\"." msgstr "Este campo debe ser único para el año \"{date_field}\"."
@ -365,6 +400,6 @@ msgstr "Versión inválida en el nombre de host."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Versión inválida en el parámetro de consulta." msgstr "Versión inválida en el parámetro de consulta."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "Permiso denegado." msgstr "Permiso denegado."

View File

@ -8,9 +8,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Estonian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/et/)\n" "Language-Team: Estonian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/et/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -18,40 +18,40 @@ msgstr ""
"Language: et\n" "Language: et\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Sobimatu lihtpäis. Kasutajatunnus on esitamata." msgstr "Sobimatu lihtpäis. Kasutajatunnus on esitamata."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Sobimatu lihtpäis. Kasutajatunnus ei tohi sisaldada tühikuid." msgstr "Sobimatu lihtpäis. Kasutajatunnus ei tohi sisaldada tühikuid."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Sobimatu lihtpäis. Kasutajatunnus pole korrektselt base64-kodeeritud." msgstr "Sobimatu lihtpäis. Kasutajatunnus pole korrektselt base64-kodeeritud."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Sobimatu kasutajatunnus/salasõna." msgstr "Sobimatu kasutajatunnus/salasõna."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Kasutaja on inaktiivne või kustutatud." msgstr "Kasutaja on inaktiivne või kustutatud."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Sobimatu lubakaardi päis. Kasutajatunnus on esitamata." msgstr "Sobimatu lubakaardi päis. Kasutajatunnus on esitamata."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Sobimatu lubakaardi päis. Loa sõne ei tohi sisaldada tühikuid." msgstr "Sobimatu lubakaardi päis. Loa sõne ei tohi sisaldada tühikuid."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Sobimatu lubakaart." msgstr "Sobimatu lubakaart."
@ -87,11 +87,12 @@ msgstr "Autentimistunnus on esitamata."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "Teil puuduvad piisavad õigused selle tegevuse teostamiseks." msgstr "Teil puuduvad piisavad õigused selle tegevuse teostamiseks."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Ei leidnud." msgstr "Ei leidnud."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Meetod \"{method}\" pole lubatud." msgstr "Meetod \"{method}\" pole lubatud."
@ -100,6 +101,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "Päringu Accept-päist ei suutnud täita." msgstr "Päringu Accept-päist ei suutnud täita."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Meedia tüüpi {media_type} päringus ei toetata." msgstr "Meedia tüüpi {media_type} päringus ei toetata."
@ -107,209 +109,238 @@ msgstr "Meedia tüüpi {media_type} päringus ei toetata."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Liiga palju päringuid." msgstr "Liiga palju päringuid."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Väli on kohustuslik." msgstr "Väli on kohustuslik."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Väli ei tohi olla tühi." msgstr "Väli ei tohi olla tühi."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" pole kehtiv kahendarv." msgstr "\"{input}\" pole kehtiv kahendarv."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "See väli ei tohi olla tühi." msgstr "See väli ei tohi olla tühi."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Veendu, et see väli poleks pikem kui {max_length} tähemärki." msgstr "Veendu, et see väli poleks pikem kui {max_length} tähemärki."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Veendu, et see väli oleks vähemalt {min_length} tähemärki pikk." msgstr "Veendu, et see väli oleks vähemalt {min_length} tähemärki pikk."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Sisestage kehtiv e-posti aadress." msgstr "Sisestage kehtiv e-posti aadress."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Väärtus ei ühti etteantud mustriga." msgstr "Väärtus ei ühti etteantud mustriga."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Sisestage kehtiv \"slug\", mis koosneks tähtedest, numbritest, ala- või sidekriipsudest." msgstr "Sisestage kehtiv \"slug\", mis koosneks tähtedest, numbritest, ala- või sidekriipsudest."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Sisestage korrektne URL." msgstr "Sisestage korrektne URL."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" pole kehtiv UUID." msgstr "\"{value}\" pole kehtiv UUID."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Sisendiks peab olema täisarv." msgstr "Sisendiks peab olema täisarv."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Veenduge, et väärtus on väiksem kui või võrdne väärtusega {max_value}. " msgstr "Veenduge, et väärtus on väiksem kui või võrdne väärtusega {max_value}. "
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Veenduge, et väärtus on suurem kui või võrdne väärtusega {min_value}." msgstr "Veenduge, et väärtus on suurem kui või võrdne väärtusega {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Sõne on liiga pikk." msgstr "Sõne on liiga pikk."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Sisendiks peab olema arv." msgstr "Sisendiks peab olema arv."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Veenduge, et kokku pole rohkem kui {max_digits} numbit." msgstr "Veenduge, et kokku pole rohkem kui {max_digits} numbit."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Veenduge, et komakohti pole rohkem kui {max_decimal_places}. " msgstr "Veenduge, et komakohti pole rohkem kui {max_decimal_places}. "
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Veenduge, et täiskohti poleks rohkem kui {max_whole_digits}." msgstr "Veenduge, et täiskohti poleks rohkem kui {max_whole_digits}."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Valesti formaaditud kuupäev-kellaaeg. Kasutage mõnda neist: {format}." msgstr "Valesti formaaditud kuupäev-kellaaeg. Kasutage mõnda neist: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Ootasin kuupäev-kellaaeg andmetüüpi, kuid sain hoopis kuupäeva." msgstr "Ootasin kuupäev-kellaaeg andmetüüpi, kuid sain hoopis kuupäeva."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Valesti formaaditud kuupäev. Kasutage mõnda neist: {format}." msgstr "Valesti formaaditud kuupäev. Kasutage mõnda neist: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Ootasin kuupäeva andmetüüpi, kuid sain hoopis kuupäev-kellaaja." msgstr "Ootasin kuupäeva andmetüüpi, kuid sain hoopis kuupäev-kellaaja."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Valesti formaaditud kellaaeg. Kasutage mõnda neist: {format}." msgstr "Valesti formaaditud kellaaeg. Kasutage mõnda neist: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" on sobimatu valik." msgstr "\"{input}\" on sobimatu valik."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Ootasin kirjete järjendit, kuid sain \"{input_type}\" - tüübi." msgstr "Ootasin kirjete järjendit, kuid sain \"{input_type}\" - tüübi."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Ühtegi faili ei esitatud." msgstr "Ühtegi faili ei esitatud."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "Esitatud andmetes ei olnud faili. Kontrollige vormi kodeeringut." msgstr "Esitatud andmetes ei olnud faili. Kontrollige vormi kodeeringut."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "Ei suutnud tuvastada failinime." msgstr "Ei suutnud tuvastada failinime."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "Esitatud fail oli tühi." msgstr "Esitatud fail oli tühi."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Veenduge, et failinimi oleks maksimaalselt {max_length} tähemärki pikk (praegu on {length})." msgstr "Veenduge, et failinimi oleks maksimaalselt {max_length} tähemärki pikk (praegu on {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Laadige üles kehtiv pildifail. Üles laetud fail ei olnud pilt või oli see katki." msgstr "Laadige üles kehtiv pildifail. Üles laetud fail ei olnud pilt või oli see katki."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Ootasin kirjete sõnastikku, kuid sain \"{input_type}\"." msgstr "Ootasin kirjete sõnastikku, kuid sain \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Sobimatu lehekülg \"{page_number}\": {message}." msgstr "Sobimatu lehekülg \"{page_number}\": {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Sobimatu kursor." msgstr "Sobimatu kursor."
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Sobimatu primaarvõti \"{pk_value}\" - objekti pole olemas." msgstr "Sobimatu primaarvõti \"{pk_value}\" - objekti pole olemas."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Sobimatu andmetüüp. Ootasin primaarvõtit, sain {data_type}." msgstr "Sobimatu andmetüüp. Ootasin primaarvõtit, sain {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Sobimatu hüperlink - ei leidnud URLi vastet." msgstr "Sobimatu hüperlink - ei leidnud URLi vastet."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Sobimatu hüperlink - vale URLi vaste." msgstr "Sobimatu hüperlink - vale URLi vaste."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Sobimatu hüperlink - objekti ei eksisteeri." msgstr "Sobimatu hüperlink - objekti ei eksisteeri."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Sobimatu andmetüüp. Ootasin URLi sõne, sain {data_type}." msgstr "Sobimatu andmetüüp. Ootasin URLi sõne, sain {data_type}."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Objekti {slug_name}={value} ei eksisteeri." msgstr "Objekti {slug_name}={value} ei eksisteeri."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Sobimatu väärtus." msgstr "Sobimatu väärtus."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Sobimatud andmed. Ootasin sõnastikku, kuid sain {datatype}." msgstr "Sobimatud andmed. Ootasin sõnastikku, kuid sain {datatype}."
@ -330,18 +361,22 @@ msgid "This field must be unique."
msgstr "Selle välja väärtus peab olema unikaalne." msgstr "Selle välja väärtus peab olema unikaalne."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "Veerud {field_names} peavad moodustama unikaalse hulga." msgstr "Veerud {field_names} peavad moodustama unikaalse hulga."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "Selle välja väärtus peab olema unikaalne veerus \"{date_field}\" märgitud kuupäeval." msgstr "Selle välja väärtus peab olema unikaalne veerus \"{date_field}\" märgitud kuupäeval."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "Selle välja väärtus peab olema unikaalneveerus \"{date_field}\" märgitud kuul." msgstr "Selle välja väärtus peab olema unikaalneveerus \"{date_field}\" märgitud kuul."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "Selle välja väärtus peab olema unikaalneveerus \"{date_field}\" märgitud aastal." msgstr "Selle välja väärtus peab olema unikaalneveerus \"{date_field}\" märgitud aastal."
@ -361,6 +396,6 @@ msgstr "Sobimatu versioon hostinimes."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Sobimatu versioon päringu parameetris." msgstr "Sobimatu versioon päringu parameetris."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -11,9 +11,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:58+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: French (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/fr/)\n" "Language-Team: French (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/fr/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -21,40 +21,40 @@ msgstr ""
"Language: fr\n" "Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "En-tête « basic » non valide. Informations d'identification non fournies." msgstr "En-tête « basic » non valide. Informations d'identification non fournies."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "En-tête « basic » non valide. Les informations d'identification ne doivent pas contenir d'espaces." msgstr "En-tête « basic » non valide. Les informations d'identification ne doivent pas contenir d'espaces."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "En-tête « basic » non valide. Encodage base64 des informations d'identification incorrect." msgstr "En-tête « basic » non valide. Encodage base64 des informations d'identification incorrect."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Nom d'utilisateur et/ou mot de passe non valide(s)." msgstr "Nom d'utilisateur et/ou mot de passe non valide(s)."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Utilisateur inactif ou supprimé." msgstr "Utilisateur inactif ou supprimé."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "En-tête « token » non valide. Informations d'identification non fournies." msgstr "En-tête « token » non valide. Informations d'identification non fournies."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "En-tête « token » non valide. Un token ne doit pas contenir d'espaces." msgstr "En-tête « token » non valide. Un token ne doit pas contenir d'espaces."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr "En-tête « token » non valide. Un token ne doit pas contenir de caractères invalides."
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Token non valide." msgstr "Token non valide."
@ -90,11 +90,12 @@ msgstr "Informations d'authentification non fournies."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "Vous n'avez pas la permission d'effectuer cette action." msgstr "Vous n'avez pas la permission d'effectuer cette action."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Pas trouvé." msgstr "Pas trouvé."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Méthode \"{method}\" non autorisée." msgstr "Méthode \"{method}\" non autorisée."
@ -103,6 +104,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "L'en-tête « Accept » n'a pas pu être satisfaite." msgstr "L'en-tête « Accept » n'a pas pu être satisfaite."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Type de média \"{media_type}\" non supporté." msgstr "Type de média \"{media_type}\" non supporté."
@ -110,209 +112,238 @@ msgstr "Type de média \"{media_type}\" non supporté."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Requête ralentie." msgstr "Requête ralentie."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Ce champ est obligatoire." msgstr "Ce champ est obligatoire."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Ce champ ne peut être null." msgstr "Ce champ ne peut être null."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" n'est pas un booléen valide." msgstr "\"{input}\" n'est pas un booléen valide."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "Ce champ ne peut être vide." msgstr "Ce champ ne peut être vide."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Assurez-vous que ce champ comporte au plus {max_length} caractères." msgstr "Assurez-vous que ce champ comporte au plus {max_length} caractères."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Assurez-vous que ce champ comporte au moins {min_length} caractères." msgstr "Assurez-vous que ce champ comporte au moins {min_length} caractères."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Saisissez une adresse email valable." msgstr "Saisissez une adresse email valable."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Cette valeur ne satisfait pas le motif imposé." msgstr "Cette valeur ne satisfait pas le motif imposé."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et des traits d'union." msgstr "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et des traits d'union."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Saisissez une URL valide." msgstr "Saisissez une URL valide."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" n'est pas un UUID valide." msgstr "\"{value}\" n'est pas un UUID valide."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr "Saisissez une adresse IPv4 ou IPv6 valide."
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Un nombre entier valide est requis." msgstr "Un nombre entier valide est requis."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Assurez-vous que cette valeur est inférieure ou égale à {max_value}." msgstr "Assurez-vous que cette valeur est inférieure ou égale à {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Assurez-vous que cette valeur est supérieure ou égale à {min_value}." msgstr "Assurez-vous que cette valeur est supérieure ou égale à {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Chaîne de caractères trop longue." msgstr "Chaîne de caractères trop longue."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Un nombre valide est requis." msgstr "Un nombre valide est requis."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Assurez-vous qu'il n'y a pas plus de {max_digits} chiffres au total." msgstr "Assurez-vous qu'il n'y a pas plus de {max_digits} chiffres au total."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Assurez-vous qu'il n'y a pas plus de {max_decimal_places} chiffres après la virgule." msgstr "Assurez-vous qu'il n'y a pas plus de {max_decimal_places} chiffres après la virgule."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Assurez-vous qu'il n'y a pas plus de {max_whole_digits} chiffres avant la virgule." msgstr "Assurez-vous qu'il n'y a pas plus de {max_whole_digits} chiffres avant la virgule."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "La date + heure n'a pas le bon format. Utilisez un des formats suivants : {format}." msgstr "La date + heure n'a pas le bon format. Utilisez un des formats suivants : {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Attendait une date + heure mais a reçu une date." msgstr "Attendait une date + heure mais a reçu une date."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "La date n'a pas le bon format. Utilisez un des formats suivants : {format}." msgstr "La date n'a pas le bon format. Utilisez un des formats suivants : {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Attendait une date mais a reçu une date + heure." msgstr "Attendait une date mais a reçu une date + heure."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "L'heure n'a pas le bon format. Utilisez un des formats suivants : {format}." msgstr "L'heure n'a pas le bon format. Utilisez un des formats suivants : {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr "La durée n'a pas le bon format. Utilisez l'un des formats suivants: {format}."
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" n'est pas un choix valide." msgstr "\"{input}\" n'est pas un choix valide."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr "Plus de {count} éléments..."
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Attendait une liste d'éléments mais a reçu \"{input_type}\"." msgstr "Attendait une liste d'éléments mais a reçu \"{input_type}\"."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr "Cette sélection ne peut être vide."
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr "\"{input}\" n'est pas un choix de chemin valide."
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Aucun fichier n'a été soumis." msgstr "Aucun fichier n'a été soumis."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "La donnée soumise n'est pas un fichier. Vérifiez le type d'encodage du formulaire." msgstr "La donnée soumise n'est pas un fichier. Vérifiez le type d'encodage du formulaire."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "Le nom de fichier n'a pu être déterminé." msgstr "Le nom de fichier n'a pu être déterminé."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "Le fichier soumis est vide." msgstr "Le fichier soumis est vide."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Assurez-vous que le nom de fichier comporte au plus {max_length} caractères (il en comporte {length})." msgstr "Assurez-vous que le nom de fichier comporte au plus {max_length} caractères (il en comporte {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Transférez une image valide. Le fichier que vous avez transféré n'est pas une image, ou il est corrompu." msgstr "Transférez une image valide. Le fichier que vous avez transféré n'est pas une image, ou il est corrompu."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr "Cette liste ne peut pas être vide."
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Attendait un dictionnaire d'éléments mais a reçu \"{input_type}\"." msgstr "Attendait un dictionnaire d'éléments mais a reçu \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Page \"{page_number}\" non valide : {message}." msgstr "Page \"{page_number}\" non valide : {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Curseur non valide" msgstr "Curseur non valide"
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Clé primaire \"{pk_value}\" non valide - l'objet n'existe pas." msgstr "Clé primaire \"{pk_value}\" non valide - l'objet n'existe pas."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Type incorrect. Attendait une clé primaire, a reçu {data_type}." msgstr "Type incorrect. Attendait une clé primaire, a reçu {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Lien non valide : pas d'URL correspondante." msgstr "Lien non valide : pas d'URL correspondante."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Lien non valide : URL correspondante incorrecte." msgstr "Lien non valide : URL correspondante incorrecte."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Lien non valide : l'objet n'existe pas." msgstr "Lien non valide : l'objet n'existe pas."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Type incorrect. Attendait une URL, a reçu {data_type}." msgstr "Type incorrect. Attendait une URL, a reçu {data_type}."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "L'object avec {slug_name}={value} n'existe pas." msgstr "L'object avec {slug_name}={value} n'existe pas."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Valeur non valide." msgstr "Valeur non valide."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Donnée non valide. Attendait un dictionnaire, a reçu {datatype}." msgstr "Donnée non valide. Attendait un dictionnaire, a reçu {datatype}."
@ -333,18 +364,22 @@ msgid "This field must be unique."
msgstr "Ce champ doit être unique." msgstr "Ce champ doit être unique."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "Les champs {field_names} doivent former un ensemble unique." msgstr "Les champs {field_names} doivent former un ensemble unique."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "Ce champ doit être unique pour la date \"{date_field}\"." msgstr "Ce champ doit être unique pour la date \"{date_field}\"."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "Ce champ doit être unique pour le mois \"{date_field}\"." msgstr "Ce champ doit être unique pour le mois \"{date_field}\"."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "Ce champ doit être unique pour l'année \"{date_field}\"." msgstr "Ce champ doit être unique pour l'année \"{date_field}\"."
@ -364,6 +399,6 @@ msgstr "Version non valide dans le nom d'hôte."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Version non valide dans le paramètre de requête." msgstr "Version non valide dans le paramètre de requête."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "Permission refusée." msgstr "Permission refusée."

View File

@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: French (Canada) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/fr_CA/)\n" "Language-Team: French (Canada) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/fr_CA/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -17,40 +17,40 @@ msgstr ""
"Language: fr_CA\n" "Language: fr_CA\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "" msgstr ""
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "" msgstr ""
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "" msgstr ""
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "" msgstr ""
@ -86,11 +86,12 @@ msgstr ""
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "" msgstr ""
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "" msgstr ""
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "" msgstr ""
@ -99,6 +100,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "" msgstr ""
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "" msgstr ""
@ -106,209 +108,238 @@ msgstr ""
msgid "Request was throttled." msgid "Request was throttled."
msgstr "" msgstr ""
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "" msgstr ""
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "" msgstr ""
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "" msgstr ""
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "" msgstr ""
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "" msgstr ""
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "" msgstr ""
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "" msgstr ""
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "" msgstr ""
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "" msgstr ""
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "" msgstr ""
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "" msgstr ""
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "" msgstr ""
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "" msgstr ""
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "" msgstr ""
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "" msgstr ""
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "" msgstr ""
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "" msgstr ""
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "" msgstr ""
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "" msgstr ""
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "" msgstr ""
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "" msgstr ""
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "" msgstr ""
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "" msgstr ""
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "" msgstr ""
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "" msgstr ""
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "" msgstr ""
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "" msgstr ""
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "" msgstr ""
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "" msgstr ""
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "" msgstr ""
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "" msgstr ""
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "" msgstr ""
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "" msgstr ""
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "" msgstr ""
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "" msgstr ""
@ -329,18 +360,22 @@ msgid "This field must be unique."
msgstr "" msgstr ""
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -360,6 +395,6 @@ msgstr ""
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "" msgstr ""
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Galician (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/gl/)\n" "Language-Team: Galician (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/gl/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -17,40 +17,40 @@ msgstr ""
"Language: gl\n" "Language: gl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "" msgstr ""
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "" msgstr ""
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "" msgstr ""
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "" msgstr ""
@ -86,11 +86,12 @@ msgstr ""
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "" msgstr ""
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "" msgstr ""
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "" msgstr ""
@ -99,6 +100,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "" msgstr ""
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "" msgstr ""
@ -106,209 +108,238 @@ msgstr ""
msgid "Request was throttled." msgid "Request was throttled."
msgstr "" msgstr ""
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "" msgstr ""
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "" msgstr ""
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "" msgstr ""
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "" msgstr ""
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "" msgstr ""
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "" msgstr ""
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "" msgstr ""
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "" msgstr ""
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "" msgstr ""
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "" msgstr ""
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "" msgstr ""
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "" msgstr ""
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "" msgstr ""
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "" msgstr ""
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "" msgstr ""
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "" msgstr ""
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "" msgstr ""
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "" msgstr ""
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "" msgstr ""
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "" msgstr ""
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "" msgstr ""
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "" msgstr ""
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "" msgstr ""
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "" msgstr ""
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "" msgstr ""
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "" msgstr ""
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "" msgstr ""
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "" msgstr ""
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "" msgstr ""
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "" msgstr ""
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "" msgstr ""
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "" msgstr ""
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "" msgstr ""
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "" msgstr ""
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "" msgstr ""
@ -329,18 +360,22 @@ msgid "This field must be unique."
msgstr "" msgstr ""
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -360,6 +395,6 @@ msgstr ""
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "" msgstr ""
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -8,9 +8,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Galician (Spain) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/gl_ES/)\n" "Language-Team: Galician (Spain) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/gl_ES/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -18,40 +18,40 @@ msgstr ""
"Language: gl_ES\n" "Language: gl_ES\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "" msgstr ""
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "" msgstr ""
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "" msgstr ""
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "" msgstr ""
@ -87,11 +87,12 @@ msgstr ""
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "" msgstr ""
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "" msgstr ""
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "" msgstr ""
@ -100,6 +101,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "" msgstr ""
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "" msgstr ""
@ -107,209 +109,238 @@ msgstr ""
msgid "Request was throttled." msgid "Request was throttled."
msgstr "" msgstr ""
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "" msgstr ""
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "" msgstr ""
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "" msgstr ""
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "" msgstr ""
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "" msgstr ""
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "" msgstr ""
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "" msgstr ""
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "" msgstr ""
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "" msgstr ""
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "" msgstr ""
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "" msgstr ""
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "" msgstr ""
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "" msgstr ""
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "" msgstr ""
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "" msgstr ""
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "" msgstr ""
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "" msgstr ""
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "" msgstr ""
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "" msgstr ""
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "" msgstr ""
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "" msgstr ""
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "" msgstr ""
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "" msgstr ""
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "" msgstr ""
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "" msgstr ""
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "" msgstr ""
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "" msgstr ""
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "" msgstr ""
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "" msgstr ""
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "" msgstr ""
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "" msgstr ""
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "" msgstr ""
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "" msgstr ""
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Valor non válido." msgstr "Valor non válido."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "" msgstr ""
@ -330,18 +361,22 @@ msgid "This field must be unique."
msgstr "" msgstr ""
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -361,6 +396,6 @@ msgstr ""
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "" msgstr ""
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "Permiso denegado." msgstr "Permiso denegado."

View File

@ -8,9 +8,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Hungarian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/hu/)\n" "Language-Team: Hungarian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/hu/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -18,40 +18,40 @@ msgstr ""
"Language: hu\n" "Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Érvénytelen basic fejlécmező. Nem voltak megadva azonosítók." msgstr "Érvénytelen basic fejlécmező. Nem voltak megadva azonosítók."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Érvénytelen basic fejlécmező. Az azonosító karakterlánc nem tartalmazhat szóközöket." msgstr "Érvénytelen basic fejlécmező. Az azonosító karakterlánc nem tartalmazhat szóközöket."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Érvénytelen basic fejlécmező. Az azonosítók base64 kódolása nem megfelelő." msgstr "Érvénytelen basic fejlécmező. Az azonosítók base64 kódolása nem megfelelő."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Érvénytelen felhasználónév/jelszó." msgstr "Érvénytelen felhasználónév/jelszó."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "A felhasználó nincs aktiválva vagy törölve lett." msgstr "A felhasználó nincs aktiválva vagy törölve lett."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Érvénytelen token fejlécmező. Nem voltak megadva azonosítók." msgstr "Érvénytelen token fejlécmező. Nem voltak megadva azonosítók."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Érvénytelen token fejlécmező. A token karakterlánc nem tartalmazhat szóközöket." msgstr "Érvénytelen token fejlécmező. A token karakterlánc nem tartalmazhat szóközöket."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Érvénytelen token." msgstr "Érvénytelen token."
@ -87,11 +87,12 @@ msgstr "Nem voltak megadva azonosítók."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "Nincs jogosultsága a művelet végrehajtásához." msgstr "Nincs jogosultsága a művelet végrehajtásához."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Nem található." msgstr "Nem található."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "A \"{method}\" metódus nem megengedett." msgstr "A \"{method}\" metódus nem megengedett."
@ -100,6 +101,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "A kérés Accept fejlécmezőjét nem lehetett kiszolgálni." msgstr "A kérés Accept fejlécmezőjét nem lehetett kiszolgálni."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Nem támogatott média típus \"{media_type}\" a kérésben." msgstr "Nem támogatott média típus \"{media_type}\" a kérésben."
@ -107,209 +109,238 @@ msgstr "Nem támogatott média típus \"{media_type}\" a kérésben."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "A kérés korlátozva lett." msgstr "A kérés korlátozva lett."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Ennek a mezőnek a megadása kötelező." msgstr "Ennek a mezőnek a megadása kötelező."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Ez a mező nem lehet null értékű." msgstr "Ez a mező nem lehet null értékű."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "Az \"{input}\" nem egy érvényes logikai érték." msgstr "Az \"{input}\" nem egy érvényes logikai érték."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "Ez a mező nem lehet üres." msgstr "Ez a mező nem lehet üres."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Bizonyosodjon meg arról, hogy ez a mező legfeljebb {max_length} karakterből áll." msgstr "Bizonyosodjon meg arról, hogy ez a mező legfeljebb {max_length} karakterből áll."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Bizonyosodjon meg arról, hogy ez a mező legalább {min_length} karakterből áll." msgstr "Bizonyosodjon meg arról, hogy ez a mező legalább {min_length} karakterből áll."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Adjon meg egy érvényes e-mail címet!" msgstr "Adjon meg egy érvényes e-mail címet!"
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Ez az érték nem illeszkedik a szükséges mintázatra." msgstr "Ez az érték nem illeszkedik a szükséges mintázatra."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Az URL barát cím csak betűket, számokat, aláhúzásokat és kötőjeleket tartalmazhat." msgstr "Az URL barát cím csak betűket, számokat, aláhúzásokat és kötőjeleket tartalmazhat."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Adjon meg egy érvényes URL-t!" msgstr "Adjon meg egy érvényes URL-t!"
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Egy érvényes egész szám megadása szükséges." msgstr "Egy érvényes egész szám megadása szükséges."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Bizonyosodjon meg arról, hogy ez az érték legfeljebb {max_value}." msgstr "Bizonyosodjon meg arról, hogy ez az érték legfeljebb {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Bizonyosodjon meg arról, hogy ez az érték legalább {min_value}." msgstr "Bizonyosodjon meg arról, hogy ez az érték legalább {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "A karakterlánc túl hosszú." msgstr "A karakterlánc túl hosszú."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Egy érvényes szám megadása szükséges." msgstr "Egy érvényes szám megadása szükséges."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Bizonyosodjon meg arról, hogy a számjegyek száma összesen legfeljebb {max_digits}." msgstr "Bizonyosodjon meg arról, hogy a számjegyek száma összesen legfeljebb {max_digits}."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Bizonyosodjon meg arról, hogy a tizedes tört törtrészében levő számjegyek száma összesen legfeljebb {max_decimal_places}." msgstr "Bizonyosodjon meg arról, hogy a tizedes tört törtrészében levő számjegyek száma összesen legfeljebb {max_decimal_places}."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Bizonyosodjon meg arról, hogy a tizedes tört egész részében levő számjegyek száma összesen legfeljebb {max_whole_digits}." msgstr "Bizonyosodjon meg arról, hogy a tizedes tört egész részében levő számjegyek száma összesen legfeljebb {max_whole_digits}."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "A dátum formátuma hibás. Használja ezek valamelyikét helyette: {format}." msgstr "A dátum formátuma hibás. Használja ezek valamelyikét helyette: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Időt is tartalmazó dátum helyett egy időt nem tartalmazó dátum lett elküldve." msgstr "Időt is tartalmazó dátum helyett egy időt nem tartalmazó dátum lett elküldve."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "A dátum formátuma hibás. Használja ezek valamelyikét helyette: {format}." msgstr "A dátum formátuma hibás. Használja ezek valamelyikét helyette: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Időt nem tartalmazó dátum helyett egy időt is tartalmazó dátum lett elküldve." msgstr "Időt nem tartalmazó dátum helyett egy időt is tartalmazó dátum lett elküldve."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Az idő formátuma hibás. Használja ezek valamelyikét helyette: {format}." msgstr "Az idő formátuma hibás. Használja ezek valamelyikét helyette: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "Az \"{input}\" nem egy érvényes elem." msgstr "Az \"{input}\" nem egy érvényes elem."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Elemek listája helyett \"{input_type}\" lett elküldve." msgstr "Elemek listája helyett \"{input_type}\" lett elküldve."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Semmilyen fájl sem került feltöltésre." msgstr "Semmilyen fájl sem került feltöltésre."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "Az elküldött adat nem egy fájl volt. Ellenőrizze a kódolás típusát az űrlapon!" msgstr "Az elküldött adat nem egy fájl volt. Ellenőrizze a kódolás típusát az űrlapon!"
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "A fájlnév nem megállapítható." msgstr "A fájlnév nem megállapítható."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "A küldött fájl üres." msgstr "A küldött fájl üres."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Bizonyosodjon meg arról, hogy a fájlnév legfeljebb {max_length} karakterből áll (jelenlegi hossza: {length})." msgstr "Bizonyosodjon meg arról, hogy a fájlnév legfeljebb {max_length} karakterből áll (jelenlegi hossza: {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Töltsön fel egy érvényes képfájlt! A feltöltött fájl nem kép volt, vagy megsérült." msgstr "Töltsön fel egy érvényes képfájlt! A feltöltött fájl nem kép volt, vagy megsérült."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Érvénytelen oldal \"{page_number}\": {message}." msgstr "Érvénytelen oldal \"{page_number}\": {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Érvénytelen pk \"{pk_value}\" - az objektum nem létezik." msgstr "Érvénytelen pk \"{pk_value}\" - az objektum nem létezik."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Helytelen típus. pk érték helyett {data_type} lett elküldve." msgstr "Helytelen típus. pk érték helyett {data_type} lett elküldve."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Érvénytelen link - Nem illeszkedő URL." msgstr "Érvénytelen link - Nem illeszkedő URL."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Érvénytelen link. - Eltérő URL illeszkedés." msgstr "Érvénytelen link. - Eltérő URL illeszkedés."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Érvénytelen link - Az objektum nem létezik." msgstr "Érvénytelen link - Az objektum nem létezik."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Helytelen típus. URL karakterlánc helyett {data_type} lett elküldve." msgstr "Helytelen típus. URL karakterlánc helyett {data_type} lett elküldve."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Nem létezik olyan objektum, amelynél {slug_name}={value}." msgstr "Nem létezik olyan objektum, amelynél {slug_name}={value}."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Érvénytelen érték." msgstr "Érvénytelen érték."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Érvénytelen adat. Egy dictionary helyett {datatype} lett elküldve." msgstr "Érvénytelen adat. Egy dictionary helyett {datatype} lett elküldve."
@ -330,18 +361,22 @@ msgid "This field must be unique."
msgstr "Ennek a mezőnek egyedinek kell lennie." msgstr "Ennek a mezőnek egyedinek kell lennie."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "A {field_names} mezőnevek nem tartalmazhatnak duplikátumot." msgstr "A {field_names} mezőnevek nem tartalmazhatnak duplikátumot."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "A mezőnek egyedinek kell lennie a \"{date_field}\" dátumra." msgstr "A mezőnek egyedinek kell lennie a \"{date_field}\" dátumra."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "A mezőnek egyedinek kell lennie a \"{date_field}\" hónapra." msgstr "A mezőnek egyedinek kell lennie a \"{date_field}\" hónapra."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "A mezőnek egyedinek kell lennie a \"{date_field}\" évre." msgstr "A mezőnek egyedinek kell lennie a \"{date_field}\" évre."
@ -361,6 +396,6 @@ msgstr "Érvénytelen verzió a hosztnévben."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Érvénytelen verzió a lekérdezési paraméterben." msgstr "Érvénytelen verzió a lekérdezési paraméterben."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Indonesian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/id/)\n" "Language-Team: Indonesian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/id/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -17,40 +17,40 @@ msgstr ""
"Language: id\n" "Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "" msgstr ""
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "" msgstr ""
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "" msgstr ""
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "" msgstr ""
@ -86,11 +86,12 @@ msgstr ""
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "" msgstr ""
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "" msgstr ""
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "" msgstr ""
@ -99,6 +100,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "" msgstr ""
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "" msgstr ""
@ -106,209 +108,238 @@ msgstr ""
msgid "Request was throttled." msgid "Request was throttled."
msgstr "" msgstr ""
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "" msgstr ""
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "" msgstr ""
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "" msgstr ""
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "" msgstr ""
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "" msgstr ""
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "" msgstr ""
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "" msgstr ""
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "" msgstr ""
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "" msgstr ""
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "" msgstr ""
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "" msgstr ""
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "" msgstr ""
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "" msgstr ""
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "" msgstr ""
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "" msgstr ""
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "" msgstr ""
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "" msgstr ""
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "" msgstr ""
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "" msgstr ""
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "" msgstr ""
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "" msgstr ""
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "" msgstr ""
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "" msgstr ""
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "" msgstr ""
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "" msgstr ""
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "" msgstr ""
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "" msgstr ""
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "" msgstr ""
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "" msgstr ""
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "" msgstr ""
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "" msgstr ""
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "" msgstr ""
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "" msgstr ""
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "" msgstr ""
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "" msgstr ""
@ -329,18 +360,22 @@ msgid "This field must be unique."
msgstr "" msgstr ""
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -360,6 +395,6 @@ msgstr ""
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "" msgstr ""
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -11,9 +11,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Italian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/it/)\n" "Language-Team: Italian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/it/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -21,40 +21,40 @@ msgstr ""
"Language: it\n" "Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Header di base invalido. Credenziali non fornite." msgstr "Header di base invalido. Credenziali non fornite."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Header di base invalido. Le credenziali non dovrebbero contenere spazi." msgstr "Header di base invalido. Le credenziali non dovrebbero contenere spazi."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Credenziali non correttamente codificate in base64." msgstr "Credenziali non correttamente codificate in base64."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Nome utente/password non validi" msgstr "Nome utente/password non validi"
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Utente inattivo o eliminato." msgstr "Utente inattivo o eliminato."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Header del token non valido. Credenziali non fornite." msgstr "Header del token non valido. Credenziali non fornite."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Header del token non valido. Il contenuto del token non dovrebbe contenere spazi." msgstr "Header del token non valido. Il contenuto del token non dovrebbe contenere spazi."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Token invalido." msgstr "Token invalido."
@ -90,11 +90,12 @@ msgstr "Non sono state immesse le credenziali di autenticazione."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "Non hai l'autorizzazione per eseguire questa azione." msgstr "Non hai l'autorizzazione per eseguire questa azione."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Non trovato." msgstr "Non trovato."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Metodo \"{method}\" non consentito" msgstr "Metodo \"{method}\" non consentito"
@ -103,6 +104,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "Impossibile soddisfare l'header \"Accept\" presente nella richiesta." msgstr "Impossibile soddisfare l'header \"Accept\" presente nella richiesta."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Tipo di media \"{media_type}\"non supportato." msgstr "Tipo di media \"{media_type}\"non supportato."
@ -110,209 +112,238 @@ msgstr "Tipo di media \"{media_type}\"non supportato."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "La richiesta è stata limitata (throttled)." msgstr "La richiesta è stata limitata (throttled)."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Campo obbligatorio." msgstr "Campo obbligatorio."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Il campo non può essere nullo." msgstr "Il campo non può essere nullo."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" non è un valido valore booleano." msgstr "\"{input}\" non è un valido valore booleano."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "Questo campo non può essere omesso." msgstr "Questo campo non può essere omesso."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Assicurati che questo campo non abbia più di {max_length} caratteri." msgstr "Assicurati che questo campo non abbia più di {max_length} caratteri."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Assicurati che questo campo abbia almeno {min_length} caratteri." msgstr "Assicurati che questo campo abbia almeno {min_length} caratteri."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Inserisci un indirizzo email valido." msgstr "Inserisci un indirizzo email valido."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Questo valore non corrisponde alla sequenza richiesta." msgstr "Questo valore non corrisponde alla sequenza richiesta."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Immetti uno \"slug\" valido che consista di lettere, numeri, underscore o trattini." msgstr "Immetti uno \"slug\" valido che consista di lettere, numeri, underscore o trattini."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Inserisci un URL valido" msgstr "Inserisci un URL valido"
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" non è un UUID valido." msgstr "\"{value}\" non è un UUID valido."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "È richiesto un numero intero valido." msgstr "È richiesto un numero intero valido."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Assicurati che il valore sia minore o uguale a {max_value}." msgstr "Assicurati che il valore sia minore o uguale a {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Assicurati che il valore sia maggiore o uguale a {min_value}." msgstr "Assicurati che il valore sia maggiore o uguale a {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Stringa troppo lunga." msgstr "Stringa troppo lunga."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "È richiesto un numero valido." msgstr "È richiesto un numero valido."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Assicurati che non ci siano più di {max_digits} cifre in totale." msgstr "Assicurati che non ci siano più di {max_digits} cifre in totale."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Assicurati che non ci siano più di {max_decimal_places} cifre decimali." msgstr "Assicurati che non ci siano più di {max_decimal_places} cifre decimali."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Assicurati che non ci siano più di {max_whole_digits} cifre prima del separatore decimale." msgstr "Assicurati che non ci siano più di {max_whole_digits} cifre prima del separatore decimale."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "L'oggetto di tipo datetime è in un formato errato. Usa uno dei seguenti formati: {format}." msgstr "L'oggetto di tipo datetime è in un formato errato. Usa uno dei seguenti formati: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Atteso un oggetto di tipo datetime ma l'oggetto ricevuto è di tipo date." msgstr "Atteso un oggetto di tipo datetime ma l'oggetto ricevuto è di tipo date."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "La data è in un formato errato. Usa uno dei seguenti formati: {format}." msgstr "La data è in un formato errato. Usa uno dei seguenti formati: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Atteso un oggetto di tipo date ma l'oggetto ricevuto è di tipo datetime." msgstr "Atteso un oggetto di tipo date ma l'oggetto ricevuto è di tipo datetime."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "L'orario ha un formato errato. Usa uno dei seguenti formati: {format}." msgstr "L'orario ha un formato errato. Usa uno dei seguenti formati: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "La durata è in un formato errato. Usa uno dei seguenti formati: {format}." msgstr "La durata è in un formato errato. Usa uno dei seguenti formati: {format}."
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" non è una scelta valida." msgstr "\"{input}\" non è una scelta valida."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Attesa una lista di oggetti ma l'oggetto ricevuto è di tipo \"{input_type}\"." msgstr "Attesa una lista di oggetti ma l'oggetto ricevuto è di tipo \"{input_type}\"."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Non è stato inviato alcun file." msgstr "Non è stato inviato alcun file."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "I dati inviati non corrispondono ad un file. Si prega di controllare il tipo di codifica nel form." msgstr "I dati inviati non corrispondono ad un file. Si prega di controllare il tipo di codifica nel form."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "Il nome del file non può essere determinato." msgstr "Il nome del file non può essere determinato."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "Il file inviato è vuoto." msgstr "Il file inviato è vuoto."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Assicurati che il nome del file abbia, al più, {max_length} caratteri (attualmente ne ha {length})." msgstr "Assicurati che il nome del file abbia, al più, {max_length} caratteri (attualmente ne ha {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Invia un'immagine valida. Il file che hai inviato non era un'immagine o era corrotto." msgstr "Invia un'immagine valida. Il file che hai inviato non era un'immagine o era corrotto."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Era atteso un dizionario di oggetti ma il dato ricevuto è di tipo \"{input_type}\"." msgstr "Era atteso un dizionario di oggetti ma il dato ricevuto è di tipo \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Pagina \"{page_number}\" non valida: {message}." msgstr "Pagina \"{page_number}\" non valida: {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Cursore non valido" msgstr "Cursore non valido"
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Pk \"{pk_value}\" non valido - l'oggetto non esiste." msgstr "Pk \"{pk_value}\" non valido - l'oggetto non esiste."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Tipo non corretto. Era atteso un valore pk, ma è stato ricevuto {data_type}." msgstr "Tipo non corretto. Era atteso un valore pk, ma è stato ricevuto {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Collegamento non valido - Nessuna corrispondenza di URL." msgstr "Collegamento non valido - Nessuna corrispondenza di URL."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Collegamento non valido - Corrispondenza di URL non corretta." msgstr "Collegamento non valido - Corrispondenza di URL non corretta."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Collegamento non valido - L'oggetto non esiste." msgstr "Collegamento non valido - L'oggetto non esiste."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Tipo non corretto. Era attesa una stringa URL, ma è stato ricevuto {data_type}." msgstr "Tipo non corretto. Era attesa una stringa URL, ma è stato ricevuto {data_type}."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "L'oggetto con {slug_name}={value} non esiste." msgstr "L'oggetto con {slug_name}={value} non esiste."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Valore non valido." msgstr "Valore non valido."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Dati non validi. Era atteso un dizionario, ma si è ricevuto {datatype}." msgstr "Dati non validi. Era atteso un dizionario, ma si è ricevuto {datatype}."
@ -333,18 +364,22 @@ msgid "This field must be unique."
msgstr "Questo campo deve essere unico." msgstr "Questo campo deve essere unico."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "I campi {field_names} devono costituire un insieme unico." msgstr "I campi {field_names} devono costituire un insieme unico."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "Questo campo deve essere unico per la data \"{date_field}\"." msgstr "Questo campo deve essere unico per la data \"{date_field}\"."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "Questo campo deve essere unico per il mese \"{date_field}\"." msgstr "Questo campo deve essere unico per il mese \"{date_field}\"."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "Questo campo deve essere unico per l'anno \"{date_field}\"." msgstr "Questo campo deve essere unico per l'anno \"{date_field}\"."
@ -364,6 +399,6 @@ msgstr "Versione non valida nel nome dell'host."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Versione non valida nel parametro della query." msgstr "Versione non valida nel parametro della query."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "Permesso negato." msgstr "Permesso negato."

Binary file not shown.

View File

@ -0,0 +1,400 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Japanese (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: authentication.py:72
msgid "Invalid basic header. No credentials provided."
msgstr "不正な基本ヘッダです。認証情報が含まれていません。"
#: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "不正な基本ヘッダです。認証情報文字列に空白を含めてはいけません。"
#: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "不正な基本ヘッダです。認証情報がBASE64で正しくエンコードされていません。"
#: authentication.py:98
msgid "Invalid username/password."
msgstr "ユーザ名かパスワードが違います。"
#: authentication.py:101 authentication.py:189
msgid "User inactive or deleted."
msgstr "ユーザが無効か削除されています。"
#: authentication.py:168
msgid "Invalid token header. No credentials provided."
msgstr "不正なトークンヘッダです。認証情報が含まれていません。"
#: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces."
msgstr "不正なトークンヘッダです。トークン文字列に空白を含めてはいけません。"
#: authentication.py:177
msgid ""
"Invalid token header. Token string should not contain invalid characters."
msgstr "不正なトークンヘッダです。トークン文字列に不正な文字を含めてはいけません。"
#: authentication.py:186
msgid "Invalid token."
msgstr "不正なトークンです。"
#: authtoken/serializers.py:20
msgid "User account is disabled."
msgstr "ユーザアカウントが無効化されています。"
#: authtoken/serializers.py:23
msgid "Unable to log in with provided credentials."
msgstr "提供された認証情報でログインできません。"
#: authtoken/serializers.py:26
msgid "Must include \"username\" and \"password\"."
msgstr "\"username\"と\"password\"を含まなければなりません。"
#: exceptions.py:49
msgid "A server error occurred."
msgstr "サーバエラーが発生しました。"
#: exceptions.py:84
msgid "Malformed request."
msgstr "不正な形式のリクエストです。"
#: exceptions.py:89
msgid "Incorrect authentication credentials."
msgstr "認証情報が正しくありません。"
#: exceptions.py:94
msgid "Authentication credentials were not provided."
msgstr "認証情報が含まれていません。"
#: exceptions.py:99
msgid "You do not have permission to perform this action."
msgstr "このアクションを実行する権限がありません。"
#: exceptions.py:104 views.py:81
msgid "Not found."
msgstr "見つかりませんでした。"
#: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed."
msgstr "メソッド \"{method}\" は許されていません。"
#: exceptions.py:120
msgid "Could not satisfy the request Accept header."
msgstr "リクエストのAcceptヘッダを満たすことができませんでした。"
#: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request."
msgstr "リクエストのメディアタイプ \"{media_type}\" はサポートされていません。"
#: exceptions.py:145
msgid "Request was throttled."
msgstr "リクエストの処理は絞られました。"
#: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162
msgid "This field is required."
msgstr "この項目は必須です。"
#: fields.py:263
msgid "This field may not be null."
msgstr "この項目はnullにできません。"
#: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" は有効なブーリアンではありません。"
#: fields.py:662
msgid "This field may not be blank."
msgstr "この項目は空にできません。"
#: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters."
msgstr "この項目が{max_length}文字より長くならないようにしてください。"
#: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters."
msgstr "この項目は少なくとも{min_length}文字以上にしてください。"
#: fields.py:701
msgid "Enter a valid email address."
msgstr "有効なメールアドレスを入力してください。"
#: fields.py:712
msgid "This value does not match the required pattern."
msgstr "この値は所要のパターンにマッチしません。"
#: fields.py:723
msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens."
msgstr "文字、数字、アンダースコア、またはハイフンから成る有効な \"slug\" を入力してください。"
#: fields.py:735
msgid "Enter a valid URL."
msgstr "有効なURLを入力してください。"
#: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" は有効なUUIDではありません。"
#: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address."
msgstr "有効なIPv4またはIPv6アドレスを入力してください。"
#: fields.py:807
msgid "A valid integer is required."
msgstr "有効な整数を入力してください。"
#: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}."
msgstr "この値は{max_value}以下にしてください。"
#: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "この値は{min_value}以上にしてください。"
#: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large."
msgstr "文字列が長過ぎます。"
#: fields.py:842 fields.py:875
msgid "A valid number is required."
msgstr "有効な数値を入力してください。"
#: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "合計で最大{max_digits}桁以下になるようにしてください。"
#: fields.py:879
#, python-brace-format
msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "小数点以下の桁数を{max_decimal_places}を超えないようにしてください。"
#: fields.py:880
#, python-brace-format
msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point."
msgstr "整数部の桁数を{max_whole_digits}を超えないようにしてください。"
#: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "日時の形式が違います。以下のどれかの形式にしてください: {format}。"
#: fields.py:995
msgid "Expected a datetime but got a date."
msgstr "日付ではなく日時を入力してください。"
#: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "日付の形式が違います。以下のどれかの形式にしてください: {format}。"
#: fields.py:1061
msgid "Expected a date but got a datetime."
msgstr "日時ではなく日付を入力してください。"
#: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "時刻の形式が違います。以下のどれかの形式にしてください: {format}。"
#: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "機関の形式が違います。以下のどれかの形式にしてください: {format}。"
#: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\"は有効な選択肢ではありません。"
#: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "\"{input_type}\" 型のデータではなく項目のリストを入力してください。"
#: fields.py:1256
msgid "This selection may not be empty."
msgstr "空でない項目を選択してください。"
#: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice."
msgstr "\"{input}\"は有効なパスの選択肢ではありません。"
#: fields.py:1313
msgid "No file was submitted."
msgstr "ファイルが添付されていません。"
#: fields.py:1314
msgid ""
"The submitted data was not a file. Check the encoding type on the form."
msgstr "添付されたデータはファイルではありません。フォームのエンコーディングタイプを確認してください。"
#: fields.py:1315
msgid "No filename could be determined."
msgstr "ファイル名が取得できませんでした。"
#: fields.py:1316
msgid "The submitted file is empty."
msgstr "添付ファイルの中身が空でした。"
#: fields.py:1317
#, python-brace-format
msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "ファイル名は最大{max_length}文字にしてください({length}文字でした)。"
#: fields.py:1363
msgid ""
"Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image."
msgstr "有効な画像をアップロードしてください。アップロードされたファイルは画像でないか壊れた画像です。"
#: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty."
msgstr "リストは空ではいけません。"
#: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "\"{input_type}\" 型のデータではなく項目の辞書を入力してください。"
#: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}."
msgstr "ページ番号 \"{page_number}\" は不正です: {message}。"
#: pagination.py:462
msgid "Invalid cursor"
msgstr "カーソルが不正です。"
#: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "主キー \"{pk_value}\" は不正です - データが存在しません。"
#: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "不正な型です。{data_type} 型ではなく主キーの値を入力してください。"
#: relations.py:225
msgid "Invalid hyperlink - No URL match."
msgstr "ハイパーリンクが不正です - URLにマッチしません。"
#: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match."
msgstr "ハイパーリンクが不正です - 不正なURLにマッチします。"
#: relations.py:227
msgid "Invalid hyperlink - Object does not exist."
msgstr "ハイパーリンクが不正です - リンク先が存在しません。"
#: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "不正なデータ型です。{data_type} 型ではなくURL文字列を入力してください。"
#: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist."
msgstr "{slug_name}={value} のデータが存在しません。"
#: relations.py:388
msgid "Invalid value."
msgstr "不正な値です。"
#: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "不正なデータです。{datatype} 型ではなく辞書を入力してください。"
#: templates/rest_framework/horizontal/radio.html:2
#: templates/rest_framework/inline/radio.html:2
#: templates/rest_framework/vertical/radio.html:2
msgid "None"
msgstr "なし"
#: templates/rest_framework/horizontal/select_multiple.html:2
#: templates/rest_framework/inline/select_multiple.html:2
#: templates/rest_framework/vertical/select_multiple.html:2
msgid "No items to select."
msgstr "選択する項目がありません。"
#: validators.py:24
msgid "This field must be unique."
msgstr "この項目は一意でなければなりません。"
#: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set."
msgstr "項目 {field_names} は一意な組でなければなりません。"
#: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date."
msgstr "この項目は \"{date_field}\" の日に対して一意でなければなりません。"
#: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month."
msgstr "この項目は \"{date_field}\" の月に対して一意でなければなりません。"
#: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year."
msgstr "この項目は \"{date_field}\" の年に対して一意でなければなりません。"
#: versioning.py:42
msgid "Invalid version in \"Accept\" header."
msgstr "\"Accept\" 内のバージョンが不正です。"
#: versioning.py:73 versioning.py:115
msgid "Invalid version in URL path."
msgstr "URLパス内のバージョンが不正です。"
#: versioning.py:144
msgid "Invalid version in hostname."
msgstr "ホスト名内のバージョンが不正です。"
#: versioning.py:166
msgid "Invalid version in query parameter."
msgstr "クエリパラメータ内のバージョンが不正です。"
#: views.py:88
msgid "Permission denied."
msgstr "権限がありません。"

View File

@ -8,9 +8,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Korean (Korea) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ko_KR/)\n" "Language-Team: Korean (Korea) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ko_KR/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -18,40 +18,40 @@ msgstr ""
"Language: ko_KR\n" "Language: ko_KR\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "기본 헤더(basic header)가 유효하지 않습니다. 인증데이터(credentials)가 제공되지 않았습니다." msgstr "기본 헤더(basic header)가 유효하지 않습니다. 인증데이터(credentials)가 제공되지 않았습니다."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "기본 헤더(basic header)가 유효하지 않습니다. 인증데이터(credentials) 문자열은 빈칸(spaces)을 포함하지 않아야 합니다." msgstr "기본 헤더(basic header)가 유효하지 않습니다. 인증데이터(credentials) 문자열은 빈칸(spaces)을 포함하지 않아야 합니다."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "기본 헤더(basic header)가 유효하지 않습니다. 인증데이터(credentials)가 base64로 적절히 부호화(encode)되지 않았습니다." msgstr "기본 헤더(basic header)가 유효하지 않습니다. 인증데이터(credentials)가 base64로 적절히 부호화(encode)되지 않았습니다."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "아이디/비밀번호가 유효하지 않습니다." msgstr "아이디/비밀번호가 유효하지 않습니다."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "계정이 중지되었거나 삭제되었습니다." msgstr "계정이 중지되었거나 삭제되었습니다."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "토큰 헤더가 유효하지 않습니다. 인증데이터(credentials)가 제공되지 않았습니다." msgstr "토큰 헤더가 유효하지 않습니다. 인증데이터(credentials)가 제공되지 않았습니다."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "토큰 헤더가 유효하지 않습니다. 토큰 문자열은 빈칸(spaces)를 포함하지 않아야 합니다." msgstr "토큰 헤더가 유효하지 않습니다. 토큰 문자열은 빈칸(spaces)를 포함하지 않아야 합니다."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "토큰 헤더가 유효하지 않습니다. 토큰 문자열은 유효하지 않은 문자를 포함하지 않아야 합니다." msgstr "토큰 헤더가 유효하지 않습니다. 토큰 문자열은 유효하지 않은 문자를 포함하지 않아야 합니다."
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "토큰이 유효하지 않습니다." msgstr "토큰이 유효하지 않습니다."
@ -87,11 +87,12 @@ msgstr "자격 인증데이터(authentication credentials)가 제공되지 않
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "이 작업을 " msgstr "이 작업을 "
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "찾을 수 없습니다." msgstr "찾을 수 없습니다."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "메소드(Method) \"{method}\"는 허용되지 않습니다." msgstr "메소드(Method) \"{method}\"는 허용되지 않습니다."
@ -100,6 +101,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "Accept header 요청을 만족할 수 없습니다." msgstr "Accept header 요청을 만족할 수 없습니다."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "요청된 \"{media_type}\"가 지원되지 않는 미디어 형태입니다." msgstr "요청된 \"{media_type}\"가 지원되지 않는 미디어 형태입니다."
@ -107,209 +109,238 @@ msgstr "요청된 \"{media_type}\"가 지원되지 않는 미디어 형태입니
msgid "Request was throttled." msgid "Request was throttled."
msgstr "요청이 지연(throttled)되었습니다." msgstr "요청이 지연(throttled)되었습니다."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "이 항목을 채워주십시오." msgstr "이 항목을 채워주십시오."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "이 칸은 null일 수 없습니다." msgstr "이 칸은 null일 수 없습니다."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\"이 유효하지 않은 부울(boolean)입니다." msgstr "\"{input}\"이 유효하지 않은 부울(boolean)입니다."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "이 칸은 blank일 수 없습니다." msgstr "이 칸은 blank일 수 없습니다."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "이 칸이 글자 수가 {max_length} 이하인지 확인하십시오." msgstr "이 칸이 글자 수가 {max_length} 이하인지 확인하십시오."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "이 칸이 글자 수가 적어도 {min_length} 이상인지 확인하십시오." msgstr "이 칸이 글자 수가 적어도 {min_length} 이상인지 확인하십시오."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "유효한 이메일 주소를 입력하십시오." msgstr "유효한 이메일 주소를 입력하십시오."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "형식에 맞지 않는 값입니다." msgstr "형식에 맞지 않는 값입니다."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "문자, 숫자, 밑줄( _ ) 또는 하이픈( - )으로 이루어진 유효한 \"slug\"를 입력하십시오." msgstr "문자, 숫자, 밑줄( _ ) 또는 하이픈( - )으로 이루어진 유효한 \"slug\"를 입력하십시오."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "유효한 URL을 입력하십시오." msgstr "유효한 URL을 입력하십시오."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\"가 유효하지 않은 UUID 입니다." msgstr "\"{value}\"가 유효하지 않은 UUID 입니다."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "유효한 IPv4 또는 IPv6 주소를 입력하십시오." msgstr "유효한 IPv4 또는 IPv6 주소를 입력하십시오."
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "유효한 정수(integer)를 넣어주세요." msgstr "유효한 정수(integer)를 넣어주세요."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "이 값이 {max_value}보다 작거나 같은지 확인하십시오." msgstr "이 값이 {max_value}보다 작거나 같은지 확인하십시오."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "이 값이 {min_value}보다 크거나 같은지 확인하십시오." msgstr "이 값이 {min_value}보다 크거나 같은지 확인하십시오."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "문자열 값이 너무 큽니다." msgstr "문자열 값이 너무 큽니다."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "유효한 숫자를 넣어주세요." msgstr "유효한 숫자를 넣어주세요."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "전체 숫자(digits)가 {max_digits} 이하인지 확인하십시오." msgstr "전체 숫자(digits)가 {max_digits} 이하인지 확인하십시오."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "소수점 자릿수가 {max_decimal_places} 이하인지 확인하십시오." msgstr "소수점 자릿수가 {max_decimal_places} 이하인지 확인하십시오."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "소수점 자리 앞에 숫자(digits)가 {max_whole_digits} 이하인지 확인하십시오." msgstr "소수점 자리 앞에 숫자(digits)가 {max_whole_digits} 이하인지 확인하십시오."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Datetime의 포멧이 잘못되었습니다. 이 형식들 중 한가지를 사용하세요: {format}." msgstr "Datetime의 포멧이 잘못되었습니다. 이 형식들 중 한가지를 사용하세요: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "예상된 datatime 대신 date를 받았습니다." msgstr "예상된 datatime 대신 date를 받았습니다."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Date의 포멧이 잘못되었습니다. 이 형식들 중 한가지를 사용하세요: {format}." msgstr "Date의 포멧이 잘못되었습니다. 이 형식들 중 한가지를 사용하세요: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "예상된 date 대신 datetime을 받았습니다." msgstr "예상된 date 대신 datetime을 받았습니다."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Time의 포멧이 잘못되었습니다. 이 형식들 중 한가지를 사용하세요: {format}." msgstr "Time의 포멧이 잘못되었습니다. 이 형식들 중 한가지를 사용하세요: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\"이 유효하지 않은 선택(choice)입니다." msgstr "\"{input}\"이 유효하지 않은 선택(choice)입니다."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "아이템 리스트가 예상되었으나 \"{input_type}\"를 받았습니다." msgstr "아이템 리스트가 예상되었으나 \"{input_type}\"를 받았습니다."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "파일이 제출되지 않았습니다." msgstr "파일이 제출되지 않았습니다."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "제출된 데이터는 파일이 아닙니다. 제출된 서식의 인코딩 형식을 확인하세요." msgstr "제출된 데이터는 파일이 아닙니다. 제출된 서식의 인코딩 형식을 확인하세요."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "파일명을 알 수 없습니다." msgstr "파일명을 알 수 없습니다."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "제출된 파일이 비어있습니다." msgstr "제출된 파일이 비어있습니다."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "이 파일명의 글자수가 최대 {max_length}를 넘지 않는지 확인하십시오. (이것은 {length}가 있습니다)." msgstr "이 파일명의 글자수가 최대 {max_length}를 넘지 않는지 확인하십시오. (이것은 {length}가 있습니다)."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "유효한 이미지 파일을 업로드 하십시오. 업로드 하신 파일은 이미지 파일이 아니거나 손상된 이미지 파일입니다." msgstr "유효한 이미지 파일을 업로드 하십시오. 업로드 하신 파일은 이미지 파일이 아니거나 손상된 이미지 파일입니다."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "아이템 딕셔너리가 예상되었으나 \"{input_type}\" 타입을 받았습니다." msgstr "아이템 딕셔너리가 예상되었으나 \"{input_type}\" 타입을 받았습니다."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "유효하지 않은 page \"{page_number}\": {message}." msgstr "유효하지 않은 page \"{page_number}\": {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "커서(cursor)가 유효하지 않습니다." msgstr "커서(cursor)가 유효하지 않습니다."
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "유효하지 않은 pk \"{pk_value}\" - 객체가 존재하지 않습니다." msgstr "유효하지 않은 pk \"{pk_value}\" - 객체가 존재하지 않습니다."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "잘못된 형식입니다. pk 값 대신 {data_type}를 받았습니다." msgstr "잘못된 형식입니다. pk 값 대신 {data_type}를 받았습니다."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "유효하지 않은 하이퍼링크 - 일치하는 URL이 없습니다." msgstr "유효하지 않은 하이퍼링크 - 일치하는 URL이 없습니다."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "유효하지 않은 하이퍼링크 - URL이 일치하지 않습니다." msgstr "유효하지 않은 하이퍼링크 - URL이 일치하지 않습니다."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "유효하지 않은 하이퍼링크 - 객체가 존재하지 않습니다." msgstr "유효하지 않은 하이퍼링크 - 객체가 존재하지 않습니다."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "잘못된 형식입니다. URL 문자열을 예상했으나 {data_type}을 받았습니다." msgstr "잘못된 형식입니다. URL 문자열을 예상했으나 {data_type}을 받았습니다."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "{slug_name}={value} 객체가 존재하지 않습니다." msgstr "{slug_name}={value} 객체가 존재하지 않습니다."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "값이 유효하지 않습니다." msgstr "값이 유효하지 않습니다."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "유효하지 않은 데이터. 딕셔너리(dictionary)대신 {datatype}를 받았습니다." msgstr "유효하지 않은 데이터. 딕셔너리(dictionary)대신 {datatype}를 받았습니다."
@ -330,18 +361,22 @@ msgid "This field must be unique."
msgstr "이 칸은 반드시 고유해야 합니다." msgstr "이 칸은 반드시 고유해야 합니다."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -361,6 +396,6 @@ msgstr "hostname내 버전이 유효하지 않습니다."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "쿼리 파라메터내 버전이 유효하지 않습니다." msgstr "쿼리 파라메터내 버전이 유효하지 않습니다."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -8,9 +8,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Macedonian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/mk/)\n" "Language-Team: Macedonian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/mk/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -18,40 +18,40 @@ msgstr ""
"Language: mk\n" "Language: mk\n"
"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Невалиден основен header. Не се внесени податоци за автентикација." msgstr "Невалиден основен header. Не се внесени податоци за автентикација."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Невалиден основен header. Автентикационата низа не треба да содржи празни места." msgstr "Невалиден основен header. Автентикационата низа не треба да содржи празни места."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Невалиден основен header. Податоците за автентикација не се енкодирани со base64." msgstr "Невалиден основен header. Податоците за автентикација не се енкодирани со base64."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Невалидно корисничко име/лозинка." msgstr "Невалидно корисничко име/лозинка."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Корисникот е деактивиран или избришан." msgstr "Корисникот е деактивиран или избришан."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Невалиден токен header. Не се внесени податоци за најава." msgstr "Невалиден токен header. Не се внесени податоци за најава."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Невалиден токен во header. Токенот не треба да содржи празни места." msgstr "Невалиден токен во header. Токенот не треба да содржи празни места."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Невалиден токен." msgstr "Невалиден токен."
@ -87,11 +87,12 @@ msgstr "Не се внесени податоци за најава."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "Немате дозвола да го сторите ова." msgstr "Немате дозвола да го сторите ова."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Не е пронајдено ништо." msgstr "Не е пронајдено ништо."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Методата \"{method}\" не е дозволена." msgstr "Методата \"{method}\" не е дозволена."
@ -100,6 +101,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "Не може да се исполни барањето на Accept header-от." msgstr "Не може да се исполни барањето на Accept header-от."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Media типот „{media_type}“ не е поддржан." msgstr "Media типот „{media_type}“ не е поддржан."
@ -107,209 +109,238 @@ msgstr "Media типот „{media_type}“ не е поддржан."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Request-от е забранет заради ограничувања." msgstr "Request-от е забранет заради ограничувања."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Ова поле е задолжително." msgstr "Ова поле е задолжително."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Ова поле не смее да биде недефинирано." msgstr "Ова поле не смее да биде недефинирано."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" не е валиден boolean." msgstr "\"{input}\" не е валиден boolean."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "Ова поле не смее да биде празно." msgstr "Ова поле не смее да биде празно."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Ова поле не смее да има повеќе од {max_length} знаци." msgstr "Ова поле не смее да има повеќе од {max_length} знаци."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Ова поле мора да има барем {min_length} знаци." msgstr "Ова поле мора да има барем {min_length} знаци."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Внесете валидна email адреса." msgstr "Внесете валидна email адреса."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Ова поле не е по правилната шема/барање." msgstr "Ова поле не е по правилната шема/барање."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Внесете валидно име што содржи букви, бројки, долни црти или црти." msgstr "Внесете валидно име што содржи букви, бројки, долни црти или црти."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Внесете валиден URL." msgstr "Внесете валиден URL."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Задолжителен е валиден цел број." msgstr "Задолжителен е валиден цел број."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Вредноста треба да биде помала или еднаква на {max_value}." msgstr "Вредноста треба да биде помала или еднаква на {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Вредноста треба да биде поголема или еднаква на {min_value}." msgstr "Вредноста треба да биде поголема или еднаква на {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Вредноста е преголема." msgstr "Вредноста е преголема."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Задолжителен е валиден број." msgstr "Задолжителен е валиден број."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Не смее да има повеќе од {max_digits} цифри вкупно." msgstr "Не смее да има повеќе од {max_digits} цифри вкупно."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Не смее да има повеќе од {max_decimal_places} децимални места." msgstr "Не смее да има повеќе од {max_decimal_places} децимални места."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Не смее да има повеќе од {max_whole_digits} цифри пред децималната точка." msgstr "Не смее да има повеќе од {max_whole_digits} цифри пред децималната точка."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Датата и времето се со погрешен формат. Користете го овој формат: {format}." msgstr "Датата и времето се со погрешен формат. Користете го овој формат: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Очекувано беше дата и време, а внесено беше само дата." msgstr "Очекувано беше дата и време, а внесено беше само дата."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Датата е со погрешен формат. Користете го овој формат: {format}." msgstr "Датата е со погрешен формат. Користете го овој формат: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Очекувана беше дата, а внесени беа и дата и време." msgstr "Очекувана беше дата, а внесени беа и дата и време."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Времето е со погрешен формат. Користете го овој формат: {format}." msgstr "Времето е со погрешен формат. Користете го овој формат: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "„{input}“ не е валиден избор." msgstr "„{input}“ не е валиден избор."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Очекувана беше листа, а внесено беше „{input_type}“." msgstr "Очекувана беше листа, а внесено беше „{input_type}“."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Ниеден фајл не е качен (upload-иран)." msgstr "Ниеден фајл не е качен (upload-иран)."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "Испратените податоци не се фајл. Проверете го encoding-от на формата." msgstr "Испратените податоци не се фајл. Проверете го encoding-от на формата."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "Не може да се открие име на фајлот." msgstr "Не може да се открие име на фајлот."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "Качениот (upload-иран) фајл е празен." msgstr "Качениот (upload-иран) фајл е празен."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Името на фајлот треба да има највеќе {max_length} знаци (а има {length})." msgstr "Името на фајлот треба да има највеќе {max_length} знаци (а има {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Качете (upload-ирајте) валидна слика. Фајлот што го качивте не е валидна слика или е расипан." msgstr "Качете (upload-ирајте) валидна слика. Фајлот што го качивте не е валидна слика или е расипан."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Невалидна страна „{page_number}“: {message}." msgstr "Невалидна страна „{page_number}“: {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Невалиден pk „{pk_value}“ - објектот не постои." msgstr "Невалиден pk „{pk_value}“ - објектот не постои."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Неточен тип. Очекувано беше pk, а внесено {data_type}." msgstr "Неточен тип. Очекувано беше pk, а внесено {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Невалиден хиперлинк - не е внесен URL." msgstr "Невалиден хиперлинк - не е внесен URL."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Невалиден хиперлинк - внесен е неправилен URL." msgstr "Невалиден хиперлинк - внесен е неправилен URL."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Невалиден хиперлинк - Објектот не постои." msgstr "Невалиден хиперлинк - Објектот не постои."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Неточен тип. Очекувано беше URL, a внесено {data_type}." msgstr "Неточен тип. Очекувано беше URL, a внесено {data_type}."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Објектот со {slug_name}={value} не постои." msgstr "Објектот со {slug_name}={value} не постои."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Невалидна вредност." msgstr "Невалидна вредност."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Невалидни податоци. Очекуван беше dictionary, а внесен {datatype}." msgstr "Невалидни податоци. Очекуван беше dictionary, а внесен {datatype}."
@ -330,18 +361,22 @@ msgid "This field must be unique."
msgstr "Ова поле мора да биде уникатно." msgstr "Ова поле мора да биде уникатно."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "Полињата {field_names} заедно мора да формираат уникатен збир." msgstr "Полињата {field_names} заедно мора да формираат уникатен збир."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "Ова поле мора да биде уникатно за „{date_field}“ датата." msgstr "Ова поле мора да биде уникатно за „{date_field}“ датата."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "Ова поле мора да биде уникатно за „{date_field}“ месецот." msgstr "Ова поле мора да биде уникатно за „{date_field}“ месецот."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "Ова поле мора да биде уникатно за „{date_field}“ годината." msgstr "Ова поле мора да биде уникатно за „{date_field}“ годината."
@ -361,6 +396,6 @@ msgstr "Невалидна верзија во hostname-от."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Невалидна верзија во query параметарот." msgstr "Невалидна верзија во query параметарот."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Norwegian Bokmål (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/nb/)\n" "Language-Team: Norwegian Bokmål (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/nb/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -17,40 +17,40 @@ msgstr ""
"Language: nb\n" "Language: nb\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "" msgstr ""
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "" msgstr ""
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "" msgstr ""
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "" msgstr ""
@ -86,11 +86,12 @@ msgstr ""
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "" msgstr ""
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "" msgstr ""
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "" msgstr ""
@ -99,6 +100,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "" msgstr ""
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "" msgstr ""
@ -106,209 +108,238 @@ msgstr ""
msgid "Request was throttled." msgid "Request was throttled."
msgstr "" msgstr ""
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "" msgstr ""
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "" msgstr ""
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "" msgstr ""
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "" msgstr ""
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "" msgstr ""
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "" msgstr ""
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "" msgstr ""
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "" msgstr ""
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "" msgstr ""
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "" msgstr ""
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "" msgstr ""
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "" msgstr ""
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "" msgstr ""
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "" msgstr ""
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "" msgstr ""
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "" msgstr ""
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "" msgstr ""
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "" msgstr ""
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "" msgstr ""
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "" msgstr ""
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "" msgstr ""
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "" msgstr ""
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "" msgstr ""
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "" msgstr ""
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "" msgstr ""
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "" msgstr ""
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "" msgstr ""
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "" msgstr ""
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "" msgstr ""
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "" msgstr ""
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "" msgstr ""
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "" msgstr ""
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "" msgstr ""
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "" msgstr ""
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "" msgstr ""
@ -329,18 +360,22 @@ msgid "This field must be unique."
msgstr "" msgstr ""
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -360,6 +395,6 @@ msgstr ""
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "" msgstr ""
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -8,9 +8,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Dutch (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/nl/)\n" "Language-Team: Dutch (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/nl/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -18,40 +18,40 @@ msgstr ""
"Language: nl\n" "Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Ongeldige basic header. Geen login gegevens opgegeven." msgstr "Ongeldige basic header. Geen login gegevens opgegeven."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Ongeldige basic header. login gegevens kunnen geen spaties bevatten." msgstr "Ongeldige basic header. login gegevens kunnen geen spaties bevatten."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Ongeldige basic header. login gegevens zijn niet correct base64 versleuteld." msgstr "Ongeldige basic header. login gegevens zijn niet correct base64 versleuteld."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Ongeldige gebruikersnaam/wachtwoord." msgstr "Ongeldige gebruikersnaam/wachtwoord."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Gebruiker inactief of verwijderd." msgstr "Gebruiker inactief of verwijderd."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Ongeldige token header. Geen login gegevens opgegeven" msgstr "Ongeldige token header. Geen login gegevens opgegeven"
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Ongeldige token header. Token kan geen spaties bevatten." msgstr "Ongeldige token header. Token kan geen spaties bevatten."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Ongeldige token." msgstr "Ongeldige token."
@ -87,11 +87,12 @@ msgstr "Authenticatie gegevens zijn niet opgegeven."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "Je hebt geen toegang om deze actie uit te voeren." msgstr "Je hebt geen toegang om deze actie uit te voeren."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Niet gevonden." msgstr "Niet gevonden."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Methode \"{method}\" niet toegestaan." msgstr "Methode \"{method}\" niet toegestaan."
@ -100,6 +101,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "Kan niet voldoen aan de opgegeven \"Accept\" header." msgstr "Kan niet voldoen aan de opgegeven \"Accept\" header."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Ongeldig media type \"{media_type}\" in aanvraag." msgstr "Ongeldig media type \"{media_type}\" in aanvraag."
@ -107,209 +109,238 @@ msgstr "Ongeldig media type \"{media_type}\" in aanvraag."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Aanvraag was verstikt." msgstr "Aanvraag was verstikt."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Dit veld is verplicht." msgstr "Dit veld is verplicht."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Dit veld mag niet leeg zijn." msgstr "Dit veld mag niet leeg zijn."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" is een ongeldige boolean waarde." msgstr "\"{input}\" is een ongeldige boolean waarde."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "Dit veld mag niet leeg zijn." msgstr "Dit veld mag niet leeg zijn."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Zorg ervoor dat dit veld niet meer dan {max_length} karakters bevat." msgstr "Zorg ervoor dat dit veld niet meer dan {max_length} karakters bevat."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Zorg ervoor dat dit veld minimaal {min_length} karakters bevat." msgstr "Zorg ervoor dat dit veld minimaal {min_length} karakters bevat."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Voer een geldig e-mailadres in." msgstr "Voer een geldig e-mailadres in."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Deze waarde voldoet niet aan het benodigde formaat." msgstr "Deze waarde voldoet niet aan het benodigde formaat."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Voer een geldige \"slug\" in bestaande uit letters, cijfers, underscore of streepjes." msgstr "Voer een geldige \"slug\" in bestaande uit letters, cijfers, underscore of streepjes."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Voer een geldige URL in." msgstr "Voer een geldige URL in."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" in een ongeldige UUID." msgstr "\"{value}\" in een ongeldige UUID."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Een geldig getal is vereist." msgstr "Een geldig getal is vereist."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Zorg ervoor dat deze waarde minder of gelijk is aan {max_value}." msgstr "Zorg ervoor dat deze waarde minder of gelijk is aan {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Zorg ervoor dat deze waarde groter of gelijk is aan {min_value}." msgstr "Zorg ervoor dat deze waarde groter of gelijk is aan {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Tekstuele waarde is te lang." msgstr "Tekstuele waarde is te lang."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Een geldig nummer is verplicht." msgstr "Een geldig nummer is verplicht."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Zorg ervoor dat er niet meer dan {max_digits} getallen zijn in totaal." msgstr "Zorg ervoor dat er niet meer dan {max_digits} getallen zijn in totaal."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "zorg ervoor dat er niet meer dan {max_decimal_places} getallen achter de komma zijn." msgstr "zorg ervoor dat er niet meer dan {max_decimal_places} getallen achter de komma zijn."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Zorg ervoor dat er niet meer dan {max_whole_digits} getallen voor de komma zijn." msgstr "Zorg ervoor dat er niet meer dan {max_whole_digits} getallen voor de komma zijn."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Datetime heeft een ongeldig formaat, gebruik 1 van de volgende formaten: {format}." msgstr "Datetime heeft een ongeldig formaat, gebruik 1 van de volgende formaten: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Verwacht een datetime, in plaats kreeg een date." msgstr "Verwacht een datetime, in plaats kreeg een date."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Date heeft het verkeerde formaat, gebruik 1 van de onderstaande formaten: {format}." msgstr "Date heeft het verkeerde formaat, gebruik 1 van de onderstaande formaten: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Verwacht een date, in plaats kreeg een datetime" msgstr "Verwacht een date, in plaats kreeg een datetime"
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Time heeft het verkeerde formaat, gebruik 1 van onderstaande formaten: {format}." msgstr "Time heeft het verkeerde formaat, gebruik 1 van onderstaande formaten: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "Tijdsduur heeft een verkeerd formaat, gebruik 1 van onderstaande formaten: {format}." msgstr "Tijdsduur heeft een verkeerd formaat, gebruik 1 van onderstaande formaten: {format}."
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" is een ongeldige keuze." msgstr "\"{input}\" is een ongeldige keuze."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Verwacht een lijst met items, kreeg een type \"{input_type}\" in plaats." msgstr "Verwacht een lijst met items, kreeg een type \"{input_type}\" in plaats."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Er is geen bestand opgestuurd" msgstr "Er is geen bestand opgestuurd"
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "De verstuurde data was geen bestand. Controleer de encoding type op het formulier." msgstr "De verstuurde data was geen bestand. Controleer de encoding type op het formulier."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "Bestandsnaam kan niet vastgesteld worden." msgstr "Bestandsnaam kan niet vastgesteld worden."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "Het verstuurde bestand is leeg." msgstr "Het verstuurde bestand is leeg."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Zorg ervoor dat deze bestandsnaam minstens {max_length} karakters heeft (momenteel {length})." msgstr "Zorg ervoor dat deze bestandsnaam minstens {max_length} karakters heeft (momenteel {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Upload een geldige afbeelding, de geüploade afbeelding is geen afbeelding of mogelijk corrupt geraakt," msgstr "Upload een geldige afbeelding, de geüploade afbeelding is geen afbeelding of mogelijk corrupt geraakt,"
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Verwacht een dictionary van items, in plaats kreeg een type \"{input_type}\"." msgstr "Verwacht een dictionary van items, in plaats kreeg een type \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Ongeldige pagina \"{page_number}\": {message}." msgstr "Ongeldige pagina \"{page_number}\": {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Ongeldige cursor." msgstr "Ongeldige cursor."
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Ongeldige pk \"{pk_value}\" - object bestaat niet." msgstr "Ongeldige pk \"{pk_value}\" - object bestaat niet."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Ongeldig type. Verwacht een pk waarde, ontving {data_type}." msgstr "Ongeldig type. Verwacht een pk waarde, ontving {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Ongeldige hyperlink - Geen overeenkomende URL." msgstr "Ongeldige hyperlink - Geen overeenkomende URL."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Ongeldige hyperlink - Ongeldige URL" msgstr "Ongeldige hyperlink - Ongeldige URL"
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Ongeldige hyperlink - Object bestaat niet." msgstr "Ongeldige hyperlink - Object bestaat niet."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Ongeldig type. Verwacht een URL, ontving {data_type}." msgstr "Ongeldig type. Verwacht een URL, ontving {data_type}."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Object met {slug_name}={value} bestaat niet." msgstr "Object met {slug_name}={value} bestaat niet."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Ongeldige waarde." msgstr "Ongeldige waarde."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Ongeldige data. Verwacht een dictionary, kreeg een {datatype}." msgstr "Ongeldige data. Verwacht een dictionary, kreeg een {datatype}."
@ -330,18 +361,22 @@ msgid "This field must be unique."
msgstr "Dit veld moet uniek zijn." msgstr "Dit veld moet uniek zijn."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "De velden {field_names} moeten een unieke set zijn." msgstr "De velden {field_names} moeten een unieke set zijn."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "Dit veld moet uniek zijn voor de \"{date_field}\" datum." msgstr "Dit veld moet uniek zijn voor de \"{date_field}\" datum."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "Dit veld moet uniek zijn voor de \"{date_field}\" maand." msgstr "Dit veld moet uniek zijn voor de \"{date_field}\" maand."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "Dit veld moet uniek zijn voor de \"{date_field}\" year." msgstr "Dit veld moet uniek zijn voor de \"{date_field}\" year."
@ -361,6 +396,6 @@ msgstr "Ongeldige versie in host naam."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Ongeldige versie in query parameter." msgstr "Ongeldige versie in query parameter."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "Toegang niet toegestaan." msgstr "Toegang niet toegestaan."

View File

@ -10,9 +10,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Polish (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/pl/)\n" "Language-Team: Polish (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/pl/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -20,40 +20,40 @@ msgstr ""
"Language: pl\n" "Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Niepoprawny podstawowy nagłówek. Brak danych uwierzytelniających." msgstr "Niepoprawny podstawowy nagłówek. Brak danych uwierzytelniających."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Niepoprawny podstawowy nagłówek. Ciąg znaków danych uwierzytelniających nie powinien zawierać spacji." msgstr "Niepoprawny podstawowy nagłówek. Ciąg znaków danych uwierzytelniających nie powinien zawierać spacji."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Niepoprawny podstawowy nagłówek. Niewłaściwe kodowanie base64 danych uwierzytelniających." msgstr "Niepoprawny podstawowy nagłówek. Niewłaściwe kodowanie base64 danych uwierzytelniających."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Niepoprawna nazwa użytkownika lub hasło." msgstr "Niepoprawna nazwa użytkownika lub hasło."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Użytkownik nieaktywny lub usunięty." msgstr "Użytkownik nieaktywny lub usunięty."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Niepoprawny nagłówek tokena. Brak danych uwierzytelniających." msgstr "Niepoprawny nagłówek tokena. Brak danych uwierzytelniających."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Niepoprawny nagłówek tokena. Token nie może zawierać odstępów." msgstr "Niepoprawny nagłówek tokena. Token nie może zawierać odstępów."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Niepoprawny token." msgstr "Niepoprawny token."
@ -89,11 +89,12 @@ msgstr "Nie podano danych uwierzytelniających."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "Nie masz uprawnień, by wykonać tę czynność." msgstr "Nie masz uprawnień, by wykonać tę czynność."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Nie znaleziono." msgstr "Nie znaleziono."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Niedozwolona metoda \"{method}\"." msgstr "Niedozwolona metoda \"{method}\"."
@ -102,6 +103,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "Nie można zaspokoić nagłówka Accept żądania." msgstr "Nie można zaspokoić nagłówka Accept żądania."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Brak wsparcia dla żądanego typu danych \"{media_type}\"." msgstr "Brak wsparcia dla żądanego typu danych \"{media_type}\"."
@ -109,209 +111,238 @@ msgstr "Brak wsparcia dla żądanego typu danych \"{media_type}\"."
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Żądanie zostało zdławione." msgstr "Żądanie zostało zdławione."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "To pole jest wymagane." msgstr "To pole jest wymagane."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Pole nie może mieć wartości null." msgstr "Pole nie może mieć wartości null."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" nie jest poprawną wartością logiczną." msgstr "\"{input}\" nie jest poprawną wartością logiczną."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "To pole nie może być puste." msgstr "To pole nie może być puste."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Upewnij się, że to pole ma nie więcej niż {max_length} znaków." msgstr "Upewnij się, że to pole ma nie więcej niż {max_length} znaków."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Upewnij się, że pole ma co najmniej {min_length} znaków." msgstr "Upewnij się, że pole ma co najmniej {min_length} znaków."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Podaj poprawny adres e-mail." msgstr "Podaj poprawny adres e-mail."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Ta wartość nie pasuje do wymaganego wzorca." msgstr "Ta wartość nie pasuje do wymaganego wzorca."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Wprowadź poprawną wartość pola typu \"slug\", składającą się ze znaków łacińskich, cyfr, podkreślenia lub myślnika." msgstr "Wprowadź poprawną wartość pola typu \"slug\", składającą się ze znaków łacińskich, cyfr, podkreślenia lub myślnika."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Wprowadź poprawny adres URL." msgstr "Wprowadź poprawny adres URL."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" nie jest poprawnym UUID." msgstr "\"{value}\" nie jest poprawnym UUID."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Wymagana poprawna liczba całkowita." msgstr "Wymagana poprawna liczba całkowita."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Upewnij się, że ta wartość jest mniejsza lub równa {max_value}." msgstr "Upewnij się, że ta wartość jest mniejsza lub równa {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Upewnij się, że ta wartość jest większa lub równa {min_value}." msgstr "Upewnij się, że ta wartość jest większa lub równa {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Za długi ciąg znaków." msgstr "Za długi ciąg znaków."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Wymagana poprawna liczba." msgstr "Wymagana poprawna liczba."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Upewnij się, że liczba ma nie więcej niż {max_digits} cyfr." msgstr "Upewnij się, że liczba ma nie więcej niż {max_digits} cyfr."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Upewnij się, że liczba ma nie więcej niż {max_decimal_places} cyfr dziesiętnych." msgstr "Upewnij się, że liczba ma nie więcej niż {max_decimal_places} cyfr dziesiętnych."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Upewnij się, że liczba ma nie więcej niż {max_whole_digits} cyfr całkowitych." msgstr "Upewnij się, że liczba ma nie więcej niż {max_whole_digits} cyfr całkowitych."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Wartość daty z czasem ma zły format. Użyj jednego z dostępnych formatów: {format}." msgstr "Wartość daty z czasem ma zły format. Użyj jednego z dostępnych formatów: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Oczekiwano datę z czasem, otrzymano tylko datę." msgstr "Oczekiwano datę z czasem, otrzymano tylko datę."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Data ma zły format. Użyj jednego z tych formatów: {format}." msgstr "Data ma zły format. Użyj jednego z tych formatów: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Oczekiwano daty a otrzymano datę z czasem." msgstr "Oczekiwano daty a otrzymano datę z czasem."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Błędny format czasu. Użyj jednego z dostępnych formatów: {format}" msgstr "Błędny format czasu. Użyj jednego z dostępnych formatów: {format}"
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "Czas trwania ma zły format. Użyj w zamian jednego z tych formatów: {format}." msgstr "Czas trwania ma zły format. Użyj w zamian jednego z tych formatów: {format}."
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" nie jest poprawnym wyborem." msgstr "\"{input}\" nie jest poprawnym wyborem."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Oczekiwano listy elementów, a otrzymano dane typu \"{input_type}\"." msgstr "Oczekiwano listy elementów, a otrzymano dane typu \"{input_type}\"."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Nie przesłano pliku." msgstr "Nie przesłano pliku."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "Przesłane dane nie były plikiem. Sprawdź typ kodowania formatki." msgstr "Przesłane dane nie były plikiem. Sprawdź typ kodowania formatki."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "Nie można określić nazwy pliku." msgstr "Nie można określić nazwy pliku."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "Przesłany plik jest pusty." msgstr "Przesłany plik jest pusty."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Upewnij się, że nazwa pliku ma długość co najwyżej {max_length} znaków (aktualnie ma {length})." msgstr "Upewnij się, że nazwa pliku ma długość co najwyżej {max_length} znaków (aktualnie ma {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Prześlij poprawny plik graficzny. Przesłany plik albo nie jest grafiką lub jest uszkodzony." msgstr "Prześlij poprawny plik graficzny. Przesłany plik albo nie jest grafiką lub jest uszkodzony."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Oczekiwano słownika, ale otrzymano \"{input_type}\"." msgstr "Oczekiwano słownika, ale otrzymano \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Niepoprawna strona \"{page_number}\": {message}." msgstr "Niepoprawna strona \"{page_number}\": {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Niepoprawny wskaźnik" msgstr "Niepoprawny wskaźnik"
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Błędny klucz główny \"{pk_value}\" - obiekt nie istnieje." msgstr "Błędny klucz główny \"{pk_value}\" - obiekt nie istnieje."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Błędny typ danych. Oczekiwano wartość klucza głównego, otrzymano {data_type}." msgstr "Błędny typ danych. Oczekiwano wartość klucza głównego, otrzymano {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Błędny hyperlink - nie znaleziono pasującego adresu URL." msgstr "Błędny hyperlink - nie znaleziono pasującego adresu URL."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Błędny hyperlink - błędne dopasowanie adresu URL." msgstr "Błędny hyperlink - błędne dopasowanie adresu URL."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Błędny hyperlink - obiekt nie istnieje." msgstr "Błędny hyperlink - obiekt nie istnieje."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Błędny typ danych. Oczekiwano adresu URL, otrzymano {data_type}" msgstr "Błędny typ danych. Oczekiwano adresu URL, otrzymano {data_type}"
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Obiekt z polem {slug_name}={value} nie istnieje" msgstr "Obiekt z polem {slug_name}={value} nie istnieje"
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Niepoprawna wartość." msgstr "Niepoprawna wartość."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Niepoprawne dane. Oczekiwano słownika, otrzymano {datatype}." msgstr "Niepoprawne dane. Oczekiwano słownika, otrzymano {datatype}."
@ -332,18 +363,22 @@ msgid "This field must be unique."
msgstr "Wartość dla tego pola musi być unikalna." msgstr "Wartość dla tego pola musi być unikalna."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "Pola {field_names} muszą tworzyć unikalny zestaw." msgstr "Pola {field_names} muszą tworzyć unikalny zestaw."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "To pole musi mieć unikalną wartość dla jednej daty z pola \"{date_field}\"." msgstr "To pole musi mieć unikalną wartość dla jednej daty z pola \"{date_field}\"."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "To pole musi mieć unikalną wartość dla konkretnego miesiąca z pola \"{date_field}\"." msgstr "To pole musi mieć unikalną wartość dla konkretnego miesiąca z pola \"{date_field}\"."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "To pole musi mieć unikalną wartość dla konkretnego roku z pola \"{date_field}\"." msgstr "To pole musi mieć unikalną wartość dla konkretnego roku z pola \"{date_field}\"."
@ -363,6 +398,6 @@ msgstr "Błędna wersja w nazwie hosta."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Błędna wersja w parametrach zapytania." msgstr "Błędna wersja w parametrach zapytania."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "Brak uprawnień." msgstr "Brak uprawnień."

View File

@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Portuguese (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/pt/)\n" "Language-Team: Portuguese (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/pt/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -17,40 +17,40 @@ msgstr ""
"Language: pt\n" "Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "" msgstr ""
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "" msgstr ""
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "" msgstr ""
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "" msgstr ""
@ -86,11 +86,12 @@ msgstr ""
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "" msgstr ""
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "" msgstr ""
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "" msgstr ""
@ -99,6 +100,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "" msgstr ""
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "" msgstr ""
@ -106,209 +108,238 @@ msgstr ""
msgid "Request was throttled." msgid "Request was throttled."
msgstr "" msgstr ""
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "" msgstr ""
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "" msgstr ""
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "" msgstr ""
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "" msgstr ""
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "" msgstr ""
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "" msgstr ""
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "" msgstr ""
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "" msgstr ""
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "" msgstr ""
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "" msgstr ""
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "" msgstr ""
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "" msgstr ""
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "" msgstr ""
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "" msgstr ""
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "" msgstr ""
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "" msgstr ""
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "" msgstr ""
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "" msgstr ""
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "" msgstr ""
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "" msgstr ""
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "" msgstr ""
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "" msgstr ""
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "" msgstr ""
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "" msgstr ""
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "" msgstr ""
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "" msgstr ""
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "" msgstr ""
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "" msgstr ""
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "" msgstr ""
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "" msgstr ""
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "" msgstr ""
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "" msgstr ""
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "" msgstr ""
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "" msgstr ""
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "" msgstr ""
@ -329,18 +360,22 @@ msgid "This field must be unique."
msgstr "" msgstr ""
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -360,6 +395,6 @@ msgstr ""
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "" msgstr ""
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -4,14 +4,16 @@
# #
# Translators: # Translators:
# Craig Blaszczyk <masterjakul@gmail.com>, 2015 # Craig Blaszczyk <masterjakul@gmail.com>, 2015
# Ederson Mota Pereira <edermp@gmail.com>, 2015
# Filipe Rinaldi <filipe.rinaldi@gmail.com>, 2015 # Filipe Rinaldi <filipe.rinaldi@gmail.com>, 2015
# Hugo Leonardo Chalhoub Mendonça <hugoleonardocm@live.com>, 2015
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/pt_BR/)\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/pt_BR/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -19,46 +21,46 @@ msgstr ""
"Language: pt_BR\n" "Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Cabeçalho básico inválido. Credenciais não fornecidas." msgstr "Cabeçalho básico inválido. Credenciais não fornecidas."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Cabeçalho básico inválido. String de credenciais não deve incluir espaços." msgstr "Cabeçalho básico inválido. String de credenciais não deve incluir espaços."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Cabeçalho básico inválido. Credenciais codificadas em base64 incorretamente." msgstr "Cabeçalho básico inválido. Credenciais codificadas em base64 incorretamente."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Usário ou senha inválido." msgstr "Usuário ou senha inválido."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Usuário inativo ou removido." msgstr "Usuário inativo ou removido."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Cabeçalho de token inválido. Credenciais não fornecidas." msgstr "Cabeçalho de token inválido. Credenciais não fornecidas."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Cabeçalho de token inválido. String de token não deve incluir espaços." msgstr "Cabeçalho de token inválido. String de token não deve incluir espaços."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr "Cabeçalho de token inválido. String de token não deve possuir caracteres inválidos."
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Token inválido." msgstr "Token inválido."
#: authtoken/serializers.py:20 #: authtoken/serializers.py:20
msgid "User account is disabled." msgid "User account is disabled."
msgstr "Conta de usário desabilitada." msgstr "Conta de usuário desabilitada."
#: authtoken/serializers.py:23 #: authtoken/serializers.py:23
msgid "Unable to log in with provided credentials." msgid "Unable to log in with provided credentials."
@ -86,13 +88,14 @@ msgstr "As credenciais de autenticação não foram fornecidas."
#: exceptions.py:99 #: exceptions.py:99
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "Você não tem persmissao para executar essa ação." msgstr "Você não tem permissão para executar essa ação."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Não encontrado." msgstr "Não encontrado."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Método \"{method}\" não é permitido." msgstr "Método \"{method}\" não é permitido."
@ -101,218 +104,248 @@ msgid "Could not satisfy the request Accept header."
msgstr "Não foi possível satisfazer a requisição do cabeçalho Accept." msgstr "Não foi possível satisfazer a requisição do cabeçalho Accept."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Media type \"{media_type}\" no pedido não é suportado." msgstr "Tipo de mídia \"{media_type}\" no pedido não é suportado."
#: exceptions.py:145 #: exceptions.py:145
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Pedido foi limitado." msgstr "Pedido foi limitado."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Este campo é obrigatório." msgstr "Este campo é obrigatório."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Este campo não pode ser nulo." msgstr "Este campo não pode ser nulo."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" não é um valor boleano válido." msgstr "\"{input}\" não é um valor boleano válido."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "Este campo não pode ser em branco." msgstr "Este campo não pode ser em branco."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Certifique-se de que este campo não tenha mais de {max_length} caracteres." msgstr "Certifique-se de que este campo não tenha mais de {max_length} caracteres."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Certifique-se de que este campo tenha mais de {min_length} caracteres." msgstr "Certifique-se de que este campo tenha mais de {min_length} caracteres."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Insira um endereço de email válido." msgstr "Insira um endereço de email válido."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Este valor não corresponde ao padrão exigido." msgstr "Este valor não corresponde ao padrão exigido."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Entrar um \"slug\" válido que consista de letras, números, sublinhados ou hífens." msgstr "Entrar um \"slug\" válido que consista de letras, números, sublinhados ou hífens."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Entrar um URL válido." msgstr "Entrar um URL válido."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" não é um UUID valid." msgstr "\"{value}\" não é um UUID válido."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr "Informe um endereço IPv4 ou IPv6 válido."
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Um número inteiro válido é exigido." msgstr "Um número inteiro válido é exigido."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Certifique-se de que este valor seja inferior ou igual a {max_value}." msgstr "Certifique-se de que este valor seja inferior ou igual a {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Certifque-se de que este valor seja maior ou igual a {min_value}." msgstr "Certifque-se de que este valor seja maior ou igual a {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Valor da string é muito grande." msgstr "Valor da string é muito grande."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Um número válido é necessário." msgstr "Um número válido é necessário."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Certifique-se de que não haja mais de {max_digits} dígitos no total." msgstr "Certifique-se de que não haja mais de {max_digits} dígitos no total."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Certifique-se de que não haja mais de {max_decimal_places} casas decimais." msgstr "Certifique-se de que não haja mais de {max_decimal_places} casas decimais."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Certifique-se de que não haja mais de {max_whole_digits} dígitos antes do ponto decimal." msgstr "Certifique-se de que não haja mais de {max_whole_digits} dígitos antes do ponto decimal."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Formato inválido para data e hora. Use um dos formatos a seguir: {format}." msgstr "Formato inválido para data e hora. Use um dos formatos a seguir: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Data e hora são necessários mas apenas data foi encontrada." msgstr "Necessário uma data e hora mas recebeu uma data."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Formato inválido para data. Use um dos formatos a seguir: {format}." msgstr "Formato inválido para data. Use um dos formatos a seguir: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Necessário uma data mas recebeu uma data e hora." msgstr "Necessário uma data mas recebeu uma data e hora."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Tempo tem formato errado. Usa um desses em vez disso: {format}." msgstr "Formato inválido para Tempo. Use um dos formatos a seguir: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr "Formato inválido para Duração. Use um dos formatos a seguir: {format}."
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" não é um escolha válido." msgstr "\"{input}\" não é um escolha válido."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Necessário uma lista de itens, mas recebeu tipo \"{input_type}\"." msgstr "Necessário uma lista de itens, mas recebeu tipo \"{input_type}\"."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr "Esta seleção não pode estar vazia."
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr "\"{input}\" não é uma escolha válida para um caminho."
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Ficheiro não foi submetido." msgstr "Nenhum arquivo foi submetido."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "Os dados submetidos nao foram um ficheiro. Certifique-se do tipo de codificação no formulário." msgstr "O dado submetido não é um arquivo. Certifique-se do tipo de codificação no formulário."
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "Nome do arquivo não pode ser determinado." msgstr "Nome do arquivo não pode ser determinado."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "O arquivo submetido ésta vázio." msgstr "O arquivo submetido está vázio."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Certifique-se de que o nome do ficheiro tem menos de {max_length} caracteres (tem {length})." msgstr "Certifique-se de que o nome do arquivo tem menos de {max_length} caracteres (tem {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Fazer upload de um imagem válido. O arquivo mandou não foi um imagem ou foi corrupto." msgstr "Fazer upload de uma imagem válida. O arquivo enviado não é um arquivo de imagem ou está corrompido."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr "Esta lista não pode estar vazia."
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Esperou um dicionário de itens mas recebeu tipo \"{input_type}\"." msgstr "Esperado um dicionário de itens mas recebeu tipo \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Página inválido \"{page_number}\": {message}." msgstr "Página inválida \"{page_number}\": {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Cursor invalído" msgstr "Cursor inválido"
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Pk inválido \"{pk_value}\" - objeto não existe." msgstr "Pk inválido \"{pk_value}\" - objeto não existe."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Tipo incorreto. Necessário valor pk, recebeu {data_type}." msgstr "Tipo incorreto. Esperado valor pk, recebeu {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Hyperlink inválido - URL não combinou." msgstr "Hyperlink inválido - Sem combinação para a URL."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Hyperlink inválido - URL combinou errado." msgstr "Hyperlink inválido - Combinação URL incorreta."
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Hyperlink inválido - objeto não existe." msgstr "Hyperlink inválido - Objeto não existe."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Tipo incorreto. Necessário string URL, recebeu {data_type}." msgstr "Tipo incorreto. Necessário string URL, recebeu {data_type}."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Objeto com {slug_name}={value} não existe." msgstr "Objeto com {slug_name}={value} não existe."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Valor inválido." msgstr "Valor inválido."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Data inválido. Necessário um dicionário mas recebeu {datatype}." msgstr "Dado inválido. Necessário um dicionário mas recebeu {datatype}."
#: templates/rest_framework/horizontal/radio.html:2 #: templates/rest_framework/horizontal/radio.html:2
#: templates/rest_framework/inline/radio.html:2 #: templates/rest_framework/inline/radio.html:2
@ -324,44 +357,48 @@ msgstr "Nenhum(a/as)"
#: templates/rest_framework/inline/select_multiple.html:2 #: templates/rest_framework/inline/select_multiple.html:2
#: templates/rest_framework/vertical/select_multiple.html:2 #: templates/rest_framework/vertical/select_multiple.html:2
msgid "No items to select." msgid "No items to select."
msgstr "Nenhum itens para escholher." msgstr "Nenhum item para escholher."
#: validators.py:24 #: validators.py:24
msgid "This field must be unique." msgid "This field must be unique."
msgstr "Esse campo deve ser unico." msgstr "Esse campo deve ser único."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "Os campos {field_names} devem criar um set unico." msgstr "Os campos {field_names} devem criar um set único."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "O campo deve ser unico pela data \"{date_field}\"." msgstr "O campo \"{date_field}\" deve ser único para a data."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "O campo deve ser unico pelo anô \"{date_field}\"." msgstr "O campo \"{date_field}\" deve ser único para o mês."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "O campo deve ser unico pela mês \"{date_field}\"." msgstr "O campo \"{date_field}\" deve ser único para o ano."
#: versioning.py:42 #: versioning.py:42
msgid "Invalid version in \"Accept\" header." msgid "Invalid version in \"Accept\" header."
msgstr "Versão inválido no cabeçalho \"Accept\"." msgstr "Versão inválida no cabeçalho \"Accept\"."
#: versioning.py:73 versioning.py:115 #: versioning.py:73 versioning.py:115
msgid "Invalid version in URL path." msgid "Invalid version in URL path."
msgstr "Versão inválido no caminho de URL." msgstr "Versão inválida no caminho de URL."
#: versioning.py:144 #: versioning.py:144
msgid "Invalid version in hostname." msgid "Invalid version in hostname."
msgstr "Versão inválido no hostname." msgstr "Versão inválida no hostname."
#: versioning.py:166 #: versioning.py:166
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Versão inválida no parâmetro de query." msgstr "Versão inválida no parâmetro de query."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "Permissão negado." msgstr "Permissão negada."

View File

@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/pt_PT/)\n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/pt_PT/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -17,40 +17,40 @@ msgstr ""
"Language: pt_PT\n" "Language: pt_PT\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "" msgstr ""
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "" msgstr ""
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "" msgstr ""
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "" msgstr ""
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "" msgstr ""
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "" msgstr ""
@ -86,11 +86,12 @@ msgstr ""
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "" msgstr ""
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "" msgstr ""
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "" msgstr ""
@ -99,6 +100,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "" msgstr ""
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "" msgstr ""
@ -106,209 +108,238 @@ msgstr ""
msgid "Request was throttled." msgid "Request was throttled."
msgstr "" msgstr ""
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "" msgstr ""
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "" msgstr ""
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "" msgstr ""
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "" msgstr ""
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "" msgstr ""
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "" msgstr ""
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "" msgstr ""
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "" msgstr ""
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "" msgstr ""
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "" msgstr ""
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "" msgstr ""
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "" msgstr ""
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "" msgstr ""
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "" msgstr ""
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "" msgstr ""
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "" msgstr ""
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "" msgstr ""
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "" msgstr ""
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "" msgstr ""
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "" msgstr ""
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "" msgstr ""
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "" msgstr ""
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "" msgstr ""
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "" msgstr ""
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "" msgstr ""
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "" msgstr ""
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "" msgstr ""
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "" msgstr ""
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "" msgstr ""
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "" msgstr ""
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "" msgstr ""
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "" msgstr ""
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "" msgstr ""
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "" msgstr ""
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "" msgstr ""
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "" msgstr ""
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "" msgstr ""
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "" msgstr ""
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "" msgstr ""
@ -329,18 +360,22 @@ msgid "This field must be unique."
msgstr "" msgstr ""
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "" msgstr ""
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "" msgstr ""
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "" msgstr ""
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "" msgstr ""
@ -360,6 +395,6 @@ msgstr ""
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "" msgstr ""
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

View File

@ -10,9 +10,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django REST framework\n" "Project-Id-Version: Django REST framework\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-06 13:21+0100\n" "POT-Creation-Date: 2015-09-21 10:55+0200\n"
"PO-Revision-Date: 2015-08-06 12:21+0000\n" "PO-Revision-Date: 2015-09-21 08:56+0000\n"
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n" "Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
"Language-Team: Russian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ru/)\n" "Language-Team: Russian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ru/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -20,40 +20,40 @@ msgstr ""
"Language: ru\n" "Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#: authentication.py:73 #: authentication.py:72
msgid "Invalid basic header. No credentials provided." msgid "Invalid basic header. No credentials provided."
msgstr "Недопустимый заголовок. Не предоставлены учетные данные." msgstr "Недопустимый заголовок. Не предоставлены учетные данные."
#: authentication.py:76 #: authentication.py:75
msgid "Invalid basic header. Credentials string should not contain spaces." msgid "Invalid basic header. Credentials string should not contain spaces."
msgstr "Недопустимый заголовок. Учетные данные не должны содержать пробелов." msgstr "Недопустимый заголовок. Учетные данные не должны содержать пробелов."
#: authentication.py:82 #: authentication.py:81
msgid "Invalid basic header. Credentials not correctly base64 encoded." msgid "Invalid basic header. Credentials not correctly base64 encoded."
msgstr "Недопустимый заголовок. Учетные данные некорректно закодированны в base64." msgstr "Недопустимый заголовок. Учетные данные некорректно закодированны в base64."
#: authentication.py:100 #: authentication.py:98
msgid "Invalid username/password." msgid "Invalid username/password."
msgstr "Недопустимые имя пользователя или пароль." msgstr "Недопустимые имя пользователя или пароль."
#: authentication.py:103 authentication.py:191 #: authentication.py:101 authentication.py:189
msgid "User inactive or deleted." msgid "User inactive or deleted."
msgstr "Пользователь неактивен или удален." msgstr "Пользователь неактивен или удален."
#: authentication.py:170 #: authentication.py:168
msgid "Invalid token header. No credentials provided." msgid "Invalid token header. No credentials provided."
msgstr "Недопустимый заголовок токена. Не предоставлены учетные данные." msgstr "Недопустимый заголовок токена. Не предоставлены учетные данные."
#: authentication.py:173 #: authentication.py:171
msgid "Invalid token header. Token string should not contain spaces." msgid "Invalid token header. Token string should not contain spaces."
msgstr "Недопустимый заголовок токена. Токен не должен содержать пробелов." msgstr "Недопустимый заголовок токена. Токен не должен содержать пробелов."
#: authentication.py:179 #: authentication.py:177
msgid "" msgid ""
"Invalid token header. Token string should not contain invalid characters." "Invalid token header. Token string should not contain invalid characters."
msgstr "" msgstr ""
#: authentication.py:188 #: authentication.py:186
msgid "Invalid token." msgid "Invalid token."
msgstr "Недопустимый токен." msgstr "Недопустимый токен."
@ -89,11 +89,12 @@ msgstr "Учетные данные не были предоставлены."
msgid "You do not have permission to perform this action." msgid "You do not have permission to perform this action."
msgstr "У вас нет прав для выполнения этой операции." msgstr "У вас нет прав для выполнения этой операции."
#: exceptions.py:104 views.py:79 #: exceptions.py:104 views.py:81
msgid "Not found." msgid "Not found."
msgstr "Не найдено." msgstr "Не найдено."
#: exceptions.py:109 #: exceptions.py:109
#, python-brace-format
msgid "Method \"{method}\" not allowed." msgid "Method \"{method}\" not allowed."
msgstr "Метод \"{method}\" не разрешен." msgstr "Метод \"{method}\" не разрешен."
@ -102,6 +103,7 @@ msgid "Could not satisfy the request Accept header."
msgstr "Невозможно удовлетворить \"Accept\" заголовок запроса." msgstr "Невозможно удовлетворить \"Accept\" заголовок запроса."
#: exceptions.py:132 #: exceptions.py:132
#, python-brace-format
msgid "Unsupported media type \"{media_type}\" in request." msgid "Unsupported media type \"{media_type}\" in request."
msgstr "Неподдерживаемый тип данных \"{media_type}\" в запросе." msgstr "Неподдерживаемый тип данных \"{media_type}\" в запросе."
@ -109,209 +111,238 @@ msgstr "Неподдерживаемый тип данных \"{media_type}\" в
msgid "Request was throttled." msgid "Request was throttled."
msgstr "Запрос был проигнорирован." msgstr "Запрос был проигнорирован."
#: fields.py:167 relations.py:173 relations.py:206 validators.py:79 #: fields.py:262 relations.py:191 relations.py:224 validators.py:79
#: validators.py:162 #: validators.py:162
msgid "This field is required." msgid "This field is required."
msgstr "Это поле обязательно." msgstr "Это поле обязательно."
#: fields.py:168 #: fields.py:263
msgid "This field may not be null." msgid "This field may not be null."
msgstr "Это поле не может быть null." msgstr "Это поле не может быть null."
#: fields.py:504 fields.py:532 #: fields.py:599 fields.py:627
#, python-brace-format
msgid "\"{input}\" is not a valid boolean." msgid "\"{input}\" is not a valid boolean."
msgstr "\"{input}\" не является корректным булевым значением." msgstr "\"{input}\" не является корректным булевым значением."
#: fields.py:567 #: fields.py:662
msgid "This field may not be blank." msgid "This field may not be blank."
msgstr "Это поле не может быть пустым." msgstr "Это поле не может быть пустым."
#: fields.py:568 fields.py:1482 #: fields.py:663 fields.py:1594
#, python-brace-format
msgid "Ensure this field has no more than {max_length} characters." msgid "Ensure this field has no more than {max_length} characters."
msgstr "Убедитесь что в этом поле не больше {max_length} символов." msgstr "Убедитесь что в этом поле не больше {max_length} символов."
#: fields.py:569 #: fields.py:664
#, python-brace-format
msgid "Ensure this field has at least {min_length} characters." msgid "Ensure this field has at least {min_length} characters."
msgstr "Убедитесь что в этом поле как минимум {min_length} символов." msgstr "Убедитесь что в этом поле как минимум {min_length} символов."
#: fields.py:606 #: fields.py:701
msgid "Enter a valid email address." msgid "Enter a valid email address."
msgstr "Введите корректный адрес электронной почты." msgstr "Введите корректный адрес электронной почты."
#: fields.py:617 #: fields.py:712
msgid "This value does not match the required pattern." msgid "This value does not match the required pattern."
msgstr "Значение не соответствует требуемому паттерну." msgstr "Значение не соответствует требуемому паттерну."
#: fields.py:628 #: fields.py:723
msgid "" msgid ""
"Enter a valid \"slug\" consisting of letters, numbers, underscores or " "Enter a valid \"slug\" consisting of letters, numbers, underscores or "
"hyphens." "hyphens."
msgstr "Введите корректный \"slug\", состоящий из букв, цифр, знаков подчеркивания или дефисов." msgstr "Введите корректный \"slug\", состоящий из букв, цифр, знаков подчеркивания или дефисов."
#: fields.py:640 #: fields.py:735
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Введите корректный URL." msgstr "Введите корректный URL."
#: fields.py:653 #: fields.py:748
#, python-brace-format
msgid "\"{value}\" is not a valid UUID." msgid "\"{value}\" is not a valid UUID."
msgstr "\"{value}\" не является корректным UUID." msgstr "\"{value}\" не является корректным UUID."
#: fields.py:687 #: fields.py:782
msgid "Enter a valid IPv4 or IPv6 address." msgid "Enter a valid IPv4 or IPv6 address."
msgstr "" msgstr ""
#: fields.py:712 #: fields.py:807
msgid "A valid integer is required." msgid "A valid integer is required."
msgstr "Требуется целочисленное значение." msgstr "Требуется целочисленное значение."
#: fields.py:713 fields.py:748 fields.py:781 #: fields.py:808 fields.py:843 fields.py:876
#, python-brace-format
msgid "Ensure this value is less than or equal to {max_value}." msgid "Ensure this value is less than or equal to {max_value}."
msgstr "Убедитесь что значение меньше или равно {max_value}." msgstr "Убедитесь что значение меньше или равно {max_value}."
#: fields.py:714 fields.py:749 fields.py:782 #: fields.py:809 fields.py:844 fields.py:877
#, python-brace-format
msgid "Ensure this value is greater than or equal to {min_value}." msgid "Ensure this value is greater than or equal to {min_value}."
msgstr "Убедитесь что значение больше или равно {min_value}." msgstr "Убедитесь что значение больше или равно {min_value}."
#: fields.py:715 fields.py:750 fields.py:786 #: fields.py:810 fields.py:845 fields.py:881
msgid "String value too large." msgid "String value too large."
msgstr "Слишком длинное значение." msgstr "Слишком длинное значение."
#: fields.py:747 fields.py:780 #: fields.py:842 fields.py:875
msgid "A valid number is required." msgid "A valid number is required."
msgstr "Требуется численное значение." msgstr "Требуется численное значение."
#: fields.py:783 #: fields.py:878
#, python-brace-format
msgid "Ensure that there are no more than {max_digits} digits in total." msgid "Ensure that there are no more than {max_digits} digits in total."
msgstr "Убедитесь что в числе не больше {max_digits} знаков." msgstr "Убедитесь что в числе не больше {max_digits} знаков."
#: fields.py:784 #: fields.py:879
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_decimal_places} decimal places." "Ensure that there are no more than {max_decimal_places} decimal places."
msgstr "Убедитесь что в числе не больше {max_decimal_places} знаков в дробной части." msgstr "Убедитесь что в числе не больше {max_decimal_places} знаков в дробной части."
#: fields.py:785 #: fields.py:880
#, python-brace-format
msgid "" msgid ""
"Ensure that there are no more than {max_whole_digits} digits before the " "Ensure that there are no more than {max_whole_digits} digits before the "
"decimal point." "decimal point."
msgstr "Убедитесь что в цисле не больше {max_whole_digits} знаков в целой части." msgstr "Убедитесь что в цисле не больше {max_whole_digits} знаков в целой части."
#: fields.py:899 #: fields.py:994
#, python-brace-format
msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgid "Datetime has wrong format. Use one of these formats instead: {format}."
msgstr "Неправильный формат datetime. Используйте один из этих форматов: {format}." msgstr "Неправильный формат datetime. Используйте один из этих форматов: {format}."
#: fields.py:900 #: fields.py:995
msgid "Expected a datetime but got a date." msgid "Expected a datetime but got a date."
msgstr "Ожидался datetime, но был получен date." msgstr "Ожидался datetime, но был получен date."
#: fields.py:965 #: fields.py:1060
#, python-brace-format
msgid "Date has wrong format. Use one of these formats instead: {format}." msgid "Date has wrong format. Use one of these formats instead: {format}."
msgstr "Неправильный формат date. Используйте один из этих форматов: {format}." msgstr "Неправильный формат date. Используйте один из этих форматов: {format}."
#: fields.py:966 #: fields.py:1061
msgid "Expected a date but got a datetime." msgid "Expected a date but got a datetime."
msgstr "Ожидался date, но был получен datetime." msgstr "Ожидался date, но был получен datetime."
#: fields.py:1030 #: fields.py:1125
#, python-brace-format
msgid "Time has wrong format. Use one of these formats instead: {format}." msgid "Time has wrong format. Use one of these formats instead: {format}."
msgstr "Неправильный формат времени. Используйте один из этих форматов: {format}." msgstr "Неправильный формат времени. Используйте один из этих форматов: {format}."
#: fields.py:1085 #: fields.py:1180
#, python-brace-format
msgid "Duration has wrong format. Use one of these formats instead: {format}." msgid "Duration has wrong format. Use one of these formats instead: {format}."
msgstr "" msgstr ""
#: fields.py:1110 fields.py:1154 #: fields.py:1205 fields.py:1254
#, python-brace-format
msgid "\"{input}\" is not a valid choice." msgid "\"{input}\" is not a valid choice."
msgstr "\"{input}\" не является корректным значением." msgstr "\"{input}\" не является корректным значением."
#: fields.py:1155 fields.py:1301 relations.py:405 serializers.py:504 #: fields.py:1208 relations.py:58 relations.py:427
#, python-brace-format
msgid "More than {count} items..."
msgstr ""
#: fields.py:1255 fields.py:1401 relations.py:423 serializers.py:504
#, python-brace-format
msgid "Expected a list of items but got type \"{input_type}\"." msgid "Expected a list of items but got type \"{input_type}\"."
msgstr "Ожидался list со значениями, но был получен \"{input_type}\"." msgstr "Ожидался list со значениями, но был получен \"{input_type}\"."
#: fields.py:1156 #: fields.py:1256
msgid "This selection may not be empty." msgid "This selection may not be empty."
msgstr "" msgstr ""
#: fields.py:1194 #: fields.py:1294
#, python-brace-format
msgid "\"{input}\" is not a valid path choice." msgid "\"{input}\" is not a valid path choice."
msgstr "" msgstr ""
#: fields.py:1213 #: fields.py:1313
msgid "No file was submitted." msgid "No file was submitted."
msgstr "Не был загружен файл." msgstr "Не был загружен файл."
#: fields.py:1214 #: fields.py:1314
msgid "" msgid ""
"The submitted data was not a file. Check the encoding type on the form." "The submitted data was not a file. Check the encoding type on the form."
msgstr "Загруженный файл не является корректным файлом. " msgstr "Загруженный файл не является корректным файлом. "
#: fields.py:1215 #: fields.py:1315
msgid "No filename could be determined." msgid "No filename could be determined."
msgstr "Невозможно определить имя файла." msgstr "Невозможно определить имя файла."
#: fields.py:1216 #: fields.py:1316
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "Загруженный файл пуст." msgstr "Загруженный файл пуст."
#: fields.py:1217 #: fields.py:1317
#, python-brace-format
msgid "" msgid ""
"Ensure this filename has at most {max_length} characters (it has {length})." "Ensure this filename has at most {max_length} characters (it has {length})."
msgstr "Убедитесь что имя файла меньше {max_length} символов (сейчас {length})." msgstr "Убедитесь что имя файла меньше {max_length} символов (сейчас {length})."
#: fields.py:1263 #: fields.py:1363
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
msgstr "Загрузите корректное изображение. Загруженный файл не является изображением, либо является испорченным." msgstr "Загрузите корректное изображение. Загруженный файл не является изображением, либо является испорченным."
#: fields.py:1302 relations.py:406 serializers.py:505 #: fields.py:1402 relations.py:424 serializers.py:505
msgid "This list may not be empty." msgid "This list may not be empty."
msgstr "" msgstr ""
#: fields.py:1346 #: fields.py:1452
#, python-brace-format
msgid "Expected a dictionary of items but got type \"{input_type}\"." msgid "Expected a dictionary of items but got type \"{input_type}\"."
msgstr "Ожидался словарь со значениями, но был получен \"{input_type}\"." msgstr "Ожидался словарь со значениями, но был получен \"{input_type}\"."
#: pagination.py:192 #: pagination.py:192
#, python-brace-format
msgid "Invalid page \"{page_number}\": {message}." msgid "Invalid page \"{page_number}\": {message}."
msgstr "Недопустимая страница \"{page_number}\": {message}." msgstr "Недопустимая страница \"{page_number}\": {message}."
#: pagination.py:459 #: pagination.py:462
msgid "Invalid cursor" msgid "Invalid cursor"
msgstr "Не корректный курсор" msgstr "Не корректный курсор"
#: relations.py:174 #: relations.py:192
#, python-brace-format
msgid "Invalid pk \"{pk_value}\" - object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist."
msgstr "Недопустимый первичный ключ \"{pk_value}\" - объект не существует." msgstr "Недопустимый первичный ключ \"{pk_value}\" - объект не существует."
#: relations.py:175 #: relations.py:193
#, python-brace-format
msgid "Incorrect type. Expected pk value, received {data_type}." msgid "Incorrect type. Expected pk value, received {data_type}."
msgstr "Некорректный тип. Ожилалось значение первичного ключа, получен {data_type}." msgstr "Некорректный тип. Ожилалось значение первичного ключа, получен {data_type}."
#: relations.py:207 #: relations.py:225
msgid "Invalid hyperlink - No URL match." msgid "Invalid hyperlink - No URL match."
msgstr "Недопустимая ссылка - нет совпадения по URL." msgstr "Недопустимая ссылка - нет совпадения по URL."
#: relations.py:208 #: relations.py:226
msgid "Invalid hyperlink - Incorrect URL match." msgid "Invalid hyperlink - Incorrect URL match."
msgstr "Недопустимая ссылка - некорректное совпадение по URL," msgstr "Недопустимая ссылка - некорректное совпадение по URL,"
#: relations.py:209 #: relations.py:227
msgid "Invalid hyperlink - Object does not exist." msgid "Invalid hyperlink - Object does not exist."
msgstr "Недопустимая ссылка - объект не существует." msgstr "Недопустимая ссылка - объект не существует."
#: relations.py:210 #: relations.py:228
#, python-brace-format
msgid "Incorrect type. Expected URL string, received {data_type}." msgid "Incorrect type. Expected URL string, received {data_type}."
msgstr "Некорректный тип. Ожидался URL, получен {data_type}." msgstr "Некорректный тип. Ожидался URL, получен {data_type}."
#: relations.py:369 #: relations.py:387
#, python-brace-format
msgid "Object with {slug_name}={value} does not exist." msgid "Object with {slug_name}={value} does not exist."
msgstr "Объект с {slug_name}={value} не существует." msgstr "Объект с {slug_name}={value} не существует."
#: relations.py:370 #: relations.py:388
msgid "Invalid value." msgid "Invalid value."
msgstr "Недопустимое значение." msgstr "Недопустимое значение."
#: serializers.py:310 #: serializers.py:310
#, python-brace-format
msgid "Invalid data. Expected a dictionary, but got {datatype}." msgid "Invalid data. Expected a dictionary, but got {datatype}."
msgstr "Недопустимые данные. Ожидался dictionary, но был получен {datatype}." msgstr "Недопустимые данные. Ожидался dictionary, но был получен {datatype}."
@ -332,18 +363,22 @@ msgid "This field must be unique."
msgstr "Это поле должно быть уникально." msgstr "Это поле должно быть уникально."
#: validators.py:78 #: validators.py:78
#, python-brace-format
msgid "The fields {field_names} must make a unique set." msgid "The fields {field_names} must make a unique set."
msgstr "Поля {field_names} должны производить массив с уникальными значениями." msgstr "Поля {field_names} должны производить массив с уникальными значениями."
#: validators.py:226 #: validators.py:226
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" date." msgid "This field must be unique for the \"{date_field}\" date."
msgstr "Это поле должно быть уникально для даты \"{date_field}\"." msgstr "Это поле должно быть уникально для даты \"{date_field}\"."
#: validators.py:241 #: validators.py:241
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" month." msgid "This field must be unique for the \"{date_field}\" month."
msgstr "Это поле должно быть уникально для месяца \"{date_field}\"." msgstr "Это поле должно быть уникально для месяца \"{date_field}\"."
#: validators.py:254 #: validators.py:254
#, python-brace-format
msgid "This field must be unique for the \"{date_field}\" year." msgid "This field must be unique for the \"{date_field}\" year."
msgstr "Это поле должно быть уникально для года \"{date_field}\"." msgstr "Это поле должно быть уникально для года \"{date_field}\"."
@ -363,6 +398,6 @@ msgstr "Недопустимая версия в имени хоста."
msgid "Invalid version in query parameter." msgid "Invalid version in query parameter."
msgstr "Недопустимая версия в параметре запроса." msgstr "Недопустимая версия в параметре запроса."
#: views.py:86 #: views.py:88
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""

Some files were not shown because too many files have changed in this diff Show More